From f6836e0fdb2e84d102ab656af7bfe3f95b5f63b6 Mon Sep 17 00:00:00 2001 From: Martin Ziegler Date: Tue, 2 Dec 2025 12:13:48 +0100 Subject: [PATCH] Added AMS discovery module --- backend/app/api/routes/printers.py | 41 + backend/app/schemas/printer.py | 18 + backend/app/services/bambu_mqtt.py | 37 +- frontend/src/api/client.ts | 18 + frontend/src/components/control/AMSPanel.tsx | 88 +- mockup/control-page-mockup.html | 1026 ++++++++++++++ mockup/control-page-v10.html | 923 +++++++++++++ mockup/control-page-v11.html | 936 +++++++++++++ mockup/control-page-v12.html | 1174 ++++++++++++++++ mockup/control-page-v13.html | 1138 ++++++++++++++++ mockup/control-page-v14.html | 1055 ++++++++++++++ mockup/control-page-v15.html | 1091 +++++++++++++++ mockup/control-page-v16.html | 1206 +++++++++++++++++ mockup/control-page-v17.html | 1032 ++++++++++++++ mockup/control-page-v18.html | 1061 +++++++++++++++ mockup/control-page-v19.html | 1061 +++++++++++++++ mockup/control-page-v2.html | 1123 +++++++++++++++ mockup/control-page-v20.html | 1131 ++++++++++++++++ mockup/control-page-v21.html | 1108 +++++++++++++++ mockup/control-page-v22.html | 1119 +++++++++++++++ mockup/control-page-v23.html | 1127 +++++++++++++++ mockup/control-page-v24.html | 1136 ++++++++++++++++ mockup/control-page-v25.html | 1155 ++++++++++++++++ mockup/control-page-v3.html | 1082 +++++++++++++++ mockup/control-page-v4.html | 1051 ++++++++++++++ mockup/control-page-v5.html | 952 +++++++++++++ mockup/control-page-v6-multi-ams.html | 690 ++++++++++ mockup/control-page-v6.html | 1125 +++++++++++++++ mockup/control-page-v7.html | 654 +++++++++ mockup/control-page-v8.html | 652 +++++++++ mockup/control-page-v9.html | 924 +++++++++++++ mockup/icons/ams-ht.png | Bin 0 -> 4314 bytes mockup/icons/ams-ht.xcf | Bin 0 -> 52459 bytes mockup/icons/ams-settings.svg | 1 + mockup/icons/ams.png | Bin 0 -> 6447 bytes mockup/icons/ams.xcf | Bin 0 -> 52537 bytes mockup/icons/chamber.svg | 1 + mockup/icons/dual-extruder.png | Bin 0 -> 19576 bytes mockup/icons/dual-extruder.xcf | Bin 0 -> 144245 bytes mockup/icons/extruder-left-right.png | Bin 0 -> 6234 bytes mockup/icons/extruder-left-right.xcf | Bin 0 -> 37192 bytes mockup/icons/eye.svg | 51 + mockup/icons/heatbed.svg | 1 + mockup/icons/home.svg | 44 + mockup/icons/hotend.svg | 1 + mockup/icons/lamp.svg | 1 + mockup/icons/micro-sd.svg | 1 + mockup/icons/reload.svg | 1 + mockup/icons/settings.svg | 1 + mockup/icons/single-extruder1.png | Bin 0 -> 5124 bytes mockup/icons/single-extruder1.xcf | Bin 0 -> 38834 bytes mockup/icons/single-extruder2.png | Bin 0 -> 14109 bytes mockup/icons/single-extruder2.xcf | Bin 0 -> 85476 bytes mockup/icons/snowflake.svg | 53 + mockup/icons/speed.svg | 1 + mockup/icons/ventilation.svg | 1 + mockup/icons/video-camera.svg | 1 + mockup/icons/water.svg | 2 + mockup/icons/webcam.svg | 73 + .../{index-CLsUm3wk.js => index-BarB10XI.js} | 790 +++++------ static/assets/index-DiPSi5MU.css | 1 + static/assets/index-Dqi_M3E3.css | 1 - static/index.html | 4 +- 63 files changed, 27497 insertions(+), 467 deletions(-) create mode 100644 mockup/control-page-mockup.html create mode 100644 mockup/control-page-v10.html create mode 100644 mockup/control-page-v11.html create mode 100644 mockup/control-page-v12.html create mode 100644 mockup/control-page-v13.html create mode 100644 mockup/control-page-v14.html create mode 100644 mockup/control-page-v15.html create mode 100644 mockup/control-page-v16.html create mode 100644 mockup/control-page-v17.html create mode 100644 mockup/control-page-v18.html create mode 100644 mockup/control-page-v19.html create mode 100644 mockup/control-page-v2.html create mode 100644 mockup/control-page-v20.html create mode 100644 mockup/control-page-v21.html create mode 100644 mockup/control-page-v22.html create mode 100644 mockup/control-page-v23.html create mode 100644 mockup/control-page-v24.html create mode 100644 mockup/control-page-v25.html create mode 100644 mockup/control-page-v3.html create mode 100644 mockup/control-page-v4.html create mode 100644 mockup/control-page-v5.html create mode 100644 mockup/control-page-v6-multi-ams.html create mode 100644 mockup/control-page-v6.html create mode 100644 mockup/control-page-v7.html create mode 100644 mockup/control-page-v8.html create mode 100644 mockup/control-page-v9.html create mode 100644 mockup/icons/ams-ht.png create mode 100644 mockup/icons/ams-ht.xcf create mode 100644 mockup/icons/ams-settings.svg create mode 100644 mockup/icons/ams.png create mode 100644 mockup/icons/ams.xcf create mode 100644 mockup/icons/chamber.svg create mode 100644 mockup/icons/dual-extruder.png create mode 100644 mockup/icons/dual-extruder.xcf create mode 100644 mockup/icons/extruder-left-right.png create mode 100644 mockup/icons/extruder-left-right.xcf create mode 100644 mockup/icons/eye.svg create mode 100644 mockup/icons/heatbed.svg create mode 100644 mockup/icons/home.svg create mode 100644 mockup/icons/hotend.svg create mode 100644 mockup/icons/lamp.svg create mode 100644 mockup/icons/micro-sd.svg create mode 100644 mockup/icons/reload.svg create mode 100644 mockup/icons/settings.svg create mode 100644 mockup/icons/single-extruder1.png create mode 100644 mockup/icons/single-extruder1.xcf create mode 100644 mockup/icons/single-extruder2.png create mode 100644 mockup/icons/single-extruder2.xcf create mode 100644 mockup/icons/snowflake.svg create mode 100644 mockup/icons/speed.svg create mode 100644 mockup/icons/ventilation.svg create mode 100644 mockup/icons/video-camera.svg create mode 100644 mockup/icons/water.svg create mode 100644 mockup/icons/webcam.svg rename static/assets/{index-CLsUm3wk.js => index-BarB10XI.js} (79%) create mode 100644 static/assets/index-DiPSi5MU.css delete mode 100644 static/assets/index-Dqi_M3E3.css diff --git a/backend/app/api/routes/printers.py b/backend/app/api/routes/printers.py index e8f891284..7790218b9 100644 --- a/backend/app/api/routes/printers.py +++ b/backend/app/api/routes/printers.py @@ -19,6 +19,8 @@ from backend.app.schemas.printer import ( PrinterResponse, PrinterStatus, HMSErrorResponse, + AMSUnit, + AMSTray, ) from backend.app.services.printer_manager import printer_manager from backend.app.services.bambu_ftp import ( @@ -145,6 +147,42 @@ async def get_printer_status(printer_id: int, db: AsyncSession = Depends(get_db) for e in (state.hms_errors or []) ] + # Parse AMS data from raw_data + ams_units = [] + vt_tray = None + ams_exists = False + raw_data = state.raw_data or {} + + if "ams" in raw_data: + ams_exists = True + for ams_data in raw_data["ams"]: + trays = [] + for tray_data in ams_data.get("tray", []): + trays.append(AMSTray( + id=tray_data.get("id", 0), + tray_color=tray_data.get("tray_color"), + tray_type=tray_data.get("tray_type"), + remain=tray_data.get("remain", 0), + k=tray_data.get("k"), + )) + ams_units.append(AMSUnit( + id=ams_data.get("id", 0), + humidity=ams_data.get("humidity"), + temp=ams_data.get("temp"), + tray=trays, + )) + + # Virtual tray (external spool holder) - comes from vt_tray in raw_data + if "vt_tray" in raw_data: + vt_data = raw_data["vt_tray"] + vt_tray = AMSTray( + id=254, # Virtual tray ID + tray_color=vt_data.get("tray_color"), + tray_type=vt_data.get("tray_type"), + remain=vt_data.get("remain", 0), + k=vt_data.get("k"), + ) + return PrinterStatus( id=printer_id, name=printer.name, @@ -160,6 +198,9 @@ async def get_printer_status(printer_id: int, db: AsyncSession = Depends(get_db) temperatures=state.temperatures, cover_url=cover_url, hms_errors=hms_errors, + ams=ams_units, + ams_exists=ams_exists, + vt_tray=vt_tray, ) diff --git a/backend/app/schemas/printer.py b/backend/app/schemas/printer.py index 559d3a2c6..fb5890e1c 100644 --- a/backend/app/schemas/printer.py +++ b/backend/app/schemas/printer.py @@ -43,6 +43,21 @@ class HMSErrorResponse(BaseModel): severity: int # 1=fatal, 2=serious, 3=common, 4=info +class AMSTray(BaseModel): + id: int + tray_color: str | None = None + tray_type: str | None = None + remain: int = 0 + k: float | None = None # Pressure advance value + + +class AMSUnit(BaseModel): + id: int + humidity: int | None = None + temp: float | None = None + tray: list[AMSTray] = [] + + class PrinterStatus(BaseModel): id: int name: str @@ -58,3 +73,6 @@ class PrinterStatus(BaseModel): temperatures: dict | None = None cover_url: str | None = None hms_errors: list[HMSErrorResponse] = [] + ams: list[AMSUnit] = [] + ams_exists: bool = False + vt_tray: AMSTray | None = None # Virtual tray / external spool diff --git a/backend/app/services/bambu_mqtt.py b/backend/app/services/bambu_mqtt.py index a944ce3de..fff8e944a 100644 --- a/backend/app/services/bambu_mqtt.py +++ b/backend/app/services/bambu_mqtt.py @@ -179,6 +179,17 @@ class BambuMQTTClient: f"gcode_file: {print_data.get('gcode_file')}, subtask_name: {print_data.get('subtask_name')}" ) + # Handle AMS data that comes inside print key + if "ams" in print_data: + try: + self._handle_ams_data(print_data["ams"]) + except Exception as e: + logger.error(f"[{self.serial_number}] Error handling AMS data from print: {e}") + + # Handle vt_tray (virtual tray / external spool) data + if "vt_tray" in print_data: + self.state.raw_data["vt_tray"] = print_data["vt_tray"] + # Check for K-profile response (extrusion_cali) if "command" in print_data: logger.debug(f"[{self.serial_number}] Received command response: {print_data.get('command')}") @@ -187,7 +198,7 @@ class BambuMQTTClient: self._update_state(print_data) - def _handle_ams_data(self, ams_data: list): + def _handle_ams_data(self, ams_data): """Handle AMS data changes for Spoolman integration. This is called when we receive top-level AMS data in MQTT messages. @@ -195,15 +206,22 @@ class BambuMQTTClient: """ import hashlib - # Store AMS data in raw_data so it's accessible via API - if "ams" not in self.state.raw_data: - self.state.raw_data["ams"] = ams_data + # Handle nested ams structure: {"ams": {"ams": [...]}} or {"ams": [...]} + if isinstance(ams_data, dict) and "ams" in ams_data: + ams_list = ams_data["ams"] + elif isinstance(ams_data, list): + ams_list = ams_data else: - self.state.raw_data["ams"] = ams_data + logger.warning(f"[{self.serial_number}] Unexpected AMS data format: {type(ams_data)}") + return + + # Store AMS data in raw_data so it's accessible via API + self.state.raw_data["ams"] = ams_list + logger.debug(f"[{self.serial_number}] Stored AMS data with {len(ams_list)} units") # Create a hash of relevant AMS data to detect changes ams_hash_data = [] - for ams_unit in ams_data: + for ams_unit in ams_list: for tray in ams_unit.get("tray", []): # Include fields that matter for filament tracking ams_hash_data.append( @@ -217,7 +235,7 @@ class BambuMQTTClient: self._previous_ams_hash = ams_hash if self.on_ams_change: logger.info(f"[{self.serial_number}] AMS data changed, triggering sync callback") - self.on_ams_change(ams_data) + self.on_ams_change(ams_list) def _update_state(self, data: dict): """Update printer state from message data.""" @@ -306,11 +324,14 @@ class BambuMQTTClient: severity=severity if severity > 0 else 3, )) - # Preserve AMS data when updating raw_data (AMS comes at top level, not in print) + # Preserve AMS and vt_tray data when updating raw_data ams_data = self.state.raw_data.get("ams") + vt_tray_data = self.state.raw_data.get("vt_tray") self.state.raw_data = data if ams_data is not None: self.state.raw_data["ams"] = ams_data + if vt_tray_data is not None: + self.state.raw_data["vt_tray"] = vt_tray_data # Log state transitions for debugging if "gcode_state" in data: diff --git a/frontend/src/api/client.ts b/frontend/src/api/client.ts index ed9d20438..602e5f6b1 100644 --- a/frontend/src/api/client.ts +++ b/frontend/src/api/client.ts @@ -41,6 +41,21 @@ export interface HMSError { severity: number; // 1=fatal, 2=serious, 3=common, 4=info } +export interface AMSTray { + id: number; + tray_color: string | null; + tray_type: string | null; + remain: number; + k: number | null; // Pressure advance value +} + +export interface AMSUnit { + id: number; + humidity: number | null; + temp: number | null; + tray: AMSTray[]; +} + export interface PrinterStatus { id: number; name: string; @@ -62,6 +77,9 @@ export interface PrinterStatus { } | null; cover_url: string | null; hms_errors: HMSError[]; + ams: AMSUnit[]; + ams_exists: boolean; + vt_tray: AMSTray | null; // Virtual tray / external spool } export interface PrinterCreate { diff --git a/frontend/src/components/control/AMSPanel.tsx b/frontend/src/components/control/AMSPanel.tsx index 1dfd2ab1e..3f847e17f 100644 --- a/frontend/src/components/control/AMSPanel.tsx +++ b/frontend/src/components/control/AMSPanel.tsx @@ -1,59 +1,16 @@ import { useState } from 'react'; import { useMutation } from '@tanstack/react-query'; import { api } from '../../api/client'; -import type { PrinterStatus } from '../../api/client'; -import { Package, Loader2, ArrowDown, ArrowUp } from 'lucide-react'; +import type { PrinterStatus, AMSUnit } from '../../api/client'; +import { Package, Loader2, ArrowDown, ArrowUp, Droplets, Thermometer } from 'lucide-react'; interface AMSPanelProps { printerId: number; status: PrinterStatus | null | undefined; } -interface AMSTray { - id: number; - color: string; - type: string; - remain: number; - active: boolean; -} - -interface AMSUnit { - id: number; - trays: AMSTray[]; -} - -// Parse AMS data from raw_data in status -function parseAMSData(status: PrinterStatus | null | undefined): AMSUnit[] { - // AMS data comes from raw MQTT data - // This is a simplified parser - actual data structure may vary - const rawData = (status as { raw_data?: { ams?: unknown[] } })?.raw_data; - if (!rawData?.ams) return []; - - try { - return (rawData.ams as Array<{ - id?: number; - tray?: Array<{ - id?: number; - tray_color?: string; - tray_type?: string; - remain?: number; - }>; - }>).map((unit) => ({ - id: unit.id ?? 0, - trays: (unit.tray ?? []).map((tray) => ({ - id: tray.id ?? 0, - color: tray.tray_color ?? 'FFFFFF', - type: tray.tray_type ?? 'Unknown', - remain: tray.remain ?? 0, - active: false, // Would need additional MQTT data to determine - })), - })); - } catch { - return []; - } -} - -function hexToRgb(hex: string): string { +function hexToRgb(hex: string | null): string { + if (!hex) return 'rgb(128, 128, 128)'; // Handle RRGGBBAA format const cleanHex = hex.replace('#', '').substring(0, 6); const r = parseInt(cleanHex.substring(0, 2), 16) || 128; @@ -65,7 +22,7 @@ function hexToRgb(hex: string): string { export function AMSPanel({ printerId, status }: AMSPanelProps) { const isConnected = status?.connected ?? false; const isPrinting = status?.state === 'RUNNING'; - const amsUnits = parseAMSData(status); + const amsUnits: AMSUnit[] = status?.ams ?? []; const [selectedTray, setSelectedTray] = useState(null); @@ -116,14 +73,28 @@ export function AMSPanel({ printerId, status }: AMSPanelProps) { {/* AMS Units */} {amsUnits.map((unit) => (
- {amsUnits.length > 1 && ( -
AMS {unit.id + 1}
- )} +
+ AMS {unit.id + 1} +
+ {unit.humidity !== null && ( + + + {unit.humidity}% + + )} + {unit.temp !== null && ( + + + {unit.temp}°C + + )} +
+
- {unit.trays.map((tray) => { + {unit.tray.map((tray) => { const globalTrayId = unit.id * 4 + tray.id; const isSelected = selectedTray === globalTrayId; - const isEmpty = tray.type === 'NONE' || !tray.type; + const isEmpty = !tray.tray_type || tray.tray_type === '' || tray.tray_type === 'NONE'; return (
{/* Type */} -
- {isEmpty ? '--' : tray.type} +
+ {isEmpty ? '--' : tray.tray_type}
{/* Remaining */} @@ -168,11 +139,6 @@ export function AMSPanel({ printerId, status }: AMSPanelProps) {
)} - - {/* Active Indicator */} - {tray.active && ( -
- )} ); })} diff --git a/mockup/control-page-mockup.html b/mockup/control-page-mockup.html new file mode 100644 index 000000000..6252b695c --- /dev/null +++ b/mockup/control-page-mockup.html @@ -0,0 +1,1026 @@ + + + + + + BambuTrack Control Page Mockup + + + + +
+ + + +
+ + +
+ +
+
+
+ +
+ 📷 Camera Feed +
+
+
+ + +
+
+ + +
+ + +
+ +
+
Temperature
+
+
+
🔥L
+
+ 22 + /0°C +
+
+
+
🔥R
+
+ 21 + /0°C +
+
+
+
🛏️
+
+ 21 + /0°C +
+
+
+
📦
+
+ 21 + /0°C +
+
+
+
+ + + +
+
+ + +
+
Print Speed
+
+ + + + +
+
+ + +
+
Movement
+
+
+
+ + + + + +
+
+ +
+ + Z + +
+ +
+ + + +
+ +
+
+ + +
+
+ 🖨️
Extruder +
+
+ + +
+
+
+
+ + +
+
AMS
+ + +
+
+
+
+
+
+
+
+ 1 +
+
+
+
+
+
+
+
+ 2 +
+
+
+
+
+
+
+
+ 3 +
+
+ + +
+
+ AMS 1 + 💧 18% · 🌡️ 24°C +
+
+
+
+
+
PLA
+
A1
+
+
+
+
+
+
PETG
+
A2
+
+
+
+
+
+
PETG
+
A3
+
+
+
+
+
+
PLA
+
A4
+
+
+
+
+ + +
+ Ext +
+ ? + Spool +
+
🎞️ External Spool Holder
+
+ + +
+ + +
+ + +
+
HUB
+
Ready - Select a slot to load
+
+
+
+
+ + diff --git a/mockup/control-page-v10.html b/mockup/control-page-v10.html new file mode 100644 index 000000000..648f5d19d --- /dev/null +++ b/mockup/control-page-v10.html @@ -0,0 +1,923 @@ + + + + + + BambuTrack Control - v10 + + + +
+ +
+
+ Camera + + + + +
+
Camera Feed
+
+ +
+ + +
+
+ Control + + + +
+ +
+ +
+ +
+
+
+ L + 24 + /0 °C +
+
+
+ R + 23 + /0 °C +
+
+
+ 23 + /0 °C +
+
+
+ 23 + /0 °C +
+ + +
+
Air Condition
+
+
+
100%
+
Lamp
+
+
+ + +
+
+ + +
+ +
+
+
+
+ Y + -Y + -X + X + + + + + +
+
+
+ + + Bed + + +
+
+ +
+ +
+ + Extruder +
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 +
+
+
+
+
+
+
+ 0 +
+
+ + +
+ +
+
+
17 %
+
☀
+
+
+
A1↓
+
A2↓
+
A3↓
+
A4↓
+
+
+
+
+ PLA +
+
+
+
+
+ PETG +
+
+
+
+
+ PETG +
+
+
+
+
+ PLA +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
14 %
+
☀
+
+
+
B1↓
+
B2↓
+
B3↓
+
B4↓
+
+
+
+
+ PLA +
+
+
+
+
+ PETG +
+
+
+
+
+ PLA +
+
+
+
+
+ Sup.PLA +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+ + diff --git a/mockup/control-page-v11.html b/mockup/control-page-v11.html new file mode 100644 index 000000000..b8b3c6349 --- /dev/null +++ b/mockup/control-page-v11.html @@ -0,0 +1,936 @@ + + + + + + BambuTrack Control - v11 + + + +
+ +
+
+ Camera + + + + +
+
Camera Feed
+
+ +
+ + +
+
+ Control + + + +
+ +
+ +
+ +
+
+
+ L + 24 + /0 °C +
+
+
+ R + 23 + /0 °C +
+
+
+ 23 + /0 °C +
+
+
+ 23 + /0 °C +
+ + +
+
Air Condition
+
+
+
100%
+
Lamp
+
+
+ + +
+
+ + +
+ +
+
+
+
+ Y + -Y + -X + X + + + + + +
+
+
+ + + Bed + + +
+
+ +
+ +
+ + Extruder +
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 +
+
+
+
+
+
+
+ 0 +
+
+ + +
+ +
+
+
17 %
+
☀
+
+
+
A1↓
+
A2↓
+
A3↓
+
A4↓
+
+
+
+
+ PLA +
+
+
+
+
+ PETG +
+
+
+
+
+ PETG +
+
+
+
+
+ PLA +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
14 %
+
☀
+
+
+
B1↓
+
B2↓
+
B3↓
+
B4↓
+
+
+
+
+ PLA +
+
+
+
+
+ PETG +
+
+
+
+
+ PLA +
+
+
+
+
+ Sup.PLA +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+ + diff --git a/mockup/control-page-v12.html b/mockup/control-page-v12.html new file mode 100644 index 000000000..b9554693d --- /dev/null +++ b/mockup/control-page-v12.html @@ -0,0 +1,1174 @@ + + + + + + BambuTrack Control - v12 + + + +
+ +
+
+ Camera + + + +
+
+
+ +
+ Camera Feed +
+
+ +
+ + +
+
+ Control + + + +
+ +
+ +
+ +
+
+
+ L + 24 + /0 °C +
+
+
+ R + 23 + /0 °C +
+
+
+ + 23 + /0 °C +
+
+
+ + 23 + /0 °C +
+ + +
+
Air Condition
+
+
+
100%
+
Lamp
+
+
+ + +
+
+ + +
+ +
+
+
+
+ Y + -Y + -X + X + + + + + +
+
+
+ + + Bed + + +
+
+ +
+ +
+ + Extruder +
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+ +
+
+
+
17%
+
25°C
+
☀
+
+
+
A1↓
+
A2↓
+
A3↓
+
A4↓
+
+
+
+
+ PLA +
+
+
+
+
+ PETG +
+
+
+
+
+ PETG +
+
+
+
+
+ PLA +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
14%
+
24°C
+
☀
+
+
+
B1↓
+
B2↓
+
B3↓
+
B4↓
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
22%
+
26°C
+
☀
+
+
+
C1↓
+
C2↓
+
C3↓
+
C4↓
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
19%
+
25°C
+
☀
+
+
+
D1↓
+
D2↓
+
D3↓
+
D4↓
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
12%
+
28°C
+
+
+
HT1↓
+
+
+
+
+ ABS +
+
+
+
+
+
+
+
+
+
+ +
+
+
15%
+
27°C
+
+
+
HT2↓
+
+
+
+
+ ASA +
+
+
+
+
+
+
+
+
+
+ +
+
+
+ + +
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+ + diff --git a/mockup/control-page-v13.html b/mockup/control-page-v13.html new file mode 100644 index 000000000..987159ef4 --- /dev/null +++ b/mockup/control-page-v13.html @@ -0,0 +1,1138 @@ + + + + + + BambuTrack Control - v13 + + + +
+ +
+
+ Camera + + + +
+
+
+ +
+ Camera Feed +
+
+ +
+ + +
+
+ Control + + + +
+ +
+ +
+ +
+
+
+ L + 24 + /0 °C +
+
+
+ R + 23 + /0 °C +
+
+
+ + 23 + /0 °C +
+
+
+ + 23 + /0 °C +
+ + +
+
Air Condition
+
+
+
100%
+
Lamp
+
+
+ + +
+
+ + +
+ +
+
+
+
+ Y + -Y + -X + X + + + + + +
+
+
+ + + Bed + + +
+
+ +
+ +
+ + Extruder +
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 +
+
+ + +
+
+
+
+
+
+
+
+ AMS 1 +
+
+
+
+
+
+
+
+ AMS 2 +
+
+
+
+
+
+
+
+ AMS 3 +
+
+
+
+
+
+ HT 1 +
+
+
+
+
+
+ HT 2 +
+
+ + +
+ +
+ +
+
18 %
+
☼
+
+ + +
+
A1↓
+
A2↓
+
A3↓
+
A4↓
+
+ + +
+
+
+ PLA +
+
+
+
+
+ PETG +
+
+
+
+
+ PETG +
+
+
+
+
+ PLA +
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+ + +
+
Ext
+
+
+
+ ? + ⁄ +
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+
+
+
+ + +
+
+
+
+
+
+
+
+ + +
+ + +
+ + +
+
+
+
+ + diff --git a/mockup/control-page-v14.html b/mockup/control-page-v14.html new file mode 100644 index 000000000..c82758bb2 --- /dev/null +++ b/mockup/control-page-v14.html @@ -0,0 +1,1055 @@ + + + + + + BambuTrack Control - v14 + + + +
+ +
+
+ Camera + + + +
+
+
+ +
+ Camera Feed +
+
+ +
+ + +
+
+ Control + + + +
+ +
+ +
+ +
+
+
+ L + 24 + /0 °C +
+
+
+ R + 23 + /0 °C +
+
+
+ + 23 + /0 °C +
+
+
+ + 23 + /0 °C +
+ + +
+
Air Condition
+
+
+
100%
+
Lamp
+
+
+ + +
+
+ + +
+ +
+
+
+
+ Y + -Y + -X + X + + + + + +
+
+
+ + + Bed + + +
+
+ +
+ +
+ + Extruder +
+
+
+
+ + +
+
+ +
+
Left Nozzle
+ + +
+
+ +
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+
+
+
+ + +
+
+
18%
+
☼
+
+
+
A1↓
+
A2↓
+
A3↓
+
A4↓
+
+
+
+
+ PLA +
+
+
+
+
+ PETG +
+
+
+
+
+ PETG +
+
+
+
+
+ PLA +
+
+
+
+
+ + +
+
Ext
+
?
/
+
+
+ + +
+
+
+
+
+
+
+ +
+
+
+ + +
+
Right Nozzle
+ + +
+
+ +
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+
+
+
+ + +
+
+
14%
+
☼
+
+
+
C1↓
+
C2↓
+
C3↓
+
C4↓
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ + +
+
Ext
+
?
/
+
+
+
+ + +
+ + +
+ + +
+
+
+
+
+ + diff --git a/mockup/control-page-v15.html b/mockup/control-page-v15.html new file mode 100644 index 000000000..0d3a6828c --- /dev/null +++ b/mockup/control-page-v15.html @@ -0,0 +1,1091 @@ + + + + + + BambuTrack Control - v15 + + + +
+ +
+
+ Camera + + + +
+
+
+ +
+ Camera Feed +
+
+ +
+ + +
+
+ Control + + + +
+ +
+ +
+ +
+
+
+ L + 24 + /0 °C +
+
+
+ R + 23 + /0 °C +
+
+
+ + 23 + /0 °C +
+
+
+ + 23 + /0 °C +
+ + +
+
Air Condition
+
+
+
100%
+
Lamp
+
+
+ + +
+
+ + +
+ +
+
+
+
+ Y + -Y + -X + X + + + + + +
+
+
+ + + Bed + + +
+
+ +
+ +
+ + Extruder +
+
+
+
+ + +
+
+ +
+
Left Nozzle
+ + +
+ +
+
+ +
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+ + +
+
+
18%
+
☼
+
+
+
A1↓
+
A2↓
+
A3↓
+
A4↓
+
+
+
+
+ PLA +
+
+
+
+
+ PETG +
+
+
+
+
+ PETG +
+
+
+
+
+ PLA +
+
+
+
+
+ + +
+
Ext
+
?
/
+
+
+ + +
+
+
+
+
+
+
+ +
+
+
+ + +
+
Right Nozzle
+ + +
+ +
+
+ +
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+ + +
+
+
14%
+
☼
+
+
+
E1↓
+
E2↓
+
E3↓
+
E4↓
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ + +
+
Ext
+
?
/
+
+
+
+ + +
+ + +
+ + +
+
+
+
+
+ + diff --git a/mockup/control-page-v16.html b/mockup/control-page-v16.html new file mode 100644 index 000000000..99cf831c5 --- /dev/null +++ b/mockup/control-page-v16.html @@ -0,0 +1,1206 @@ + + + + + + BambuTrack Control - v16 + + + +
+ +
+
+ Camera + + + +
+
+
+ +
+ Camera Feed +
+
+ +
+ + +
+
+ Control + + + +
+ +
+ +
+ +
+
+
+ L + 24 + /0 °C +
+
+
+ R + 23 + /0 °C +
+
+
+ + 23 + /0 °C +
+
+
+ + 23 + /0 °C +
+ + +
+
Air Condition
+
+
+
100%
+
Lamp
+
+
+ + +
+
+ + +
+ +
+
+
+
+ Y + -Y + -X + X + + + + + +
+
+
+ + + Bed + + +
+
+ +
+ +
+ + Extruder +
+
+
+
+ + +
+
+ +
+
Left Nozzle
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 +
+
+
+
+
+
+
+
+ 0 +
+
+ + +
+ +
+
+
18 %
+
☼
+
+ +
+
A1↓
+
A2↓
+
A3↓
+
A4↓
+
+ +
+
+
+ PLA +
+
+
+
+
+ PETG +
+
+
+
+
+ PETG +
+
+
+
+
+ PLA +
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
Ext
+
+
+
+ ? + ⁄ +
+
+
+
+ + + + + + + + + + + + + + + + + + + +
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
Right Nozzle
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 +
+
+ + +
+ +
+
+
14 %
+
☼
+
+ +
+
B1↓
+
B2↓
+
B3↓
+
B4↓
+
+ +
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
Ext
+
+
+
+ ? + ⁄ +
+
+
+
+ + + + + + + + + + + + + + +
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+ + +
+ + +
+ + +
+
+
+
+
+ + diff --git a/mockup/control-page-v17.html b/mockup/control-page-v17.html new file mode 100644 index 000000000..2cdd283ea --- /dev/null +++ b/mockup/control-page-v17.html @@ -0,0 +1,1032 @@ + + + + + + BambuTrack Control - v18 + + + +
+ +
+
+ Camera + + + +
+
+
+ +
+ Camera Feed +
+
+ +
+ + +
+
+ Control + + + +
+ +
+ +
+ +
+
+
+ L + 24 + /0 °C +
+
+
+ R + 23 + /0 °C +
+
+
+ + 23 + /0 °C +
+
+
+ + 23 + /0 °C +
+ + +
+
Air Condition
+
+
+
100%
+
Lamp
+
+
+ + +
+
+ + +
+ +
+
+
+
+ Y + -Y + -X + X + + + + + +
+
+
+ + + Bed + + +
+
+ +
+ +
+ + Extruder +
+
+
+
+ + +
+
+ +
+
Left Nozzle
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ + +
+
+
18 %
+
☼
+
+ +
+
A1↓
+
A2↓
+
A3↓
+
A4↓
+
+ +
+
+
+ PLA +
+
+
+
+
+ PETG +
+
+
+
+
+ PETG +
+
+
+
+
+ PLA +
+
+
+
+ +
+
+
+
+
+
+
+
+
+ + +
+
Right Nozzle
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ + +
+
+
14 %
+
☼
+
+ +
+
B1↓
+
B2↓
+
B3↓
+
B4↓
+
+ +
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+ + +
+ + +
+ + +
+ + +
+ +
+
+
+
+
+ + diff --git a/mockup/control-page-v18.html b/mockup/control-page-v18.html new file mode 100644 index 000000000..15aa037b9 --- /dev/null +++ b/mockup/control-page-v18.html @@ -0,0 +1,1061 @@ + + + + + + BambuTrack Control - v19 + + + +
+ +
+
+ Camera + + + +
+
+
+ +
+ Camera Feed +
+
+ +
+ + +
+
+ Control + + + +
+ +
+ +
+ +
+
+
+ L + 24 + /0 °C +
+
+
+ R + 23 + /0 °C +
+
+
+ + 23 + /0 °C +
+
+
+ + 23 + /0 °C +
+ + +
+
Air Condition
+
+
+
100%
+
Lamp
+
+
+ + +
+
+ + +
+ +
+
+
+
+ Y + -Y + -X + X + + + + + +
+
+
+ + + Bed + + +
+
+ +
+ +
+ + Extruder +
+
+
+
+ + +
+
+ +
+
Left Nozzle
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ + +
+
+
18 %
+
☼
+
+ +
+
A1↓
+
A2↓
+
A3↓
+
A4↓
+
+ +
+
+
+ PLA +
+
+
+
+
+ PETG +
+
+
+
+
+ PETG +
+
+
+
+
+ PLA +
+
+
+
+ +
+
+
+
+
+
+
+ +
+
+
+
+
+ + +
+
Right Nozzle
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ + +
+
+
14 %
+
☼
+
+ +
+
B1↓
+
B2↓
+
B3↓
+
B4↓
+
+ +
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+ +
+
+
+
+
+
+
+ +
+
+
+
+
+
+ + +
+ + +
+ +
+ + +
+
+
+
+
+ + diff --git a/mockup/control-page-v19.html b/mockup/control-page-v19.html new file mode 100644 index 000000000..edda9b66b --- /dev/null +++ b/mockup/control-page-v19.html @@ -0,0 +1,1061 @@ + + + + + + BambuTrack Control - v20 + + + +
+ +
+
+ Camera + + + +
+
+
+ +
+ Camera Feed +
+
+ +
+ + +
+
+ Control + + + +
+ +
+ +
+ +
+
+
+ L + 24 + /0 °C +
+
+
+ R + 23 + /0 °C +
+
+
+ + 23 + /0 °C +
+
+
+ + 23 + /0 °C +
+ + +
+
Air Condition
+
+
+
100%
+
Lamp
+
+
+ + +
+
+ + +
+ +
+
+
+
+ Y + -Y + -X + X + + + + + +
+
+
+ + + Bed + + +
+
+ +
+ +
+ + Extruder +
+
+
+
+ + +
+
+ +
+
Left Nozzle
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ + +
+
+
18 %
+
☼
+
+ +
+
A1↓
+
A2↓
+
A3↓
+
A4↓
+
+ +
+
+
+ PLA +
+
+
+
+
+ PETG +
+
+
+
+
+ PETG +
+
+
+
+
+ PLA +
+
+
+
+ +
+
+
+
+
+
+
+ +
+
+
+
+
+ + +
+
Right Nozzle
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ + +
+
+
14 %
+
☼
+
+ +
+
B1↓
+
B2↓
+
B3↓
+
B4↓
+
+ +
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+ +
+
+
+
+
+
+
+ +
+
+
+
+
+
+ + +
+ + +
+ +
+ + +
+
+
+
+
+ + diff --git a/mockup/control-page-v2.html b/mockup/control-page-v2.html new file mode 100644 index 000000000..7bcb058f2 --- /dev/null +++ b/mockup/control-page-v2.html @@ -0,0 +1,1123 @@ + + + + + + BambuTrack Control - Bambu Studio Style + + + + +
+ + + +
+ +
+ +
+
+
+ + +
+ 📷 Camera Feed +
+ + +
+ + +
+ +
+ +
+
+ 🔥 + L + 22 + /0°C +
+
+ 🔥 + R + 21 + /0°C +
+
+ 🛏️ + 21 + /0°C +
+
+ 📦 + 21 + /0°C +
+
+
+ + + +
+
+ + +
+ +
+ + + + +
+
+ + +
+ +
+ +
+
+
▲
+
▼
+
◀
+
▶
+ +
+
+ + +
+ + Z + +
+ + +
+ + + +
+ + +
+
+ + +
+
+ + + + + + + + + + + + + +
+
+ + +
+
+
+
+ + +
+ + + +
+
+
+
+
+
+
+
+
+
+
+ / +
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+ 1 +
+
+
+
+
+
+ 2 +
+
+
+
+
+
+ 3 +
+
+ +
+
+ AMS 1 + 💧 18% · 🌡 24°C +
+
+
+
+ + + + +
+
+
PLA
+
A1
+
+
+
+
+ + + + +
+
+
PETG
+
A2
+
+
+
+
+ + + + +
+
+
PETG
+
A3
+
+
+
+
+ + + + +
+
+
PLA
+
A4
+
+
+
+
+ + +
+ Ext +
+ ? + Spool +
+
+ + + + + + + + + + +
+
+ + +
+ + +
+ + +
+
+
+
HUB
+
+
+
Ready - Select a slot to load
+
+
+
+
+ + diff --git a/mockup/control-page-v20.html b/mockup/control-page-v20.html new file mode 100644 index 000000000..fe4298183 --- /dev/null +++ b/mockup/control-page-v20.html @@ -0,0 +1,1131 @@ + + + + + + BambuTrack Control - v20 + + + +
+ +
+
+ Camera + + + +
+
+
+ +
+ Camera Feed +
+
+ +
+ + +
+
+ Control + + + +
+ +
+ +
+ +
+
+
+ L + 24 + /0 °C +
+
+
+ R + 23 + /0 °C +
+
+
+ + 23 + /0 °C +
+
+
+ + 23 + /0 °C +
+ + +
+
Air Condition
+
+
+
100%
+
Lamp
+
+
+ + +
+
+ + +
+ +
+
+
+
+ Y + -Y + -X + X + + + + + +
+
+
+ + + Bed + + +
+
+ +
+ +
+ + Extruder +
+
+
+
+ + +
+
+ +
+
Left Nozzle
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ + +
+
+
18 %
+
☼
+
+ +
+
A1↓
+
A2↓
+
A3↓
+
A4↓
+
+ +
+
+
+ PLA +
+
+
+
+
+ PETG +
+
+
+
+
+ PETG +
+
+
+
+
+ PLA +
+
+
+
+ +
+
+
+
+
+
+
+ +
+
+
+ +
+
+
+
+
+ + +
+
Right Nozzle
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ + +
+
+
14 %
+
☼
+
+ +
+
B1↓
+
B2↓
+
B3↓
+
B4↓
+
+ +
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+ +
+
+
+
+
+
+
+ +
+
+
+ +
+
+
+
+
+
+ + +
+
+
+
+ +
+
+ + +
+
+ + +
+
+ +
+
+ + +
+
+
+
+
+
+ + diff --git a/mockup/control-page-v21.html b/mockup/control-page-v21.html new file mode 100644 index 000000000..71345a7c1 --- /dev/null +++ b/mockup/control-page-v21.html @@ -0,0 +1,1108 @@ + + + + + + BambuTrack Control - v21 + + + +
+ +
+
+ Camera + + + +
+
+
+ +
+ Camera Feed +
+
+ +
+ + +
+
+ Control + + + +
+ +
+ +
+ +
+
+
+ L + 24 + /0 °C +
+
+
+ R + 23 + /0 °C +
+
+
+ + 23 + /0 °C +
+
+
+ + 23 + /0 °C +
+ + +
+
Air Condition
+
+
+
100%
+
Lamp
+
+
+ + +
+
+ + +
+ +
+
+
+
+ Y + -Y + -X + X + + + + + +
+
+
+ + + Bed + + +
+
+ +
+ +
+ + Extruder +
+
+
+
+ + +
+
+ +
+
Left Nozzle
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ + +
+
+
18 %
+
☼
+
+ +
+
A1↓
+
A2↓
+
A3↓
+
A4↓
+
+ +
+
+
+ PLA +
+
+
+
+
+ PETG +
+
+
+
+
+ PETG +
+
+
+
+
+ PLA +
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
Right Nozzle
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ + +
+
+
14 %
+
☼
+
+ +
+
B1↓
+
B2↓
+
B3↓
+
B4↓
+
+ +
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+ + +
+
+ + +
+
+ +
+
+ + +
+
+
+
+
+
+ + diff --git a/mockup/control-page-v22.html b/mockup/control-page-v22.html new file mode 100644 index 000000000..950167cbe --- /dev/null +++ b/mockup/control-page-v22.html @@ -0,0 +1,1119 @@ + + + + + + BambuTrack Control - v22 + + + +
+ +
+
+ Camera + + + +
+
+
+ +
+ Camera Feed +
+
+ +
+ + +
+
+ Control + + + +
+ +
+ +
+ +
+
+
+ L + 24 + /0 °C +
+
+
+ R + 23 + /0 °C +
+
+
+ + 23 + /0 °C +
+
+
+ + 23 + /0 °C +
+ + +
+
Air Condition
+
+
+
100%
+
Lamp
+
+
+ + +
+
+ + +
+ +
+
+
+
+ Y + -Y + -X + X + + + + + +
+
+
+ + + Bed + + +
+
+ +
+ +
+ + Extruder +
+
+
+
+ + +
+
+ +
+
Left Nozzle
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ + +
+
+
18 %
+
☼
+
+ +
+
A1
+
A2
+
A3
+
A4
+
+ +
+
+
+ PLA +
+
+
+
+
+ PETG +
+
+
+
+
+ PETG +
+
+
+
+
+ PLA +
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
Right Nozzle
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ + +
+
+
14 %
+
☼
+
+ +
+
B1
+
B2
+
B3
+
B4
+
+ +
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+ + +
+
+ + +
+
+ +
+
+ + +
+
+
+
+
+
+ + diff --git a/mockup/control-page-v23.html b/mockup/control-page-v23.html new file mode 100644 index 000000000..7f2441da4 --- /dev/null +++ b/mockup/control-page-v23.html @@ -0,0 +1,1127 @@ + + + + + + BambuTrack Control - v23 + + + +
+ +
+
+ Camera + + + +
+
+
+ +
+ Camera Feed +
+
+ +
+ + +
+
+ Control + + + +
+ +
+ +
+ +
+
+
+ L + 24 + /0 °C +
+
+
+ R + 23 + /0 °C +
+
+
+ + 23 + /0 °C +
+
+
+ + 23 + /0 °C +
+ + +
+
Air Condition
+
+
+
100%
+
Lamp
+
+
+ + +
+
+ + +
+ +
+
+
+
+ Y + -Y + -X + X + + + + + +
+
+
+ + + Bed + + +
+
+ +
+ +
+ + Extruder +
+
+
+
+ + +
+
+ +
+
Left Nozzle
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ + +
+
+
18 %
+
☼
+
+ +
+
A1
+
A2
+
A3
+
A4
+
+ +
+
+
+ PLA +
+
+
+
+
+ PETG +
+
+
+
+
+ PETG +
+
+
+
+
+ PLA +
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
Right Nozzle
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ + +
+
+
14 %
+
☼
+
+ +
+
B1
+
B2
+
B3
+
B4
+
+ +
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+ +
+
+ + +
+
+ + +
+
+
+ + +
+
+
+
+
+
+ + diff --git a/mockup/control-page-v24.html b/mockup/control-page-v24.html new file mode 100644 index 000000000..f95cd234b --- /dev/null +++ b/mockup/control-page-v24.html @@ -0,0 +1,1136 @@ + + + + + + BambuTrack Control - v24 + + + +
+ +
+
+ Camera + + + +
+
+
+ +
+ Camera Feed +
+
+ +
+ + +
+
+ Control + + + +
+ +
+ +
+ +
+
+
+ L + 24 + /0 °C +
+
+
+ R + 23 + /0 °C +
+
+
+ + 23 + /0 °C +
+
+
+ + 23 + /0 °C +
+ + +
+
Air Condition
+
+
+
100%
+
Lamp
+
+
+ + +
+
+ + +
+ +
+
+
+
+ Y + -Y + -X + X + + + + + +
+
+
+ + + Bed + + +
+
+ +
+ +
+ + Extruder +
+
+
+
+ + +
+
+ +
+
Left Nozzle
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ + +
+
+
18 %
+
☼
+
+ +
+
A1
+
A2
+
A3
+
A4
+
+ +
+
+
+ PLA +
+
+
+
+
+ PETG +
+
+
+
+
+ PETG +
+
+
+
+
+ PLA +
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
Right Nozzle
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ + +
+
+
14 %
+
☼
+
+ +
+
B1
+
B2
+
B3
+
B4
+
+ +
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+ +
+
+ + +
+
+ + +
+
+
+ + +
+
+
+
+
+
+ + diff --git a/mockup/control-page-v25.html b/mockup/control-page-v25.html new file mode 100644 index 000000000..a94595a56 --- /dev/null +++ b/mockup/control-page-v25.html @@ -0,0 +1,1155 @@ + + + + + + BambuTrack Control - v25 + + + +
+ +
+
+ + + + +
+
+ Camera Feed +
+
+ +
+ + +
+
+ Control + + + +
+ +
+ +
+ +
+
+
+ L + 24 + /0 °C +
+
+
+ R + 23 + /0 °C +
+
+
+ + 23 + /0 °C +
+
+
+ + 23 + /0 °C +
+ + +
+
Air Condition
+
+
+
100%
+
Lamp
+
+
+ + +
+
+ + +
+ +
+
+
+
+ Y + -Y + -X + X + + + + + +
+
+
+ + + Bed + + +
+
+ +
+ +
+ + Extruder +
+
+
+
+ + +
+
+ +
+
Left Nozzle
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ + +
+
+
18 %
+
☼
+
+ +
+
A1
+
A2
+
A3
+
A4
+
+ +
+
+
+ PLA +
+
+
+
+
+ PETG +
+
+
+
+
+ PETG +
+
+
+
+
+ PLA +
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
Right Nozzle
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ + +
+
+
14 %
+
☼
+
+ +
+
B1
+
B2
+
B3
+
B4
+
+ +
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+
+ PLA +
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+ +
+
+ + +
+
+
+
+
+
+ + diff --git a/mockup/control-page-v3.html b/mockup/control-page-v3.html new file mode 100644 index 000000000..2ae9ee970 --- /dev/null +++ b/mockup/control-page-v3.html @@ -0,0 +1,1082 @@ + + + + + + BambuTrack Control - With Bambu Assets + + + + +
+ + + +
+ +
+ +
+
+
+ + +
+ + + Camera Feed + +
+ + +
+ + +
+ +
+ +
+
+
+ L + 22 + /0°C +
+
+
+ R + 21 + /0°C +
+
+
+ 21 + /0°C +
+
+
+ 21 + /0°C +
+
+
+ + + +
+
+ + +
+ +
+ + + + +
+
+ + +
+ +
+ +
+
+ + + + + +
+
+ + +
+ + Z + +
+ + +
+ + + +
+ + +
+
+ + +
+
+ Extruder +
+
+ + +
+
+
+
+ + +
+ + + +
+
+
+
+
+
+
+
+
+
+
+ / +
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+ 1 +
+
+
+
+
+
+ 2 +
+
+
+
+
+
+ 3 +
+
+ + +
+
+ AMS 1 +
+ 18% + · + 🌡 24°C +
+
+
+
+
+ +
+
+
PLA
+
A1
+
+
+
+
+ +
+
+
PETG
+
A2
+
+
+
+
+ +
+
+
PETG
+
A3
+
+
+
+
+ +
+
+
PLA
+
A4
+
+
+
+
+ + +
+ Ext +
+ ? + Spool +
+
+ Spool holder +
+
+ + +
+ + +
+ + +
+
+ AMS +
+
HUB
+
Ready - Select a slot to load
+
+
+
+
+ + diff --git a/mockup/control-page-v4.html b/mockup/control-page-v4.html new file mode 100644 index 000000000..79a384dd8 --- /dev/null +++ b/mockup/control-page-v4.html @@ -0,0 +1,1051 @@ + + + + + + BambuTrack Control - Bambu Studio Exact + + + +
+ +
+
+ Camera + + + + +
+ +
+ Camera Feed +
+ + +
+ + +
+
+ Control + + + +
+ +
+ +
+
+
+ L + 22 + /0 + °C +
+
+
+ R + 21 + /0 + °C +
+
+
+ 21 + /0 + °C +
+
+
+ 21 + /0 + °C +
+
+ + +
+
+ + Air Condition +
+
+ + 100% +
+
+ Lamp +
+
+
+ + +
+
+
+
+ Y + -Y + -X + X + + + + + +
+
+
+ +
+ + + Bed + + +
+ +
+
+ + +
+
+ +
+ Extruder +
+ + +
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+ + 18 % +
+
+ ☀ +
+
+ +
+ A1 + A2 + A3 + A4 + + Ext +
+ +
+
+
+
+ +
+
+
PLA
+
+
+
+
+ +
+
+
PETG
+
+
+
+
+ +
+
+
PETG
+
+
+
+
+ +
+
+
PLA
+
+
+
+ +
+
+ ? + ∠ +
+
+ +
+
+
+ + +
+ +
+ + +
+ + +
+
+
+
HUB
+
+
+
+
+
+
+
+ + diff --git a/mockup/control-page-v5.html b/mockup/control-page-v5.html new file mode 100644 index 000000000..5a3d237d2 --- /dev/null +++ b/mockup/control-page-v5.html @@ -0,0 +1,952 @@ + + + + + + BambuTrack Control - Exact Match + + + +
+ +
+
+ Camera + + + + +
+
Camera Feed
+ +
+ + +
+
+ Control + + + +
+ +
+ +
+
+
+ L + 22 + /0 °C +
+
+
+ R + 21 + /0 °C +
+
+
+ 21 + /0 °C +
+
+
+ 21 + /0 °C +
+
+ + +
+
Air Condition
+
100%
+
Lamp
+
+ + +
+
+
+ Y + -Y + -X + X + + + + + +
+
+ +
+ + + Bed + + +
+ +
+
+ + +
+
+ Extruder +
+ + +
+
+
+ + +
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
0
+
+
+
+
+
+
+
+
+
0
+
+
+ + +
+ +
+
18 %
+
☀
+
+ + +
+
A1↓
+
A2↓
+
A3↓
+
A4↓
+
+
Ext
+
+ + +
+ +
+
+
+ +
+
+
PLA
+
+
+
+
+ +
+
+
PETG
+
+
+
+
+ +
+
+
PETG
+
+
+
+
+ +
+
+
PLA
+
+
+
+ + +
+
+ ? + ∠ +
+
+ +
+
+
+ + +
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+ +
+ + +
+
+
+
+
+ + diff --git a/mockup/control-page-v6-multi-ams.html b/mockup/control-page-v6-multi-ams.html new file mode 100644 index 000000000..0d113cea1 --- /dev/null +++ b/mockup/control-page-v6-multi-ams.html @@ -0,0 +1,690 @@ + + + + + + BambuTrack Control - v6 Multi-AMS + + + +
+ +
+
+ Camera + + + + +
+
Camera Feed
+ +
+ + +
+
+ Control + + + +
+ +
+ +
+
+
+ L + 22 + /0 °C +
+
+
+ R + 21 + /0 °C +
+
+
+ 21 + /0 °C +
+
+
+ 21 + /0 °C +
+
+ + +
+
Air Condition
+
100%
+
Lamp
+
+ + +
+
+
+ Y + -Y + -X + X + + + + + +
+
+ +
+
+ + +
+
Bed
+
+ + +
+
+ +
+
+ + +
+
+ Extruder +
+ + +
+
+
+ + +
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+ +
+
+
+
+
+
+
+ AMS 1 +
+ +
+
+
+
+
+
+
+ AMS 2 +
+ +
+
+
+
+
+
+
+ AMS 3 +
+ +
+
+
+
+ HT 1 +
+ +
+
+
+
+ HT 2 +
+
+ + +
+ +
+
18 %
+
☼
+
+ + +
+ +
+ +
+
+
A1 ↓
+
+
+
A2 ↓
+
+
+
A3 ↓
+
+
+
A4 ↓
+
+
+ + +
+
+
+ PLA +
+
+
+
+
+ PETG +
+
+
+
+
+ PETG +
+
+
+
+
+ PLA +
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
Ext
+
+
+
+ ? + ∠ +
+
+
+
+ +
+
+
+
+
+ + +
+ + +
+ + +
+
+
+
+
+ + diff --git a/mockup/control-page-v6.html b/mockup/control-page-v6.html new file mode 100644 index 000000000..95c73e2d6 --- /dev/null +++ b/mockup/control-page-v6.html @@ -0,0 +1,1125 @@ + + + + + + BambuTrack Control - v6 Exact Match + + + +
+ +
+
+ Camera + + + + +
+
Camera Feed
+ +
+ + +
+
+ Control + + + +
+ +
+ +
+
+
+ L + 22 + /0 °C +
+
+
+ R + 21 + /0 °C +
+
+
+ 21 + /0 °C +
+
+
+ 21 + /0 °C +
+
+ + +
+
Air Condition
+
100%
+
Lamp
+
+ + +
+
+
+
+ Y + -Y + -X + X + + + + + +
+
+
+ +
+
+ + +
+
Bed
+
+ + +
+
+ +
+
+ + +
+
+ Extruder +
+ + +
+
+
+ + +
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 +
+
+
+
+
+
+
+ 0 +
+
+ + +
+ +
+
18 %
+
☼
+
+ + +
+ +
+ +
+
+
A1 ↓
+
+
+
A2 ↓
+
+
+
A3 ↓
+
+
+
A4 ↓
+
+
+ + +
+
+
+ PLA +
+
+
+
+
+ PETG +
+
+
+
+
+ PETG +
+
+
+
+
+ PLA +
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
Ext
+
+
+
+ ? + ∠ +
+
+
+
+ +
+
+
+
+
+ + +
+ + +
+ + +
+
+
+
+
+ + diff --git a/mockup/control-page-v7.html b/mockup/control-page-v7.html new file mode 100644 index 000000000..a5caae1ca --- /dev/null +++ b/mockup/control-page-v7.html @@ -0,0 +1,654 @@ + + + + + + BambuTrack Control - v7 + + + +
+ +
+
+ Camera + + + + +
+
Camera Feed
+ +
+ + +
+
+ Control + + + +
+ +
+ +
+
+
+ L + 22 + /0 °C +
+
+
+ R + 21 + /0 °C +
+
+
+ 21 + /0 °C +
+
+
+ 21 + /0 °C +
+
+ + +
+
Air Condition
+
100%
+
Lamp
+
+ + +
+
+
+ Y + -Y + -X + X + + + + + +
+
+ +
+
+ + +
+
Bed
+
+ + +
+
+ +
+
+ + +
+
+ Extruder +
+ + +
+
+
+ + +
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+ AMS 1 +
+
+
+
+
+
+
+
+ AMS 2 +
+
+
+
+
+
+
+
+ AMS 3 +
+
+
+
+
+ HT 1 +
+
+
+
+
+ HT 2 +
+
+ + +
+
+
18 %
+
☼
+
+ +
+
+
+
A1↓
+
A2↓
+
A3↓
+
A4↓
+
+ +
+
+
+ PLA +
+
+
+
+
+ PETG +
+
+
+
+
+ PETG +
+
+
+
+
+ PLA +
+
+
+
+ +
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+ +
+
Ext
+
+
+
+ ? + ∠ +
+
+
+
+ +
+
+
+
+
+ +
+ + +
+ + +
+
+
+
+
+ + diff --git a/mockup/control-page-v8.html b/mockup/control-page-v8.html new file mode 100644 index 000000000..472e22ff9 --- /dev/null +++ b/mockup/control-page-v8.html @@ -0,0 +1,652 @@ + + + + + + BambuTrack Control - v8 + + + +
+ +
+
+ Camera + + + + +
+
Camera Feed
+ +
+ + +
+
+ Control + + + +
+ +
+ +
+
+
+ L + 22 + /0 °C +
+
+
+ R + 21 + /0 °C +
+
+
+ 21 + /0 °C +
+
+
+ 21 + /0 °C +
+
+ + +
+
Air Condition
+
100%
+
Lamp
+
+ + +
+
+
+ Y + -Y + -X + X + + + + + +
+
+ +
+
+ + +
+
Bed
+
+ + +
+
+ +
+
+ + +
+
+ Extruder +
+ + +
+
+
+ + +
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+ AMS 1 +
+
+
+
+
+
+
+
+ AMS 2 +
+
+
+
+
+
+
+
+ AMS 3 +
+
+
+
+
+ HT 1 +
+
+
+
+
+ HT 2 +
+
+ + +
+
+
18 %
+
☼
+
+ +
+
+
+
A1↓
+
A2↓
+
A3↓
+
A4↓
+
+ +
+
+
+ PLA +
+
+
+
+
+ PETG +
+
+
+
+
+ PETG +
+
+
+
+
+ PLA +
+
+
+
+ +
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+ +
+
Ext
+
+
+
+ ? + ∠ +
+
+
+
+ +
+
+
+
+
+ +
+ + +
+ + +
+
+
+
+
+ + diff --git a/mockup/control-page-v9.html b/mockup/control-page-v9.html new file mode 100644 index 000000000..b2ffd8ff1 --- /dev/null +++ b/mockup/control-page-v9.html @@ -0,0 +1,924 @@ + + + + + + BambuTrack Control - v9 + + + +
+ +
+
+ Camera + + + + +
+
Camera Feed
+
+ +
+ + +
+
+ Control + + + +
+ +
+ +
+ +
+
+
+ L + 24 + /0 °C +
+
+
+ R + 23 + /0 °C +
+
+
+ 23 + /0 °C +
+
+
+ 23 + /0 °C +
+ + +
+
Air Condition
+
+
+
100%
+
Lamp
+
+
+ + +
+
+ + +
+ +
+
+
+
+ Y + -Y + -X + X + + + + + +
+
+
+ + + Bed + + +
+
+ +
+ +
+ + Extruder +
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0 +
+
+
+
+
+
+
+ 0 +
+
+ + +
+ +
+
+
17 %
+
☀
+
+
+
A1↓
+
A2↓
+
A3↓
+
A4↓
+
+
+
+
+ PLA +
+
+
+
+
+ PETG +
+
+
+
+
+ PETG +
+
+
+
+
+ PLA +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
14 %
+
☀
+
+
+
B1↓
+
B2↓
+
B3↓
+
B4↓
+
+
+
+
+ PLA +
+
+
+
+
+ PETG +
+
+
+
+
+ PLA +
+
+
+
+
+ Sup.PLA +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+ + diff --git a/mockup/icons/ams-ht.png b/mockup/icons/ams-ht.png new file mode 100644 index 0000000000000000000000000000000000000000..56370b7fc68db1b7ef32ee538d25f40d664032fa GIT binary patch literal 4314 zcmV<05GC)4P)z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUy32;bRa{vGqB>(^xB>_oNB=7(L00(qQO+^Rk3<3u@J2Ab6IsgC= zFiAu~RA>e5o7jU_Nt zfk%{ezsyY5Z>_!i^f!{ISfxj|X8N)(Ywh0Mea`vLH`+TsK0X^=_Qtq$bTkeQ4#&ZT z3uAA8zctTp@s{7{cCp+QEu*Eom_J{)vDBXG-^t_0Hl?LPkwFOEa~ z9vxjAw{PDWr>Cd(&yvY#P7-lD&(4;aJ;U2~Y6(NhnOxk*2m6{ti(D!U?F(Vrf}YO$nR zFpcyy{)2;qaq-g8INLkTL@#QhaY${l?z+{AEfLIM)mcNBBMX;+7OUVC!UCG^6M~w_ z^Yb5FJQ9XhluWS9p-$~N?G>rp<+ODy*>5s!0llpc#@@Q0Etsibgh5)m?!9>a3;Wus zg59~SZnUsUYr#goGc2(;WjQYCDAyRBEfZcjR(lv%-3#Mq8mDJt|11|Jcq*&(LYYNV zzarSCj7fx+?J5A+!P?6K!fBD)Y+|4HVf-Tb4<^_Qfe9q?S<~^nR8`Qd(t`&N$HNEr z$I0o5=gm3D^sysURS=Mref^$FZ#gg;YoJ=&icKE{lI|D6*w@jzcz8H2UOZI4E}AoW zSV18#%fJDZLSMfc9>hK*QP+lAZQG}UInll8>#x5S_^BlL?yFXSGkA@)U0jgCrAhgM zP(j#KvOOi>>)-DontpJ zS9}`K+^7q4MrE_uq6-+7;a6k{A{ry0eWH-ytlk)pA3gFafMM^-jwb@HS-Qos zRzP;lk*l%I%o5p#ZeijpB*Jh0N8+}#R~*|Uo1QUu_@jqk69wjP7kp!t0NG+bW4K8P z6?)ItQ59*_o>*=*%C%O;vEUmo3y>vgRt)XtS zK&bco+-%zFfhhLgAsBaYpOkwaihN`DSwin$Z5e{=abjokk{N{7orX@ZOq{E<`E$W* zj2J+W)L;{af>_~*ueAGn`{l4vx#w+UvnW=uY*F@L=+91TV=!d?YE6M2nMPQIX)jk- z4ZwtdPeI!Z(<-M-gr7>(X3@J~^XOO&0?DQ-H1Y2yv@ND<^Qr|Qh1&?L(tuu3)cg`h zudrJF5u`Ve;BD3|8ue|1B35o|7(7(=Oq(cW;m#7PoiL3>48pH`uEJ>vqRY0m9I9ok z54TC*CfFY82S+$~!t25rfRd+2f#R^M99z4S4cw99* zZIWqMRj85a6 z^@I8S@Bd(Y_q$idwQJYL#~*z(e({U<_2y1Goq?Ijsgg*0v?{DG2kMiNx;4@Bbj_$+-H)8{=J166^LEJ6?a| zb~?`Abs6P0xy2C=uDB?Ak^kSwqn>Y0OfqqY`&+Dgn56_YS$x`MV-*dq?M5)s@#? z_0GI?>z3X^#-_u_vlN#4)lc)rYOP^!ej>srg(t2q{rO2qC3LfxV_dR!0;?P)0+=kL zB?a#2#W7>K*4zF_OJ;?#%=wmkK9R@*BRB9DR`YiT@bz3=F>=|$Uzw(M{m>sr>MdLi zYMT&2L&J?tqN2?fc0R4cP1c+zXKnZvZwk`(j2mT?A1J?m8 zjcw4C-wIWY9Uttwz|X(=*<~YiFLtYkB;n~*DkUqfACJ6>7{=Yrx~dWP96f4^*izS? zSFevl8}>UXkHaXVknQltpv)5QK9_e&6Vi($c57`LRRLu_WVf%pvh1`Gp+FMoW^cb0 zP<`_^rp8&%SUQe&0uSG1T$>tcN)s|#CV|U*sNZzGHIS&ZgIlV=qavtNXEbtO<)+*aKB{OaSOjKEde7#HP*Xg=9HeU`H$$!8){h#F1~5#Z*RGJ0z)+~2$4Ea$8BlFMziJ2|P5 z9{=e1%^%o|*k-u-8c-`%83~$f%ET_NqNxCj3pf^H)x{!yo#x7DnI%#Nd|_nE)Q(M6 zjmAqazXZd$`PFgosO2|tG(5if7boi#{p|$u?NbT1Lh@um%vQ#x!?I4}1mw=bp7A_d za$IhLs|$wGI%?ok<}lnAdQ;Yz^AzhdJu4#Tg2TRm5E%D@+uGs-KR{1{n_oHxh@a9tmFbk00-gx8n*S%e?U%x&+{q1j2 zs5mV5KK=C5apT5y_4mg+@4Vx$9+`vR@p?6bXCCB|8NS!1lGpqOb>%6RErKNLxxOFG z@qt3WyaJ(1F#4Bp&c@M87so&T^e5xLuKoA8_VFjpnn;SKtSxtXb}~Nr_y5q>^B45z zcL!W!#)&3)_wHT&X}|-8LCM}oUqj;{%`Z=3u_zrH((G*8(;7|ynj!VlGUP{+$Hn4wv=BRgQt>L+S)C;9-Q%HVzTH` zM^O1*74CDJ$zFRxB>^P$yW!59mJ-KoD940h{o02WE5)U6&hX!-O9|X21*Bk_S^4A$%j`V?|nOowUXq^ zIZPt`G-H8QmL=5>dF3iQAB3{hlIwQHg{dK94r2TQoN?P^$t|ll^~H}*VwmmpEV(g6 zm`xc!f-AM38Mw7%{jt+PKe>o%1VHZ+?DUIu-x~P3gX?U^fiL==;rxCS@ltG7>Z#@4#-lQY`IC(#iGd12>uqU~KUWGm z92T9ccKNLozx}|ou41F$B|w&LXP5o^^MpNkB}X%)y&p8nCbQ z!)uc7yz=+@FBcE|-!4w{*O&1~0N7#b*`_160+ZZ5x8Y0NlCn!oY3FQP$@nwYOZpSm z!^5NeWhbVX%-}XJq)oMT^o{r5`hIjSmVK3g8Klyo!O^8l262cyDY1?|Oo9(X4 zGsSJ@*4t&KPClNs+On!)`yhX=??)TB;faoOhCFLRUn8%kdmbl{s%?)EDh&eACNuQt znz7q3|Nr?p{%`=>%U8r5M{m~|LB+K*Cf;K0jgQ${)}Y+4Z3@4`-vBgT(nYfDFe57J zWeh?Qoac{Ky#+kgC;Sc^#dc0XXuxb0Npk*{oFhw#ZF^uc`|eaUW$h7_b+M#=k^Fq_ zW%53v4|Gv++Qb6y49DDaRCD(FcXV?m2~)O(Ap@87m1ArqK8G8^&37`MvrEpu89#sX z&;HaYq;V-+G7R!odYCx1T2xA@S7e^%=s~;w5YZByP^xk39%hqor@- zjDywaWzz(1smNh2Ip_I#CHh$Zt@7c?qw(l|-bHbA_@l4?12ph^xH14M)&Kwi07*qo IM6N<$g14`p^8f$< literal 0 HcmV?d00001 diff --git a/mockup/icons/ams-ht.xcf b/mockup/icons/ams-ht.xcf new file mode 100644 index 0000000000000000000000000000000000000000..33ffde23047b1a4312c6830cf4312ef599835ff3 GIT binary patch literal 52459 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 Ol)g4hzh>;Ux&H+L2OBZ~ literal 0 HcmV?d00001 diff --git a/mockup/icons/ams-settings.svg b/mockup/icons/ams-settings.svg new file mode 100644 index 000000000..7578d938e --- /dev/null +++ b/mockup/icons/ams-settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/mockup/icons/ams.png b/mockup/icons/ams.png new file mode 100644 index 0000000000000000000000000000000000000000..217f7645d81972bdea5ad585f4e5b57623b68d47 GIT binary patch literal 6447 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 literal 0 HcmV?d00001 diff --git a/mockup/icons/ams.xcf b/mockup/icons/ams.xcf new file mode 100644 index 0000000000000000000000000000000000000000..d0e0a6b115dfcc242d9a8c790618d45637b0a8ee GIT binary patch literal 52537 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%0Ao23^L0gu>hV&N9>Gd zlGWaRtq?)q0ydxtHVRAz-ngUh+mHGjWh=EGI1(8A3@&=ql$(_5h|Sfey_Cg-OG`eO z_rxrhmdaS23*~sWHzfrAGB9CvZ z0CAGZ8A)aEP7j7Emq_tuXN!$e`^h7Xowte=%kCz!E89Yx;1@XELsq#7)cA&gn}&Tb znvFDSq8B|`lL#2P;;QrCJjq^-0+7L~A1#`!O6jD+x?wuJS=^0)=W+oQ>n zJb7sUm#jQC6&l7uAj^dvjfVezYbVy`V6JmzxcZ#|Vav{dCTSjxW4DQk!r5^YKo38n zAcwZ|9+I@!F5D@i(G|dAt@(wIbgrQ`9WM-QDOSKSzd)Vf%i$r|A1De@PV0L4$%hrs zNL@d(;#T)$4GZmXkI|29WPTbQ=pm7fe_3gc?TXI-(!rEAF`y$lP;N-2Pql!XQMuX< zPMPOdcH-Es{4W67!z5Du+K?`=5T44;N3}yQMC+m648HAvDOx}fJQaojA|NccWl`8k z;%k!FcAjwyPE%T( zE11h|VnGOIQn?as$mjE8|YNQ;JI6&%Xwu~y~vJzce+AD7Wer9H2(t@E9Uw>qw$OTcn z){i?RFo2NB05VzfGYH@x7y216cE-!^;pOKY@-w8`$>18zj1^fuB6i(6kH3fvE;w6b8oXiy4Ia@MG0frCKb8j5QT+%+LF-CoEATtw_*~m}FYiJ*bi$(^k~tAr1M;NhwTHXy zrG!H-KHPE7ERFUajk*BIO=a<;bdk~a)B3FYwx8B#L7%Zs>jSCmfLt4MbvEqf5J@C? z+t14={3z2?@3Q0iSaq6}r9J$>zCi_cf}oD1(&Lwa5j!jML;YL$^zs5|5pIxQZ%;?l zmd9_#QFTa$kdAiDz7+lHDX)i)Pki;T{IW1PH0+hBNCMP4vqwsVJ0Zdr|>OR*UHp997 zFgZsLGmnB%E@AqY50gW18Kw>w8nad~yKXSaoeh4n847NGzp^OZ@#RFEk8PVf0GqoKeMuW-YvM93D#mF`jv jZLPg{!Vyj;Rc$_!ySlPIABjYk@t(_D|BmFnn=bwrlVe-T literal 0 HcmV?d00001 diff --git a/mockup/icons/chamber.svg b/mockup/icons/chamber.svg new file mode 100644 index 000000000..35c805812 --- /dev/null +++ b/mockup/icons/chamber.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/mockup/icons/dual-extruder.png b/mockup/icons/dual-extruder.png new file mode 100644 index 0000000000000000000000000000000000000000..37055084bd6254d7b2f9d8b31e31963839acbd5a GIT binary patch literal 19576 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=Nc|}c3UzS|{;+O$?Pj?@ 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 X@CH6l^eIHwo9mE&*qeXATlaqfQ1pf) literal 0 HcmV?d00001 diff --git a/mockup/icons/eye.svg b/mockup/icons/eye.svg new file mode 100644 index 000000000..ab6299190 --- /dev/null +++ b/mockup/icons/eye.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mockup/icons/heatbed.svg b/mockup/icons/heatbed.svg new file mode 100644 index 000000000..cb8c96ca6 --- /dev/null +++ b/mockup/icons/heatbed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/mockup/icons/home.svg b/mockup/icons/home.svg new file mode 100644 index 000000000..7724a92a1 --- /dev/null +++ b/mockup/icons/home.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mockup/icons/hotend.svg b/mockup/icons/hotend.svg new file mode 100644 index 000000000..4898efb77 --- /dev/null +++ b/mockup/icons/hotend.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/mockup/icons/lamp.svg b/mockup/icons/lamp.svg new file mode 100644 index 000000000..e0b714d49 --- /dev/null +++ b/mockup/icons/lamp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/mockup/icons/micro-sd.svg b/mockup/icons/micro-sd.svg new file mode 100644 index 000000000..ce6e441ec --- /dev/null +++ b/mockup/icons/micro-sd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/mockup/icons/reload.svg b/mockup/icons/reload.svg new file mode 100644 index 000000000..5d3fae2f4 --- /dev/null +++ b/mockup/icons/reload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/mockup/icons/settings.svg b/mockup/icons/settings.svg new file mode 100644 index 000000000..a4c852ffe --- /dev/null +++ b/mockup/icons/settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/mockup/icons/single-extruder1.png b/mockup/icons/single-extruder1.png new file mode 100644 index 0000000000000000000000000000000000000000..c31be02f5fe5cf054802d1682f7008b905309a31 GIT binary patch literal 5124 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

`qNq;~8us%JG@bs!8ca6H$lXn9ku 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 SWYlC~uNiFSJbquK`@aG3h>0Bl literal 0 HcmV?d00001 diff --git a/mockup/icons/snowflake.svg b/mockup/icons/snowflake.svg new file mode 100644 index 000000000..91eb0e6d7 --- /dev/null +++ b/mockup/icons/snowflake.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mockup/icons/speed.svg b/mockup/icons/speed.svg new file mode 100644 index 000000000..5af93bce8 --- /dev/null +++ b/mockup/icons/speed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/mockup/icons/ventilation.svg b/mockup/icons/ventilation.svg new file mode 100644 index 000000000..689089968 --- /dev/null +++ b/mockup/icons/ventilation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/mockup/icons/video-camera.svg b/mockup/icons/video-camera.svg new file mode 100644 index 000000000..11b170197 --- /dev/null +++ b/mockup/icons/video-camera.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/mockup/icons/water.svg b/mockup/icons/water.svg new file mode 100644 index 000000000..4beef68b2 --- /dev/null +++ b/mockup/icons/water.svg @@ -0,0 +1,2 @@ + + diff --git a/mockup/icons/webcam.svg b/mockup/icons/webcam.svg new file mode 100644 index 000000000..78e3b7717 --- /dev/null +++ b/mockup/icons/webcam.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/assets/index-CLsUm3wk.js b/static/assets/index-BarB10XI.js similarity index 79% rename from static/assets/index-CLsUm3wk.js rename to static/assets/index-BarB10XI.js index 0185c3728..9cd1bdb7e 100644 --- a/static/assets/index-CLsUm3wk.js +++ b/static/assets/index-BarB10XI.js @@ -1,18 +1,18 @@ -function Bte(t,e){for(var n=0;ni[r]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const a of r)if(a.type==="childList")for(const s of a.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&i(s)}).observe(document,{childList:!0,subtree:!0});function n(r){const a={};return r.integrity&&(a.integrity=r.integrity),r.referrerPolicy&&(a.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?a.credentials="include":r.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function i(r){if(r.ep)return;r.ep=!0;const a=n(r);fetch(r.href,a)}})();var Ay=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ys(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var xA={exports:{}},Eg={};var jj;function Hte(){if(jj)return Eg;jj=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.fragment");function n(i,r,a){var s=null;if(a!==void 0&&(s=""+a),r.key!==void 0&&(s=""+r.key),"key"in r){a={};for(var o in r)o!=="key"&&(a[o]=r[o])}else a=r;return r=a.ref,{$$typeof:t,type:i,key:s,ref:r!==void 0?r:null,props:a}}return Eg.Fragment=e,Eg.jsx=n,Eg.jsxs=n,Eg}var Fj;function Vte(){return Fj||(Fj=1,xA.exports=Hte()),xA.exports}var m=Vte(),vA={exports:{}},Kt={};var zj;function $te(){if(zj)return Kt;zj=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),r=Symbol.for("react.profiler"),a=Symbol.for("react.consumer"),s=Symbol.for("react.context"),o=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),c=Symbol.for("react.memo"),u=Symbol.for("react.lazy"),f=Symbol.for("react.activity"),p=Symbol.iterator;function g(B){return B===null||typeof B!="object"?null:(B=p&&B[p]||B["@@iterator"],typeof B=="function"?B:null)}var y={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_=Object.assign,v={};function x(B,X,ae){this.props=B,this.context=X,this.refs=v,this.updater=ae||y}x.prototype.isReactComponent={},x.prototype.setState=function(B,X){if(typeof B!="object"&&typeof B!="function"&&B!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,B,X,"setState")},x.prototype.forceUpdate=function(B){this.updater.enqueueForceUpdate(this,B,"forceUpdate")};function M(){}M.prototype=x.prototype;function w(B,X,ae){this.props=B,this.context=X,this.refs=v,this.updater=ae||y}var E=w.prototype=new M;E.constructor=w,_(E,x.prototype),E.isPureReactComponent=!0;var T=Array.isArray;function P(){}var N={H:null,A:null,T:null,S:null},U=Object.prototype.hasOwnProperty;function C(B,X,ae){var ce=ae.ref;return{$$typeof:t,type:B,key:X,ref:ce!==void 0?ce:null,props:ae}}function D(B,X){return C(B.type,X,B.props)}function F(B){return typeof B=="object"&&B!==null&&B.$$typeof===t}function I(B){var X={"=":"=0",":":"=2"};return"$"+B.replace(/[=:]/g,function(ae){return X[ae]})}var q=/\/+/g;function L(B,X){return typeof B=="object"&&B!==null&&B.key!=null?I(""+B.key):X.toString(36)}function H(B){switch(B.status){case"fulfilled":return B.value;case"rejected":throw B.reason;default:switch(typeof B.status=="string"?B.then(P,P):(B.status="pending",B.then(function(X){B.status==="pending"&&(B.status="fulfilled",B.value=X)},function(X){B.status==="pending"&&(B.status="rejected",B.reason=X)})),B.status){case"fulfilled":return B.value;case"rejected":throw B.reason}}throw B}function V(B,X,ae,ce,xe){var ie=typeof B;(ie==="undefined"||ie==="boolean")&&(B=null);var ve=!1;if(B===null)ve=!0;else switch(ie){case"bigint":case"string":case"number":ve=!0;break;case"object":switch(B.$$typeof){case t:case e:ve=!0;break;case u:return ve=B._init,V(ve(B._payload),X,ae,ce,xe)}}if(ve)return xe=xe(B),ve=ce===""?"."+L(B,0):ce,T(xe)?(ae="",ve!=null&&(ae=ve.replace(q,"$&/")+"/"),V(xe,X,ae,"",function(we){return we})):xe!=null&&(F(xe)&&(xe=D(xe,ae+(xe.key==null||B&&B.key===xe.key?"":(""+xe.key).replace(q,"$&/")+"/")+ve)),X.push(xe)),1;ve=0;var Pe=ce===""?".":ce+":";if(T(B))for(var pe=0;pe>>1,se=V[Z];if(0>>1;Zr(ae,K))cer(xe,ae)?(V[Z]=xe,V[ce]=K,Z=ce):(V[Z]=ae,V[X]=K,Z=X);else if(cer(xe,K))V[Z]=xe,V[ce]=K,Z=ce;else break e}}return G}function r(V,G){var K=V.sortIndex-G.sortIndex;return K!==0?K:V.id-G.id}if(t.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var a=performance;t.unstable_now=function(){return a.now()}}else{var s=Date,o=s.now();t.unstable_now=function(){return s.now()-o}}var l=[],c=[],u=1,f=null,p=3,g=!1,y=!1,_=!1,v=!1,x=typeof setTimeout=="function"?setTimeout:null,M=typeof clearTimeout=="function"?clearTimeout:null,w=typeof setImmediate<"u"?setImmediate:null;function E(V){for(var G=n(c);G!==null;){if(G.callback===null)i(c);else if(G.startTime<=V)i(c),G.sortIndex=G.expirationTime,e(l,G);else break;G=n(c)}}function T(V){if(_=!1,E(V),!y)if(n(l)!==null)y=!0,P||(P=!0,I());else{var G=n(c);G!==null&&H(T,G.startTime-V)}}var P=!1,N=-1,U=5,C=-1;function D(){return v?!0:!(t.unstable_now()-CV&&D());){var Z=f.callback;if(typeof Z=="function"){f.callback=null,p=f.priorityLevel;var se=Z(f.expirationTime<=V);if(V=t.unstable_now(),typeof se=="function"){f.callback=se,E(V),G=!0;break t}f===n(l)&&i(l),E(V)}else i(l);f=n(l)}if(f!==null)G=!0;else{var B=n(c);B!==null&&H(T,B.startTime-V),G=!1}}break e}finally{f=null,p=K,g=!1}G=void 0}}finally{G?I():P=!1}}}var I;if(typeof w=="function")I=function(){w(F)};else if(typeof MessageChannel<"u"){var q=new MessageChannel,L=q.port2;q.port1.onmessage=F,I=function(){L.postMessage(null)}}else I=function(){x(F,0)};function H(V,G){N=x(function(){V(t.unstable_now())},G)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(V){V.callback=null},t.unstable_forceFrameRate=function(V){0>V||125Z?(V.sortIndex=K,e(c,V),n(l)===null&&V===n(c)&&(_?(M(N),N=-1):_=!0,H(T,K-Z))):(V.sortIndex=se,e(l,V),y||g||(y=!0,P||(P=!0,I()))),V},t.unstable_shouldYield=D,t.unstable_wrapCallback=function(V){var G=p;return function(){var K=p;p=G;try{return V.apply(this,arguments)}finally{p=K}}}})(_A)),_A}var Vj;function qte(){return Vj||(Vj=1,bA.exports=Wte()),bA.exports}var SA={exports:{}},qr={};var $j;function Xte(){if($j)return qr;$j=1;var t=hm();function e(l){var c="https://react.dev/errors/"+l;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(e){console.error(e)}}return t(),SA.exports=Xte(),SA.exports}var Wj;function Kte(){if(Wj)return Ag;Wj=1;var t=qte(),e=hm(),n=nG();function i(d){var h="https://react.dev/errors/"+d;if(1se||(d.current=Z[se],Z[se]=null,se--)}function ae(d,h){se++,Z[se]=d.current,d.current=h}var ce=B(null),xe=B(null),ie=B(null),ve=B(null);function Pe(d,h){switch(ae(ie,h),ae(xe,d),ae(ce,null),h.nodeType){case 9:case 11:d=(d=h.documentElement)&&(d=d.namespaceURI)?oj(d):0;break;default:if(d=h.tagName,h=h.namespaceURI)h=oj(h),d=lj(h,d);else switch(d){case"svg":d=1;break;case"math":d=2;break;default:d=0}}X(ce),ae(ce,d)}function pe(){X(ce),X(xe),X(ie)}function we(d){d.memoizedState!==null&&ae(ve,d);var h=ce.current,b=lj(h,d.type);h!==b&&(ae(xe,d),ae(ce,b))}function ze(d){xe.current===d&&(X(ce),X(xe)),ve.current===d&&(X(ve),_g._currentValue=K)}var ue,ht;function z(d){if(ue===void 0)try{throw Error()}catch(b){var h=b.stack.trim().match(/\n( *(at )?)/);ue=h&&h[1]||"",ht=-1i[r]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const a of r)if(a.type==="childList")for(const s of a.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&i(s)}).observe(document,{childList:!0,subtree:!0});function n(r){const a={};return r.integrity&&(a.integrity=r.integrity),r.referrerPolicy&&(a.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?a.credentials="include":r.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function i(r){if(r.ep)return;r.ep=!0;const a=n(r);fetch(r.href,a)}})();var Ay=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ys(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var xA={exports:{}},Ag={};var jj;function Hte(){if(jj)return Ag;jj=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.fragment");function n(i,r,a){var s=null;if(a!==void 0&&(s=""+a),r.key!==void 0&&(s=""+r.key),"key"in r){a={};for(var o in r)o!=="key"&&(a[o]=r[o])}else a=r;return r=a.ref,{$$typeof:t,type:i,key:s,ref:r!==void 0?r:null,props:a}}return Ag.Fragment=e,Ag.jsx=n,Ag.jsxs=n,Ag}var Fj;function Vte(){return Fj||(Fj=1,xA.exports=Hte()),xA.exports}var m=Vte(),vA={exports:{}},Kt={};var zj;function $te(){if(zj)return Kt;zj=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),r=Symbol.for("react.profiler"),a=Symbol.for("react.consumer"),s=Symbol.for("react.context"),o=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),c=Symbol.for("react.memo"),u=Symbol.for("react.lazy"),f=Symbol.for("react.activity"),p=Symbol.iterator;function g(B){return B===null||typeof B!="object"?null:(B=p&&B[p]||B["@@iterator"],typeof B=="function"?B:null)}var y={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_=Object.assign,v={};function x(B,X,ae){this.props=B,this.context=X,this.refs=v,this.updater=ae||y}x.prototype.isReactComponent={},x.prototype.setState=function(B,X){if(typeof B!="object"&&typeof B!="function"&&B!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,B,X,"setState")},x.prototype.forceUpdate=function(B){this.updater.enqueueForceUpdate(this,B,"forceUpdate")};function M(){}M.prototype=x.prototype;function w(B,X,ae){this.props=B,this.context=X,this.refs=v,this.updater=ae||y}var E=w.prototype=new M;E.constructor=w,_(E,x.prototype),E.isPureReactComponent=!0;var T=Array.isArray;function P(){}var N={H:null,A:null,T:null,S:null},U=Object.prototype.hasOwnProperty;function C(B,X,ae){var ce=ae.ref;return{$$typeof:t,type:B,key:X,ref:ce!==void 0?ce:null,props:ae}}function k(B,X){return C(B.type,X,B.props)}function F(B){return typeof B=="object"&&B!==null&&B.$$typeof===t}function I(B){var X={"=":"=0",":":"=2"};return"$"+B.replace(/[=:]/g,function(ae){return X[ae]})}var q=/\/+/g;function L(B,X){return typeof B=="object"&&B!==null&&B.key!=null?I(""+B.key):X.toString(36)}function H(B){switch(B.status){case"fulfilled":return B.value;case"rejected":throw B.reason;default:switch(typeof B.status=="string"?B.then(P,P):(B.status="pending",B.then(function(X){B.status==="pending"&&(B.status="fulfilled",B.value=X)},function(X){B.status==="pending"&&(B.status="rejected",B.reason=X)})),B.status){case"fulfilled":return B.value;case"rejected":throw B.reason}}throw B}function V(B,X,ae,ce,xe){var ie=typeof B;(ie==="undefined"||ie==="boolean")&&(B=null);var ve=!1;if(B===null)ve=!0;else switch(ie){case"bigint":case"string":case"number":ve=!0;break;case"object":switch(B.$$typeof){case t:case e:ve=!0;break;case u:return ve=B._init,V(ve(B._payload),X,ae,ce,xe)}}if(ve)return xe=xe(B),ve=ce===""?"."+L(B,0):ce,T(xe)?(ae="",ve!=null&&(ae=ve.replace(q,"$&/")+"/"),V(xe,X,ae,"",function(we){return we})):xe!=null&&(F(xe)&&(xe=k(xe,ae+(xe.key==null||B&&B.key===xe.key?"":(""+xe.key).replace(q,"$&/")+"/")+ve)),X.push(xe)),1;ve=0;var Pe=ce===""?".":ce+":";if(T(B))for(var pe=0;pe>>1,se=V[Z];if(0>>1;Zr(ae,K))cer(xe,ae)?(V[Z]=xe,V[ce]=K,Z=ce):(V[Z]=ae,V[X]=K,Z=X);else if(cer(xe,K))V[Z]=xe,V[ce]=K,Z=ce;else break e}}return G}function r(V,G){var K=V.sortIndex-G.sortIndex;return K!==0?K:V.id-G.id}if(t.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var a=performance;t.unstable_now=function(){return a.now()}}else{var s=Date,o=s.now();t.unstable_now=function(){return s.now()-o}}var l=[],c=[],u=1,f=null,p=3,g=!1,y=!1,_=!1,v=!1,x=typeof setTimeout=="function"?setTimeout:null,M=typeof clearTimeout=="function"?clearTimeout:null,w=typeof setImmediate<"u"?setImmediate:null;function E(V){for(var G=n(c);G!==null;){if(G.callback===null)i(c);else if(G.startTime<=V)i(c),G.sortIndex=G.expirationTime,e(l,G);else break;G=n(c)}}function T(V){if(_=!1,E(V),!y)if(n(l)!==null)y=!0,P||(P=!0,I());else{var G=n(c);G!==null&&H(T,G.startTime-V)}}var P=!1,N=-1,U=5,C=-1;function k(){return v?!0:!(t.unstable_now()-CV&&k());){var Z=f.callback;if(typeof Z=="function"){f.callback=null,p=f.priorityLevel;var se=Z(f.expirationTime<=V);if(V=t.unstable_now(),typeof se=="function"){f.callback=se,E(V),G=!0;break t}f===n(l)&&i(l),E(V)}else i(l);f=n(l)}if(f!==null)G=!0;else{var B=n(c);B!==null&&H(T,B.startTime-V),G=!1}}break e}finally{f=null,p=K,g=!1}G=void 0}}finally{G?I():P=!1}}}var I;if(typeof w=="function")I=function(){w(F)};else if(typeof MessageChannel<"u"){var q=new MessageChannel,L=q.port2;q.port1.onmessage=F,I=function(){L.postMessage(null)}}else I=function(){x(F,0)};function H(V,G){N=x(function(){V(t.unstable_now())},G)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(V){V.callback=null},t.unstable_forceFrameRate=function(V){0>V||125Z?(V.sortIndex=K,e(c,V),n(l)===null&&V===n(c)&&(_?(M(N),N=-1):_=!0,H(T,K-Z))):(V.sortIndex=se,e(l,V),y||g||(y=!0,P||(P=!0,I()))),V},t.unstable_shouldYield=k,t.unstable_wrapCallback=function(V){var G=p;return function(){var K=p;p=G;try{return V.apply(this,arguments)}finally{p=K}}}})(_A)),_A}var Vj;function qte(){return Vj||(Vj=1,bA.exports=Wte()),bA.exports}var SA={exports:{}},qr={};var $j;function Xte(){if($j)return qr;$j=1;var t=pm();function e(l){var c="https://react.dev/errors/"+l;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(e){console.error(e)}}return t(),SA.exports=Xte(),SA.exports}var Wj;function Kte(){if(Wj)return Tg;Wj=1;var t=qte(),e=pm(),n=nG();function i(d){var h="https://react.dev/errors/"+d;if(1se||(d.current=Z[se],Z[se]=null,se--)}function ae(d,h){se++,Z[se]=d.current,d.current=h}var ce=B(null),xe=B(null),ie=B(null),ve=B(null);function Pe(d,h){switch(ae(ie,h),ae(xe,d),ae(ce,null),h.nodeType){case 9:case 11:d=(d=h.documentElement)&&(d=d.namespaceURI)?oj(d):0;break;default:if(d=h.tagName,h=h.namespaceURI)h=oj(h),d=lj(h,d);else switch(d){case"svg":d=1;break;case"math":d=2;break;default:d=0}}X(ce),ae(ce,d)}function pe(){X(ce),X(xe),X(ie)}function we(d){d.memoizedState!==null&&ae(ve,d);var h=ce.current,b=lj(h,d.type);h!==b&&(ae(xe,d),ae(ce,b))}function ze(d){xe.current===d&&(X(ce),X(xe)),ve.current===d&&(X(ve),Sg._currentValue=K)}var ue,ht;function z(d){if(ue===void 0)try{throw Error()}catch(b){var h=b.stack.trim().match(/\n( *(at )?)/);ue=h&&h[1]||"",ht=-1)":-1R||_e[S]!==Fe[R]){var Je=` `+_e[S].replace(" at new "," at ");return d.displayName&&Je.includes("")&&(Je=Je.replace("",d.displayName)),Je}while(1<=S&&0<=R);break}}}finally{W=!1,Error.prepareStackTrace=b}return(b=d?d.displayName||d.name:"")?z(b):""}function J(d,h){switch(d.tag){case 26:case 27:case 5:return z(d.type);case 16:return z("Lazy");case 13:return d.child!==h&&h!==null?z("Suspense Fallback"):z("Suspense");case 19:return z("SuspenseList");case 0:case 15:return re(d.type,!1);case 11:return re(d.type.render,!1);case 1:return re(d.type,!0);case 31:return z("Activity");default:return""}}function ee(d){try{var h="",b=null;do h+=J(d,b),b=d,d=d.return;while(d);return h}catch(S){return` Error generating stack: `+S.message+` -`+S.stack}}var oe=Object.prototype.hasOwnProperty,De=t.unstable_scheduleCallback,Ne=t.unstable_cancelCallback,te=t.unstable_shouldYield,j=t.unstable_requestPaint,O=t.unstable_now,Y=t.unstable_getCurrentPriorityLevel,me=t.unstable_ImmediatePriority,ye=t.unstable_UserBlockingPriority,he=t.unstable_NormalPriority,Ze=t.unstable_LowPriority,Le=t.unstable_IdlePriority,Xe=t.log,at=t.unstable_setDisableYieldValue,Ie=null,Re=null;function pt(d){if(typeof Xe=="function"&&at(d),Re&&typeof Re.setStrictMode=="function")try{Re.setStrictMode(Ie,d)}catch{}}var nt=Math.clz32?Math.clz32:de,tt=Math.log,ut=Math.LN2;function de(d){return d>>>=0,d===0?32:31-(tt(d)/ut|0)|0}var it=256,fe=262144,Oe=4194304;function Me(d){var h=d&42;if(h!==0)return h;switch(d&-d){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return d&261888;case 262144:case 524288:case 1048576:case 2097152:return d&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return d&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return d}}function ge(d,h,b){var S=d.pendingLanes;if(S===0)return 0;var R=0,k=d.suspendedLanes,$=d.pingedLanes;d=d.warmLanes;var ne=S&134217727;return ne!==0?(S=ne&~k,S!==0?R=Me(S):($&=ne,$!==0?R=Me($):b||(b=ne&~d,b!==0&&(R=Me(b))))):(ne=S&~k,ne!==0?R=Me(ne):$!==0?R=Me($):b||(b=S&~d,b!==0&&(R=Me(b)))),R===0?0:h!==0&&h!==R&&(h&k)===0&&(k=R&-R,b=h&-h,k>=b||k===32&&(b&4194048)!==0)?h:R}function Be(d,h){return(d.pendingLanes&~(d.suspendedLanes&~d.pingedLanes)&h)===0}function ct(d,h){switch(d){case 1:case 2:case 4:case 8:case 64:return h+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return h+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function bt(){var d=Oe;return Oe<<=1,(Oe&62914560)===0&&(Oe=4194304),d}function Rt(d){for(var h=[],b=0;31>b;b++)h.push(d);return h}function on(d,h){d.pendingLanes|=h,h!==268435456&&(d.suspendedLanes=0,d.pingedLanes=0,d.warmLanes=0)}function kt(d,h,b,S,R,k){var $=d.pendingLanes;d.pendingLanes=b,d.suspendedLanes=0,d.pingedLanes=0,d.warmLanes=0,d.expiredLanes&=b,d.entangledLanes&=b,d.errorRecoveryDisabledLanes&=b,d.shellSuspendCounter=0;var ne=d.entanglements,_e=d.expirationTimes,Fe=d.hiddenUpdates;for(b=$&~b;0"u")return null;try{return d.activeElement||d.body}catch{return d.body}}var Ti=/[\n"\\]/g;function Cn(d){return d.replace(Ti,function(h){return"\\"+h.charCodeAt(0).toString(16)+" "})}function Js(d,h,b,S,R,k,$,ne){d.name="",$!=null&&typeof $!="function"&&typeof $!="symbol"&&typeof $!="boolean"?d.type=$:d.removeAttribute("type"),h!=null?$==="number"?(h===0&&d.value===""||d.value!=h)&&(d.value=""+cn(h)):d.value!==""+cn(h)&&(d.value=""+cn(h)):$!=="submit"&&$!=="reset"||d.removeAttribute("value"),h!=null?mr(d,$,cn(h)):b!=null?mr(d,$,cn(b)):S!=null&&d.removeAttribute("value"),R==null&&k!=null&&(d.defaultChecked=!!k),R!=null&&(d.checked=R&&typeof R!="function"&&typeof R!="symbol"),ne!=null&&typeof ne!="function"&&typeof ne!="symbol"&&typeof ne!="boolean"?d.name=""+cn(ne):d.removeAttribute("name")}function Pn(d,h,b,S,R,k,$,ne){if(k!=null&&typeof k!="function"&&typeof k!="symbol"&&typeof k!="boolean"&&(d.type=k),h!=null||b!=null){if(!(k!=="submit"&&k!=="reset"||h!=null)){Xt(d);return}b=b!=null?""+cn(b):"",h=h!=null?""+cn(h):b,ne||h===d.value||(d.value=h),d.defaultValue=h}S=S??R,S=typeof S!="function"&&typeof S!="symbol"&&!!S,d.checked=ne?d.checked:!!S,d.defaultChecked=!!S,$!=null&&typeof $!="function"&&typeof $!="symbol"&&typeof $!="boolean"&&(d.name=$),Xt(d)}function mr(d,h,b){h==="number"&&yi(d.ownerDocument)===d||d.defaultValue===""+b||(d.defaultValue=""+b)}function Qi(d,h,b,S){if(d=d.options,h){h={};for(var R=0;R"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),xM=!1;if(cl)try{var Fm={};Object.defineProperty(Fm,"passive",{get:function(){xM=!0}}),window.addEventListener("test",Fm,Fm),window.removeEventListener("test",Fm,Fm)}catch{xM=!1}var Dc=null,vM=null,vv=null;function lL(){if(vv)return vv;var d,h=vM,b=h.length,S,R="value"in Dc?Dc.value:Dc.textContent,k=R.length;for(d=0;d=Hm),pL=" ",mL=!1;function gL(d,h){switch(d){case"keyup":return cee.indexOf(h.keyCode)!==-1;case"keydown":return h.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function xL(d){return d=d.detail,typeof d=="object"&&"data"in d?d.data:null}var Kf=!1;function dee(d,h){switch(d){case"compositionend":return xL(h);case"keypress":return h.which!==32?null:(mL=!0,pL);case"textInput":return d=h.data,d===pL&&mL?null:d;default:return null}}function fee(d,h){if(Kf)return d==="compositionend"||!wM&&gL(d,h)?(d=lL(),vv=vM=Dc=null,Kf=!1,d):null;switch(d){case"paste":return null;case"keypress":if(!(h.ctrlKey||h.altKey||h.metaKey)||h.ctrlKey&&h.altKey){if(h.char&&1=h)return{node:b,offset:h-d};d=S}e:{for(;b;){if(b.nextSibling){b=b.nextSibling;break e}b=b.parentNode}b=void 0}b=EL(b)}}function TL(d,h){return d&&h?d===h?!0:d&&d.nodeType===3?!1:h&&h.nodeType===3?TL(d,h.parentNode):"contains"in d?d.contains(h):d.compareDocumentPosition?!!(d.compareDocumentPosition(h)&16):!1:!1}function CL(d){d=d!=null&&d.ownerDocument!=null&&d.ownerDocument.defaultView!=null?d.ownerDocument.defaultView:window;for(var h=yi(d.document);h instanceof d.HTMLIFrameElement;){try{var b=typeof h.contentWindow.location.href=="string"}catch{b=!1}if(b)d=h.contentWindow;else break;h=yi(d.document)}return h}function AM(d){var h=d&&d.nodeName&&d.nodeName.toLowerCase();return h&&(h==="input"&&(d.type==="text"||d.type==="search"||d.type==="tel"||d.type==="url"||d.type==="password")||h==="textarea"||d.contentEditable==="true")}var bee=cl&&"documentMode"in document&&11>=document.documentMode,Yf=null,TM=null,Wm=null,CM=!1;function NL(d,h,b){var S=b.window===b?b.document:b.nodeType===9?b:b.ownerDocument;CM||Yf==null||Yf!==yi(S)||(S=Yf,"selectionStart"in S&&AM(S)?S={start:S.selectionStart,end:S.selectionEnd}:(S=(S.ownerDocument&&S.ownerDocument.defaultView||window).getSelection(),S={anchorNode:S.anchorNode,anchorOffset:S.anchorOffset,focusNode:S.focusNode,focusOffset:S.focusOffset}),Wm&&Gm(Wm,S)||(Wm=S,S=dy(TM,"onSelect"),0>=$,R-=$,Co=1<<32-nt(h)+R|b<Qt?(xn=Dt,Dt=null):xn=Dt.sibling;var wn=Ve(ke,Dt,je[Qt],rt);if(wn===null){Dt===null&&(Dt=xn);break}d&&Dt&&wn.alternate===null&&h(ke,Dt),Ee=k(wn,Ee,Qt),Sn===null?It=wn:Sn.sibling=wn,Sn=wn,Dt=xn}if(Qt===je.length)return b(ke,Dt),yn&&dl(ke,Qt),It;if(Dt===null){for(;QtQt?(xn=Dt,Dt=null):xn=Dt.sibling;var eu=Ve(ke,Dt,wn.value,rt);if(eu===null){Dt===null&&(Dt=xn);break}d&&Dt&&eu.alternate===null&&h(ke,Dt),Ee=k(eu,Ee,Qt),Sn===null?It=eu:Sn.sibling=eu,Sn=eu,Dt=xn}if(wn.done)return b(ke,Dt),yn&&dl(ke,Qt),It;if(Dt===null){for(;!wn.done;Qt++,wn=je.next())wn=st(ke,wn.value,rt),wn!==null&&(Ee=k(wn,Ee,Qt),Sn===null?It=wn:Sn.sibling=wn,Sn=wn);return yn&&dl(ke,Qt),It}for(Dt=S(Dt);!wn.done;Qt++,wn=je.next())wn=Ye(Dt,ke,Qt,wn.value,rt),wn!==null&&(d&&wn.alternate!==null&&Dt.delete(wn.key===null?Qt:wn.key),Ee=k(wn,Ee,Qt),Sn===null?It=wn:Sn.sibling=wn,Sn=wn);return d&&Dt.forEach(function(zte){return h(ke,zte)}),yn&&dl(ke,Qt),It}function jn(ke,Ee,je,rt){if(typeof je=="object"&&je!==null&&je.type===_&&je.key===null&&(je=je.props.children),typeof je=="object"&&je!==null){switch(je.$$typeof){case g:e:{for(var It=je.key;Ee!==null;){if(Ee.key===It){if(It=je.type,It===_){if(Ee.tag===7){b(ke,Ee.sibling),rt=R(Ee,je.props.children),rt.return=ke,ke=rt;break e}}else if(Ee.elementType===It||typeof It=="object"&&It!==null&&It.$$typeof===U&&Sd(It)===Ee.type){b(ke,Ee.sibling),rt=R(Ee,je.props),Qm(rt,je),rt.return=ke,ke=rt;break e}b(ke,Ee);break}else h(ke,Ee);Ee=Ee.sibling}je.type===_?(rt=xd(je.props.children,ke.mode,rt,je.key),rt.return=ke,ke=rt):(rt=Cv(je.type,je.key,je.props,null,ke.mode,rt),Qm(rt,je),rt.return=ke,ke=rt)}return $(ke);case y:e:{for(It=je.key;Ee!==null;){if(Ee.key===It)if(Ee.tag===4&&Ee.stateNode.containerInfo===je.containerInfo&&Ee.stateNode.implementation===je.implementation){b(ke,Ee.sibling),rt=R(Ee,je.children||[]),rt.return=ke,ke=rt;break e}else{b(ke,Ee);break}else h(ke,Ee);Ee=Ee.sibling}rt=LM(je,ke.mode,rt),rt.return=ke,ke=rt}return $(ke);case U:return je=Sd(je),jn(ke,Ee,je,rt)}if(H(je))return Nt(ke,Ee,je,rt);if(I(je)){if(It=I(je),typeof It!="function")throw Error(i(150));return je=It.call(je),Bt(ke,Ee,je,rt)}if(typeof je.then=="function")return jn(ke,Ee,Lv(je),rt);if(je.$$typeof===w)return jn(ke,Ee,Pv(ke,je),rt);Iv(ke,je)}return typeof je=="string"&&je!==""||typeof je=="number"||typeof je=="bigint"?(je=""+je,Ee!==null&&Ee.tag===6?(b(ke,Ee.sibling),rt=R(Ee,je),rt.return=ke,ke=rt):(b(ke,Ee),rt=OM(je,ke.mode,rt),rt.return=ke,ke=rt),$(ke)):b(ke,Ee)}return function(ke,Ee,je,rt){try{Zm=0;var It=jn(ke,Ee,je,rt);return oh=null,It}catch(Dt){if(Dt===sh||Dt===kv)throw Dt;var Sn=Wa(29,Dt,null,ke.mode);return Sn.lanes=rt,Sn.return=ke,Sn}finally{}}}var Md=QL(!0),JL=QL(!1),Uc=!1;function qM(d){d.updateQueue={baseState:d.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function XM(d,h){d=d.updateQueue,h.updateQueue===d&&(h.updateQueue={baseState:d.baseState,firstBaseUpdate:d.firstBaseUpdate,lastBaseUpdate:d.lastBaseUpdate,shared:d.shared,callbacks:null})}function jc(d){return{lane:d,tag:0,payload:null,callback:null,next:null}}function Fc(d,h,b){var S=d.updateQueue;if(S===null)return null;if(S=S.shared,(Tn&2)!==0){var R=S.pending;return R===null?h.next=h:(h.next=R.next,R.next=h),S.pending=h,h=Tv(d),IL(d,null,b),h}return Av(d,S,h,b),Tv(d)}function Jm(d,h,b){if(h=h.updateQueue,h!==null&&(h=h.shared,(b&4194048)!==0)){var S=h.lanes;S&=d.pendingLanes,b|=S,h.lanes=b,Wn(d,b)}}function KM(d,h){var b=d.updateQueue,S=d.alternate;if(S!==null&&(S=S.updateQueue,b===S)){var R=null,k=null;if(b=b.firstBaseUpdate,b!==null){do{var $={lane:b.lane,tag:b.tag,payload:b.payload,callback:null,next:null};k===null?R=k=$:k=k.next=$,b=b.next}while(b!==null);k===null?R=k=h:k=k.next=h}else R=k=h;b={baseState:S.baseState,firstBaseUpdate:R,lastBaseUpdate:k,shared:S.shared,callbacks:S.callbacks},d.updateQueue=b;return}d=b.lastBaseUpdate,d===null?b.firstBaseUpdate=h:d.next=h,b.lastBaseUpdate=h}var YM=!1;function eg(){if(YM){var d=ah;if(d!==null)throw d}}function tg(d,h,b,S){YM=!1;var R=d.updateQueue;Uc=!1;var k=R.firstBaseUpdate,$=R.lastBaseUpdate,ne=R.shared.pending;if(ne!==null){R.shared.pending=null;var _e=ne,Fe=_e.next;_e.next=null,$===null?k=Fe:$.next=Fe,$=_e;var Je=d.alternate;Je!==null&&(Je=Je.updateQueue,ne=Je.lastBaseUpdate,ne!==$&&(ne===null?Je.firstBaseUpdate=Fe:ne.next=Fe,Je.lastBaseUpdate=_e))}if(k!==null){var st=R.baseState;$=0,Je=Fe=_e=null,ne=k;do{var Ve=ne.lane&-536870913,Ye=Ve!==ne.lane;if(Ye?(gn&Ve)===Ve:(S&Ve)===Ve){Ve!==0&&Ve===rh&&(YM=!0),Je!==null&&(Je=Je.next={lane:0,tag:ne.tag,payload:ne.payload,callback:null,next:null});e:{var Nt=d,Bt=ne;Ve=h;var jn=b;switch(Bt.tag){case 1:if(Nt=Bt.payload,typeof Nt=="function"){st=Nt.call(jn,st,Ve);break e}st=Nt;break e;case 3:Nt.flags=Nt.flags&-65537|128;case 0:if(Nt=Bt.payload,Ve=typeof Nt=="function"?Nt.call(jn,st,Ve):Nt,Ve==null)break e;st=f({},st,Ve);break e;case 2:Uc=!0}}Ve=ne.callback,Ve!==null&&(d.flags|=64,Ye&&(d.flags|=8192),Ye=R.callbacks,Ye===null?R.callbacks=[Ve]:Ye.push(Ve))}else Ye={lane:Ve,tag:ne.tag,payload:ne.payload,callback:ne.callback,next:null},Je===null?(Fe=Je=Ye,_e=st):Je=Je.next=Ye,$|=Ve;if(ne=ne.next,ne===null){if(ne=R.shared.pending,ne===null)break;Ye=ne,ne=Ye.next,Ye.next=null,R.lastBaseUpdate=Ye,R.shared.pending=null}}while(!0);Je===null&&(_e=st),R.baseState=_e,R.firstBaseUpdate=Fe,R.lastBaseUpdate=Je,k===null&&(R.shared.lanes=0),$c|=$,d.lanes=$,d.memoizedState=st}}function eI(d,h){if(typeof d!="function")throw Error(i(191,d));d.call(h)}function tI(d,h){var b=d.callbacks;if(b!==null)for(d.callbacks=null,d=0;dk?k:8;var $=V.T,ne={};V.T=ne,mE(d,!1,h,b);try{var _e=R(),Fe=V.S;if(Fe!==null&&Fe(ne,_e),_e!==null&&typeof _e=="object"&&typeof _e.then=="function"){var Je=Nee(_e,S);rg(d,h,Je,Za(d))}else rg(d,h,S,Za(d))}catch(st){rg(d,h,{then:function(){},status:"rejected",reason:st},Za())}finally{G.p=k,$!==null&&ne.types!==null&&($.types=ne.types),V.T=$}}function Lee(){}function hE(d,h,b,S){if(d.tag!==5)throw Error(i(476));var R=kI(d).queue;DI(d,R,h,K,b===null?Lee:function(){return OI(d),b(S)})}function kI(d){var h=d.memoizedState;if(h!==null)return h;h={memoizedState:K,baseState:K,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ml,lastRenderedState:K},next:null};var b={};return h.next={memoizedState:b,baseState:b,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ml,lastRenderedState:b},next:null},d.memoizedState=h,d=d.alternate,d!==null&&(d.memoizedState=h),h}function OI(d){var h=kI(d);h.next===null&&(h=d.alternate.memoizedState),rg(d,h.next.queue,{},Za())}function pE(){return kr(_g)}function LI(){return Ni().memoizedState}function II(){return Ni().memoizedState}function Iee(d){for(var h=d.return;h!==null;){switch(h.tag){case 24:case 3:var b=Za();d=jc(b);var S=Fc(h,d,b);S!==null&&(Na(S,h,b),Jm(S,h,b)),h={cache:VM()},d.payload=h;return}h=h.return}}function Uee(d,h,b){var S=Za();b={lane:S,revertLane:0,gesture:null,action:b,hasEagerState:!1,eagerState:null,next:null},Wv(d)?jI(h,b):(b=DM(d,h,b,S),b!==null&&(Na(b,d,S),FI(b,h,S)))}function UI(d,h,b){var S=Za();rg(d,h,b,S)}function rg(d,h,b,S){var R={lane:S,revertLane:0,gesture:null,action:b,hasEagerState:!1,eagerState:null,next:null};if(Wv(d))jI(h,R);else{var k=d.alternate;if(d.lanes===0&&(k===null||k.lanes===0)&&(k=h.lastRenderedReducer,k!==null))try{var $=h.lastRenderedState,ne=k($,b);if(R.hasEagerState=!0,R.eagerState=ne,Ga(ne,$))return Av(d,h,R,0),qn===null&&Ev(),!1}catch{}finally{}if(b=DM(d,h,R,S),b!==null)return Na(b,d,S),FI(b,h,S),!0}return!1}function mE(d,h,b,S){if(S={lane:2,revertLane:qE(),gesture:null,action:S,hasEagerState:!1,eagerState:null,next:null},Wv(d)){if(h)throw Error(i(479))}else h=DM(d,b,S,2),h!==null&&Na(h,d,2)}function Wv(d){var h=d.alternate;return d===Zt||h!==null&&h===Zt}function jI(d,h){ch=Fv=!0;var b=d.pending;b===null?h.next=h:(h.next=b.next,b.next=h),d.pending=h}function FI(d,h,b){if((b&4194048)!==0){var S=h.lanes;S&=d.pendingLanes,b|=S,h.lanes=b,Wn(d,b)}}var ag={readContext:kr,use:Hv,useCallback:bi,useContext:bi,useEffect:bi,useImperativeHandle:bi,useLayoutEffect:bi,useInsertionEffect:bi,useMemo:bi,useReducer:bi,useRef:bi,useState:bi,useDebugValue:bi,useDeferredValue:bi,useTransition:bi,useSyncExternalStore:bi,useId:bi,useHostTransitionStatus:bi,useFormState:bi,useActionState:bi,useOptimistic:bi,useMemoCache:bi,useCacheRefresh:bi};ag.useEffectEvent=bi;var zI={readContext:kr,use:Hv,useCallback:function(d,h){return ca().memoizedState=[d,h===void 0?null:h],d},useContext:kr,useEffect:wI,useImperativeHandle:function(d,h,b){b=b!=null?b.concat([d]):null,$v(4194308,4,TI.bind(null,h,d),b)},useLayoutEffect:function(d,h){return $v(4194308,4,d,h)},useInsertionEffect:function(d,h){$v(4,2,d,h)},useMemo:function(d,h){var b=ca();h=h===void 0?null:h;var S=d();if(Ed){pt(!0);try{d()}finally{pt(!1)}}return b.memoizedState=[S,h],S},useReducer:function(d,h,b){var S=ca();if(b!==void 0){var R=b(h);if(Ed){pt(!0);try{b(h)}finally{pt(!1)}}}else R=h;return S.memoizedState=S.baseState=R,d={pending:null,lanes:0,dispatch:null,lastRenderedReducer:d,lastRenderedState:R},S.queue=d,d=d.dispatch=Uee.bind(null,Zt,d),[S.memoizedState,d]},useRef:function(d){var h=ca();return d={current:d},h.memoizedState=d},useState:function(d){d=lE(d);var h=d.queue,b=UI.bind(null,Zt,h);return h.dispatch=b,[d.memoizedState,b]},useDebugValue:dE,useDeferredValue:function(d,h){var b=ca();return fE(b,d,h)},useTransition:function(){var d=lE(!1);return d=DI.bind(null,Zt,d.queue,!0,!1),ca().memoizedState=d,[!1,d]},useSyncExternalStore:function(d,h,b){var S=Zt,R=ca();if(yn){if(b===void 0)throw Error(i(407));b=b()}else{if(b=h(),qn===null)throw Error(i(349));(gn&127)!==0||oI(S,h,b)}R.memoizedState=b;var k={value:b,getSnapshot:h};return R.queue=k,wI(cI.bind(null,S,k,d),[d]),S.flags|=2048,dh(9,{destroy:void 0},lI.bind(null,S,k,b,h),null),b},useId:function(){var d=ca(),h=qn.identifierPrefix;if(yn){var b=No,S=Co;b=(S&~(1<<32-nt(S)-1)).toString(32)+b,h="_"+h+"R_"+b,b=zv++,0<\/script>",k=k.removeChild(k.firstChild);break;case"select":k=typeof S.is=="string"?$.createElement("select",{is:S.is}):$.createElement("select"),S.multiple?k.multiple=!0:S.size&&(k.size=S.size);break;default:k=typeof S.is=="string"?$.createElement(R,{is:S.is}):$.createElement(R)}}k[hi]=h,k[Ai]=S;e:for($=h.child;$!==null;){if($.tag===5||$.tag===6)k.appendChild($.stateNode);else if($.tag!==4&&$.tag!==27&&$.child!==null){$.child.return=$,$=$.child;continue}if($===h)break e;for(;$.sibling===null;){if($.return===null||$.return===h)break e;$=$.return}$.sibling.return=$.return,$=$.sibling}h.stateNode=k;e:switch(Lr(k,R,S),R){case"button":case"input":case"select":case"textarea":S=!!S.autoFocus;break e;case"img":S=!0;break e;default:S=!1}S&&xl(h)}}return ti(h),NE(h,h.type,d===null?null:d.memoizedProps,h.pendingProps,b),null;case 6:if(d&&h.stateNode!=null)d.memoizedProps!==S&&xl(h);else{if(typeof S!="string"&&h.stateNode===null)throw Error(i(166));if(d=ie.current,nh(h)){if(d=h.stateNode,b=h.memoizedProps,S=null,R=Dr,R!==null)switch(R.tag){case 27:case 5:S=R.memoizedProps}d[hi]=h,d=!!(d.nodeValue===b||S!==null&&S.suppressHydrationWarning===!0||aj(d.nodeValue,b)),d||Lc(h,!0)}else d=fy(d).createTextNode(S),d[hi]=h,h.stateNode=d}return ti(h),null;case 31:if(b=h.memoizedState,d===null||d.memoizedState!==null){if(S=nh(h),b!==null){if(d===null){if(!S)throw Error(i(318));if(d=h.memoizedState,d=d!==null?d.dehydrated:null,!d)throw Error(i(557));d[hi]=h}else vd(),(h.flags&128)===0&&(h.memoizedState=null),h.flags|=4;ti(h),d=!1}else b=FM(),d!==null&&d.memoizedState!==null&&(d.memoizedState.hydrationErrors=b),d=!0;if(!d)return h.flags&256?(Xa(h),h):(Xa(h),null);if((h.flags&128)!==0)throw Error(i(558))}return ti(h),null;case 13:if(S=h.memoizedState,d===null||d.memoizedState!==null&&d.memoizedState.dehydrated!==null){if(R=nh(h),S!==null&&S.dehydrated!==null){if(d===null){if(!R)throw Error(i(318));if(R=h.memoizedState,R=R!==null?R.dehydrated:null,!R)throw Error(i(317));R[hi]=h}else vd(),(h.flags&128)===0&&(h.memoizedState=null),h.flags|=4;ti(h),R=!1}else R=FM(),d!==null&&d.memoizedState!==null&&(d.memoizedState.hydrationErrors=R),R=!0;if(!R)return h.flags&256?(Xa(h),h):(Xa(h),null)}return Xa(h),(h.flags&128)!==0?(h.lanes=b,h):(b=S!==null,d=d!==null&&d.memoizedState!==null,b&&(S=h.child,R=null,S.alternate!==null&&S.alternate.memoizedState!==null&&S.alternate.memoizedState.cachePool!==null&&(R=S.alternate.memoizedState.cachePool.pool),k=null,S.memoizedState!==null&&S.memoizedState.cachePool!==null&&(k=S.memoizedState.cachePool.pool),k!==R&&(S.flags|=2048)),b!==d&&b&&(h.child.flags|=8192),Zv(h,h.updateQueue),ti(h),null);case 4:return pe(),d===null&&ZE(h.stateNode.containerInfo),ti(h),null;case 10:return hl(h.type),ti(h),null;case 19:if(X(Ci),S=h.memoizedState,S===null)return ti(h),null;if(R=(h.flags&128)!==0,k=S.rendering,k===null)if(R)og(S,!1);else{if(_i!==0||d!==null&&(d.flags&128)!==0)for(d=h.child;d!==null;){if(k=jv(d),k!==null){for(h.flags|=128,og(S,!1),d=k.updateQueue,h.updateQueue=d,Zv(h,d),h.subtreeFlags=0,d=b,b=h.child;b!==null;)UL(b,d),b=b.sibling;return ae(Ci,Ci.current&1|2),yn&&dl(h,S.treeForkCount),h.child}d=d.sibling}S.tail!==null&&O()>ny&&(h.flags|=128,R=!0,og(S,!1),h.lanes=4194304)}else{if(!R)if(d=jv(k),d!==null){if(h.flags|=128,R=!0,d=d.updateQueue,h.updateQueue=d,Zv(h,d),og(S,!0),S.tail===null&&S.tailMode==="hidden"&&!k.alternate&&!yn)return ti(h),null}else 2*O()-S.renderingStartTime>ny&&b!==536870912&&(h.flags|=128,R=!0,og(S,!1),h.lanes=4194304);S.isBackwards?(k.sibling=h.child,h.child=k):(d=S.last,d!==null?d.sibling=k:h.child=k,S.last=k)}return S.tail!==null?(d=S.tail,S.rendering=d,S.tail=d.sibling,S.renderingStartTime=O(),d.sibling=null,b=Ci.current,ae(Ci,R?b&1|2:b&1),yn&&dl(h,S.treeForkCount),d):(ti(h),null);case 22:case 23:return Xa(h),QM(),S=h.memoizedState!==null,d!==null?d.memoizedState!==null!==S&&(h.flags|=8192):S&&(h.flags|=8192),S?(b&536870912)!==0&&(h.flags&128)===0&&(ti(h),h.subtreeFlags&6&&(h.flags|=8192)):ti(h),b=h.updateQueue,b!==null&&Zv(h,b.retryQueue),b=null,d!==null&&d.memoizedState!==null&&d.memoizedState.cachePool!==null&&(b=d.memoizedState.cachePool.pool),S=null,h.memoizedState!==null&&h.memoizedState.cachePool!==null&&(S=h.memoizedState.cachePool.pool),S!==b&&(h.flags|=2048),d!==null&&X(_d),null;case 24:return b=null,d!==null&&(b=d.memoizedState.cache),h.memoizedState.cache!==b&&(h.flags|=2048),hl(Ii),ti(h),null;case 25:return null;case 30:return null}throw Error(i(156,h.tag))}function Hee(d,h){switch(UM(h),h.tag){case 1:return d=h.flags,d&65536?(h.flags=d&-65537|128,h):null;case 3:return hl(Ii),pe(),d=h.flags,(d&65536)!==0&&(d&128)===0?(h.flags=d&-65537|128,h):null;case 26:case 27:case 5:return ze(h),null;case 31:if(h.memoizedState!==null){if(Xa(h),h.alternate===null)throw Error(i(340));vd()}return d=h.flags,d&65536?(h.flags=d&-65537|128,h):null;case 13:if(Xa(h),d=h.memoizedState,d!==null&&d.dehydrated!==null){if(h.alternate===null)throw Error(i(340));vd()}return d=h.flags,d&65536?(h.flags=d&-65537|128,h):null;case 19:return X(Ci),null;case 4:return pe(),null;case 10:return hl(h.type),null;case 22:case 23:return Xa(h),QM(),d!==null&&X(_d),d=h.flags,d&65536?(h.flags=d&-65537|128,h):null;case 24:return hl(Ii),null;case 25:return null;default:return null}}function uU(d,h){switch(UM(h),h.tag){case 3:hl(Ii),pe();break;case 26:case 27:case 5:ze(h);break;case 4:pe();break;case 31:h.memoizedState!==null&&Xa(h);break;case 13:Xa(h);break;case 19:X(Ci);break;case 10:hl(h.type);break;case 22:case 23:Xa(h),QM(),d!==null&&X(_d);break;case 24:hl(Ii)}}function lg(d,h){try{var b=h.updateQueue,S=b!==null?b.lastEffect:null;if(S!==null){var R=S.next;b=R;do{if((b.tag&d)===d){S=void 0;var k=b.create,$=b.inst;S=k(),$.destroy=S}b=b.next}while(b!==R)}}catch(ne){kn(h,h.return,ne)}}function Hc(d,h,b){try{var S=h.updateQueue,R=S!==null?S.lastEffect:null;if(R!==null){var k=R.next;S=k;do{if((S.tag&d)===d){var $=S.inst,ne=$.destroy;if(ne!==void 0){$.destroy=void 0,R=h;var _e=b,Fe=ne;try{Fe()}catch(Je){kn(R,_e,Je)}}}S=S.next}while(S!==k)}}catch(Je){kn(h,h.return,Je)}}function dU(d){var h=d.updateQueue;if(h!==null){var b=d.stateNode;try{tI(h,b)}catch(S){kn(d,d.return,S)}}}function fU(d,h,b){b.props=Ad(d.type,d.memoizedProps),b.state=d.memoizedState;try{b.componentWillUnmount()}catch(S){kn(d,h,S)}}function cg(d,h){try{var b=d.ref;if(b!==null){switch(d.tag){case 26:case 27:case 5:var S=d.stateNode;break;case 30:S=d.stateNode;break;default:S=d.stateNode}typeof b=="function"?d.refCleanup=b(S):b.current=S}}catch(R){kn(d,h,R)}}function Ro(d,h){var b=d.ref,S=d.refCleanup;if(b!==null)if(typeof S=="function")try{S()}catch(R){kn(d,h,R)}finally{d.refCleanup=null,d=d.alternate,d!=null&&(d.refCleanup=null)}else if(typeof b=="function")try{b(null)}catch(R){kn(d,h,R)}else b.current=null}function hU(d){var h=d.type,b=d.memoizedProps,S=d.stateNode;try{e:switch(h){case"button":case"input":case"select":case"textarea":b.autoFocus&&S.focus();break e;case"img":b.src?S.src=b.src:b.srcSet&&(S.srcset=b.srcSet)}}catch(R){kn(d,d.return,R)}}function RE(d,h,b){try{var S=d.stateNode;ute(S,d.type,b,h),S[Ai]=h}catch(R){kn(d,d.return,R)}}function pU(d){return d.tag===5||d.tag===3||d.tag===26||d.tag===27&&Kc(d.type)||d.tag===4}function PE(d){e:for(;;){for(;d.sibling===null;){if(d.return===null||pU(d.return))return null;d=d.return}for(d.sibling.return=d.return,d=d.sibling;d.tag!==5&&d.tag!==6&&d.tag!==18;){if(d.tag===27&&Kc(d.type)||d.flags&2||d.child===null||d.tag===4)continue e;d.child.return=d,d=d.child}if(!(d.flags&2))return d.stateNode}}function DE(d,h,b){var S=d.tag;if(S===5||S===6)d=d.stateNode,h?(b.nodeType===9?b.body:b.nodeName==="HTML"?b.ownerDocument.body:b).insertBefore(d,h):(h=b.nodeType===9?b.body:b.nodeName==="HTML"?b.ownerDocument.body:b,h.appendChild(d),b=b._reactRootContainer,b!=null||h.onclick!==null||(h.onclick=ll));else if(S!==4&&(S===27&&Kc(d.type)&&(b=d.stateNode,h=null),d=d.child,d!==null))for(DE(d,h,b),d=d.sibling;d!==null;)DE(d,h,b),d=d.sibling}function Qv(d,h,b){var S=d.tag;if(S===5||S===6)d=d.stateNode,h?b.insertBefore(d,h):b.appendChild(d);else if(S!==4&&(S===27&&Kc(d.type)&&(b=d.stateNode),d=d.child,d!==null))for(Qv(d,h,b),d=d.sibling;d!==null;)Qv(d,h,b),d=d.sibling}function mU(d){var h=d.stateNode,b=d.memoizedProps;try{for(var S=d.type,R=h.attributes;R.length;)h.removeAttributeNode(R[0]);Lr(h,S,b),h[hi]=d,h[Ai]=b}catch(k){kn(d,d.return,k)}}var vl=!1,Fi=!1,kE=!1,gU=typeof WeakSet=="function"?WeakSet:Set,xr=null;function Vee(d,h){if(d=d.containerInfo,eA=yy,d=CL(d),AM(d)){if("selectionStart"in d)var b={start:d.selectionStart,end:d.selectionEnd};else e:{b=(b=d.ownerDocument)&&b.defaultView||window;var S=b.getSelection&&b.getSelection();if(S&&S.rangeCount!==0){b=S.anchorNode;var R=S.anchorOffset,k=S.focusNode;S=S.focusOffset;try{b.nodeType,k.nodeType}catch{b=null;break e}var $=0,ne=-1,_e=-1,Fe=0,Je=0,st=d,Ve=null;t:for(;;){for(var Ye;st!==b||R!==0&&st.nodeType!==3||(ne=$+R),st!==k||S!==0&&st.nodeType!==3||(_e=$+S),st.nodeType===3&&($+=st.nodeValue.length),(Ye=st.firstChild)!==null;)Ve=st,st=Ye;for(;;){if(st===d)break t;if(Ve===b&&++Fe===R&&(ne=$),Ve===k&&++Je===S&&(_e=$),(Ye=st.nextSibling)!==null)break;st=Ve,Ve=st.parentNode}st=Ye}b=ne===-1||_e===-1?null:{start:ne,end:_e}}else b=null}b=b||{start:0,end:0}}else b=null;for(tA={focusedElem:d,selectionRange:b},yy=!1,xr=h;xr!==null;)if(h=xr,d=h.child,(h.subtreeFlags&1028)!==0&&d!==null)d.return=h,xr=d;else for(;xr!==null;){switch(h=xr,k=h.alternate,d=h.flags,h.tag){case 0:if((d&4)!==0&&(d=h.updateQueue,d=d!==null?d.events:null,d!==null))for(b=0;b title"))),Lr(k,S,b),k[hi]=d,Te(k),S=k;break e;case"link":var $=Sj("link","href",R).get(S+(b.href||""));if($){for(var ne=0;ne<$.length;ne++)if(k=$[ne],k.getAttribute("href")===(b.href==null||b.href===""?null:b.href)&&k.getAttribute("rel")===(b.rel==null?null:b.rel)&&k.getAttribute("title")===(b.title==null?null:b.title)&&k.getAttribute("crossorigin")===(b.crossOrigin==null?null:b.crossOrigin)){$.splice(ne,1);break t}}k=R.createElement(S),Lr(k,S,b),R.head.appendChild(k);break;case"meta":if($=Sj("meta","content",R).get(S+(b.content||""))){for(ne=0;ne<$.length;ne++)if(k=$[ne],k.getAttribute("content")===(b.content==null?null:""+b.content)&&k.getAttribute("name")===(b.name==null?null:b.name)&&k.getAttribute("property")===(b.property==null?null:b.property)&&k.getAttribute("http-equiv")===(b.httpEquiv==null?null:b.httpEquiv)&&k.getAttribute("charset")===(b.charSet==null?null:b.charSet)){$.splice(ne,1);break t}}k=R.createElement(S),Lr(k,S,b),R.head.appendChild(k);break;default:throw Error(i(468,S))}k[hi]=d,Te(k),S=k}d.stateNode=S}else wj(R,d.type,d.stateNode);else d.stateNode=_j(R,S,d.memoizedProps);else k!==S?(k===null?b.stateNode!==null&&(b=b.stateNode,b.parentNode.removeChild(b)):k.count--,S===null?wj(R,d.type,d.stateNode):_j(R,S,d.memoizedProps)):S===null&&d.stateNode!==null&&RE(d,d.memoizedProps,b.memoizedProps)}break;case 27:Aa(h,d),Ta(d),S&512&&(Fi||b===null||Ro(b,b.return)),b!==null&&S&4&&RE(d,d.memoizedProps,b.memoizedProps);break;case 5:if(Aa(h,d),Ta(d),S&512&&(Fi||b===null||Ro(b,b.return)),d.flags&32){R=d.stateNode;try{To(R,"")}catch(Nt){kn(d,d.return,Nt)}}S&4&&d.stateNode!=null&&(R=d.memoizedProps,RE(d,R,b!==null?b.memoizedProps:R)),S&1024&&(kE=!0);break;case 6:if(Aa(h,d),Ta(d),S&4){if(d.stateNode===null)throw Error(i(162));S=d.memoizedProps,b=d.stateNode;try{b.nodeValue=S}catch(Nt){kn(d,d.return,Nt)}}break;case 3:if(my=null,R=to,to=hy(h.containerInfo),Aa(h,d),to=R,Ta(d),S&4&&b!==null&&b.memoizedState.isDehydrated)try{wh(h.containerInfo)}catch(Nt){kn(d,d.return,Nt)}kE&&(kE=!1,wU(d));break;case 4:S=to,to=hy(d.stateNode.containerInfo),Aa(h,d),Ta(d),to=S;break;case 12:Aa(h,d),Ta(d);break;case 31:Aa(h,d),Ta(d),S&4&&(S=d.updateQueue,S!==null&&(d.updateQueue=null,Jv(d,S)));break;case 13:Aa(h,d),Ta(d),d.child.flags&8192&&d.memoizedState!==null!=(b!==null&&b.memoizedState!==null)&&(ty=O()),S&4&&(S=d.updateQueue,S!==null&&(d.updateQueue=null,Jv(d,S)));break;case 22:R=d.memoizedState!==null;var _e=b!==null&&b.memoizedState!==null,Fe=vl,Je=Fi;if(vl=Fe||R,Fi=Je||_e,Aa(h,d),Fi=Je,vl=Fe,Ta(d),S&8192)e:for(h=d.stateNode,h._visibility=R?h._visibility&-2:h._visibility|1,R&&(b===null||_e||vl||Fi||Td(d)),b=null,h=d;;){if(h.tag===5||h.tag===26){if(b===null){_e=b=h;try{if(k=_e.stateNode,R)$=k.style,typeof $.setProperty=="function"?$.setProperty("display","none","important"):$.display="none";else{ne=_e.stateNode;var st=_e.memoizedProps.style,Ve=st!=null&&st.hasOwnProperty("display")?st.display:null;ne.style.display=Ve==null||typeof Ve=="boolean"?"":(""+Ve).trim()}}catch(Nt){kn(_e,_e.return,Nt)}}}else if(h.tag===6){if(b===null){_e=h;try{_e.stateNode.nodeValue=R?"":_e.memoizedProps}catch(Nt){kn(_e,_e.return,Nt)}}}else if(h.tag===18){if(b===null){_e=h;try{var Ye=_e.stateNode;R?fj(Ye,!0):fj(_e.stateNode,!1)}catch(Nt){kn(_e,_e.return,Nt)}}}else if((h.tag!==22&&h.tag!==23||h.memoizedState===null||h===d)&&h.child!==null){h.child.return=h,h=h.child;continue}if(h===d)break e;for(;h.sibling===null;){if(h.return===null||h.return===d)break e;b===h&&(b=null),h=h.return}b===h&&(b=null),h.sibling.return=h.return,h=h.sibling}S&4&&(S=d.updateQueue,S!==null&&(b=S.retryQueue,b!==null&&(S.retryQueue=null,Jv(d,b))));break;case 19:Aa(h,d),Ta(d),S&4&&(S=d.updateQueue,S!==null&&(d.updateQueue=null,Jv(d,S)));break;case 30:break;case 21:break;default:Aa(h,d),Ta(d)}}function Ta(d){var h=d.flags;if(h&2){try{for(var b,S=d.return;S!==null;){if(pU(S)){b=S;break}S=S.return}if(b==null)throw Error(i(160));switch(b.tag){case 27:var R=b.stateNode,k=PE(d);Qv(d,k,R);break;case 5:var $=b.stateNode;b.flags&32&&(To($,""),b.flags&=-33);var ne=PE(d);Qv(d,ne,$);break;case 3:case 4:var _e=b.stateNode.containerInfo,Fe=PE(d);DE(d,Fe,_e);break;default:throw Error(i(161))}}catch(Je){kn(d,d.return,Je)}d.flags&=-3}h&4096&&(d.flags&=-4097)}function wU(d){if(d.subtreeFlags&1024)for(d=d.child;d!==null;){var h=d;wU(h),h.tag===5&&h.flags&1024&&h.stateNode.reset(),d=d.sibling}}function bl(d,h){if(h.subtreeFlags&8772)for(h=h.child;h!==null;)xU(d,h.alternate,h),h=h.sibling}function Td(d){for(d=d.child;d!==null;){var h=d;switch(h.tag){case 0:case 11:case 14:case 15:Hc(4,h,h.return),Td(h);break;case 1:Ro(h,h.return);var b=h.stateNode;typeof b.componentWillUnmount=="function"&&fU(h,h.return,b),Td(h);break;case 27:vg(h.stateNode);case 26:case 5:Ro(h,h.return),Td(h);break;case 22:h.memoizedState===null&&Td(h);break;case 30:Td(h);break;default:Td(h)}d=d.sibling}}function _l(d,h,b){for(b=b&&(h.subtreeFlags&8772)!==0,h=h.child;h!==null;){var S=h.alternate,R=d,k=h,$=k.flags;switch(k.tag){case 0:case 11:case 15:_l(R,k,b),lg(4,k);break;case 1:if(_l(R,k,b),S=k,R=S.stateNode,typeof R.componentDidMount=="function")try{R.componentDidMount()}catch(Fe){kn(S,S.return,Fe)}if(S=k,R=S.updateQueue,R!==null){var ne=S.stateNode;try{var _e=R.shared.hiddenCallbacks;if(_e!==null)for(R.shared.hiddenCallbacks=null,R=0;R<_e.length;R++)eI(_e[R],ne)}catch(Fe){kn(S,S.return,Fe)}}b&&$&64&&dU(k),cg(k,k.return);break;case 27:mU(k);case 26:case 5:_l(R,k,b),b&&S===null&&$&4&&hU(k),cg(k,k.return);break;case 12:_l(R,k,b);break;case 31:_l(R,k,b),b&&$&4&&bU(R,k);break;case 13:_l(R,k,b),b&&$&4&&_U(R,k);break;case 22:k.memoizedState===null&&_l(R,k,b),cg(k,k.return);break;case 30:break;default:_l(R,k,b)}h=h.sibling}}function OE(d,h){var b=null;d!==null&&d.memoizedState!==null&&d.memoizedState.cachePool!==null&&(b=d.memoizedState.cachePool.pool),d=null,h.memoizedState!==null&&h.memoizedState.cachePool!==null&&(d=h.memoizedState.cachePool.pool),d!==b&&(d!=null&&d.refCount++,b!=null&&Km(b))}function LE(d,h){d=null,h.alternate!==null&&(d=h.alternate.memoizedState.cache),h=h.memoizedState.cache,h!==d&&(h.refCount++,d!=null&&Km(d))}function no(d,h,b,S){if(h.subtreeFlags&10256)for(h=h.child;h!==null;)MU(d,h,b,S),h=h.sibling}function MU(d,h,b,S){var R=h.flags;switch(h.tag){case 0:case 11:case 15:no(d,h,b,S),R&2048&&lg(9,h);break;case 1:no(d,h,b,S);break;case 3:no(d,h,b,S),R&2048&&(d=null,h.alternate!==null&&(d=h.alternate.memoizedState.cache),h=h.memoizedState.cache,h!==d&&(h.refCount++,d!=null&&Km(d)));break;case 12:if(R&2048){no(d,h,b,S),d=h.stateNode;try{var k=h.memoizedProps,$=k.id,ne=k.onPostCommit;typeof ne=="function"&&ne($,h.alternate===null?"mount":"update",d.passiveEffectDuration,-0)}catch(_e){kn(h,h.return,_e)}}else no(d,h,b,S);break;case 31:no(d,h,b,S);break;case 13:no(d,h,b,S);break;case 23:break;case 22:k=h.stateNode,$=h.alternate,h.memoizedState!==null?k._visibility&2?no(d,h,b,S):ug(d,h):k._visibility&2?no(d,h,b,S):(k._visibility|=2,fh(d,h,b,S,(h.subtreeFlags&10256)!==0||!1)),R&2048&&OE($,h);break;case 24:no(d,h,b,S),R&2048&&LE(h.alternate,h);break;default:no(d,h,b,S)}}function fh(d,h,b,S,R){for(R=R&&((h.subtreeFlags&10256)!==0||!1),h=h.child;h!==null;){var k=d,$=h,ne=b,_e=S,Fe=$.flags;switch($.tag){case 0:case 11:case 15:fh(k,$,ne,_e,R),lg(8,$);break;case 23:break;case 22:var Je=$.stateNode;$.memoizedState!==null?Je._visibility&2?fh(k,$,ne,_e,R):ug(k,$):(Je._visibility|=2,fh(k,$,ne,_e,R)),R&&Fe&2048&&OE($.alternate,$);break;case 24:fh(k,$,ne,_e,R),R&&Fe&2048&&LE($.alternate,$);break;default:fh(k,$,ne,_e,R)}h=h.sibling}}function ug(d,h){if(h.subtreeFlags&10256)for(h=h.child;h!==null;){var b=d,S=h,R=S.flags;switch(S.tag){case 22:ug(b,S),R&2048&&OE(S.alternate,S);break;case 24:ug(b,S),R&2048&&LE(S.alternate,S);break;default:ug(b,S)}h=h.sibling}}var dg=8192;function hh(d,h,b){if(d.subtreeFlags&dg)for(d=d.child;d!==null;)EU(d,h,b),d=d.sibling}function EU(d,h,b){switch(d.tag){case 26:hh(d,h,b),d.flags&dg&&d.memoizedState!==null&&Rte(b,to,d.memoizedState,d.memoizedProps);break;case 5:hh(d,h,b);break;case 3:case 4:var S=to;to=hy(d.stateNode.containerInfo),hh(d,h,b),to=S;break;case 22:d.memoizedState===null&&(S=d.alternate,S!==null&&S.memoizedState!==null?(S=dg,dg=16777216,hh(d,h,b),dg=S):hh(d,h,b));break;default:hh(d,h,b)}}function AU(d){var h=d.alternate;if(h!==null&&(d=h.child,d!==null)){h.child=null;do h=d.sibling,d.sibling=null,d=h;while(d!==null)}}function fg(d){var h=d.deletions;if((d.flags&16)!==0){if(h!==null)for(var b=0;bjn&&($=jn,jn=Bt,Bt=$);var ke=AL(ne,Bt),Ee=AL(ne,jn);if(ke&&Ee&&(Ye.rangeCount!==1||Ye.anchorNode!==ke.node||Ye.anchorOffset!==ke.offset||Ye.focusNode!==Ee.node||Ye.focusOffset!==Ee.offset)){var je=st.createRange();je.setStart(ke.node,ke.offset),Ye.removeAllRanges(),Bt>jn?(Ye.addRange(je),Ye.extend(Ee.node,Ee.offset)):(je.setEnd(Ee.node,Ee.offset),Ye.addRange(je))}}}}for(st=[],Ye=ne;Ye=Ye.parentNode;)Ye.nodeType===1&&st.push({element:Ye,left:Ye.scrollLeft,top:Ye.scrollTop});for(typeof ne.focus=="function"&&ne.focus(),ne=0;neb?32:b,V.T=null,b=zE,zE=null;var k=Wc,$=wl;if(Ji=0,gh=Wc=null,wl=0,(Tn&6)!==0)throw Error(i(331));var ne=Tn;if(Tn|=4,TU(k.current),MU(k,k.current,$,b),Tn=ne,mg(0,!1),Re&&typeof Re.onPostCommitFiberRoot=="function")try{Re.onPostCommitFiberRoot(Ie,k)}catch{}return!0}finally{G.p=R,V.T=S,GU(d,h)}}function qU(d,h,b){h=gs(b,h),h=yE(d.stateNode,h,2),d=Fc(d,h,2),d!==null&&(on(d,2),Po(d))}function kn(d,h,b){if(d.tag===3)qU(d,d,b);else for(;h!==null;){if(h.tag===3){qU(h,d,b);break}else if(h.tag===1){var S=h.stateNode;if(typeof h.type.getDerivedStateFromError=="function"||typeof S.componentDidCatch=="function"&&(Gc===null||!Gc.has(S))){d=gs(b,d),b=XI(2),S=Fc(h,b,2),S!==null&&(KI(b,S,h,d),on(S,2),Po(S));break}}h=h.return}}function $E(d,h,b){var S=d.pingCache;if(S===null){S=d.pingCache=new Wee;var R=new Set;S.set(h,R)}else R=S.get(h),R===void 0&&(R=new Set,S.set(h,R));R.has(b)||(IE=!0,R.add(b),d=Zee.bind(null,d,h,b),h.then(d,d))}function Zee(d,h,b){var S=d.pingCache;S!==null&&S.delete(h),d.pingedLanes|=d.suspendedLanes&b,d.warmLanes&=~b,qn===d&&(gn&b)===b&&(_i===4||_i===3&&(gn&62914560)===gn&&300>O()-ty?(Tn&2)===0&&xh(d,0):UE|=b,mh===gn&&(mh=0)),Po(d)}function XU(d,h){h===0&&(h=bt()),d=gd(d,h),d!==null&&(on(d,h),Po(d))}function Qee(d){var h=d.memoizedState,b=0;h!==null&&(b=h.retryLane),XU(d,b)}function Jee(d,h){var b=0;switch(d.tag){case 31:case 13:var S=d.stateNode,R=d.memoizedState;R!==null&&(b=R.retryLane);break;case 19:S=d.stateNode;break;case 22:S=d.stateNode._retryCache;break;default:throw Error(i(314))}S!==null&&S.delete(h),XU(d,b)}function ete(d,h){return De(d,h)}var ly=null,yh=null,GE=!1,cy=!1,WE=!1,Xc=0;function Po(d){d!==yh&&d.next===null&&(yh===null?ly=yh=d:yh=yh.next=d),cy=!0,GE||(GE=!0,nte())}function mg(d,h){if(!WE&&cy){WE=!0;do for(var b=!1,S=ly;S!==null;){if(d!==0){var R=S.pendingLanes;if(R===0)var k=0;else{var $=S.suspendedLanes,ne=S.pingedLanes;k=(1<<31-nt(42|d)+1)-1,k&=R&~($&~ne),k=k&201326741?k&201326741|1:k?k|2:0}k!==0&&(b=!0,QU(S,k))}else k=gn,k=ge(S,S===qn?k:0,S.cancelPendingCommit!==null||S.timeoutHandle!==-1),(k&3)===0||Be(S,k)||(b=!0,QU(S,k));S=S.next}while(b);WE=!1}}function tte(){KU()}function KU(){cy=GE=!1;var d=0;Xc!==0&&fte()&&(d=Xc);for(var h=O(),b=null,S=ly;S!==null;){var R=S.next,k=YU(S,h);k===0?(S.next=null,b===null?ly=R:b.next=R,R===null&&(yh=b)):(b=S,(d!==0||(k&3)!==0)&&(cy=!0)),S=R}Ji!==0&&Ji!==5||mg(d),Xc!==0&&(Xc=0)}function YU(d,h){for(var b=d.suspendedLanes,S=d.pingedLanes,R=d.expirationTimes,k=d.pendingLanes&-62914561;0ne)break;var Je=_e.transferSize,st=_e.initiatorType;Je&&sj(st)&&(_e=_e.responseEnd,$+=Je*(_e"u"?null:document;function vj(d,h,b){var S=bh;if(S&&typeof h=="string"&&h){var R=Cn(h);R='link[rel="'+d+'"][href="'+R+'"]',typeof b=="string"&&(R+='[crossorigin="'+b+'"]'),xj.has(R)||(xj.add(R),d={rel:d,crossOrigin:b,href:h},S.querySelector(R)===null&&(h=S.createElement("link"),Lr(h,"link",d),Te(h),S.head.appendChild(h)))}}function _te(d){Ml.D(d),vj("dns-prefetch",d,null)}function Ste(d,h){Ml.C(d,h),vj("preconnect",d,h)}function wte(d,h,b){Ml.L(d,h,b);var S=bh;if(S&&d&&h){var R='link[rel="preload"][as="'+Cn(h)+'"]';h==="image"&&b&&b.imageSrcSet?(R+='[imagesrcset="'+Cn(b.imageSrcSet)+'"]',typeof b.imageSizes=="string"&&(R+='[imagesizes="'+Cn(b.imageSizes)+'"]')):R+='[href="'+Cn(d)+'"]';var k=R;switch(h){case"style":k=_h(d);break;case"script":k=Sh(d)}Ss.has(k)||(d=f({rel:"preload",href:h==="image"&&b&&b.imageSrcSet?void 0:d,as:h},b),Ss.set(k,d),S.querySelector(R)!==null||h==="style"&&S.querySelector(yg(k))||h==="script"&&S.querySelector(bg(k))||(h=S.createElement("link"),Lr(h,"link",d),Te(h),S.head.appendChild(h)))}}function Mte(d,h){Ml.m(d,h);var b=bh;if(b&&d){var S=h&&typeof h.as=="string"?h.as:"script",R='link[rel="modulepreload"][as="'+Cn(S)+'"][href="'+Cn(d)+'"]',k=R;switch(S){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":k=Sh(d)}if(!Ss.has(k)&&(d=f({rel:"modulepreload",href:d},h),Ss.set(k,d),b.querySelector(R)===null)){switch(S){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(b.querySelector(bg(k)))return}S=b.createElement("link"),Lr(S,"link",d),Te(S),b.head.appendChild(S)}}}function Ete(d,h,b){Ml.S(d,h,b);var S=bh;if(S&&d){var R=Ce(S).hoistableStyles,k=_h(d);h=h||"default";var $=R.get(k);if(!$){var ne={loading:0,preload:null};if($=S.querySelector(yg(k)))ne.loading=5;else{d=f({rel:"stylesheet",href:d,"data-precedence":h},b),(b=Ss.get(k))&&lA(d,b);var _e=$=S.createElement("link");Te(_e),Lr(_e,"link",d),_e._p=new Promise(function(Fe,Je){_e.onload=Fe,_e.onerror=Je}),_e.addEventListener("load",function(){ne.loading|=1}),_e.addEventListener("error",function(){ne.loading|=2}),ne.loading|=4,py($,h,S)}$={type:"stylesheet",instance:$,count:1,state:ne},R.set(k,$)}}}function Ate(d,h){Ml.X(d,h);var b=bh;if(b&&d){var S=Ce(b).hoistableScripts,R=Sh(d),k=S.get(R);k||(k=b.querySelector(bg(R)),k||(d=f({src:d,async:!0},h),(h=Ss.get(R))&&cA(d,h),k=b.createElement("script"),Te(k),Lr(k,"link",d),b.head.appendChild(k)),k={type:"script",instance:k,count:1,state:null},S.set(R,k))}}function Tte(d,h){Ml.M(d,h);var b=bh;if(b&&d){var S=Ce(b).hoistableScripts,R=Sh(d),k=S.get(R);k||(k=b.querySelector(bg(R)),k||(d=f({src:d,async:!0,type:"module"},h),(h=Ss.get(R))&&cA(d,h),k=b.createElement("script"),Te(k),Lr(k,"link",d),b.head.appendChild(k)),k={type:"script",instance:k,count:1,state:null},S.set(R,k))}}function yj(d,h,b,S){var R=(R=ie.current)?hy(R):null;if(!R)throw Error(i(446));switch(d){case"meta":case"title":return null;case"style":return typeof b.precedence=="string"&&typeof b.href=="string"?(h=_h(b.href),b=Ce(R).hoistableStyles,S=b.get(h),S||(S={type:"style",instance:null,count:0,state:null},b.set(h,S)),S):{type:"void",instance:null,count:0,state:null};case"link":if(b.rel==="stylesheet"&&typeof b.href=="string"&&typeof b.precedence=="string"){d=_h(b.href);var k=Ce(R).hoistableStyles,$=k.get(d);if($||(R=R.ownerDocument||R,$={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},k.set(d,$),(k=R.querySelector(yg(d)))&&!k._p&&($.instance=k,$.state.loading=5),Ss.has(d)||(b={rel:"preload",as:"style",href:b.href,crossOrigin:b.crossOrigin,integrity:b.integrity,media:b.media,hrefLang:b.hrefLang,referrerPolicy:b.referrerPolicy},Ss.set(d,b),k||Cte(R,d,b,$.state))),h&&S===null)throw Error(i(528,""));return $}if(h&&S!==null)throw Error(i(529,""));return null;case"script":return h=b.async,b=b.src,typeof b=="string"&&h&&typeof h!="function"&&typeof h!="symbol"?(h=Sh(b),b=Ce(R).hoistableScripts,S=b.get(h),S||(S={type:"script",instance:null,count:0,state:null},b.set(h,S)),S):{type:"void",instance:null,count:0,state:null};default:throw Error(i(444,d))}}function _h(d){return'href="'+Cn(d)+'"'}function yg(d){return'link[rel="stylesheet"]['+d+"]"}function bj(d){return f({},d,{"data-precedence":d.precedence,precedence:null})}function Cte(d,h,b,S){d.querySelector('link[rel="preload"][as="style"]['+h+"]")?S.loading=1:(h=d.createElement("link"),S.preload=h,h.addEventListener("load",function(){return S.loading|=1}),h.addEventListener("error",function(){return S.loading|=2}),Lr(h,"link",b),Te(h),d.head.appendChild(h))}function Sh(d){return'[src="'+Cn(d)+'"]'}function bg(d){return"script[async]"+d}function _j(d,h,b){if(h.count++,h.instance===null)switch(h.type){case"style":var S=d.querySelector('style[data-href~="'+Cn(b.href)+'"]');if(S)return h.instance=S,Te(S),S;var R=f({},b,{"data-href":b.href,"data-precedence":b.precedence,href:null,precedence:null});return S=(d.ownerDocument||d).createElement("style"),Te(S),Lr(S,"style",R),py(S,b.precedence,d),h.instance=S;case"stylesheet":R=_h(b.href);var k=d.querySelector(yg(R));if(k)return h.state.loading|=4,h.instance=k,Te(k),k;S=bj(b),(R=Ss.get(R))&&lA(S,R),k=(d.ownerDocument||d).createElement("link"),Te(k);var $=k;return $._p=new Promise(function(ne,_e){$.onload=ne,$.onerror=_e}),Lr(k,"link",S),h.state.loading|=4,py(k,b.precedence,d),h.instance=k;case"script":return k=Sh(b.src),(R=d.querySelector(bg(k)))?(h.instance=R,Te(R),R):(S=b,(R=Ss.get(k))&&(S=f({},b),cA(S,R)),d=d.ownerDocument||d,R=d.createElement("script"),Te(R),Lr(R,"link",S),d.head.appendChild(R),h.instance=R);case"void":return null;default:throw Error(i(443,h.type))}else h.type==="stylesheet"&&(h.state.loading&4)===0&&(S=h.instance,h.state.loading|=4,py(S,b.precedence,d));return h.instance}function py(d,h,b){for(var S=b.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),R=S.length?S[S.length-1]:null,k=R,$=0;$ title"):null)}function Nte(d,h,b){if(b===1||h.itemProp!=null)return!1;switch(d){case"meta":case"title":return!0;case"style":if(typeof h.precedence!="string"||typeof h.href!="string"||h.href==="")break;return!0;case"link":if(typeof h.rel!="string"||typeof h.href!="string"||h.href===""||h.onLoad||h.onError)break;switch(h.rel){case"stylesheet":return d=h.disabled,typeof h.precedence=="string"&&d==null;default:return!0}case"script":if(h.async&&typeof h.async!="function"&&typeof h.async!="symbol"&&!h.onLoad&&!h.onError&&h.src&&typeof h.src=="string")return!0}return!1}function Mj(d){return!(d.type==="stylesheet"&&(d.state.loading&3)===0)}function Rte(d,h,b,S){if(b.type==="stylesheet"&&(typeof S.media!="string"||matchMedia(S.media).matches!==!1)&&(b.state.loading&4)===0){if(b.instance===null){var R=_h(S.href),k=h.querySelector(yg(R));if(k){h=k._p,h!==null&&typeof h=="object"&&typeof h.then=="function"&&(d.count++,d=gy.bind(d),h.then(d,d)),b.state.loading|=4,b.instance=k,Te(k);return}k=h.ownerDocument||h,S=bj(S),(R=Ss.get(R))&&lA(S,R),k=k.createElement("link"),Te(k);var $=k;$._p=new Promise(function(ne,_e){$.onload=ne,$.onerror=_e}),Lr(k,"link",S),b.instance=k}d.stylesheets===null&&(d.stylesheets=new Map),d.stylesheets.set(b,h),(h=b.state.preload)&&(b.state.loading&3)===0&&(d.count++,b=gy.bind(d),h.addEventListener("load",b),h.addEventListener("error",b))}}var uA=0;function Pte(d,h){return d.stylesheets&&d.count===0&&vy(d,d.stylesheets),0uA?50:800)+h);return d.unsuspend=b,function(){d.unsuspend=null,clearTimeout(S),clearTimeout(R)}}:null}function gy(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)vy(this,this.stylesheets);else if(this.unsuspend){var d=this.unsuspend;this.unsuspend=null,d()}}}var xy=null;function vy(d,h){d.stylesheets=null,d.unsuspend!==null&&(d.count++,xy=new Map,h.forEach(Dte,d),xy=null,gy.call(d))}function Dte(d,h){if(!(h.state.loading&4)){var b=xy.get(d);if(b)var S=b.get(null);else{b=new Map,xy.set(d,b);for(var R=d.querySelectorAll("link[data-precedence],style[data-precedence]"),k=0;k"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(e){console.error(e)}}return t(),yA.exports=Kte(),yA.exports}var Zte=Yte();const Vt=t=>typeof t=="string",Tg=()=>{let t,e;const n=new Promise((i,r)=>{t=i,e=r});return n.resolve=t,n.reject=e,n},Xj=t=>t==null?"":""+t,Qte=(t,e,n)=>{t.forEach(i=>{e[i]&&(n[i]=e[i])})},Jte=/###/g,Kj=t=>t&&t.indexOf("###")>-1?t.replace(Jte,"."):t,Yj=t=>!t||Vt(t),u0=(t,e,n)=>{const i=Vt(e)?e.split("."):e;let r=0;for(;r{const{obj:i,k:r}=u0(t,e,Object);if(i!==void 0||e.length===1){i[r]=n;return}let a=e[e.length-1],s=e.slice(0,e.length-1),o=u0(t,s,Object);for(;o.obj===void 0&&s.length;)a=`${s[s.length-1]}.${a}`,s=s.slice(0,s.length-1),o=u0(t,s,Object),o?.obj&&typeof o.obj[`${o.k}.${a}`]<"u"&&(o.obj=void 0);o.obj[`${o.k}.${a}`]=n},ene=(t,e,n,i)=>{const{obj:r,k:a}=u0(t,e,Object);r[a]=r[a]||[],r[a].push(n)},R_=(t,e)=>{const{obj:n,k:i}=u0(t,e);if(n&&Object.prototype.hasOwnProperty.call(n,i))return n[i]},tne=(t,e,n)=>{const i=R_(t,n);return i!==void 0?i:R_(e,n)},iG=(t,e,n)=>{for(const i in e)i!=="__proto__"&&i!=="constructor"&&(i in t?Vt(t[i])||t[i]instanceof String||Vt(e[i])||e[i]instanceof String?n&&(t[i]=e[i]):iG(t[i],e[i],n):t[i]=e[i]);return t},Mh=t=>t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var nne={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};const ine=t=>Vt(t)?t.replace(/[&<>"'\/]/g,e=>nne[e]):t;class rne{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){const n=this.regExpMap.get(e);if(n!==void 0)return n;const i=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,i),this.regExpQueue.push(e),i}}const ane=[" ",",","?","!",";"],sne=new rne(20),one=(t,e,n)=>{e=e||"",n=n||"";const i=ane.filter(s=>e.indexOf(s)<0&&n.indexOf(s)<0);if(i.length===0)return!0;const r=sne.getRegExp(`(${i.map(s=>s==="?"?"\\?":s).join("|")})`);let a=!r.test(t);if(!a){const s=t.indexOf(n);s>0&&!r.test(t.substring(0,s))&&(a=!0)}return a},cN=(t,e,n=".")=>{if(!t)return;if(t[e])return Object.prototype.hasOwnProperty.call(t,e)?t[e]:void 0;const i=e.split(n);let r=t;for(let a=0;a-1&&lt?.replace("_","-"),lne={type:"logger",log(t){this.output("log",t)},warn(t){this.output("warn",t)},error(t){this.output("error",t)},output(t,e){console?.[t]?.apply?.(console,e)}};class P_{constructor(e,n={}){this.init(e,n)}init(e,n={}){this.prefix=n.prefix||"i18next:",this.logger=e||lne,this.options=n,this.debug=n.debug}log(...e){return this.forward(e,"log","",!0)}warn(...e){return this.forward(e,"warn","",!0)}error(...e){return this.forward(e,"error","")}deprecate(...e){return this.forward(e,"warn","WARNING DEPRECATED: ",!0)}forward(e,n,i,r){return r&&!this.debug?null:(Vt(e[0])&&(e[0]=`${i}${this.prefix} ${e[0]}`),this.logger[n](e))}create(e){return new P_(this.logger,{prefix:`${this.prefix}:${e}:`,...this.options})}clone(e){return e=e||this.options,e.prefix=e.prefix||this.prefix,new P_(this.logger,e)}}var Ho=new P_;let zS=class{constructor(){this.observers={}}on(e,n){return e.split(" ").forEach(i=>{this.observers[i]||(this.observers[i]=new Map);const r=this.observers[i].get(n)||0;this.observers[i].set(n,r+1)}),this}off(e,n){if(this.observers[e]){if(!n){delete this.observers[e];return}this.observers[e].delete(n)}}emit(e,...n){this.observers[e]&&Array.from(this.observers[e].entries()).forEach(([r,a])=>{for(let s=0;s{for(let s=0;s-1&&this.options.ns.splice(n,1)}getResource(e,n,i,r={}){const a=r.keySeparator!==void 0?r.keySeparator:this.options.keySeparator,s=r.ignoreJSONStructure!==void 0?r.ignoreJSONStructure:this.options.ignoreJSONStructure;let o;e.indexOf(".")>-1?o=e.split("."):(o=[e,n],i&&(Array.isArray(i)?o.push(...i):Vt(i)&&a?o.push(...i.split(a)):o.push(i)));const l=R_(this.data,o);return!l&&!n&&!i&&e.indexOf(".")>-1&&(e=o[0],n=o[1],i=o.slice(2).join(".")),l||!s||!Vt(i)?l:cN(this.data?.[e]?.[n],i,a)}addResource(e,n,i,r,a={silent:!1}){const s=a.keySeparator!==void 0?a.keySeparator:this.options.keySeparator;let o=[e,n];i&&(o=o.concat(s?i.split(s):i)),e.indexOf(".")>-1&&(o=e.split("."),r=n,n=o[1]),this.addNamespaces(n),Zj(this.data,o,r),a.silent||this.emit("added",e,n,i,r)}addResources(e,n,i,r={silent:!1}){for(const a in i)(Vt(i[a])||Array.isArray(i[a]))&&this.addResource(e,n,a,i[a],{silent:!0});r.silent||this.emit("added",e,n,i)}addResourceBundle(e,n,i,r,a,s={silent:!1,skipCopy:!1}){let o=[e,n];e.indexOf(".")>-1&&(o=e.split("."),r=i,i=n,n=o[1]),this.addNamespaces(n);let l=R_(this.data,o)||{};s.skipCopy||(i=JSON.parse(JSON.stringify(i))),r?iG(l,i,a):l={...l,...i},Zj(this.data,o,l),s.silent||this.emit("added",e,n,i)}removeResourceBundle(e,n){this.hasResourceBundle(e,n)&&delete this.data[e][n],this.removeNamespaces(n),this.emit("removed",e,n)}hasResourceBundle(e,n){return this.getResource(e,n)!==void 0}getResourceBundle(e,n){return n||(n=this.options.defaultNS),this.getResource(e,n)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){const n=this.getDataByLanguage(e);return!!(n&&Object.keys(n)||[]).find(r=>n[r]&&Object.keys(n[r]).length>0)}toJSON(){return this.data}}var rG={processors:{},addPostProcessor(t){this.processors[t.name]=t},handle(t,e,n,i,r){return t.forEach(a=>{e=this.processors[a]?.process(e,n,i,r)??e}),e}};const aG=Symbol("i18next/PATH_KEY");function cne(){const t=[],e=Object.create(null);let n;return e.get=(i,r)=>(n?.revoke?.(),r===aG?t:(t.push(r),n=Proxy.revocable(i,e),n.proxy)),Proxy.revocable(Object.create(null),e).proxy}function uN(t,e){const{[aG]:n}=t(cne());return n.join(e?.keySeparator??".")}const Jj={},wA=t=>!Vt(t)&&typeof t!="boolean"&&typeof t!="number";class D_ extends zS{constructor(e,n={}){super(),Qte(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,this),this.options=n,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=Ho.create("translator")}changeLanguage(e){e&&(this.language=e)}exists(e,n={interpolation:{}}){const i={...n};if(e==null)return!1;const r=this.resolve(e,i);if(r?.res===void 0)return!1;const a=wA(r.res);return!(i.returnObjects===!1&&a)}extractFromKey(e,n){let i=n.nsSeparator!==void 0?n.nsSeparator:this.options.nsSeparator;i===void 0&&(i=":");const r=n.keySeparator!==void 0?n.keySeparator:this.options.keySeparator;let a=n.ns||this.options.defaultNS||[];const s=i&&e.indexOf(i)>-1,o=!this.options.userDefinedKeySeparator&&!n.keySeparator&&!this.options.userDefinedNsSeparator&&!n.nsSeparator&&!one(e,i,r);if(s&&!o){const l=e.match(this.interpolator.nestingRegexp);if(l&&l.length>0)return{key:e,namespaces:Vt(a)?[a]:a};const c=e.split(i);(i!==r||i===r&&this.options.ns.indexOf(c[0])>-1)&&(a=c.shift()),e=c.join(r)}return{key:e,namespaces:Vt(a)?[a]:a}}translate(e,n,i){let r=typeof n=="object"?{...n}:n;if(typeof r!="object"&&this.options.overloadTranslationOptionHandler&&(r=this.options.overloadTranslationOptionHandler(arguments)),typeof r=="object"&&(r={...r}),r||(r={}),e==null)return"";typeof e=="function"&&(e=uN(e,{...this.options,...r})),Array.isArray(e)||(e=[String(e)]);const a=r.returnDetails!==void 0?r.returnDetails:this.options.returnDetails,s=r.keySeparator!==void 0?r.keySeparator:this.options.keySeparator,{key:o,namespaces:l}=this.extractFromKey(e[e.length-1],r),c=l[l.length-1];let u=r.nsSeparator!==void 0?r.nsSeparator:this.options.nsSeparator;u===void 0&&(u=":");const f=r.lng||this.language,p=r.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(f?.toLowerCase()==="cimode")return p?a?{res:`${c}${u}${o}`,usedKey:o,exactUsedKey:o,usedLng:f,usedNS:c,usedParams:this.getUsedParamsDetails(r)}:`${c}${u}${o}`:a?{res:o,usedKey:o,exactUsedKey:o,usedLng:f,usedNS:c,usedParams:this.getUsedParamsDetails(r)}:o;const g=this.resolve(e,r);let y=g?.res;const _=g?.usedKey||o,v=g?.exactUsedKey||o,x=["[object Number]","[object Function]","[object RegExp]"],M=r.joinArrays!==void 0?r.joinArrays:this.options.joinArrays,w=!this.i18nFormat||this.i18nFormat.handleAsObject,E=r.count!==void 0&&!Vt(r.count),T=D_.hasDefaultValue(r),P=E?this.pluralResolver.getSuffix(f,r.count,r):"",N=r.ordinal&&E?this.pluralResolver.getSuffix(f,r.count,{ordinal:!1}):"",U=E&&!r.ordinal&&r.count===0,C=U&&r[`defaultValue${this.options.pluralSeparator}zero`]||r[`defaultValue${P}`]||r[`defaultValue${N}`]||r.defaultValue;let D=y;w&&!y&&T&&(D=C);const F=wA(D),I=Object.prototype.toString.apply(D);if(w&&D&&F&&x.indexOf(I)<0&&!(Vt(M)&&Array.isArray(D))){if(!r.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const q=this.options.returnedObjectHandler?this.options.returnedObjectHandler(_,D,{...r,ns:l}):`key '${o} (${this.language})' returned an object instead of string.`;return a?(g.res=q,g.usedParams=this.getUsedParamsDetails(r),g):q}if(s){const q=Array.isArray(D),L=q?[]:{},H=q?v:_;for(const V in D)if(Object.prototype.hasOwnProperty.call(D,V)){const G=`${H}${s}${V}`;T&&!y?L[V]=this.translate(G,{...r,defaultValue:wA(C)?C[V]:void 0,joinArrays:!1,ns:l}):L[V]=this.translate(G,{...r,joinArrays:!1,ns:l}),L[V]===G&&(L[V]=D[V])}y=L}}else if(w&&Vt(M)&&Array.isArray(y))y=y.join(M),y&&(y=this.extendTranslation(y,e,r,i));else{let q=!1,L=!1;!this.isValidLookup(y)&&T&&(q=!0,y=C),this.isValidLookup(y)||(L=!0,y=o);const V=(r.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&L?void 0:y,G=T&&C!==y&&this.options.updateMissing;if(L||q||G){if(this.logger.log(G?"updateKey":"missingKey",f,c,o,G?C:y),s){const B=this.resolve(o,{...r,keySeparator:!1});B&&B.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let K=[];const Z=this.languageUtils.getFallbackCodes(this.options.fallbackLng,r.lng||this.language);if(this.options.saveMissingTo==="fallback"&&Z&&Z[0])for(let B=0;B{const ce=T&&ae!==y?ae:V;this.options.missingKeyHandler?this.options.missingKeyHandler(B,c,X,ce,G,r):this.backendConnector?.saveMissing&&this.backendConnector.saveMissing(B,c,X,ce,G,r),this.emit("missingKey",B,c,X,y)};this.options.saveMissing&&(this.options.saveMissingPlurals&&E?K.forEach(B=>{const X=this.pluralResolver.getSuffixes(B,r);U&&r[`defaultValue${this.options.pluralSeparator}zero`]&&X.indexOf(`${this.options.pluralSeparator}zero`)<0&&X.push(`${this.options.pluralSeparator}zero`),X.forEach(ae=>{se([B],o+ae,r[`defaultValue${ae}`]||C)})}):se(K,o,C))}y=this.extendTranslation(y,e,r,g,i),L&&y===o&&this.options.appendNamespaceToMissingKey&&(y=`${c}${u}${o}`),(L||q)&&this.options.parseMissingKeyHandler&&(y=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${c}${u}${o}`:o,q?y:void 0,r))}return a?(g.res=y,g.usedParams=this.getUsedParamsDetails(r),g):y}extendTranslation(e,n,i,r,a){if(this.i18nFormat?.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...i},i.lng||this.language||r.usedLng,r.usedNS,r.usedKey,{resolved:r});else if(!i.skipInterpolation){i.interpolation&&this.interpolator.init({...i,interpolation:{...this.options.interpolation,...i.interpolation}});const l=Vt(e)&&(i?.interpolation?.skipOnVariables!==void 0?i.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let c;if(l){const f=e.match(this.interpolator.nestingRegexp);c=f&&f.length}let u=i.replace&&!Vt(i.replace)?i.replace:i;if(this.options.interpolation.defaultVariables&&(u={...this.options.interpolation.defaultVariables,...u}),e=this.interpolator.interpolate(e,u,i.lng||this.language||r.usedLng,i),l){const f=e.match(this.interpolator.nestingRegexp),p=f&&f.length;ca?.[0]===f[0]&&!i.context?(this.logger.warn(`It seems you are nesting recursively key: ${f[0]} in key: ${n[0]}`),null):this.translate(...f,n),i)),i.interpolation&&this.interpolator.reset()}const s=i.postProcess||this.options.postProcess,o=Vt(s)?[s]:s;return e!=null&&o?.length&&i.applyPostProcessor!==!1&&(e=rG.handle(o,e,n,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...r,usedParams:this.getUsedParamsDetails(i)},...i}:i,this)),e}resolve(e,n={}){let i,r,a,s,o;return Vt(e)&&(e=[e]),e.forEach(l=>{if(this.isValidLookup(i))return;const c=this.extractFromKey(l,n),u=c.key;r=u;let f=c.namespaces;this.options.fallbackNS&&(f=f.concat(this.options.fallbackNS));const p=n.count!==void 0&&!Vt(n.count),g=p&&!n.ordinal&&n.count===0,y=n.context!==void 0&&(Vt(n.context)||typeof n.context=="number")&&n.context!=="",_=n.lngs?n.lngs:this.languageUtils.toResolveHierarchy(n.lng||this.language,n.fallbackLng);f.forEach(v=>{this.isValidLookup(i)||(o=v,!Jj[`${_[0]}-${v}`]&&this.utils?.hasLoadedNamespace&&!this.utils?.hasLoadedNamespace(o)&&(Jj[`${_[0]}-${v}`]=!0,this.logger.warn(`key "${r}" for languages "${_.join(", ")}" won't get resolved as namespace "${o}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),_.forEach(x=>{if(this.isValidLookup(i))return;s=x;const M=[u];if(this.i18nFormat?.addLookupKeys)this.i18nFormat.addLookupKeys(M,u,x,v,n);else{let E;p&&(E=this.pluralResolver.getSuffix(x,n.count,n));const T=`${this.options.pluralSeparator}zero`,P=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(p&&(n.ordinal&&E.indexOf(P)===0&&M.push(u+E.replace(P,this.options.pluralSeparator)),M.push(u+E),g&&M.push(u+T)),y){const N=`${u}${this.options.contextSeparator||"_"}${n.context}`;M.push(N),p&&(n.ordinal&&E.indexOf(P)===0&&M.push(N+E.replace(P,this.options.pluralSeparator)),M.push(N+E),g&&M.push(N+T))}}let w;for(;w=M.pop();)this.isValidLookup(i)||(a=w,i=this.getResource(x,v,w,n))}))})}),{res:i,usedKey:r,exactUsedKey:a,usedLng:s,usedNS:o}}isValidLookup(e){return e!==void 0&&!(!this.options.returnNull&&e===null)&&!(!this.options.returnEmptyString&&e==="")}getResource(e,n,i,r={}){return this.i18nFormat?.getResource?this.i18nFormat.getResource(e,n,i,r):this.resourceStore.getResource(e,n,i,r)}getUsedParamsDetails(e={}){const n=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],i=e.replace&&!Vt(e.replace);let r=i?e.replace:e;if(i&&typeof e.count<"u"&&(r.count=e.count),this.options.interpolation.defaultVariables&&(r={...this.options.interpolation.defaultVariables,...r}),!i){r={...r};for(const a of n)delete r[a]}return r}static hasDefaultValue(e){const n="defaultValue";for(const i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&n===i.substring(0,n.length)&&e[i]!==void 0)return!0;return!1}}class e4{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=Ho.create("languageUtils")}getScriptPartFromCode(e){if(e=O0(e),!e||e.indexOf("-")<0)return null;const n=e.split("-");return n.length===2||(n.pop(),n[n.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(n.join("-"))}getLanguagePartFromCode(e){if(e=O0(e),!e||e.indexOf("-")<0)return e;const n=e.split("-");return this.formatLanguageCode(n[0])}formatLanguageCode(e){if(Vt(e)&&e.indexOf("-")>-1){let n;try{n=Intl.getCanonicalLocales(e)[0]}catch{}return n&&this.options.lowerCaseLng&&(n=n.toLowerCase()),n||(this.options.lowerCaseLng?e.toLowerCase():e)}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}isSupportedCode(e){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}getBestMatchFromCodes(e){if(!e)return null;let n;return e.forEach(i=>{if(n)return;const r=this.formatLanguageCode(i);(!this.options.supportedLngs||this.isSupportedCode(r))&&(n=r)}),!n&&this.options.supportedLngs&&e.forEach(i=>{if(n)return;const r=this.getScriptPartFromCode(i);if(this.isSupportedCode(r))return n=r;const a=this.getLanguagePartFromCode(i);if(this.isSupportedCode(a))return n=a;n=this.options.supportedLngs.find(s=>{if(s===a)return s;if(!(s.indexOf("-")<0&&a.indexOf("-")<0)&&(s.indexOf("-")>0&&a.indexOf("-")<0&&s.substring(0,s.indexOf("-"))===a||s.indexOf(a)===0&&a.length>1))return s})}),n||(n=this.getFallbackCodes(this.options.fallbackLng)[0]),n}getFallbackCodes(e,n){if(!e)return[];if(typeof e=="function"&&(e=e(n)),Vt(e)&&(e=[e]),Array.isArray(e))return e;if(!n)return e.default||[];let i=e[n];return i||(i=e[this.getScriptPartFromCode(n)]),i||(i=e[this.formatLanguageCode(n)]),i||(i=e[this.getLanguagePartFromCode(n)]),i||(i=e.default),i||[]}toResolveHierarchy(e,n){const i=this.getFallbackCodes((n===!1?[]:n)||this.options.fallbackLng||[],e),r=[],a=s=>{s&&(this.isSupportedCode(s)?r.push(s):this.logger.warn(`rejecting language code not found in supportedLngs: ${s}`))};return Vt(e)&&(e.indexOf("-")>-1||e.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&a(this.formatLanguageCode(e)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&a(this.getScriptPartFromCode(e)),this.options.load!=="currentOnly"&&a(this.getLanguagePartFromCode(e))):Vt(e)&&a(this.formatLanguageCode(e)),i.forEach(s=>{r.indexOf(s)<0&&a(this.formatLanguageCode(s))}),r}}const t4={zero:0,one:1,two:2,few:3,many:4,other:5},n4={select:t=>t===1?"one":"other",resolvedOptions:()=>({pluralCategories:["one","other"]})};class une{constructor(e,n={}){this.languageUtils=e,this.options=n,this.logger=Ho.create("pluralResolver"),this.pluralRulesCache={}}addRule(e,n){this.rules[e]=n}clearCache(){this.pluralRulesCache={}}getRule(e,n={}){const i=O0(e==="dev"?"en":e),r=n.ordinal?"ordinal":"cardinal",a=JSON.stringify({cleanedCode:i,type:r});if(a in this.pluralRulesCache)return this.pluralRulesCache[a];let s;try{s=new Intl.PluralRules(i,{type:r})}catch{if(!Intl)return this.logger.error("No Intl support, please use an Intl polyfill!"),n4;if(!e.match(/-|_/))return n4;const l=this.languageUtils.getLanguagePartFromCode(e);s=this.getRule(l,n)}return this.pluralRulesCache[a]=s,s}needsPlural(e,n={}){let i=this.getRule(e,n);return i||(i=this.getRule("dev",n)),i?.resolvedOptions().pluralCategories.length>1}getPluralFormsOfKey(e,n,i={}){return this.getSuffixes(e,i).map(r=>`${n}${r}`)}getSuffixes(e,n={}){let i=this.getRule(e,n);return i||(i=this.getRule("dev",n)),i?i.resolvedOptions().pluralCategories.sort((r,a)=>t4[r]-t4[a]).map(r=>`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:""}${r}`):[]}getSuffix(e,n,i={}){const r=this.getRule(e,i);return r?`${this.options.prepend}${i.ordinal?`ordinal${this.options.prepend}`:""}${r.select(n)}`:(this.logger.warn(`no plural rule found for: ${e}`),this.getSuffix("dev",n,i))}}const i4=(t,e,n,i=".",r=!0)=>{let a=tne(t,e,n);return!a&&r&&Vt(n)&&(a=cN(t,n,i),a===void 0&&(a=cN(e,n,i))),a},MA=t=>t.replace(/\$/g,"$$$$");class dne{constructor(e={}){this.logger=Ho.create("interpolator"),this.options=e,this.format=e?.interpolation?.format||(n=>n),this.init(e)}init(e={}){e.interpolation||(e.interpolation={escapeValue:!0});const{escape:n,escapeValue:i,useRawValueToEscape:r,prefix:a,prefixEscaped:s,suffix:o,suffixEscaped:l,formatSeparator:c,unescapeSuffix:u,unescapePrefix:f,nestingPrefix:p,nestingPrefixEscaped:g,nestingSuffix:y,nestingSuffixEscaped:_,nestingOptionsSeparator:v,maxReplaces:x,alwaysFormat:M}=e.interpolation;this.escape=n!==void 0?n:ine,this.escapeValue=i!==void 0?i:!0,this.useRawValueToEscape=r!==void 0?r:!1,this.prefix=a?Mh(a):s||"{{",this.suffix=o?Mh(o):l||"}}",this.formatSeparator=c||",",this.unescapePrefix=u?"":f||"-",this.unescapeSuffix=this.unescapePrefix?"":u||"",this.nestingPrefix=p?Mh(p):g||Mh("$t("),this.nestingSuffix=y?Mh(y):_||Mh(")"),this.nestingOptionsSeparator=v||",",this.maxReplaces=x||1e3,this.alwaysFormat=M!==void 0?M:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const e=(n,i)=>n?.source===i?(n.lastIndex=0,n):new RegExp(i,"g");this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`)}interpolate(e,n,i,r){let a,s,o;const l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},c=g=>{if(g.indexOf(this.formatSeparator)<0){const x=i4(n,l,g,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(x,void 0,i,{...r,...n,interpolationkey:g}):x}const y=g.split(this.formatSeparator),_=y.shift().trim(),v=y.join(this.formatSeparator).trim();return this.format(i4(n,l,_,this.options.keySeparator,this.options.ignoreJSONStructure),v,i,{...r,...n,interpolationkey:_})};this.resetRegExp();const u=r?.missingInterpolationHandler||this.options.missingInterpolationHandler,f=r?.interpolation?.skipOnVariables!==void 0?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:g=>MA(g)},{regex:this.regexp,safeValue:g=>this.escapeValue?MA(this.escape(g)):MA(g)}].forEach(g=>{for(o=0;a=g.regex.exec(e);){const y=a[1].trim();if(s=c(y),s===void 0)if(typeof u=="function"){const v=u(e,a,r);s=Vt(v)?v:""}else if(r&&Object.prototype.hasOwnProperty.call(r,y))s="";else if(f){s=a[0];continue}else this.logger.warn(`missed to pass in variable ${y} for interpolating ${e}`),s="";else!Vt(s)&&!this.useRawValueToEscape&&(s=Xj(s));const _=g.safeValue(s);if(e=e.replace(a[0],_),f?(g.regex.lastIndex+=s.length,g.regex.lastIndex-=a[0].length):g.regex.lastIndex=0,o++,o>=this.maxReplaces)break}}),e}nest(e,n,i={}){let r,a,s;const o=(l,c)=>{const u=this.nestingOptionsSeparator;if(l.indexOf(u)<0)return l;const f=l.split(new RegExp(`${u}[ ]*{`));let p=`{${f[1]}`;l=f[0],p=this.interpolate(p,s);const g=p.match(/'/g),y=p.match(/"/g);((g?.length??0)%2===0&&!y||y.length%2!==0)&&(p=p.replace(/'/g,'"'));try{s=JSON.parse(p),c&&(s={...c,...s})}catch(_){return this.logger.warn(`failed parsing options string in nesting for key ${l}`,_),`${l}${u}${p}`}return s.defaultValue&&s.defaultValue.indexOf(this.prefix)>-1&&delete s.defaultValue,l};for(;r=this.nestingRegexp.exec(e);){let l=[];s={...i},s=s.replace&&!Vt(s.replace)?s.replace:s,s.applyPostProcessor=!1,delete s.defaultValue;const c=/{.*}/.test(r[1])?r[1].lastIndexOf("}")+1:r[1].indexOf(this.formatSeparator);if(c!==-1&&(l=r[1].slice(c).split(this.formatSeparator).map(u=>u.trim()).filter(Boolean),r[1]=r[1].slice(0,c)),a=n(o.call(this,r[1].trim(),s),s),a&&r[0]===e&&!Vt(a))return a;Vt(a)||(a=Xj(a)),a||(this.logger.warn(`missed to resolve ${r[1]} for nesting ${e}`),a=""),l.length&&(a=l.reduce((u,f)=>this.format(u,f,i.lng,{...i,interpolationkey:r[1].trim()}),a.trim())),e=e.replace(r[0],a),this.regexp.lastIndex=0}return e}}const fne=t=>{let e=t.toLowerCase().trim();const n={};if(t.indexOf("(")>-1){const i=t.split("(");e=i[0].toLowerCase().trim();const r=i[1].substring(0,i[1].length-1);e==="currency"&&r.indexOf(":")<0?n.currency||(n.currency=r.trim()):e==="relativetime"&&r.indexOf(":")<0?n.range||(n.range=r.trim()):r.split(";").forEach(s=>{if(s){const[o,...l]=s.split(":"),c=l.join(":").trim().replace(/^'+|'+$/g,""),u=o.trim();n[u]||(n[u]=c),c==="false"&&(n[u]=!1),c==="true"&&(n[u]=!0),isNaN(c)||(n[u]=parseInt(c,10))}})}return{formatName:e,formatOptions:n}},r4=t=>{const e={};return(n,i,r)=>{let a=r;r&&r.interpolationkey&&r.formatParams&&r.formatParams[r.interpolationkey]&&r[r.interpolationkey]&&(a={...a,[r.interpolationkey]:void 0});const s=i+JSON.stringify(a);let o=e[s];return o||(o=t(O0(i),r),e[s]=o),o(n)}},hne=t=>(e,n,i)=>t(O0(n),i)(e);class pne{constructor(e={}){this.logger=Ho.create("formatter"),this.options=e,this.init(e)}init(e,n={interpolation:{}}){this.formatSeparator=n.interpolation.formatSeparator||",";const i=n.cacheInBuiltFormats?r4:hne;this.formats={number:i((r,a)=>{const s=new Intl.NumberFormat(r,{...a});return o=>s.format(o)}),currency:i((r,a)=>{const s=new Intl.NumberFormat(r,{...a,style:"currency"});return o=>s.format(o)}),datetime:i((r,a)=>{const s=new Intl.DateTimeFormat(r,{...a});return o=>s.format(o)}),relativetime:i((r,a)=>{const s=new Intl.RelativeTimeFormat(r,{...a});return o=>s.format(o,a.range||"day")}),list:i((r,a)=>{const s=new Intl.ListFormat(r,{...a});return o=>s.format(o)})}}add(e,n){this.formats[e.toLowerCase().trim()]=n}addCached(e,n){this.formats[e.toLowerCase().trim()]=r4(n)}format(e,n,i,r={}){const a=n.split(this.formatSeparator);if(a.length>1&&a[0].indexOf("(")>1&&a[0].indexOf(")")<0&&a.find(o=>o.indexOf(")")>-1)){const o=a.findIndex(l=>l.indexOf(")")>-1);a[0]=[a[0],...a.splice(1,o)].join(this.formatSeparator)}return a.reduce((o,l)=>{const{formatName:c,formatOptions:u}=fne(l);if(this.formats[c]){let f=o;try{const p=r?.formatParams?.[r.interpolationkey]||{},g=p.locale||p.lng||r.locale||r.lng||i;f=this.formats[c](o,g,{...u,...r,...p})}catch(p){this.logger.warn(p)}return f}else this.logger.warn(`there was no format function for ${c}`);return o},e)}}const mne=(t,e)=>{t.pending[e]!==void 0&&(delete t.pending[e],t.pendingCount--)};class gne extends zS{constructor(e,n,i,r={}){super(),this.backend=e,this.store=n,this.services=i,this.languageUtils=i.languageUtils,this.options=r,this.logger=Ho.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=r.maxParallelReads||10,this.readingCalls=0,this.maxRetries=r.maxRetries>=0?r.maxRetries:5,this.retryTimeout=r.retryTimeout>=1?r.retryTimeout:350,this.state={},this.queue=[],this.backend?.init?.(i,r.backend,r)}queueLoad(e,n,i,r){const a={},s={},o={},l={};return e.forEach(c=>{let u=!0;n.forEach(f=>{const p=`${c}|${f}`;!i.reload&&this.store.hasResourceBundle(c,f)?this.state[p]=2:this.state[p]<0||(this.state[p]===1?s[p]===void 0&&(s[p]=!0):(this.state[p]=1,u=!1,s[p]===void 0&&(s[p]=!0),a[p]===void 0&&(a[p]=!0),l[f]===void 0&&(l[f]=!0)))}),u||(o[c]=!0)}),(Object.keys(a).length||Object.keys(s).length)&&this.queue.push({pending:s,pendingCount:Object.keys(s).length,loaded:{},errors:[],callback:r}),{toLoad:Object.keys(a),pending:Object.keys(s),toLoadLanguages:Object.keys(o),toLoadNamespaces:Object.keys(l)}}loaded(e,n,i){const r=e.split("|"),a=r[0],s=r[1];n&&this.emit("failedLoading",a,s,n),!n&&i&&this.store.addResourceBundle(a,s,i,void 0,void 0,{skipCopy:!0}),this.state[e]=n?-1:2,n&&i&&(this.state[e]=0);const o={};this.queue.forEach(l=>{ene(l.loaded,[a],s),mne(l,e),n&&l.errors.push(n),l.pendingCount===0&&!l.done&&(Object.keys(l.loaded).forEach(c=>{o[c]||(o[c]={});const u=l.loaded[c];u.length&&u.forEach(f=>{o[c][f]===void 0&&(o[c][f]=!0)})}),l.done=!0,l.errors.length?l.callback(l.errors):l.callback())}),this.emit("loaded",o),this.queue=this.queue.filter(l=>!l.done)}read(e,n,i,r=0,a=this.retryTimeout,s){if(!e.length)return s(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:e,ns:n,fcName:i,tried:r,wait:a,callback:s});return}this.readingCalls++;const o=(c,u)=>{if(this.readingCalls--,this.waitingReads.length>0){const f=this.waitingReads.shift();this.read(f.lng,f.ns,f.fcName,f.tried,f.wait,f.callback)}if(c&&u&&r{this.read.call(this,e,n,i,r+1,a*2,s)},a);return}s(c,u)},l=this.backend[i].bind(this.backend);if(l.length===2){try{const c=l(e,n);c&&typeof c.then=="function"?c.then(u=>o(null,u)).catch(o):o(null,c)}catch(c){o(c)}return}return l(e,n,o)}prepareLoading(e,n,i={},r){if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),r&&r();Vt(e)&&(e=this.languageUtils.toResolveHierarchy(e)),Vt(n)&&(n=[n]);const a=this.queueLoad(e,n,i,r);if(!a.toLoad.length)return a.pending.length||r(),null;a.toLoad.forEach(s=>{this.loadOne(s)})}load(e,n,i){this.prepareLoading(e,n,{},i)}reload(e,n,i){this.prepareLoading(e,n,{reload:!0},i)}loadOne(e,n=""){const i=e.split("|"),r=i[0],a=i[1];this.read(r,a,"read",void 0,void 0,(s,o)=>{s&&this.logger.warn(`${n}loading namespace ${a} for language ${r} failed`,s),!s&&o&&this.logger.log(`${n}loaded namespace ${a} for language ${r}`,o),this.loaded(e,s,o)})}saveMissing(e,n,i,r,a,s={},o=()=>{}){if(this.services?.utils?.hasLoadedNamespace&&!this.services?.utils?.hasLoadedNamespace(n)){this.logger.warn(`did not save key "${i}" as the namespace "${n}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(i==null||i==="")){if(this.backend?.create){const l={...s,isUpdate:a},c=this.backend.create.bind(this.backend);if(c.length<6)try{let u;c.length===5?u=c(e,n,i,r,l):u=c(e,n,i,r),u&&typeof u.then=="function"?u.then(f=>o(null,f)).catch(o):o(null,u)}catch(u){o(u)}else c(e,n,i,r,o,l)}!e||!e[0]||this.store.addResource(e[0],n,i,r)}}}const a4=()=>({debug:!1,initAsync:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:t=>{let e={};if(typeof t[1]=="object"&&(e=t[1]),Vt(t[1])&&(e.defaultValue=t[1]),Vt(t[2])&&(e.tDescription=t[2]),typeof t[2]=="object"||typeof t[3]=="object"){const n=t[3]||t[2];Object.keys(n).forEach(i=>{e[i]=n[i]})}return e},interpolation:{escapeValue:!0,format:t=>t,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),s4=t=>(Vt(t.ns)&&(t.ns=[t.ns]),Vt(t.fallbackLng)&&(t.fallbackLng=[t.fallbackLng]),Vt(t.fallbackNS)&&(t.fallbackNS=[t.fallbackNS]),t.supportedLngs?.indexOf?.("cimode")<0&&(t.supportedLngs=t.supportedLngs.concat(["cimode"])),typeof t.initImmediate=="boolean"&&(t.initAsync=t.initImmediate),t),Ty=()=>{},xne=t=>{Object.getOwnPropertyNames(Object.getPrototypeOf(t)).forEach(n=>{typeof t[n]=="function"&&(t[n]=t[n].bind(t))})};class d0 extends zS{constructor(e={},n){if(super(),this.options=s4(e),this.services={},this.logger=Ho,this.modules={external:[]},xne(this),n&&!this.isInitialized&&!e.isClone){if(!this.options.initAsync)return this.init(e,n),this;setTimeout(()=>{this.init(e,n)},0)}}init(e={},n){this.isInitializing=!0,typeof e=="function"&&(n=e,e={}),e.defaultNS==null&&e.ns&&(Vt(e.ns)?e.defaultNS=e.ns:e.ns.indexOf("translation")<0&&(e.defaultNS=e.ns[0]));const i=a4();this.options={...i,...this.options,...s4(e)},this.options.interpolation={...i.interpolation,...this.options.interpolation},e.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=e.keySeparator),e.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=e.nsSeparator);const r=c=>c?typeof c=="function"?new c:c:null;if(!this.options.isClone){this.modules.logger?Ho.init(r(this.modules.logger),this.options):Ho.init(null,this.options);let c;this.modules.formatter?c=this.modules.formatter:c=pne;const u=new e4(this.options);this.store=new Qj(this.options.resources,this.options);const f=this.services;f.logger=Ho,f.resourceStore=this.store,f.languageUtils=u,f.pluralResolver=new une(u,{prepend:this.options.pluralSeparator,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),this.options.interpolation.format&&this.options.interpolation.format!==i.interpolation.format&&this.logger.deprecate("init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting"),c&&(!this.options.interpolation.format||this.options.interpolation.format===i.interpolation.format)&&(f.formatter=r(c),f.formatter.init&&f.formatter.init(f,this.options),this.options.interpolation.format=f.formatter.format.bind(f.formatter)),f.interpolator=new dne(this.options),f.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},f.backendConnector=new gne(r(this.modules.backend),f.resourceStore,f,this.options),f.backendConnector.on("*",(g,...y)=>{this.emit(g,...y)}),this.modules.languageDetector&&(f.languageDetector=r(this.modules.languageDetector),f.languageDetector.init&&f.languageDetector.init(f,this.options.detection,this.options)),this.modules.i18nFormat&&(f.i18nFormat=r(this.modules.i18nFormat),f.i18nFormat.init&&f.i18nFormat.init(this)),this.translator=new D_(this.services,this.options),this.translator.on("*",(g,...y)=>{this.emit(g,...y)}),this.modules.external.forEach(g=>{g.init&&g.init(this)})}if(this.format=this.options.interpolation.format,n||(n=Ty),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const c=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);c.length>0&&c[0]!=="dev"&&(this.options.lng=c[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(c=>{this[c]=(...u)=>this.store[c](...u)}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(c=>{this[c]=(...u)=>(this.store[c](...u),this)});const o=Tg(),l=()=>{const c=(u,f)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),o.resolve(f),n(u,f)};if(this.languages&&!this.isInitialized)return c(null,this.t.bind(this));this.changeLanguage(this.options.lng,c)};return this.options.resources||!this.options.initAsync?l():setTimeout(l,0),o}loadResources(e,n=Ty){let i=n;const r=Vt(e)?e:this.language;if(typeof e=="function"&&(i=e),!this.options.resources||this.options.partialBundledLanguages){if(r?.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return i();const a=[],s=o=>{if(!o||o==="cimode")return;this.services.languageUtils.toResolveHierarchy(o).forEach(c=>{c!=="cimode"&&a.indexOf(c)<0&&a.push(c)})};r?s(r):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(l=>s(l)),this.options.preload?.forEach?.(o=>s(o)),this.services.backendConnector.load(a,this.options.ns,o=>{!o&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),i(o)})}else i(null)}reloadResources(e,n,i){const r=Tg();return typeof e=="function"&&(i=e,e=void 0),typeof n=="function"&&(i=n,n=void 0),e||(e=this.languages),n||(n=this.options.ns),i||(i=Ty),this.services.backendConnector.reload(e,n,a=>{r.resolve(),i(a)}),r}use(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return e.type==="backend"&&(this.modules.backend=e),(e.type==="logger"||e.log&&e.warn&&e.error)&&(this.modules.logger=e),e.type==="languageDetector"&&(this.modules.languageDetector=e),e.type==="i18nFormat"&&(this.modules.i18nFormat=e),e.type==="postProcessor"&&rG.addPostProcessor(e),e.type==="formatter"&&(this.modules.formatter=e),e.type==="3rdParty"&&this.modules.external.push(e),this}setResolvedLanguage(e){if(!(!e||!this.languages)&&!(["cimode","dev"].indexOf(e)>-1)){for(let n=0;n-1)&&this.store.hasLanguageSomeTranslations(i)){this.resolvedLanguage=i;break}}!this.resolvedLanguage&&this.languages.indexOf(e)<0&&this.store.hasLanguageSomeTranslations(e)&&(this.resolvedLanguage=e,this.languages.unshift(e))}}changeLanguage(e,n){this.isLanguageChangingTo=e;const i=Tg();this.emit("languageChanging",e);const r=o=>{this.language=o,this.languages=this.services.languageUtils.toResolveHierarchy(o),this.resolvedLanguage=void 0,this.setResolvedLanguage(o)},a=(o,l)=>{l?this.isLanguageChangingTo===e&&(r(l),this.translator.changeLanguage(l),this.isLanguageChangingTo=void 0,this.emit("languageChanged",l),this.logger.log("languageChanged",l)):this.isLanguageChangingTo=void 0,i.resolve((...c)=>this.t(...c)),n&&n(o,(...c)=>this.t(...c))},s=o=>{!e&&!o&&this.services.languageDetector&&(o=[]);const l=Vt(o)?o:o&&o[0],c=this.store.hasLanguageSomeTranslations(l)?l:this.services.languageUtils.getBestMatchFromCodes(Vt(o)?[o]:o);c&&(this.language||r(c),this.translator.language||this.translator.changeLanguage(c),this.services.languageDetector?.cacheUserLanguage?.(c)),this.loadResources(c,u=>{a(u,c)})};return!e&&this.services.languageDetector&&!this.services.languageDetector.async?s(this.services.languageDetector.detect()):!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(s):this.services.languageDetector.detect(s):s(e),i}getFixedT(e,n,i){const r=(a,s,...o)=>{let l;typeof s!="object"?l=this.options.overloadTranslationOptionHandler([a,s].concat(o)):l={...s},l.lng=l.lng||r.lng,l.lngs=l.lngs||r.lngs,l.ns=l.ns||r.ns,l.keyPrefix!==""&&(l.keyPrefix=l.keyPrefix||i||r.keyPrefix);const c=this.options.keySeparator||".";let u;return l.keyPrefix&&Array.isArray(a)?u=a.map(f=>(typeof f=="function"&&(f=uN(f,{...this.options,...s})),`${l.keyPrefix}${c}${f}`)):(typeof a=="function"&&(a=uN(a,{...this.options,...s})),u=l.keyPrefix?`${l.keyPrefix}${c}${a}`:a),this.t(u,l)};return Vt(e)?r.lng=e:r.lngs=e,r.ns=n,r.keyPrefix=i,r}t(...e){return this.translator?.translate(...e)}exists(...e){return this.translator?.exists(...e)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e,n={}){if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const i=n.lng||this.resolvedLanguage||this.languages[0],r=this.options?this.options.fallbackLng:!1,a=this.languages[this.languages.length-1];if(i.toLowerCase()==="cimode")return!0;const s=(o,l)=>{const c=this.services.backendConnector.state[`${o}|${l}`];return c===-1||c===0||c===2};if(n.precheck){const o=n.precheck(this,s);if(o!==void 0)return o}return!!(this.hasResourceBundle(i,e)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||s(i,e)&&(!r||s(a,e)))}loadNamespaces(e,n){const i=Tg();return this.options.ns?(Vt(e)&&(e=[e]),e.forEach(r=>{this.options.ns.indexOf(r)<0&&this.options.ns.push(r)}),this.loadResources(r=>{i.resolve(),n&&n(r)}),i):(n&&n(),Promise.resolve())}loadLanguages(e,n){const i=Tg();Vt(e)&&(e=[e]);const r=this.options.preload||[],a=e.filter(s=>r.indexOf(s)<0&&this.services.languageUtils.isSupportedCode(s));return a.length?(this.options.preload=r.concat(a),this.loadResources(s=>{i.resolve(),n&&n(s)}),i):(n&&n(),Promise.resolve())}dir(e){if(e||(e=this.resolvedLanguage||(this.languages?.length>0?this.languages[0]:this.language)),!e)return"rtl";try{const r=new Intl.Locale(e);if(r&&r.getTextInfo){const a=r.getTextInfo();if(a&&a.direction)return a.direction}}catch{}const n=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],i=this.services?.languageUtils||new e4(a4());return e.toLowerCase().indexOf("-latn")>1?"ltr":n.indexOf(i.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(e={},n){const i=new d0(e,n);return i.createInstance=d0.createInstance,i}cloneInstance(e={},n=Ty){const i=e.forkResourceStore;i&&delete e.forkResourceStore;const r={...this.options,...e,isClone:!0},a=new d0(r);if((e.debug!==void 0||e.prefix!==void 0)&&(a.logger=a.logger.clone(e)),["store","services","language"].forEach(o=>{a[o]=this[o]}),a.services={...this.services},a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},i){const o=Object.keys(this.store.data).reduce((l,c)=>(l[c]={...this.store.data[c]},l[c]=Object.keys(l[c]).reduce((u,f)=>(u[f]={...l[c][f]},u),l[c]),l),{});a.store=new Qj(o,r),a.services.resourceStore=a.store}return a.translator=new D_(a.services,r),a.translator.on("*",(o,...l)=>{a.emit(o,...l)}),a.init(r,n),a.translator.options=r,a.translator.backendConnector.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const wa=d0.createInstance();wa.createInstance;wa.dir;wa.init;wa.loadResources;wa.reloadResources;wa.use;wa.changeLanguage;wa.getFixedT;wa.t;wa.exists;wa.setDefaultNamespace;wa.hasLoadedNamespace;wa.loadNamespaces;wa.loadLanguages;const vne=(t,e,n,i)=>{const r=[n,{code:e,...i||{}}];if(t?.services?.logger?.forward)return t.services.logger.forward(r,"warn","react-i18next::",!0);_f(r[0])&&(r[0]=`react-i18next:: ${r[0]}`),t?.services?.logger?.warn?t.services.logger.warn(...r):console?.warn&&console.warn(...r)},o4={},sG=(t,e,n,i)=>{_f(n)&&o4[n]||(_f(n)&&(o4[n]=new Date),vne(t,e,n,i))},oG=(t,e)=>()=>{if(t.isInitialized)e();else{const n=()=>{setTimeout(()=>{t.off("initialized",n)},0),e()};t.on("initialized",n)}},dN=(t,e,n)=>{t.loadNamespaces(e,oG(t,n))},l4=(t,e,n,i)=>{if(_f(n)&&(n=[n]),t.options.preload&&t.options.preload.indexOf(e)>-1)return dN(t,n,i);n.forEach(r=>{t.options.ns.indexOf(r)<0&&t.options.ns.push(r)}),t.loadLanguages(e,oG(t,i))},yne=(t,e,n={})=>!e.languages||!e.languages.length?(sG(e,"NO_LANGUAGES","i18n.languages were undefined or empty",{languages:e.languages}),!0):e.hasLoadedNamespace(t,{lng:n.lng,precheck:(i,r)=>{if(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&i.services.backendConnector.backend&&i.isLanguageChangingTo&&!r(i.isLanguageChangingTo,t))return!1}}),_f=t=>typeof t=="string",bne=t=>typeof t=="object"&&t!==null,_ne=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,Sne={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},wne=t=>Sne[t],Mne=t=>t.replace(_ne,wne);let fN={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:Mne};const Ene=(t={})=>{fN={...fN,...t}},Ane=()=>fN;let lG;const Tne=t=>{lG=t},Cne=()=>lG,Nne={type:"3rdParty",init(t){Ene(t.options.react),Tne(t)}},Rne=A.createContext();class Pne{constructor(){this.usedNamespaces={}}addUsedNamespaces(e){e.forEach(n=>{this.usedNamespaces[n]||(this.usedNamespaces[n]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}}var EA={exports:{}},AA={};var c4;function Dne(){if(c4)return AA;c4=1;var t=hm();function e(f,p){return f===p&&(f!==0||1/f===1/p)||f!==f&&p!==p}var n=typeof Object.is=="function"?Object.is:e,i=t.useState,r=t.useEffect,a=t.useLayoutEffect,s=t.useDebugValue;function o(f,p){var g=p(),y=i({inst:{value:g,getSnapshot:p}}),_=y[0].inst,v=y[1];return a(function(){_.value=g,_.getSnapshot=p,l(_)&&v({inst:_})},[f,g,p]),r(function(){return l(_)&&v({inst:_}),f(function(){l(_)&&v({inst:_})})},[f]),s(g),g}function l(f){var p=f.getSnapshot;f=f.value;try{var g=p();return!n(f,g)}catch{return!0}}function c(f,p){return p()}var u=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?c:o;return AA.useSyncExternalStore=t.useSyncExternalStore!==void 0?t.useSyncExternalStore:u,AA}var u4;function cG(){return u4||(u4=1,EA.exports=Dne()),EA.exports}var xP=cG();const kne=(t,e)=>_f(e)?e:bne(e)&&_f(e.defaultValue)?e.defaultValue:Array.isArray(t)?t[t.length-1]:t,One={t:kne,ready:!1},Lne=()=>()=>{},vP=(t,e={})=>{const{i18n:n}=e,{i18n:i,defaultNS:r}=A.useContext(Rne)||{},a=n||i||Cne();a&&!a.reportNamespaces&&(a.reportNamespaces=new Pne),a||sG(a,"NO_I18NEXT_INSTANCE","useTranslation: You will need to pass in an i18next instance by using initReactI18next");const s=A.useMemo(()=>({...Ane(),...a?.options?.react,...e}),[a,e]),{useSuspense:o,keyPrefix:l}=s,c=r||a?.options?.defaultNS,u=_f(c)?[c]:c||["translation"],f=A.useMemo(()=>u,u);a?.reportNamespaces?.addUsedNamespaces?.(f);const p=A.useRef(0),g=A.useCallback(C=>{if(!a)return Lne;const{bindI18n:D,bindI18nStore:F}=s,I=()=>{p.current+=1,C()};return D&&a.on(D,I),F&&a.store.on(F,I),()=>{D&&D.split(" ").forEach(q=>a.off(q,I)),F&&F.split(" ").forEach(q=>a.store.off(q,I))}},[a,s]),y=A.useRef(),_=A.useCallback(()=>{if(!a)return One;const C=!!(a.isInitialized||a.initializedStoreOnce)&&f.every(H=>yne(H,a,s)),D=e.lng||a.language,F=p.current,I=y.current;if(I&&I.ready===C&&I.lng===D&&I.keyPrefix===l&&I.revision===F)return I;const L={t:a.getFixedT(D,s.nsMode==="fallback"?f:f[0],l),ready:C,lng:D,keyPrefix:l,revision:F};return y.current=L,L},[a,f,l,s,e.lng]),[v,x]=A.useState(0),{t:M,ready:w}=xP.useSyncExternalStore(g,_,_);A.useEffect(()=>{if(a&&!w&&!o){const C=()=>x(D=>D+1);e.lng?l4(a,e.lng,f,C):dN(a,f,C)}},[a,e.lng,f,w,o,v]);const E=a||{},T=A.useRef(null),P=A.useRef(),N=C=>{const D=Object.getOwnPropertyDescriptors(C);D.__original&&delete D.__original;const F=Object.create(Object.getPrototypeOf(C),D);if(!Object.prototype.hasOwnProperty.call(F,"__original"))try{Object.defineProperty(F,"__original",{value:C,writable:!1,enumerable:!1,configurable:!1})}catch{}return F},U=A.useMemo(()=>{const C=E,D=C?.language;let F=C;C&&(T.current&&T.current.__original===C?P.current!==D?(F=N(C),T.current=F,P.current=D):F=T.current:(F=N(C),T.current=F,P.current=D));const I=[M,F,w];return I.t=M,I.i18n=F,I.ready=w,I},[M,E,w,E.resolvedLanguage,E.language,E.languages]);if(a&&o&&!w)throw new Promise(C=>{const D=()=>C();e.lng?l4(a,e.lng,f,D):dN(a,f,D)});return U},{slice:Ine,forEach:Une}=[];function jne(t){return Une.call(Ine.call(arguments,1),e=>{if(e)for(const n in e)t[n]===void 0&&(t[n]=e[n])}),t}function Fne(t){return typeof t!="string"?!1:[/<\s*script.*?>/i,/<\s*\/\s*script\s*>/i,/<\s*img.*?on\w+\s*=/i,/<\s*\w+\s*on\w+\s*=.*?>/i,/javascript\s*:/i,/vbscript\s*:/i,/expression\s*\(/i,/eval\s*\(/i,/alert\s*\(/i,/document\.cookie/i,/document\.write\s*\(/i,/window\.location/i,/innerHTML/i].some(n=>n.test(t))}const d4=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,zne=function(t,e){const i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{path:"/"},r=encodeURIComponent(e);let a=`${t}=${r}`;if(i.maxAge>0){const s=i.maxAge-0;if(Number.isNaN(s))throw new Error("maxAge should be a Number");a+=`; Max-Age=${Math.floor(s)}`}if(i.domain){if(!d4.test(i.domain))throw new TypeError("option domain is invalid");a+=`; Domain=${i.domain}`}if(i.path){if(!d4.test(i.path))throw new TypeError("option path is invalid");a+=`; Path=${i.path}`}if(i.expires){if(typeof i.expires.toUTCString!="function")throw new TypeError("option expires is invalid");a+=`; Expires=${i.expires.toUTCString()}`}if(i.httpOnly&&(a+="; HttpOnly"),i.secure&&(a+="; Secure"),i.sameSite)switch(typeof i.sameSite=="string"?i.sameSite.toLowerCase():i.sameSite){case!0:a+="; SameSite=Strict";break;case"lax":a+="; SameSite=Lax";break;case"strict":a+="; SameSite=Strict";break;case"none":a+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}return i.partitioned&&(a+="; Partitioned"),a},f4={create(t,e,n,i){let r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{path:"/",sameSite:"strict"};n&&(r.expires=new Date,r.expires.setTime(r.expires.getTime()+n*60*1e3)),i&&(r.domain=i),document.cookie=zne(t,e,r)},read(t){const e=`${t}=`,n=document.cookie.split(";");for(let i=0;i-1&&(i=window.location.hash.substring(window.location.hash.indexOf("?")));const a=i.substring(1).split("&");for(let s=0;s0&&a[s].substring(0,o)===e&&(n=a[s].substring(o+1))}}return n}},Vne={name:"hash",lookup(t){let{lookupHash:e,lookupFromHashIndex:n}=t,i;if(typeof window<"u"){const{hash:r}=window.location;if(r&&r.length>2){const a=r.substring(1);if(e){const s=a.split("&");for(let o=0;o0&&s[o].substring(0,l)===e&&(i=s[o].substring(l+1))}}if(i)return i;if(!i&&n>-1){const s=r.match(/\/([a-zA-Z-]*)/g);return Array.isArray(s)?s[typeof n=="number"?n:0]?.replace("/",""):void 0}}}return i}};let Eh=null;const h4=()=>{if(Eh!==null)return Eh;try{if(Eh=typeof window<"u"&&window.localStorage!==null,!Eh)return!1;const t="i18next.translate.boo";window.localStorage.setItem(t,"foo"),window.localStorage.removeItem(t)}catch{Eh=!1}return Eh};var $ne={name:"localStorage",lookup(t){let{lookupLocalStorage:e}=t;if(e&&h4())return window.localStorage.getItem(e)||void 0},cacheUserLanguage(t,e){let{lookupLocalStorage:n}=e;n&&h4()&&window.localStorage.setItem(n,t)}};let Ah=null;const p4=()=>{if(Ah!==null)return Ah;try{if(Ah=typeof window<"u"&&window.sessionStorage!==null,!Ah)return!1;const t="i18next.translate.boo";window.sessionStorage.setItem(t,"foo"),window.sessionStorage.removeItem(t)}catch{Ah=!1}return Ah};var Gne={name:"sessionStorage",lookup(t){let{lookupSessionStorage:e}=t;if(e&&p4())return window.sessionStorage.getItem(e)||void 0},cacheUserLanguage(t,e){let{lookupSessionStorage:n}=e;n&&p4()&&window.sessionStorage.setItem(n,t)}},Wne={name:"navigator",lookup(t){const e=[];if(typeof navigator<"u"){const{languages:n,userLanguage:i,language:r}=navigator;if(n)for(let a=0;a0?e:void 0}},qne={name:"htmlTag",lookup(t){let{htmlTag:e}=t,n;const i=e||(typeof document<"u"?document.documentElement:null);return i&&typeof i.getAttribute=="function"&&(n=i.getAttribute("lang")),n}},Xne={name:"path",lookup(t){let{lookupFromPathIndex:e}=t;if(typeof window>"u")return;const n=window.location.pathname.match(/\/([a-zA-Z-]*)/g);return Array.isArray(n)?n[typeof e=="number"?e:0]?.replace("/",""):void 0}},Kne={name:"subdomain",lookup(t){let{lookupFromSubdomainIndex:e}=t;const n=typeof e=="number"?e+1:1,i=typeof window<"u"&&window.location?.hostname?.match(/^(\w{2,5})\.(([a-z0-9-]{1,63}\.[a-z]{2,6})|localhost)/i);if(i)return i[n]}};let uG=!1;try{document.cookie,uG=!0}catch{}const dG=["querystring","cookie","localStorage","sessionStorage","navigator","htmlTag"];uG||dG.splice(1,1);const Yne=()=>({order:dG,lookupQuerystring:"lng",lookupCookie:"i18next",lookupLocalStorage:"i18nextLng",lookupSessionStorage:"i18nextLng",caches:["localStorage"],excludeCacheFor:["cimode"],convertDetectedLanguage:t=>t});class fG{constructor(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.type="languageDetector",this.detectors={},this.init(e,n)}init(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{languageUtils:{}},n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.services=e,this.options=jne(n,this.options||{},Yne()),typeof this.options.convertDetectedLanguage=="string"&&this.options.convertDetectedLanguage.indexOf("15897")>-1&&(this.options.convertDetectedLanguage=r=>r.replace("-","_")),this.options.lookupFromUrlIndex&&(this.options.lookupFromPathIndex=this.options.lookupFromUrlIndex),this.i18nOptions=i,this.addDetector(Bne),this.addDetector(Hne),this.addDetector($ne),this.addDetector(Gne),this.addDetector(Wne),this.addDetector(qne),this.addDetector(Xne),this.addDetector(Kne),this.addDetector(Vne)}addDetector(e){return this.detectors[e.name]=e,this}detect(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.order,n=[];return e.forEach(i=>{if(this.detectors[i]){let r=this.detectors[i].lookup(this.options);r&&typeof r=="string"&&(r=[r]),r&&(n=n.concat(r))}}),n=n.filter(i=>i!=null&&!Fne(i)).map(i=>this.options.convertDetectedLanguage(i)),this.services&&this.services.languageUtils&&this.services.languageUtils.getBestMatchFromCodes?n:n.length>0?n[0]:null}cacheUserLanguage(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.options.caches;n&&(this.options.excludeCacheFor&&this.options.excludeCacheFor.indexOf(e)>-1||n.forEach(i=>{this.detectors[i]&&this.detectors[i].cacheUserLanguage(e,this.options)}))}}fG.type="languageDetector";const Zne={nav:{printers:"Printers",control:"Control",archives:"Archives",queue:"Queue",stats:"Statistics",profiles:"Profiles",maintenance:"Maintenance",settings:"Settings",collapseSidebar:"Collapse sidebar",expandSidebar:"Expand sidebar",update:"Update",updateAvailable:"Update available: v{{version}}",viewOnGithub:"View on GitHub",keyboardShortcuts:"Keyboard shortcuts (?)",switchToLight:"Switch to light mode",switchToDark:"Switch to dark mode"},common:{save:"Save",cancel:"Cancel",delete:"Delete",edit:"Edit",add:"Add",close:"Close",confirm:"Confirm",loading:"Loading...",error:"Error",success:"Success",warning:"Warning",enabled:"Enabled",disabled:"Disabled",yes:"Yes",no:"No",on:"On",off:"Off",all:"All",none:"None",search:"Search",filter:"Filter",sort:"Sort",refresh:"Refresh",download:"Download",upload:"Upload",actions:"Actions",status:"Status",name:"Name",description:"Description",date:"Date",time:"Time",hours:"hours",minutes:"minutes",seconds:"seconds",noPrinters:"No printers configured",noData:"No data available",required:"Required",optional:"Optional"},printers:{title:"Printers",addPrinter:"Add Printer",editPrinter:"Edit Printer",deletePrinter:"Delete Printer",printerName:"Printer Name",serialNumber:"Serial Number",ipAddress:"IP Address",accessCode:"Access Code",model:"Model",nozzleCount:"Nozzle Count",autoArchive:"Auto Archive",status:{idle:"Idle",printing:"Printing",paused:"Paused",offline:"Offline",error:"Error",finished:"Finished",unknown:"Unknown"},temperatures:{nozzle:"Nozzle",bed:"Bed",chamber:"Chamber"},progress:"{{percent}}% complete",timeRemaining:"{{time}} remaining",deleteConfirm:'Are you sure you want to delete "{{name}}"?',maintenanceOk:"Maintenance OK",maintenanceWarning:"{{count}} warning",maintenanceWarning_plural:"{{count}} warnings",maintenanceDue:"{{count}} due",maintenanceDue_plural:"{{count}} due"},archives:{title:"Print Archives",searchPlaceholder:"Search archives...",filterByPrinter:"Filter by printer",filterByStatus:"Filter by status",sortBy:"Sort by",sortNewest:"Newest first",sortOldest:"Oldest first",sortName:"Name",sortDuration:"Duration",noArchives:"No archives found",printTime:"Print Time",filamentUsed:"Filament Used",cost:"Cost",reprint:"Reprint",preview:"Preview",deleteArchive:"Delete Archive",deleteConfirm:"Are you sure you want to delete this archive?",favorite:"Favorite",unfavorite:"Remove from favorites",viewDetails:"View Details",status:{completed:"Completed",failed:"Failed",stopped:"Stopped"}},queue:{title:"Print Queue",addToQueue:"Add to Queue",clearQueue:"Clear Queue",emptyQueue:"Queue is empty",position:"Position",scheduledTime:"Scheduled Time",moveUp:"Move Up",moveDown:"Move Down",remove:"Remove",startNow:"Start Now",status:{pending:"Pending",printing:"Printing",completed:"Completed",failed:"Failed",cancelled:"Cancelled"}},stats:{title:"Statistics",overview:"Overview",totalPrints:"Total Prints",successRate:"Success Rate",totalPrintTime:"Total Print Time",totalFilament:"Total Filament Used",totalCost:"Total Cost",averagePrintTime:"Average Print Time",printsPerDay:"Prints per Day",byPrinter:"By Printer",byMaterial:"By Material",byMonth:"By Month",last7Days:"Last 7 Days",last30Days:"Last 30 Days",last90Days:"Last 90 Days",allTime:"All Time"},profiles:{title:"Filament Profiles",addProfile:"Add Profile",editProfile:"Edit Profile",deleteProfile:"Delete Profile",material:"Material",brand:"Brand",color:"Color",diameter:"Diameter",density:"Density",costPerKg:"Cost per kg",spoolWeight:"Spool Weight",noProfiles:"No profiles configured",deleteConfirm:"Are you sure you want to delete this profile?"},maintenance:{title:"Maintenance",overview:"Overview",allOk:"All maintenance up to date",dueCount:"{{count}} item due",dueCount_plural:"{{count}} items due",warningCount:"{{count}} warning",warningCount_plural:"{{count}} warnings",totalPrintTime:"Total Print Time",nextMaintenance:"Next Maintenance",nothingDue:"Nothing due",tasks:"Tasks",lastPerformed:"Last performed",interval:"Interval",hoursRemaining:"{{hours}}h remaining",hoursOverdue:"{{hours}}h overdue",markDone:"Mark as Done",performMaintenance:"Perform Maintenance",history:"History",noHistory:"No maintenance history",editPrintHours:"Edit Print Hours",currentHours:"Current Hours",types:{lubricateRails:"Lubricate Linear Rails",cleanNozzle:"Clean Nozzle/Hotend",checkBelts:"Check Belt Tension",cleanBuildPlate:"Clean Build Plate",checkExtruder:"Check Extruder Gears",checkCooling:"Check Cooling Fans",generalInspection:"General Inspection"}},settings:{title:"Settings",general:"General",appearance:"Appearance",notifications:"Notifications",smartPlugs:"Smart Plugs",spoolman:"Spoolman",updates:"Updates",language:"Language",languageDescription:"Select your preferred language",theme:"Theme",themeLight:"Light",themeDark:"Dark",themeSystem:"System",defaultView:"Default View",defaultViewDescription:"Page to show when opening the app",checkForUpdates:"Check for Updates",autoUpdate:"Auto Update",currentVersion:"Current Version",latestVersion:"Latest Version",upToDate:"You are up to date",updateAvailable:"Update available",notificationLanguage:"Notification Language",notificationLanguageDescription:"Language for push notifications",notificationProviders:"Notification Providers",addProvider:"Add Provider",editProvider:"Edit Provider",providerType:"Provider Type",testNotification:"Test Notification",testSuccess:"Test notification sent successfully",testFailed:"Failed to send test notification",quietHours:"Quiet Hours",quietHoursDescription:"Do not disturb during these hours",quietHoursStart:"Start",quietHoursEnd:"End",events:{title:"Notification Events",printStart:"Print Started",printComplete:"Print Completed",printFailed:"Print Failed",printStopped:"Print Stopped",printProgress:"Progress Milestones",printProgressDescription:"Notify at 25%, 50%, 75%",printerOffline:"Printer Offline",printerError:"Printer Error",filamentLow:"Low Filament",maintenanceDue:"Maintenance Due",maintenanceDueDescription:"Notify when maintenance is needed"},smartPlug:{title:"Smart Plugs",add:"Add Smart Plug",edit:"Edit Smart Plug",name:"Name",ipAddress:"IP Address",linkedPrinter:"Linked Printer",autoOn:"Auto Power On",autoOnDescription:"Turn on when print starts",autoOff:"Auto Power Off",autoOffDescription:"Turn off after print completes",offDelay:"Off Delay",offDelayMinutes:"Minutes after print",offDelayTemp:"When nozzle below temperature",currentState:"Current State",turnOn:"Turn On",turnOff:"Turn Off"},spoolmanEnabled:"Enable Spoolman Integration",spoolmanUrl:"Spoolman URL",spoolmanConnected:"Connected",spoolmanDisconnected:"Disconnected"},notification:{printStarted:{title:"Print Started",body:"{{printer}}: {{filename}} has started printing"},printCompleted:{title:"Print Completed",body:"{{printer}}: {{filename}} completed successfully"},printFailed:{title:"Print Failed",body:"{{printer}}: {{filename}} has failed"},printStopped:{title:"Print Stopped",body:"{{printer}}: {{filename}} was stopped"},printProgress:{title:"Print Progress",body:"{{printer}}: {{filename}} is {{percent}}% complete"},printerOffline:{title:"Printer Offline",body:"{{printer}} is offline"},printerError:{title:"Printer Error",body:"{{printer}}: {{error}}"},filamentLow:{title:"Low Filament",body:"{{printer}}: Filament is running low"},maintenanceDue:{title:"Maintenance Due",body:"{{printer}}: {{items}} need attention"}},errors:{generic:"Something went wrong",networkError:"Network error. Please check your connection.",notFound:"Not found",unauthorized:"Unauthorized",serverError:"Server error",validationError:"Please check your input",printerConnectionFailed:"Failed to connect to printer",saveFailed:"Failed to save changes",deleteFailed:"Failed to delete",loadFailed:"Failed to load data"},confirm:{delete:"Are you sure you want to delete this?",unsavedChanges:"You have unsaved changes. Are you sure you want to leave?",clearQueue:"Are you sure you want to clear the queue?"}},Qne={nav:{printers:"Drucker",control:"Steuerung",archives:"Archiv",queue:"Warteschlange",stats:"Statistiken",profiles:"Profile",maintenance:"Wartung",settings:"Einstellungen",collapseSidebar:"Seitenleiste einklappen",expandSidebar:"Seitenleiste ausklappen",update:"Update",updateAvailable:"Update verfügbar: v{{version}}",viewOnGithub:"Auf GitHub ansehen",keyboardShortcuts:"Tastaturkürzel (?)",switchToLight:"Zum hellen Modus wechseln",switchToDark:"Zum dunklen Modus wechseln"},common:{save:"Speichern",cancel:"Abbrechen",delete:"Löschen",edit:"Bearbeiten",add:"Hinzufügen",close:"Schließen",confirm:"Bestätigen",loading:"Lädt...",error:"Fehler",success:"Erfolg",warning:"Warnung",enabled:"Aktiviert",disabled:"Deaktiviert",yes:"Ja",no:"Nein",on:"An",off:"Aus",all:"Alle",none:"Keine",search:"Suchen",filter:"Filtern",sort:"Sortieren",refresh:"Aktualisieren",download:"Herunterladen",upload:"Hochladen",actions:"Aktionen",status:"Status",name:"Name",description:"Beschreibung",date:"Datum",time:"Zeit",hours:"Stunden",minutes:"Minuten",seconds:"Sekunden",noPrinters:"Keine Drucker konfiguriert",noData:"Keine Daten verfügbar",required:"Erforderlich",optional:"Optional"},printers:{title:"Drucker",addPrinter:"Drucker hinzufügen",editPrinter:"Drucker bearbeiten",deletePrinter:"Drucker löschen",printerName:"Druckername",serialNumber:"Seriennummer",ipAddress:"IP-Adresse",accessCode:"Zugangscode",model:"Modell",nozzleCount:"Düsenanzahl",autoArchive:"Automatische Archivierung",status:{idle:"Bereit",printing:"Druckt",paused:"Pausiert",offline:"Offline",error:"Fehler",finished:"Fertig",unknown:"Unbekannt"},temperatures:{nozzle:"Düse",bed:"Druckbett",chamber:"Kammer"},progress:"{{percent}}% abgeschlossen",timeRemaining:"Noch {{time}}",deleteConfirm:'Möchten Sie "{{name}}" wirklich löschen?',maintenanceOk:"Wartung OK",maintenanceWarning:"{{count}} Warnung",maintenanceWarning_plural:"{{count}} Warnungen",maintenanceDue:"{{count}} fällig",maintenanceDue_plural:"{{count}} fällig"},archives:{title:"Druckarchiv",searchPlaceholder:"Archiv durchsuchen...",filterByPrinter:"Nach Drucker filtern",filterByStatus:"Nach Status filtern",sortBy:"Sortieren nach",sortNewest:"Neueste zuerst",sortOldest:"Älteste zuerst",sortName:"Name",sortDuration:"Dauer",noArchives:"Keine Archive gefunden",printTime:"Druckzeit",filamentUsed:"Verbrauchtes Filament",cost:"Kosten",reprint:"Erneut drucken",preview:"Vorschau",deleteArchive:"Archiv löschen",deleteConfirm:"Möchten Sie dieses Archiv wirklich löschen?",favorite:"Favorit",unfavorite:"Aus Favoriten entfernen",viewDetails:"Details anzeigen",status:{completed:"Abgeschlossen",failed:"Fehlgeschlagen",stopped:"Gestoppt"}},queue:{title:"Druckwarteschlange",addToQueue:"Zur Warteschlange hinzufügen",clearQueue:"Warteschlange leeren",emptyQueue:"Warteschlange ist leer",position:"Position",scheduledTime:"Geplante Zeit",moveUp:"Nach oben",moveDown:"Nach unten",remove:"Entfernen",startNow:"Jetzt starten",status:{pending:"Ausstehend",printing:"Druckt",completed:"Abgeschlossen",failed:"Fehlgeschlagen",cancelled:"Abgebrochen"}},stats:{title:"Statistiken",overview:"Übersicht",totalPrints:"Gesamtdrucke",successRate:"Erfolgsrate",totalPrintTime:"Gesamtdruckzeit",totalFilament:"Gesamtverbrauch Filament",totalCost:"Gesamtkosten",averagePrintTime:"Durchschnittliche Druckzeit",printsPerDay:"Drucke pro Tag",byPrinter:"Nach Drucker",byMaterial:"Nach Material",byMonth:"Nach Monat",last7Days:"Letzte 7 Tage",last30Days:"Letzte 30 Tage",last90Days:"Letzte 90 Tage",allTime:"Gesamt"},profiles:{title:"Filament-Profile",addProfile:"Profil hinzufügen",editProfile:"Profil bearbeiten",deleteProfile:"Profil löschen",material:"Material",brand:"Marke",color:"Farbe",diameter:"Durchmesser",density:"Dichte",costPerKg:"Kosten pro kg",spoolWeight:"Spulengewicht",noProfiles:"Keine Profile konfiguriert",deleteConfirm:"Möchten Sie dieses Profil wirklich löschen?"},maintenance:{title:"Wartung",overview:"Übersicht",allOk:"Alle Wartungen aktuell",dueCount:"{{count}} Aufgabe fällig",dueCount_plural:"{{count}} Aufgaben fällig",warningCount:"{{count}} Warnung",warningCount_plural:"{{count}} Warnungen",totalPrintTime:"Gesamtdruckzeit",nextMaintenance:"Nächste Wartung",nothingDue:"Nichts fällig",tasks:"Aufgaben",lastPerformed:"Zuletzt durchgeführt",interval:"Intervall",hoursRemaining:"{{hours}}h verbleibend",hoursOverdue:"{{hours}}h überfällig",markDone:"Als erledigt markieren",performMaintenance:"Wartung durchführen",history:"Verlauf",noHistory:"Kein Wartungsverlauf",editPrintHours:"Druckstunden bearbeiten",currentHours:"Aktuelle Stunden",types:{lubricateRails:"Linearschienen schmieren",cleanNozzle:"Düse/Hotend reinigen",checkBelts:"Riemenspannung prüfen",cleanBuildPlate:"Druckbett reinigen",checkExtruder:"Extruderzahnräder prüfen",checkCooling:"Kühlungslüfter prüfen",generalInspection:"Allgemeine Inspektion"}},settings:{title:"Einstellungen",general:"Allgemein",appearance:"Erscheinungsbild",notifications:"Benachrichtigungen",smartPlugs:"Smart Plugs",spoolman:"Spoolman",updates:"Updates",language:"Sprache",languageDescription:"Wählen Sie Ihre bevorzugte Sprache",theme:"Design",themeLight:"Hell",themeDark:"Dunkel",themeSystem:"System",defaultView:"Standardansicht",defaultViewDescription:"Seite, die beim Öffnen der App angezeigt wird",checkForUpdates:"Nach Updates suchen",autoUpdate:"Automatische Updates",currentVersion:"Aktuelle Version",latestVersion:"Neueste Version",upToDate:"Sie sind auf dem neuesten Stand",updateAvailable:"Update verfügbar",notificationLanguage:"Benachrichtigungssprache",notificationLanguageDescription:"Sprache für Push-Benachrichtigungen",notificationProviders:"Benachrichtigungsanbieter",addProvider:"Anbieter hinzufügen",editProvider:"Anbieter bearbeiten",providerType:"Anbietertyp",testNotification:"Testbenachrichtigung",testSuccess:"Testbenachrichtigung erfolgreich gesendet",testFailed:"Testbenachrichtigung konnte nicht gesendet werden",quietHours:"Ruhezeiten",quietHoursDescription:"Keine Störungen während dieser Zeiten",quietHoursStart:"Beginn",quietHoursEnd:"Ende",events:{title:"Benachrichtigungsereignisse",printStart:"Druck gestartet",printComplete:"Druck abgeschlossen",printFailed:"Druck fehlgeschlagen",printStopped:"Druck gestoppt",printProgress:"Fortschrittsmeldungen",printProgressDescription:"Bei 25%, 50%, 75% benachrichtigen",printerOffline:"Drucker offline",printerError:"Druckerfehler",filamentLow:"Filament niedrig",maintenanceDue:"Wartung fällig",maintenanceDueDescription:"Benachrichtigen, wenn Wartung erforderlich"},smartPlug:{title:"Smart Plugs",add:"Smart Plug hinzufügen",edit:"Smart Plug bearbeiten",name:"Name",ipAddress:"IP-Adresse",linkedPrinter:"Verknüpfter Drucker",autoOn:"Automatisch einschalten",autoOnDescription:"Einschalten beim Druckstart",autoOff:"Automatisch ausschalten",autoOffDescription:"Ausschalten nach Druckende",offDelay:"Ausschaltverzögerung",offDelayMinutes:"Minuten nach Druck",offDelayTemp:"Wenn Düse unter Temperatur",currentState:"Aktueller Status",turnOn:"Einschalten",turnOff:"Ausschalten"},spoolmanEnabled:"Spoolman-Integration aktivieren",spoolmanUrl:"Spoolman URL",spoolmanConnected:"Verbunden",spoolmanDisconnected:"Nicht verbunden"},notification:{printStarted:{title:"Druck gestartet",body:"{{printer}}: {{filename}} wird gedruckt"},printCompleted:{title:"Druck abgeschlossen",body:"{{printer}}: {{filename}} erfolgreich abgeschlossen"},printFailed:{title:"Druck fehlgeschlagen",body:"{{printer}}: {{filename}} ist fehlgeschlagen"},printStopped:{title:"Druck gestoppt",body:"{{printer}}: {{filename}} wurde gestoppt"},printProgress:{title:"Druckfortschritt",body:"{{printer}}: {{filename}} ist zu {{percent}}% abgeschlossen"},printerOffline:{title:"Drucker offline",body:"{{printer}} ist offline"},printerError:{title:"Druckerfehler",body:"{{printer}}: {{error}}"},filamentLow:{title:"Filament niedrig",body:"{{printer}}: Filament geht zur Neige"},maintenanceDue:{title:"Wartung fällig",body:"{{printer}}: {{items}} benötigen Aufmerksamkeit"}},errors:{generic:"Etwas ist schiefgelaufen",networkError:"Netzwerkfehler. Bitte überprüfen Sie Ihre Verbindung.",notFound:"Nicht gefunden",unauthorized:"Nicht autorisiert",serverError:"Serverfehler",validationError:"Bitte überprüfen Sie Ihre Eingabe",printerConnectionFailed:"Verbindung zum Drucker fehlgeschlagen",saveFailed:"Speichern fehlgeschlagen",deleteFailed:"Löschen fehlgeschlagen",loadFailed:"Laden der Daten fehlgeschlagen"},confirm:{delete:"Möchten Sie dies wirklich löschen?",unsavedChanges:"Sie haben ungespeicherte Änderungen. Möchten Sie wirklich verlassen?",clearQueue:"Möchten Sie die Warteschlange wirklich leeren?"}},Jne={en:{translation:Zne},de:{translation:Qne}};wa.use(fG).use(Nne).init({resources:Jne,fallbackLng:"en",supportedLngs:["en","de"],detection:{order:["localStorage","navigator","htmlTag"],lookupLocalStorage:"bambutrack_language",caches:["localStorage"]},interpolation:{escapeValue:!1},react:{useSuspense:!1}});const m4=[{code:"en",name:"English",nativeName:"English"},{code:"de",name:"German",nativeName:"Deutsch"}];var g4="popstate";function eie(t={}){function e(i,r){let{pathname:a,search:s,hash:o}=i.location;return hN("",{pathname:a,search:s,hash:o},r.state&&r.state.usr||null,r.state&&r.state.key||"default")}function n(i,r){return typeof r=="string"?r:L0(r)}return nie(e,n,null,t)}function mi(t,e){if(t===!1||t===null||typeof t>"u")throw new Error(e)}function Ws(t,e){if(!t){typeof console<"u"&&console.warn(e);try{throw new Error(e)}catch{}}}function tie(){return Math.random().toString(36).substring(2,10)}function x4(t,e){return{usr:t.state,key:t.key,idx:e}}function hN(t,e,n=null,i){return{pathname:typeof t=="string"?t:t.pathname,search:"",hash:"",...typeof e=="string"?pm(e):e,state:n,key:e&&e.key||i||tie()}}function L0({pathname:t="/",search:e="",hash:n=""}){return e&&e!=="?"&&(t+=e.charAt(0)==="?"?e:"?"+e),n&&n!=="#"&&(t+=n.charAt(0)==="#"?n:"#"+n),t}function pm(t){let e={};if(t){let n=t.indexOf("#");n>=0&&(e.hash=t.substring(n),t=t.substring(0,n));let i=t.indexOf("?");i>=0&&(e.search=t.substring(i),t=t.substring(0,i)),t&&(e.pathname=t)}return e}function nie(t,e,n,i={}){let{window:r=document.defaultView,v5Compat:a=!1}=i,s=r.history,o="POP",l=null,c=u();c==null&&(c=0,s.replaceState({...s.state,idx:c},""));function u(){return(s.state||{idx:null}).idx}function f(){o="POP";let v=u(),x=v==null?null:v-c;c=v,l&&l({action:o,location:_.location,delta:x})}function p(v,x){o="PUSH";let M=hN(_.location,v,x);c=u()+1;let w=x4(M,c),E=_.createHref(M);try{s.pushState(w,"",E)}catch(T){if(T instanceof DOMException&&T.name==="DataCloneError")throw T;r.location.assign(E)}a&&l&&l({action:o,location:_.location,delta:1})}function g(v,x){o="REPLACE";let M=hN(_.location,v,x);c=u();let w=x4(M,c),E=_.createHref(M);s.replaceState(w,"",E),a&&l&&l({action:o,location:_.location,delta:0})}function y(v){return iie(v)}let _={get action(){return o},get location(){return t(r,s)},listen(v){if(l)throw new Error("A history only accepts one active listener");return r.addEventListener(g4,f),l=v,()=>{r.removeEventListener(g4,f),l=null}},createHref(v){return e(r,v)},createURL:y,encodeLocation(v){let x=y(v);return{pathname:x.pathname,search:x.search,hash:x.hash}},push:p,replace:g,go(v){return s.go(v)}};return _}function iie(t,e=!1){let n="http://localhost";typeof window<"u"&&(n=window.location.origin!=="null"?window.location.origin:window.location.href),mi(n,"No window.location.(origin|href) available to create URL");let i=typeof t=="string"?t:L0(t);return i=i.replace(/ $/,"%20"),!e&&i.startsWith("//")&&(i=n+i),new URL(i,n)}function hG(t,e,n="/"){return rie(t,e,n,!1)}function rie(t,e,n,i){let r=typeof e=="string"?pm(e):e,a=cc(r.pathname||"/",n);if(a==null)return null;let s=pG(t);aie(s);let o=null;for(let l=0;o==null&&l{let u={relativePath:c===void 0?s.path||"":c,caseSensitive:s.caseSensitive===!0,childrenIndex:o,route:s};if(u.relativePath.startsWith("/")){if(!u.relativePath.startsWith(i)&&l)return;mi(u.relativePath.startsWith(i),`Absolute route path "${u.relativePath}" nested under path "${i}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),u.relativePath=u.relativePath.slice(i.length)}let f=tc([i,u.relativePath]),p=n.concat(u);s.children&&s.children.length>0&&(mi(s.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${f}".`),pG(s.children,e,p,f,l)),!(s.path==null&&!s.index)&&e.push({path:f,score:fie(f,s.index),routesMeta:p})};return t.forEach((s,o)=>{if(s.path===""||!s.path?.includes("?"))a(s,o);else for(let l of mG(s.path))a(s,o,!0,l)}),e}function mG(t){let e=t.split("/");if(e.length===0)return[];let[n,...i]=e,r=n.endsWith("?"),a=n.replace(/\?$/,"");if(i.length===0)return r?[a,""]:[a];let s=mG(i.join("/")),o=[];return o.push(...s.map(l=>l===""?a:[a,l].join("/"))),r&&o.push(...s),o.map(l=>t.startsWith("/")&&l===""?"/":l)}function aie(t){t.sort((e,n)=>e.score!==n.score?n.score-e.score:hie(e.routesMeta.map(i=>i.childrenIndex),n.routesMeta.map(i=>i.childrenIndex)))}var sie=/^:[\w-]+$/,oie=3,lie=2,cie=1,uie=10,die=-2,v4=t=>t==="*";function fie(t,e){let n=t.split("/"),i=n.length;return n.some(v4)&&(i+=die),e&&(i+=lie),n.filter(r=>!v4(r)).reduce((r,a)=>r+(sie.test(a)?oie:a===""?cie:uie),i)}function hie(t,e){return t.length===e.length&&t.slice(0,-1).every((i,r)=>i===e[r])?t[t.length-1]-e[e.length-1]:0}function pie(t,e,n=!1){let{routesMeta:i}=t,r={},a="/",s=[];for(let o=0;o{if(u==="*"){let y=o[p]||"";s=a.slice(0,a.length-y.length).replace(/(.)\/+$/,"$1")}const g=o[p];return f&&!g?c[u]=void 0:c[u]=(g||"").replace(/%2F/g,"/"),c},{}),pathname:a,pathnameBase:s,pattern:t}}function mie(t,e=!1,n=!0){Ws(t==="*"||!t.endsWith("*")||t.endsWith("/*"),`Route path "${t}" will be treated as if it were "${t.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${t.replace(/\*$/,"/*")}".`);let i=[],r="^"+t.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(s,o,l)=>(i.push({paramName:o,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return t.endsWith("*")?(i.push({paramName:"*"}),r+=t==="*"||t==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?r+="\\/*$":t!==""&&t!=="/"&&(r+="(?:(?=\\/|$))"),[new RegExp(r,e?void 0:"i"),i]}function gie(t){try{return t.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(e){return Ws(!1,`The URL path "${t}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${e}).`),t}}function cc(t,e){if(e==="/")return t;if(!t.toLowerCase().startsWith(e.toLowerCase()))return null;let n=e.endsWith("/")?e.length-1:e.length,i=t.charAt(n);return i&&i!=="/"?null:t.slice(n)||"/"}var xie=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,vie=t=>xie.test(t);function yie(t,e="/"){let{pathname:n,search:i="",hash:r=""}=typeof t=="string"?pm(t):t,a;if(n)if(vie(n))a=n;else{if(n.includes("//")){let s=n;n=n.replace(/\/\/+/g,"/"),Ws(!1,`Pathnames cannot have embedded double slashes - normalizing ${s} -> ${n}`)}n.startsWith("/")?a=y4(n.substring(1),"/"):a=y4(n,e)}else a=e;return{pathname:a,search:Sie(i),hash:wie(r)}}function y4(t,e){let n=e.replace(/\/+$/,"").split("/");return t.split("/").forEach(r=>{r===".."?n.length>1&&n.pop():r!=="."&&n.push(r)}),n.length>1?n.join("/"):"/"}function TA(t,e,n,i){return`Cannot include a '${t}' character in a manually specified \`to.${e}\` field [${JSON.stringify(i)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function bie(t){return t.filter((e,n)=>n===0||e.route.path&&e.route.path.length>0)}function gG(t){let e=bie(t);return e.map((n,i)=>i===e.length-1?n.pathname:n.pathnameBase)}function xG(t,e,n,i=!1){let r;typeof t=="string"?r=pm(t):(r={...t},mi(!r.pathname||!r.pathname.includes("?"),TA("?","pathname","search",r)),mi(!r.pathname||!r.pathname.includes("#"),TA("#","pathname","hash",r)),mi(!r.search||!r.search.includes("#"),TA("#","search","hash",r)));let a=t===""||r.pathname==="",s=a?"/":r.pathname,o;if(s==null)o=n;else{let f=e.length-1;if(!i&&s.startsWith("..")){let p=s.split("/");for(;p[0]==="..";)p.shift(),f-=1;r.pathname=p.join("/")}o=f>=0?e[f]:"/"}let l=yie(r,o),c=s&&s!=="/"&&s.endsWith("/"),u=(a||s===".")&&n.endsWith("/");return!l.pathname.endsWith("/")&&(c||u)&&(l.pathname+="/"),l}var tc=t=>t.join("/").replace(/\/\/+/g,"/"),_ie=t=>t.replace(/\/+$/,"").replace(/^\/*/,"/"),Sie=t=>!t||t==="?"?"":t.startsWith("?")?t:"?"+t,wie=t=>!t||t==="#"?"":t.startsWith("#")?t:"#"+t;function Mie(t){return t!=null&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.internal=="boolean"&&"data"in t}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var vG=["POST","PUT","PATCH","DELETE"];new Set(vG);var Eie=["GET",...vG];new Set(Eie);var mm=A.createContext(null);mm.displayName="DataRouter";var BS=A.createContext(null);BS.displayName="DataRouterState";A.createContext(!1);var yG=A.createContext({isTransitioning:!1});yG.displayName="ViewTransition";var Aie=A.createContext(new Map);Aie.displayName="Fetchers";var Tie=A.createContext(null);Tie.displayName="Await";var rl=A.createContext(null);rl.displayName="Navigation";var Tx=A.createContext(null);Tx.displayName="Location";var al=A.createContext({outlet:null,matches:[],isDataRoute:!1});al.displayName="Route";var yP=A.createContext(null);yP.displayName="RouteError";function Cie(t,{relative:e}={}){mi(Cx(),"useHref() may be used only in the context of a component.");let{basename:n,navigator:i}=A.useContext(rl),{hash:r,pathname:a,search:s}=Nx(t,{relative:e}),o=a;return n!=="/"&&(o=a==="/"?n:tc([n,a])),i.createHref({pathname:o,search:s,hash:r})}function Cx(){return A.useContext(Tx)!=null}function Sc(){return mi(Cx(),"useLocation() may be used only in the context of a component."),A.useContext(Tx).location}var bG="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function _G(t){A.useContext(rl).static||A.useLayoutEffect(t)}function HS(){let{isDataRoute:t}=A.useContext(al);return t?Vie():Nie()}function Nie(){mi(Cx(),"useNavigate() may be used only in the context of a component.");let t=A.useContext(mm),{basename:e,navigator:n}=A.useContext(rl),{matches:i}=A.useContext(al),{pathname:r}=Sc(),a=JSON.stringify(gG(i)),s=A.useRef(!1);return _G(()=>{s.current=!0}),A.useCallback((l,c={})=>{if(Ws(s.current,bG),!s.current)return;if(typeof l=="number"){n.go(l);return}let u=xG(l,JSON.parse(a),r,c.relative==="path");t==null&&e!=="/"&&(u.pathname=u.pathname==="/"?e:tc([e,u.pathname])),(c.replace?n.replace:n.push)(u,c.state,c)},[e,n,a,r,t])}var Rie=A.createContext(null);function Pie(t){let e=A.useContext(al).outlet;return A.useMemo(()=>e&&A.createElement(Rie.Provider,{value:t},e),[e,t])}function Nx(t,{relative:e}={}){let{matches:n}=A.useContext(al),{pathname:i}=Sc(),r=JSON.stringify(gG(n));return A.useMemo(()=>xG(t,JSON.parse(r),i,e==="path"),[t,r,i,e])}function Die(t,e){return SG(t,e)}function SG(t,e,n,i,r){mi(Cx(),"useRoutes() may be used only in the context of a component.");let{navigator:a}=A.useContext(rl),{matches:s}=A.useContext(al),o=s[s.length-1],l=o?o.params:{},c=o?o.pathname:"/",u=o?o.pathnameBase:"/",f=o&&o.route;{let M=f&&f.path||"";wG(c,!f||M.endsWith("*")||M.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${c}" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render. +`+S.stack}}var oe=Object.prototype.hasOwnProperty,ke=t.unstable_scheduleCallback,Ne=t.unstable_cancelCallback,te=t.unstable_shouldYield,j=t.unstable_requestPaint,O=t.unstable_now,Y=t.unstable_getCurrentPriorityLevel,me=t.unstable_ImmediatePriority,ye=t.unstable_UserBlockingPriority,he=t.unstable_NormalPriority,Ze=t.unstable_LowPriority,Le=t.unstable_IdlePriority,Xe=t.log,at=t.unstable_setDisableYieldValue,Ie=null,Re=null;function pt(d){if(typeof Xe=="function"&&at(d),Re&&typeof Re.setStrictMode=="function")try{Re.setStrictMode(Ie,d)}catch{}}var nt=Math.clz32?Math.clz32:de,tt=Math.log,ut=Math.LN2;function de(d){return d>>>=0,d===0?32:31-(tt(d)/ut|0)|0}var it=256,fe=262144,Oe=4194304;function Me(d){var h=d&42;if(h!==0)return h;switch(d&-d){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return d&261888;case 262144:case 524288:case 1048576:case 2097152:return d&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return d&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return d}}function ge(d,h,b){var S=d.pendingLanes;if(S===0)return 0;var R=0,D=d.suspendedLanes,$=d.pingedLanes;d=d.warmLanes;var ne=S&134217727;return ne!==0?(S=ne&~D,S!==0?R=Me(S):($&=ne,$!==0?R=Me($):b||(b=ne&~d,b!==0&&(R=Me(b))))):(ne=S&~D,ne!==0?R=Me(ne):$!==0?R=Me($):b||(b=S&~d,b!==0&&(R=Me(b)))),R===0?0:h!==0&&h!==R&&(h&D)===0&&(D=R&-R,b=h&-h,D>=b||D===32&&(b&4194048)!==0)?h:R}function Be(d,h){return(d.pendingLanes&~(d.suspendedLanes&~d.pingedLanes)&h)===0}function ct(d,h){switch(d){case 1:case 2:case 4:case 8:case 64:return h+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return h+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function bt(){var d=Oe;return Oe<<=1,(Oe&62914560)===0&&(Oe=4194304),d}function Rt(d){for(var h=[],b=0;31>b;b++)h.push(d);return h}function on(d,h){d.pendingLanes|=h,h!==268435456&&(d.suspendedLanes=0,d.pingedLanes=0,d.warmLanes=0)}function Dt(d,h,b,S,R,D){var $=d.pendingLanes;d.pendingLanes=b,d.suspendedLanes=0,d.pingedLanes=0,d.warmLanes=0,d.expiredLanes&=b,d.entangledLanes&=b,d.errorRecoveryDisabledLanes&=b,d.shellSuspendCounter=0;var ne=d.entanglements,_e=d.expirationTimes,Fe=d.hiddenUpdates;for(b=$&~b;0"u")return null;try{return d.activeElement||d.body}catch{return d.body}}var Ti=/[\n"\\]/g;function Cn(d){return d.replace(Ti,function(h){return"\\"+h.charCodeAt(0).toString(16)+" "})}function Js(d,h,b,S,R,D,$,ne){d.name="",$!=null&&typeof $!="function"&&typeof $!="symbol"&&typeof $!="boolean"?d.type=$:d.removeAttribute("type"),h!=null?$==="number"?(h===0&&d.value===""||d.value!=h)&&(d.value=""+cn(h)):d.value!==""+cn(h)&&(d.value=""+cn(h)):$!=="submit"&&$!=="reset"||d.removeAttribute("value"),h!=null?mr(d,$,cn(h)):b!=null?mr(d,$,cn(b)):S!=null&&d.removeAttribute("value"),R==null&&D!=null&&(d.defaultChecked=!!D),R!=null&&(d.checked=R&&typeof R!="function"&&typeof R!="symbol"),ne!=null&&typeof ne!="function"&&typeof ne!="symbol"&&typeof ne!="boolean"?d.name=""+cn(ne):d.removeAttribute("name")}function Pn(d,h,b,S,R,D,$,ne){if(D!=null&&typeof D!="function"&&typeof D!="symbol"&&typeof D!="boolean"&&(d.type=D),h!=null||b!=null){if(!(D!=="submit"&&D!=="reset"||h!=null)){Xt(d);return}b=b!=null?""+cn(b):"",h=h!=null?""+cn(h):b,ne||h===d.value||(d.value=h),d.defaultValue=h}S=S??R,S=typeof S!="function"&&typeof S!="symbol"&&!!S,d.checked=ne?d.checked:!!S,d.defaultChecked=!!S,$!=null&&typeof $!="function"&&typeof $!="symbol"&&typeof $!="boolean"&&(d.name=$),Xt(d)}function mr(d,h,b){h==="number"&&yi(d.ownerDocument)===d||d.defaultValue===""+b||(d.defaultValue=""+b)}function Qi(d,h,b,S){if(d=d.options,h){h={};for(var R=0;R"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),xM=!1;if(cl)try{var zm={};Object.defineProperty(zm,"passive",{get:function(){xM=!0}}),window.addEventListener("test",zm,zm),window.removeEventListener("test",zm,zm)}catch{xM=!1}var kc=null,vM=null,vv=null;function lL(){if(vv)return vv;var d,h=vM,b=h.length,S,R="value"in kc?kc.value:kc.textContent,D=R.length;for(d=0;d=Vm),pL=" ",mL=!1;function gL(d,h){switch(d){case"keyup":return cee.indexOf(h.keyCode)!==-1;case"keydown":return h.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function xL(d){return d=d.detail,typeof d=="object"&&"data"in d?d.data:null}var Kf=!1;function dee(d,h){switch(d){case"compositionend":return xL(h);case"keypress":return h.which!==32?null:(mL=!0,pL);case"textInput":return d=h.data,d===pL&&mL?null:d;default:return null}}function fee(d,h){if(Kf)return d==="compositionend"||!wM&&gL(d,h)?(d=lL(),vv=vM=kc=null,Kf=!1,d):null;switch(d){case"paste":return null;case"keypress":if(!(h.ctrlKey||h.altKey||h.metaKey)||h.ctrlKey&&h.altKey){if(h.char&&1=h)return{node:b,offset:h-d};d=S}e:{for(;b;){if(b.nextSibling){b=b.nextSibling;break e}b=b.parentNode}b=void 0}b=EL(b)}}function TL(d,h){return d&&h?d===h?!0:d&&d.nodeType===3?!1:h&&h.nodeType===3?TL(d,h.parentNode):"contains"in d?d.contains(h):d.compareDocumentPosition?!!(d.compareDocumentPosition(h)&16):!1:!1}function CL(d){d=d!=null&&d.ownerDocument!=null&&d.ownerDocument.defaultView!=null?d.ownerDocument.defaultView:window;for(var h=yi(d.document);h instanceof d.HTMLIFrameElement;){try{var b=typeof h.contentWindow.location.href=="string"}catch{b=!1}if(b)d=h.contentWindow;else break;h=yi(d.document)}return h}function AM(d){var h=d&&d.nodeName&&d.nodeName.toLowerCase();return h&&(h==="input"&&(d.type==="text"||d.type==="search"||d.type==="tel"||d.type==="url"||d.type==="password")||h==="textarea"||d.contentEditable==="true")}var bee=cl&&"documentMode"in document&&11>=document.documentMode,Yf=null,TM=null,qm=null,CM=!1;function NL(d,h,b){var S=b.window===b?b.document:b.nodeType===9?b:b.ownerDocument;CM||Yf==null||Yf!==yi(S)||(S=Yf,"selectionStart"in S&&AM(S)?S={start:S.selectionStart,end:S.selectionEnd}:(S=(S.ownerDocument&&S.ownerDocument.defaultView||window).getSelection(),S={anchorNode:S.anchorNode,anchorOffset:S.anchorOffset,focusNode:S.focusNode,focusOffset:S.focusOffset}),qm&&Wm(qm,S)||(qm=S,S=dy(TM,"onSelect"),0>=$,R-=$,Co=1<<32-nt(h)+R|b<Qt?(xn=kt,kt=null):xn=kt.sibling;var wn=Ve(De,kt,je[Qt],rt);if(wn===null){kt===null&&(kt=xn);break}d&&kt&&wn.alternate===null&&h(De,kt),Ee=D(wn,Ee,Qt),Sn===null?It=wn:Sn.sibling=wn,Sn=wn,kt=xn}if(Qt===je.length)return b(De,kt),yn&&dl(De,Qt),It;if(kt===null){for(;QtQt?(xn=kt,kt=null):xn=kt.sibling;var eu=Ve(De,kt,wn.value,rt);if(eu===null){kt===null&&(kt=xn);break}d&&kt&&eu.alternate===null&&h(De,kt),Ee=D(eu,Ee,Qt),Sn===null?It=eu:Sn.sibling=eu,Sn=eu,kt=xn}if(wn.done)return b(De,kt),yn&&dl(De,Qt),It;if(kt===null){for(;!wn.done;Qt++,wn=je.next())wn=st(De,wn.value,rt),wn!==null&&(Ee=D(wn,Ee,Qt),Sn===null?It=wn:Sn.sibling=wn,Sn=wn);return yn&&dl(De,Qt),It}for(kt=S(kt);!wn.done;Qt++,wn=je.next())wn=Ye(kt,De,Qt,wn.value,rt),wn!==null&&(d&&wn.alternate!==null&&kt.delete(wn.key===null?Qt:wn.key),Ee=D(wn,Ee,Qt),Sn===null?It=wn:Sn.sibling=wn,Sn=wn);return d&&kt.forEach(function(zte){return h(De,zte)}),yn&&dl(De,Qt),It}function jn(De,Ee,je,rt){if(typeof je=="object"&&je!==null&&je.type===_&&je.key===null&&(je=je.props.children),typeof je=="object"&&je!==null){switch(je.$$typeof){case g:e:{for(var It=je.key;Ee!==null;){if(Ee.key===It){if(It=je.type,It===_){if(Ee.tag===7){b(De,Ee.sibling),rt=R(Ee,je.props.children),rt.return=De,De=rt;break e}}else if(Ee.elementType===It||typeof It=="object"&&It!==null&&It.$$typeof===U&&Sd(It)===Ee.type){b(De,Ee.sibling),rt=R(Ee,je.props),Jm(rt,je),rt.return=De,De=rt;break e}b(De,Ee);break}else h(De,Ee);Ee=Ee.sibling}je.type===_?(rt=xd(je.props.children,De.mode,rt,je.key),rt.return=De,De=rt):(rt=Cv(je.type,je.key,je.props,null,De.mode,rt),Jm(rt,je),rt.return=De,De=rt)}return $(De);case y:e:{for(It=je.key;Ee!==null;){if(Ee.key===It)if(Ee.tag===4&&Ee.stateNode.containerInfo===je.containerInfo&&Ee.stateNode.implementation===je.implementation){b(De,Ee.sibling),rt=R(Ee,je.children||[]),rt.return=De,De=rt;break e}else{b(De,Ee);break}else h(De,Ee);Ee=Ee.sibling}rt=LM(je,De.mode,rt),rt.return=De,De=rt}return $(De);case U:return je=Sd(je),jn(De,Ee,je,rt)}if(H(je))return Nt(De,Ee,je,rt);if(I(je)){if(It=I(je),typeof It!="function")throw Error(i(150));return je=It.call(je),Bt(De,Ee,je,rt)}if(typeof je.then=="function")return jn(De,Ee,Lv(je),rt);if(je.$$typeof===w)return jn(De,Ee,Pv(De,je),rt);Iv(De,je)}return typeof je=="string"&&je!==""||typeof je=="number"||typeof je=="bigint"?(je=""+je,Ee!==null&&Ee.tag===6?(b(De,Ee.sibling),rt=R(Ee,je),rt.return=De,De=rt):(b(De,Ee),rt=OM(je,De.mode,rt),rt.return=De,De=rt),$(De)):b(De,Ee)}return function(De,Ee,je,rt){try{Qm=0;var It=jn(De,Ee,je,rt);return oh=null,It}catch(kt){if(kt===sh||kt===Dv)throw kt;var Sn=Wa(29,kt,null,De.mode);return Sn.lanes=rt,Sn.return=De,Sn}finally{}}}var Md=QL(!0),JL=QL(!1),Uc=!1;function qM(d){d.updateQueue={baseState:d.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function XM(d,h){d=d.updateQueue,h.updateQueue===d&&(h.updateQueue={baseState:d.baseState,firstBaseUpdate:d.firstBaseUpdate,lastBaseUpdate:d.lastBaseUpdate,shared:d.shared,callbacks:null})}function jc(d){return{lane:d,tag:0,payload:null,callback:null,next:null}}function Fc(d,h,b){var S=d.updateQueue;if(S===null)return null;if(S=S.shared,(Tn&2)!==0){var R=S.pending;return R===null?h.next=h:(h.next=R.next,R.next=h),S.pending=h,h=Tv(d),IL(d,null,b),h}return Av(d,S,h,b),Tv(d)}function eg(d,h,b){if(h=h.updateQueue,h!==null&&(h=h.shared,(b&4194048)!==0)){var S=h.lanes;S&=d.pendingLanes,b|=S,h.lanes=b,Wn(d,b)}}function KM(d,h){var b=d.updateQueue,S=d.alternate;if(S!==null&&(S=S.updateQueue,b===S)){var R=null,D=null;if(b=b.firstBaseUpdate,b!==null){do{var $={lane:b.lane,tag:b.tag,payload:b.payload,callback:null,next:null};D===null?R=D=$:D=D.next=$,b=b.next}while(b!==null);D===null?R=D=h:D=D.next=h}else R=D=h;b={baseState:S.baseState,firstBaseUpdate:R,lastBaseUpdate:D,shared:S.shared,callbacks:S.callbacks},d.updateQueue=b;return}d=b.lastBaseUpdate,d===null?b.firstBaseUpdate=h:d.next=h,b.lastBaseUpdate=h}var YM=!1;function tg(){if(YM){var d=ah;if(d!==null)throw d}}function ng(d,h,b,S){YM=!1;var R=d.updateQueue;Uc=!1;var D=R.firstBaseUpdate,$=R.lastBaseUpdate,ne=R.shared.pending;if(ne!==null){R.shared.pending=null;var _e=ne,Fe=_e.next;_e.next=null,$===null?D=Fe:$.next=Fe,$=_e;var Je=d.alternate;Je!==null&&(Je=Je.updateQueue,ne=Je.lastBaseUpdate,ne!==$&&(ne===null?Je.firstBaseUpdate=Fe:ne.next=Fe,Je.lastBaseUpdate=_e))}if(D!==null){var st=R.baseState;$=0,Je=Fe=_e=null,ne=D;do{var Ve=ne.lane&-536870913,Ye=Ve!==ne.lane;if(Ye?(gn&Ve)===Ve:(S&Ve)===Ve){Ve!==0&&Ve===rh&&(YM=!0),Je!==null&&(Je=Je.next={lane:0,tag:ne.tag,payload:ne.payload,callback:null,next:null});e:{var Nt=d,Bt=ne;Ve=h;var jn=b;switch(Bt.tag){case 1:if(Nt=Bt.payload,typeof Nt=="function"){st=Nt.call(jn,st,Ve);break e}st=Nt;break e;case 3:Nt.flags=Nt.flags&-65537|128;case 0:if(Nt=Bt.payload,Ve=typeof Nt=="function"?Nt.call(jn,st,Ve):Nt,Ve==null)break e;st=f({},st,Ve);break e;case 2:Uc=!0}}Ve=ne.callback,Ve!==null&&(d.flags|=64,Ye&&(d.flags|=8192),Ye=R.callbacks,Ye===null?R.callbacks=[Ve]:Ye.push(Ve))}else Ye={lane:Ve,tag:ne.tag,payload:ne.payload,callback:ne.callback,next:null},Je===null?(Fe=Je=Ye,_e=st):Je=Je.next=Ye,$|=Ve;if(ne=ne.next,ne===null){if(ne=R.shared.pending,ne===null)break;Ye=ne,ne=Ye.next,Ye.next=null,R.lastBaseUpdate=Ye,R.shared.pending=null}}while(!0);Je===null&&(_e=st),R.baseState=_e,R.firstBaseUpdate=Fe,R.lastBaseUpdate=Je,D===null&&(R.shared.lanes=0),$c|=$,d.lanes=$,d.memoizedState=st}}function eI(d,h){if(typeof d!="function")throw Error(i(191,d));d.call(h)}function tI(d,h){var b=d.callbacks;if(b!==null)for(d.callbacks=null,d=0;dD?D:8;var $=V.T,ne={};V.T=ne,mE(d,!1,h,b);try{var _e=R(),Fe=V.S;if(Fe!==null&&Fe(ne,_e),_e!==null&&typeof _e=="object"&&typeof _e.then=="function"){var Je=Nee(_e,S);ag(d,h,Je,Za(d))}else ag(d,h,S,Za(d))}catch(st){ag(d,h,{then:function(){},status:"rejected",reason:st},Za())}finally{G.p=D,$!==null&&ne.types!==null&&($.types=ne.types),V.T=$}}function Lee(){}function hE(d,h,b,S){if(d.tag!==5)throw Error(i(476));var R=DI(d).queue;kI(d,R,h,K,b===null?Lee:function(){return OI(d),b(S)})}function DI(d){var h=d.memoizedState;if(h!==null)return h;h={memoizedState:K,baseState:K,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ml,lastRenderedState:K},next:null};var b={};return h.next={memoizedState:b,baseState:b,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ml,lastRenderedState:b},next:null},d.memoizedState=h,d=d.alternate,d!==null&&(d.memoizedState=h),h}function OI(d){var h=DI(d);h.next===null&&(h=d.alternate.memoizedState),ag(d,h.next.queue,{},Za())}function pE(){return Dr(Sg)}function LI(){return Ni().memoizedState}function II(){return Ni().memoizedState}function Iee(d){for(var h=d.return;h!==null;){switch(h.tag){case 24:case 3:var b=Za();d=jc(b);var S=Fc(h,d,b);S!==null&&(Na(S,h,b),eg(S,h,b)),h={cache:VM()},d.payload=h;return}h=h.return}}function Uee(d,h,b){var S=Za();b={lane:S,revertLane:0,gesture:null,action:b,hasEagerState:!1,eagerState:null,next:null},Wv(d)?jI(h,b):(b=kM(d,h,b,S),b!==null&&(Na(b,d,S),FI(b,h,S)))}function UI(d,h,b){var S=Za();ag(d,h,b,S)}function ag(d,h,b,S){var R={lane:S,revertLane:0,gesture:null,action:b,hasEagerState:!1,eagerState:null,next:null};if(Wv(d))jI(h,R);else{var D=d.alternate;if(d.lanes===0&&(D===null||D.lanes===0)&&(D=h.lastRenderedReducer,D!==null))try{var $=h.lastRenderedState,ne=D($,b);if(R.hasEagerState=!0,R.eagerState=ne,Ga(ne,$))return Av(d,h,R,0),qn===null&&Ev(),!1}catch{}finally{}if(b=kM(d,h,R,S),b!==null)return Na(b,d,S),FI(b,h,S),!0}return!1}function mE(d,h,b,S){if(S={lane:2,revertLane:qE(),gesture:null,action:S,hasEagerState:!1,eagerState:null,next:null},Wv(d)){if(h)throw Error(i(479))}else h=kM(d,b,S,2),h!==null&&Na(h,d,2)}function Wv(d){var h=d.alternate;return d===Zt||h!==null&&h===Zt}function jI(d,h){ch=Fv=!0;var b=d.pending;b===null?h.next=h:(h.next=b.next,b.next=h),d.pending=h}function FI(d,h,b){if((b&4194048)!==0){var S=h.lanes;S&=d.pendingLanes,b|=S,h.lanes=b,Wn(d,b)}}var sg={readContext:Dr,use:Hv,useCallback:bi,useContext:bi,useEffect:bi,useImperativeHandle:bi,useLayoutEffect:bi,useInsertionEffect:bi,useMemo:bi,useReducer:bi,useRef:bi,useState:bi,useDebugValue:bi,useDeferredValue:bi,useTransition:bi,useSyncExternalStore:bi,useId:bi,useHostTransitionStatus:bi,useFormState:bi,useActionState:bi,useOptimistic:bi,useMemoCache:bi,useCacheRefresh:bi};sg.useEffectEvent=bi;var zI={readContext:Dr,use:Hv,useCallback:function(d,h){return ca().memoizedState=[d,h===void 0?null:h],d},useContext:Dr,useEffect:wI,useImperativeHandle:function(d,h,b){b=b!=null?b.concat([d]):null,$v(4194308,4,TI.bind(null,h,d),b)},useLayoutEffect:function(d,h){return $v(4194308,4,d,h)},useInsertionEffect:function(d,h){$v(4,2,d,h)},useMemo:function(d,h){var b=ca();h=h===void 0?null:h;var S=d();if(Ed){pt(!0);try{d()}finally{pt(!1)}}return b.memoizedState=[S,h],S},useReducer:function(d,h,b){var S=ca();if(b!==void 0){var R=b(h);if(Ed){pt(!0);try{b(h)}finally{pt(!1)}}}else R=h;return S.memoizedState=S.baseState=R,d={pending:null,lanes:0,dispatch:null,lastRenderedReducer:d,lastRenderedState:R},S.queue=d,d=d.dispatch=Uee.bind(null,Zt,d),[S.memoizedState,d]},useRef:function(d){var h=ca();return d={current:d},h.memoizedState=d},useState:function(d){d=lE(d);var h=d.queue,b=UI.bind(null,Zt,h);return h.dispatch=b,[d.memoizedState,b]},useDebugValue:dE,useDeferredValue:function(d,h){var b=ca();return fE(b,d,h)},useTransition:function(){var d=lE(!1);return d=kI.bind(null,Zt,d.queue,!0,!1),ca().memoizedState=d,[!1,d]},useSyncExternalStore:function(d,h,b){var S=Zt,R=ca();if(yn){if(b===void 0)throw Error(i(407));b=b()}else{if(b=h(),qn===null)throw Error(i(349));(gn&127)!==0||oI(S,h,b)}R.memoizedState=b;var D={value:b,getSnapshot:h};return R.queue=D,wI(cI.bind(null,S,D,d),[d]),S.flags|=2048,dh(9,{destroy:void 0},lI.bind(null,S,D,b,h),null),b},useId:function(){var d=ca(),h=qn.identifierPrefix;if(yn){var b=No,S=Co;b=(S&~(1<<32-nt(S)-1)).toString(32)+b,h="_"+h+"R_"+b,b=zv++,0<\/script>",D=D.removeChild(D.firstChild);break;case"select":D=typeof S.is=="string"?$.createElement("select",{is:S.is}):$.createElement("select"),S.multiple?D.multiple=!0:S.size&&(D.size=S.size);break;default:D=typeof S.is=="string"?$.createElement(R,{is:S.is}):$.createElement(R)}}D[hi]=h,D[Ai]=S;e:for($=h.child;$!==null;){if($.tag===5||$.tag===6)D.appendChild($.stateNode);else if($.tag!==4&&$.tag!==27&&$.child!==null){$.child.return=$,$=$.child;continue}if($===h)break e;for(;$.sibling===null;){if($.return===null||$.return===h)break e;$=$.return}$.sibling.return=$.return,$=$.sibling}h.stateNode=D;e:switch(Lr(D,R,S),R){case"button":case"input":case"select":case"textarea":S=!!S.autoFocus;break e;case"img":S=!0;break e;default:S=!1}S&&xl(h)}}return ti(h),NE(h,h.type,d===null?null:d.memoizedProps,h.pendingProps,b),null;case 6:if(d&&h.stateNode!=null)d.memoizedProps!==S&&xl(h);else{if(typeof S!="string"&&h.stateNode===null)throw Error(i(166));if(d=ie.current,nh(h)){if(d=h.stateNode,b=h.memoizedProps,S=null,R=kr,R!==null)switch(R.tag){case 27:case 5:S=R.memoizedProps}d[hi]=h,d=!!(d.nodeValue===b||S!==null&&S.suppressHydrationWarning===!0||aj(d.nodeValue,b)),d||Lc(h,!0)}else d=fy(d).createTextNode(S),d[hi]=h,h.stateNode=d}return ti(h),null;case 31:if(b=h.memoizedState,d===null||d.memoizedState!==null){if(S=nh(h),b!==null){if(d===null){if(!S)throw Error(i(318));if(d=h.memoizedState,d=d!==null?d.dehydrated:null,!d)throw Error(i(557));d[hi]=h}else vd(),(h.flags&128)===0&&(h.memoizedState=null),h.flags|=4;ti(h),d=!1}else b=FM(),d!==null&&d.memoizedState!==null&&(d.memoizedState.hydrationErrors=b),d=!0;if(!d)return h.flags&256?(Xa(h),h):(Xa(h),null);if((h.flags&128)!==0)throw Error(i(558))}return ti(h),null;case 13:if(S=h.memoizedState,d===null||d.memoizedState!==null&&d.memoizedState.dehydrated!==null){if(R=nh(h),S!==null&&S.dehydrated!==null){if(d===null){if(!R)throw Error(i(318));if(R=h.memoizedState,R=R!==null?R.dehydrated:null,!R)throw Error(i(317));R[hi]=h}else vd(),(h.flags&128)===0&&(h.memoizedState=null),h.flags|=4;ti(h),R=!1}else R=FM(),d!==null&&d.memoizedState!==null&&(d.memoizedState.hydrationErrors=R),R=!0;if(!R)return h.flags&256?(Xa(h),h):(Xa(h),null)}return Xa(h),(h.flags&128)!==0?(h.lanes=b,h):(b=S!==null,d=d!==null&&d.memoizedState!==null,b&&(S=h.child,R=null,S.alternate!==null&&S.alternate.memoizedState!==null&&S.alternate.memoizedState.cachePool!==null&&(R=S.alternate.memoizedState.cachePool.pool),D=null,S.memoizedState!==null&&S.memoizedState.cachePool!==null&&(D=S.memoizedState.cachePool.pool),D!==R&&(S.flags|=2048)),b!==d&&b&&(h.child.flags|=8192),Zv(h,h.updateQueue),ti(h),null);case 4:return pe(),d===null&&ZE(h.stateNode.containerInfo),ti(h),null;case 10:return hl(h.type),ti(h),null;case 19:if(X(Ci),S=h.memoizedState,S===null)return ti(h),null;if(R=(h.flags&128)!==0,D=S.rendering,D===null)if(R)lg(S,!1);else{if(_i!==0||d!==null&&(d.flags&128)!==0)for(d=h.child;d!==null;){if(D=jv(d),D!==null){for(h.flags|=128,lg(S,!1),d=D.updateQueue,h.updateQueue=d,Zv(h,d),h.subtreeFlags=0,d=b,b=h.child;b!==null;)UL(b,d),b=b.sibling;return ae(Ci,Ci.current&1|2),yn&&dl(h,S.treeForkCount),h.child}d=d.sibling}S.tail!==null&&O()>ny&&(h.flags|=128,R=!0,lg(S,!1),h.lanes=4194304)}else{if(!R)if(d=jv(D),d!==null){if(h.flags|=128,R=!0,d=d.updateQueue,h.updateQueue=d,Zv(h,d),lg(S,!0),S.tail===null&&S.tailMode==="hidden"&&!D.alternate&&!yn)return ti(h),null}else 2*O()-S.renderingStartTime>ny&&b!==536870912&&(h.flags|=128,R=!0,lg(S,!1),h.lanes=4194304);S.isBackwards?(D.sibling=h.child,h.child=D):(d=S.last,d!==null?d.sibling=D:h.child=D,S.last=D)}return S.tail!==null?(d=S.tail,S.rendering=d,S.tail=d.sibling,S.renderingStartTime=O(),d.sibling=null,b=Ci.current,ae(Ci,R?b&1|2:b&1),yn&&dl(h,S.treeForkCount),d):(ti(h),null);case 22:case 23:return Xa(h),QM(),S=h.memoizedState!==null,d!==null?d.memoizedState!==null!==S&&(h.flags|=8192):S&&(h.flags|=8192),S?(b&536870912)!==0&&(h.flags&128)===0&&(ti(h),h.subtreeFlags&6&&(h.flags|=8192)):ti(h),b=h.updateQueue,b!==null&&Zv(h,b.retryQueue),b=null,d!==null&&d.memoizedState!==null&&d.memoizedState.cachePool!==null&&(b=d.memoizedState.cachePool.pool),S=null,h.memoizedState!==null&&h.memoizedState.cachePool!==null&&(S=h.memoizedState.cachePool.pool),S!==b&&(h.flags|=2048),d!==null&&X(_d),null;case 24:return b=null,d!==null&&(b=d.memoizedState.cache),h.memoizedState.cache!==b&&(h.flags|=2048),hl(Ii),ti(h),null;case 25:return null;case 30:return null}throw Error(i(156,h.tag))}function Hee(d,h){switch(UM(h),h.tag){case 1:return d=h.flags,d&65536?(h.flags=d&-65537|128,h):null;case 3:return hl(Ii),pe(),d=h.flags,(d&65536)!==0&&(d&128)===0?(h.flags=d&-65537|128,h):null;case 26:case 27:case 5:return ze(h),null;case 31:if(h.memoizedState!==null){if(Xa(h),h.alternate===null)throw Error(i(340));vd()}return d=h.flags,d&65536?(h.flags=d&-65537|128,h):null;case 13:if(Xa(h),d=h.memoizedState,d!==null&&d.dehydrated!==null){if(h.alternate===null)throw Error(i(340));vd()}return d=h.flags,d&65536?(h.flags=d&-65537|128,h):null;case 19:return X(Ci),null;case 4:return pe(),null;case 10:return hl(h.type),null;case 22:case 23:return Xa(h),QM(),d!==null&&X(_d),d=h.flags,d&65536?(h.flags=d&-65537|128,h):null;case 24:return hl(Ii),null;case 25:return null;default:return null}}function uU(d,h){switch(UM(h),h.tag){case 3:hl(Ii),pe();break;case 26:case 27:case 5:ze(h);break;case 4:pe();break;case 31:h.memoizedState!==null&&Xa(h);break;case 13:Xa(h);break;case 19:X(Ci);break;case 10:hl(h.type);break;case 22:case 23:Xa(h),QM(),d!==null&&X(_d);break;case 24:hl(Ii)}}function cg(d,h){try{var b=h.updateQueue,S=b!==null?b.lastEffect:null;if(S!==null){var R=S.next;b=R;do{if((b.tag&d)===d){S=void 0;var D=b.create,$=b.inst;S=D(),$.destroy=S}b=b.next}while(b!==R)}}catch(ne){Dn(h,h.return,ne)}}function Hc(d,h,b){try{var S=h.updateQueue,R=S!==null?S.lastEffect:null;if(R!==null){var D=R.next;S=D;do{if((S.tag&d)===d){var $=S.inst,ne=$.destroy;if(ne!==void 0){$.destroy=void 0,R=h;var _e=b,Fe=ne;try{Fe()}catch(Je){Dn(R,_e,Je)}}}S=S.next}while(S!==D)}}catch(Je){Dn(h,h.return,Je)}}function dU(d){var h=d.updateQueue;if(h!==null){var b=d.stateNode;try{tI(h,b)}catch(S){Dn(d,d.return,S)}}}function fU(d,h,b){b.props=Ad(d.type,d.memoizedProps),b.state=d.memoizedState;try{b.componentWillUnmount()}catch(S){Dn(d,h,S)}}function ug(d,h){try{var b=d.ref;if(b!==null){switch(d.tag){case 26:case 27:case 5:var S=d.stateNode;break;case 30:S=d.stateNode;break;default:S=d.stateNode}typeof b=="function"?d.refCleanup=b(S):b.current=S}}catch(R){Dn(d,h,R)}}function Ro(d,h){var b=d.ref,S=d.refCleanup;if(b!==null)if(typeof S=="function")try{S()}catch(R){Dn(d,h,R)}finally{d.refCleanup=null,d=d.alternate,d!=null&&(d.refCleanup=null)}else if(typeof b=="function")try{b(null)}catch(R){Dn(d,h,R)}else b.current=null}function hU(d){var h=d.type,b=d.memoizedProps,S=d.stateNode;try{e:switch(h){case"button":case"input":case"select":case"textarea":b.autoFocus&&S.focus();break e;case"img":b.src?S.src=b.src:b.srcSet&&(S.srcset=b.srcSet)}}catch(R){Dn(d,d.return,R)}}function RE(d,h,b){try{var S=d.stateNode;ute(S,d.type,b,h),S[Ai]=h}catch(R){Dn(d,d.return,R)}}function pU(d){return d.tag===5||d.tag===3||d.tag===26||d.tag===27&&Kc(d.type)||d.tag===4}function PE(d){e:for(;;){for(;d.sibling===null;){if(d.return===null||pU(d.return))return null;d=d.return}for(d.sibling.return=d.return,d=d.sibling;d.tag!==5&&d.tag!==6&&d.tag!==18;){if(d.tag===27&&Kc(d.type)||d.flags&2||d.child===null||d.tag===4)continue e;d.child.return=d,d=d.child}if(!(d.flags&2))return d.stateNode}}function kE(d,h,b){var S=d.tag;if(S===5||S===6)d=d.stateNode,h?(b.nodeType===9?b.body:b.nodeName==="HTML"?b.ownerDocument.body:b).insertBefore(d,h):(h=b.nodeType===9?b.body:b.nodeName==="HTML"?b.ownerDocument.body:b,h.appendChild(d),b=b._reactRootContainer,b!=null||h.onclick!==null||(h.onclick=ll));else if(S!==4&&(S===27&&Kc(d.type)&&(b=d.stateNode,h=null),d=d.child,d!==null))for(kE(d,h,b),d=d.sibling;d!==null;)kE(d,h,b),d=d.sibling}function Qv(d,h,b){var S=d.tag;if(S===5||S===6)d=d.stateNode,h?b.insertBefore(d,h):b.appendChild(d);else if(S!==4&&(S===27&&Kc(d.type)&&(b=d.stateNode),d=d.child,d!==null))for(Qv(d,h,b),d=d.sibling;d!==null;)Qv(d,h,b),d=d.sibling}function mU(d){var h=d.stateNode,b=d.memoizedProps;try{for(var S=d.type,R=h.attributes;R.length;)h.removeAttributeNode(R[0]);Lr(h,S,b),h[hi]=d,h[Ai]=b}catch(D){Dn(d,d.return,D)}}var vl=!1,Fi=!1,DE=!1,gU=typeof WeakSet=="function"?WeakSet:Set,xr=null;function Vee(d,h){if(d=d.containerInfo,eA=yy,d=CL(d),AM(d)){if("selectionStart"in d)var b={start:d.selectionStart,end:d.selectionEnd};else e:{b=(b=d.ownerDocument)&&b.defaultView||window;var S=b.getSelection&&b.getSelection();if(S&&S.rangeCount!==0){b=S.anchorNode;var R=S.anchorOffset,D=S.focusNode;S=S.focusOffset;try{b.nodeType,D.nodeType}catch{b=null;break e}var $=0,ne=-1,_e=-1,Fe=0,Je=0,st=d,Ve=null;t:for(;;){for(var Ye;st!==b||R!==0&&st.nodeType!==3||(ne=$+R),st!==D||S!==0&&st.nodeType!==3||(_e=$+S),st.nodeType===3&&($+=st.nodeValue.length),(Ye=st.firstChild)!==null;)Ve=st,st=Ye;for(;;){if(st===d)break t;if(Ve===b&&++Fe===R&&(ne=$),Ve===D&&++Je===S&&(_e=$),(Ye=st.nextSibling)!==null)break;st=Ve,Ve=st.parentNode}st=Ye}b=ne===-1||_e===-1?null:{start:ne,end:_e}}else b=null}b=b||{start:0,end:0}}else b=null;for(tA={focusedElem:d,selectionRange:b},yy=!1,xr=h;xr!==null;)if(h=xr,d=h.child,(h.subtreeFlags&1028)!==0&&d!==null)d.return=h,xr=d;else for(;xr!==null;){switch(h=xr,D=h.alternate,d=h.flags,h.tag){case 0:if((d&4)!==0&&(d=h.updateQueue,d=d!==null?d.events:null,d!==null))for(b=0;b title"))),Lr(D,S,b),D[hi]=d,Te(D),S=D;break e;case"link":var $=Sj("link","href",R).get(S+(b.href||""));if($){for(var ne=0;ne<$.length;ne++)if(D=$[ne],D.getAttribute("href")===(b.href==null||b.href===""?null:b.href)&&D.getAttribute("rel")===(b.rel==null?null:b.rel)&&D.getAttribute("title")===(b.title==null?null:b.title)&&D.getAttribute("crossorigin")===(b.crossOrigin==null?null:b.crossOrigin)){$.splice(ne,1);break t}}D=R.createElement(S),Lr(D,S,b),R.head.appendChild(D);break;case"meta":if($=Sj("meta","content",R).get(S+(b.content||""))){for(ne=0;ne<$.length;ne++)if(D=$[ne],D.getAttribute("content")===(b.content==null?null:""+b.content)&&D.getAttribute("name")===(b.name==null?null:b.name)&&D.getAttribute("property")===(b.property==null?null:b.property)&&D.getAttribute("http-equiv")===(b.httpEquiv==null?null:b.httpEquiv)&&D.getAttribute("charset")===(b.charSet==null?null:b.charSet)){$.splice(ne,1);break t}}D=R.createElement(S),Lr(D,S,b),R.head.appendChild(D);break;default:throw Error(i(468,S))}D[hi]=d,Te(D),S=D}d.stateNode=S}else wj(R,d.type,d.stateNode);else d.stateNode=_j(R,S,d.memoizedProps);else D!==S?(D===null?b.stateNode!==null&&(b=b.stateNode,b.parentNode.removeChild(b)):D.count--,S===null?wj(R,d.type,d.stateNode):_j(R,S,d.memoizedProps)):S===null&&d.stateNode!==null&&RE(d,d.memoizedProps,b.memoizedProps)}break;case 27:Aa(h,d),Ta(d),S&512&&(Fi||b===null||Ro(b,b.return)),b!==null&&S&4&&RE(d,d.memoizedProps,b.memoizedProps);break;case 5:if(Aa(h,d),Ta(d),S&512&&(Fi||b===null||Ro(b,b.return)),d.flags&32){R=d.stateNode;try{To(R,"")}catch(Nt){Dn(d,d.return,Nt)}}S&4&&d.stateNode!=null&&(R=d.memoizedProps,RE(d,R,b!==null?b.memoizedProps:R)),S&1024&&(DE=!0);break;case 6:if(Aa(h,d),Ta(d),S&4){if(d.stateNode===null)throw Error(i(162));S=d.memoizedProps,b=d.stateNode;try{b.nodeValue=S}catch(Nt){Dn(d,d.return,Nt)}}break;case 3:if(my=null,R=to,to=hy(h.containerInfo),Aa(h,d),to=R,Ta(d),S&4&&b!==null&&b.memoizedState.isDehydrated)try{wh(h.containerInfo)}catch(Nt){Dn(d,d.return,Nt)}DE&&(DE=!1,wU(d));break;case 4:S=to,to=hy(d.stateNode.containerInfo),Aa(h,d),Ta(d),to=S;break;case 12:Aa(h,d),Ta(d);break;case 31:Aa(h,d),Ta(d),S&4&&(S=d.updateQueue,S!==null&&(d.updateQueue=null,Jv(d,S)));break;case 13:Aa(h,d),Ta(d),d.child.flags&8192&&d.memoizedState!==null!=(b!==null&&b.memoizedState!==null)&&(ty=O()),S&4&&(S=d.updateQueue,S!==null&&(d.updateQueue=null,Jv(d,S)));break;case 22:R=d.memoizedState!==null;var _e=b!==null&&b.memoizedState!==null,Fe=vl,Je=Fi;if(vl=Fe||R,Fi=Je||_e,Aa(h,d),Fi=Je,vl=Fe,Ta(d),S&8192)e:for(h=d.stateNode,h._visibility=R?h._visibility&-2:h._visibility|1,R&&(b===null||_e||vl||Fi||Td(d)),b=null,h=d;;){if(h.tag===5||h.tag===26){if(b===null){_e=b=h;try{if(D=_e.stateNode,R)$=D.style,typeof $.setProperty=="function"?$.setProperty("display","none","important"):$.display="none";else{ne=_e.stateNode;var st=_e.memoizedProps.style,Ve=st!=null&&st.hasOwnProperty("display")?st.display:null;ne.style.display=Ve==null||typeof Ve=="boolean"?"":(""+Ve).trim()}}catch(Nt){Dn(_e,_e.return,Nt)}}}else if(h.tag===6){if(b===null){_e=h;try{_e.stateNode.nodeValue=R?"":_e.memoizedProps}catch(Nt){Dn(_e,_e.return,Nt)}}}else if(h.tag===18){if(b===null){_e=h;try{var Ye=_e.stateNode;R?fj(Ye,!0):fj(_e.stateNode,!1)}catch(Nt){Dn(_e,_e.return,Nt)}}}else if((h.tag!==22&&h.tag!==23||h.memoizedState===null||h===d)&&h.child!==null){h.child.return=h,h=h.child;continue}if(h===d)break e;for(;h.sibling===null;){if(h.return===null||h.return===d)break e;b===h&&(b=null),h=h.return}b===h&&(b=null),h.sibling.return=h.return,h=h.sibling}S&4&&(S=d.updateQueue,S!==null&&(b=S.retryQueue,b!==null&&(S.retryQueue=null,Jv(d,b))));break;case 19:Aa(h,d),Ta(d),S&4&&(S=d.updateQueue,S!==null&&(d.updateQueue=null,Jv(d,S)));break;case 30:break;case 21:break;default:Aa(h,d),Ta(d)}}function Ta(d){var h=d.flags;if(h&2){try{for(var b,S=d.return;S!==null;){if(pU(S)){b=S;break}S=S.return}if(b==null)throw Error(i(160));switch(b.tag){case 27:var R=b.stateNode,D=PE(d);Qv(d,D,R);break;case 5:var $=b.stateNode;b.flags&32&&(To($,""),b.flags&=-33);var ne=PE(d);Qv(d,ne,$);break;case 3:case 4:var _e=b.stateNode.containerInfo,Fe=PE(d);kE(d,Fe,_e);break;default:throw Error(i(161))}}catch(Je){Dn(d,d.return,Je)}d.flags&=-3}h&4096&&(d.flags&=-4097)}function wU(d){if(d.subtreeFlags&1024)for(d=d.child;d!==null;){var h=d;wU(h),h.tag===5&&h.flags&1024&&h.stateNode.reset(),d=d.sibling}}function bl(d,h){if(h.subtreeFlags&8772)for(h=h.child;h!==null;)xU(d,h.alternate,h),h=h.sibling}function Td(d){for(d=d.child;d!==null;){var h=d;switch(h.tag){case 0:case 11:case 14:case 15:Hc(4,h,h.return),Td(h);break;case 1:Ro(h,h.return);var b=h.stateNode;typeof b.componentWillUnmount=="function"&&fU(h,h.return,b),Td(h);break;case 27:yg(h.stateNode);case 26:case 5:Ro(h,h.return),Td(h);break;case 22:h.memoizedState===null&&Td(h);break;case 30:Td(h);break;default:Td(h)}d=d.sibling}}function _l(d,h,b){for(b=b&&(h.subtreeFlags&8772)!==0,h=h.child;h!==null;){var S=h.alternate,R=d,D=h,$=D.flags;switch(D.tag){case 0:case 11:case 15:_l(R,D,b),cg(4,D);break;case 1:if(_l(R,D,b),S=D,R=S.stateNode,typeof R.componentDidMount=="function")try{R.componentDidMount()}catch(Fe){Dn(S,S.return,Fe)}if(S=D,R=S.updateQueue,R!==null){var ne=S.stateNode;try{var _e=R.shared.hiddenCallbacks;if(_e!==null)for(R.shared.hiddenCallbacks=null,R=0;R<_e.length;R++)eI(_e[R],ne)}catch(Fe){Dn(S,S.return,Fe)}}b&&$&64&&dU(D),ug(D,D.return);break;case 27:mU(D);case 26:case 5:_l(R,D,b),b&&S===null&&$&4&&hU(D),ug(D,D.return);break;case 12:_l(R,D,b);break;case 31:_l(R,D,b),b&&$&4&&bU(R,D);break;case 13:_l(R,D,b),b&&$&4&&_U(R,D);break;case 22:D.memoizedState===null&&_l(R,D,b),ug(D,D.return);break;case 30:break;default:_l(R,D,b)}h=h.sibling}}function OE(d,h){var b=null;d!==null&&d.memoizedState!==null&&d.memoizedState.cachePool!==null&&(b=d.memoizedState.cachePool.pool),d=null,h.memoizedState!==null&&h.memoizedState.cachePool!==null&&(d=h.memoizedState.cachePool.pool),d!==b&&(d!=null&&d.refCount++,b!=null&&Ym(b))}function LE(d,h){d=null,h.alternate!==null&&(d=h.alternate.memoizedState.cache),h=h.memoizedState.cache,h!==d&&(h.refCount++,d!=null&&Ym(d))}function no(d,h,b,S){if(h.subtreeFlags&10256)for(h=h.child;h!==null;)MU(d,h,b,S),h=h.sibling}function MU(d,h,b,S){var R=h.flags;switch(h.tag){case 0:case 11:case 15:no(d,h,b,S),R&2048&&cg(9,h);break;case 1:no(d,h,b,S);break;case 3:no(d,h,b,S),R&2048&&(d=null,h.alternate!==null&&(d=h.alternate.memoizedState.cache),h=h.memoizedState.cache,h!==d&&(h.refCount++,d!=null&&Ym(d)));break;case 12:if(R&2048){no(d,h,b,S),d=h.stateNode;try{var D=h.memoizedProps,$=D.id,ne=D.onPostCommit;typeof ne=="function"&&ne($,h.alternate===null?"mount":"update",d.passiveEffectDuration,-0)}catch(_e){Dn(h,h.return,_e)}}else no(d,h,b,S);break;case 31:no(d,h,b,S);break;case 13:no(d,h,b,S);break;case 23:break;case 22:D=h.stateNode,$=h.alternate,h.memoizedState!==null?D._visibility&2?no(d,h,b,S):dg(d,h):D._visibility&2?no(d,h,b,S):(D._visibility|=2,fh(d,h,b,S,(h.subtreeFlags&10256)!==0||!1)),R&2048&&OE($,h);break;case 24:no(d,h,b,S),R&2048&&LE(h.alternate,h);break;default:no(d,h,b,S)}}function fh(d,h,b,S,R){for(R=R&&((h.subtreeFlags&10256)!==0||!1),h=h.child;h!==null;){var D=d,$=h,ne=b,_e=S,Fe=$.flags;switch($.tag){case 0:case 11:case 15:fh(D,$,ne,_e,R),cg(8,$);break;case 23:break;case 22:var Je=$.stateNode;$.memoizedState!==null?Je._visibility&2?fh(D,$,ne,_e,R):dg(D,$):(Je._visibility|=2,fh(D,$,ne,_e,R)),R&&Fe&2048&&OE($.alternate,$);break;case 24:fh(D,$,ne,_e,R),R&&Fe&2048&&LE($.alternate,$);break;default:fh(D,$,ne,_e,R)}h=h.sibling}}function dg(d,h){if(h.subtreeFlags&10256)for(h=h.child;h!==null;){var b=d,S=h,R=S.flags;switch(S.tag){case 22:dg(b,S),R&2048&&OE(S.alternate,S);break;case 24:dg(b,S),R&2048&&LE(S.alternate,S);break;default:dg(b,S)}h=h.sibling}}var fg=8192;function hh(d,h,b){if(d.subtreeFlags&fg)for(d=d.child;d!==null;)EU(d,h,b),d=d.sibling}function EU(d,h,b){switch(d.tag){case 26:hh(d,h,b),d.flags&fg&&d.memoizedState!==null&&Rte(b,to,d.memoizedState,d.memoizedProps);break;case 5:hh(d,h,b);break;case 3:case 4:var S=to;to=hy(d.stateNode.containerInfo),hh(d,h,b),to=S;break;case 22:d.memoizedState===null&&(S=d.alternate,S!==null&&S.memoizedState!==null?(S=fg,fg=16777216,hh(d,h,b),fg=S):hh(d,h,b));break;default:hh(d,h,b)}}function AU(d){var h=d.alternate;if(h!==null&&(d=h.child,d!==null)){h.child=null;do h=d.sibling,d.sibling=null,d=h;while(d!==null)}}function hg(d){var h=d.deletions;if((d.flags&16)!==0){if(h!==null)for(var b=0;bjn&&($=jn,jn=Bt,Bt=$);var De=AL(ne,Bt),Ee=AL(ne,jn);if(De&&Ee&&(Ye.rangeCount!==1||Ye.anchorNode!==De.node||Ye.anchorOffset!==De.offset||Ye.focusNode!==Ee.node||Ye.focusOffset!==Ee.offset)){var je=st.createRange();je.setStart(De.node,De.offset),Ye.removeAllRanges(),Bt>jn?(Ye.addRange(je),Ye.extend(Ee.node,Ee.offset)):(je.setEnd(Ee.node,Ee.offset),Ye.addRange(je))}}}}for(st=[],Ye=ne;Ye=Ye.parentNode;)Ye.nodeType===1&&st.push({element:Ye,left:Ye.scrollLeft,top:Ye.scrollTop});for(typeof ne.focus=="function"&&ne.focus(),ne=0;neb?32:b,V.T=null,b=zE,zE=null;var D=Wc,$=wl;if(Ji=0,gh=Wc=null,wl=0,(Tn&6)!==0)throw Error(i(331));var ne=Tn;if(Tn|=4,TU(D.current),MU(D,D.current,$,b),Tn=ne,gg(0,!1),Re&&typeof Re.onPostCommitFiberRoot=="function")try{Re.onPostCommitFiberRoot(Ie,D)}catch{}return!0}finally{G.p=R,V.T=S,GU(d,h)}}function qU(d,h,b){h=gs(b,h),h=yE(d.stateNode,h,2),d=Fc(d,h,2),d!==null&&(on(d,2),Po(d))}function Dn(d,h,b){if(d.tag===3)qU(d,d,b);else for(;h!==null;){if(h.tag===3){qU(h,d,b);break}else if(h.tag===1){var S=h.stateNode;if(typeof h.type.getDerivedStateFromError=="function"||typeof S.componentDidCatch=="function"&&(Gc===null||!Gc.has(S))){d=gs(b,d),b=XI(2),S=Fc(h,b,2),S!==null&&(KI(b,S,h,d),on(S,2),Po(S));break}}h=h.return}}function $E(d,h,b){var S=d.pingCache;if(S===null){S=d.pingCache=new Wee;var R=new Set;S.set(h,R)}else R=S.get(h),R===void 0&&(R=new Set,S.set(h,R));R.has(b)||(IE=!0,R.add(b),d=Zee.bind(null,d,h,b),h.then(d,d))}function Zee(d,h,b){var S=d.pingCache;S!==null&&S.delete(h),d.pingedLanes|=d.suspendedLanes&b,d.warmLanes&=~b,qn===d&&(gn&b)===b&&(_i===4||_i===3&&(gn&62914560)===gn&&300>O()-ty?(Tn&2)===0&&xh(d,0):UE|=b,mh===gn&&(mh=0)),Po(d)}function XU(d,h){h===0&&(h=bt()),d=gd(d,h),d!==null&&(on(d,h),Po(d))}function Qee(d){var h=d.memoizedState,b=0;h!==null&&(b=h.retryLane),XU(d,b)}function Jee(d,h){var b=0;switch(d.tag){case 31:case 13:var S=d.stateNode,R=d.memoizedState;R!==null&&(b=R.retryLane);break;case 19:S=d.stateNode;break;case 22:S=d.stateNode._retryCache;break;default:throw Error(i(314))}S!==null&&S.delete(h),XU(d,b)}function ete(d,h){return ke(d,h)}var ly=null,yh=null,GE=!1,cy=!1,WE=!1,Xc=0;function Po(d){d!==yh&&d.next===null&&(yh===null?ly=yh=d:yh=yh.next=d),cy=!0,GE||(GE=!0,nte())}function gg(d,h){if(!WE&&cy){WE=!0;do for(var b=!1,S=ly;S!==null;){if(d!==0){var R=S.pendingLanes;if(R===0)var D=0;else{var $=S.suspendedLanes,ne=S.pingedLanes;D=(1<<31-nt(42|d)+1)-1,D&=R&~($&~ne),D=D&201326741?D&201326741|1:D?D|2:0}D!==0&&(b=!0,QU(S,D))}else D=gn,D=ge(S,S===qn?D:0,S.cancelPendingCommit!==null||S.timeoutHandle!==-1),(D&3)===0||Be(S,D)||(b=!0,QU(S,D));S=S.next}while(b);WE=!1}}function tte(){KU()}function KU(){cy=GE=!1;var d=0;Xc!==0&&fte()&&(d=Xc);for(var h=O(),b=null,S=ly;S!==null;){var R=S.next,D=YU(S,h);D===0?(S.next=null,b===null?ly=R:b.next=R,R===null&&(yh=b)):(b=S,(d!==0||(D&3)!==0)&&(cy=!0)),S=R}Ji!==0&&Ji!==5||gg(d),Xc!==0&&(Xc=0)}function YU(d,h){for(var b=d.suspendedLanes,S=d.pingedLanes,R=d.expirationTimes,D=d.pendingLanes&-62914561;0ne)break;var Je=_e.transferSize,st=_e.initiatorType;Je&&sj(st)&&(_e=_e.responseEnd,$+=Je*(_e"u"?null:document;function vj(d,h,b){var S=bh;if(S&&typeof h=="string"&&h){var R=Cn(h);R='link[rel="'+d+'"][href="'+R+'"]',typeof b=="string"&&(R+='[crossorigin="'+b+'"]'),xj.has(R)||(xj.add(R),d={rel:d,crossOrigin:b,href:h},S.querySelector(R)===null&&(h=S.createElement("link"),Lr(h,"link",d),Te(h),S.head.appendChild(h)))}}function _te(d){Ml.D(d),vj("dns-prefetch",d,null)}function Ste(d,h){Ml.C(d,h),vj("preconnect",d,h)}function wte(d,h,b){Ml.L(d,h,b);var S=bh;if(S&&d&&h){var R='link[rel="preload"][as="'+Cn(h)+'"]';h==="image"&&b&&b.imageSrcSet?(R+='[imagesrcset="'+Cn(b.imageSrcSet)+'"]',typeof b.imageSizes=="string"&&(R+='[imagesizes="'+Cn(b.imageSizes)+'"]')):R+='[href="'+Cn(d)+'"]';var D=R;switch(h){case"style":D=_h(d);break;case"script":D=Sh(d)}Ss.has(D)||(d=f({rel:"preload",href:h==="image"&&b&&b.imageSrcSet?void 0:d,as:h},b),Ss.set(D,d),S.querySelector(R)!==null||h==="style"&&S.querySelector(bg(D))||h==="script"&&S.querySelector(_g(D))||(h=S.createElement("link"),Lr(h,"link",d),Te(h),S.head.appendChild(h)))}}function Mte(d,h){Ml.m(d,h);var b=bh;if(b&&d){var S=h&&typeof h.as=="string"?h.as:"script",R='link[rel="modulepreload"][as="'+Cn(S)+'"][href="'+Cn(d)+'"]',D=R;switch(S){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":D=Sh(d)}if(!Ss.has(D)&&(d=f({rel:"modulepreload",href:d},h),Ss.set(D,d),b.querySelector(R)===null)){switch(S){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(b.querySelector(_g(D)))return}S=b.createElement("link"),Lr(S,"link",d),Te(S),b.head.appendChild(S)}}}function Ete(d,h,b){Ml.S(d,h,b);var S=bh;if(S&&d){var R=Ce(S).hoistableStyles,D=_h(d);h=h||"default";var $=R.get(D);if(!$){var ne={loading:0,preload:null};if($=S.querySelector(bg(D)))ne.loading=5;else{d=f({rel:"stylesheet",href:d,"data-precedence":h},b),(b=Ss.get(D))&&lA(d,b);var _e=$=S.createElement("link");Te(_e),Lr(_e,"link",d),_e._p=new Promise(function(Fe,Je){_e.onload=Fe,_e.onerror=Je}),_e.addEventListener("load",function(){ne.loading|=1}),_e.addEventListener("error",function(){ne.loading|=2}),ne.loading|=4,py($,h,S)}$={type:"stylesheet",instance:$,count:1,state:ne},R.set(D,$)}}}function Ate(d,h){Ml.X(d,h);var b=bh;if(b&&d){var S=Ce(b).hoistableScripts,R=Sh(d),D=S.get(R);D||(D=b.querySelector(_g(R)),D||(d=f({src:d,async:!0},h),(h=Ss.get(R))&&cA(d,h),D=b.createElement("script"),Te(D),Lr(D,"link",d),b.head.appendChild(D)),D={type:"script",instance:D,count:1,state:null},S.set(R,D))}}function Tte(d,h){Ml.M(d,h);var b=bh;if(b&&d){var S=Ce(b).hoistableScripts,R=Sh(d),D=S.get(R);D||(D=b.querySelector(_g(R)),D||(d=f({src:d,async:!0,type:"module"},h),(h=Ss.get(R))&&cA(d,h),D=b.createElement("script"),Te(D),Lr(D,"link",d),b.head.appendChild(D)),D={type:"script",instance:D,count:1,state:null},S.set(R,D))}}function yj(d,h,b,S){var R=(R=ie.current)?hy(R):null;if(!R)throw Error(i(446));switch(d){case"meta":case"title":return null;case"style":return typeof b.precedence=="string"&&typeof b.href=="string"?(h=_h(b.href),b=Ce(R).hoistableStyles,S=b.get(h),S||(S={type:"style",instance:null,count:0,state:null},b.set(h,S)),S):{type:"void",instance:null,count:0,state:null};case"link":if(b.rel==="stylesheet"&&typeof b.href=="string"&&typeof b.precedence=="string"){d=_h(b.href);var D=Ce(R).hoistableStyles,$=D.get(d);if($||(R=R.ownerDocument||R,$={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},D.set(d,$),(D=R.querySelector(bg(d)))&&!D._p&&($.instance=D,$.state.loading=5),Ss.has(d)||(b={rel:"preload",as:"style",href:b.href,crossOrigin:b.crossOrigin,integrity:b.integrity,media:b.media,hrefLang:b.hrefLang,referrerPolicy:b.referrerPolicy},Ss.set(d,b),D||Cte(R,d,b,$.state))),h&&S===null)throw Error(i(528,""));return $}if(h&&S!==null)throw Error(i(529,""));return null;case"script":return h=b.async,b=b.src,typeof b=="string"&&h&&typeof h!="function"&&typeof h!="symbol"?(h=Sh(b),b=Ce(R).hoistableScripts,S=b.get(h),S||(S={type:"script",instance:null,count:0,state:null},b.set(h,S)),S):{type:"void",instance:null,count:0,state:null};default:throw Error(i(444,d))}}function _h(d){return'href="'+Cn(d)+'"'}function bg(d){return'link[rel="stylesheet"]['+d+"]"}function bj(d){return f({},d,{"data-precedence":d.precedence,precedence:null})}function Cte(d,h,b,S){d.querySelector('link[rel="preload"][as="style"]['+h+"]")?S.loading=1:(h=d.createElement("link"),S.preload=h,h.addEventListener("load",function(){return S.loading|=1}),h.addEventListener("error",function(){return S.loading|=2}),Lr(h,"link",b),Te(h),d.head.appendChild(h))}function Sh(d){return'[src="'+Cn(d)+'"]'}function _g(d){return"script[async]"+d}function _j(d,h,b){if(h.count++,h.instance===null)switch(h.type){case"style":var S=d.querySelector('style[data-href~="'+Cn(b.href)+'"]');if(S)return h.instance=S,Te(S),S;var R=f({},b,{"data-href":b.href,"data-precedence":b.precedence,href:null,precedence:null});return S=(d.ownerDocument||d).createElement("style"),Te(S),Lr(S,"style",R),py(S,b.precedence,d),h.instance=S;case"stylesheet":R=_h(b.href);var D=d.querySelector(bg(R));if(D)return h.state.loading|=4,h.instance=D,Te(D),D;S=bj(b),(R=Ss.get(R))&&lA(S,R),D=(d.ownerDocument||d).createElement("link"),Te(D);var $=D;return $._p=new Promise(function(ne,_e){$.onload=ne,$.onerror=_e}),Lr(D,"link",S),h.state.loading|=4,py(D,b.precedence,d),h.instance=D;case"script":return D=Sh(b.src),(R=d.querySelector(_g(D)))?(h.instance=R,Te(R),R):(S=b,(R=Ss.get(D))&&(S=f({},b),cA(S,R)),d=d.ownerDocument||d,R=d.createElement("script"),Te(R),Lr(R,"link",S),d.head.appendChild(R),h.instance=R);case"void":return null;default:throw Error(i(443,h.type))}else h.type==="stylesheet"&&(h.state.loading&4)===0&&(S=h.instance,h.state.loading|=4,py(S,b.precedence,d));return h.instance}function py(d,h,b){for(var S=b.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),R=S.length?S[S.length-1]:null,D=R,$=0;$ title"):null)}function Nte(d,h,b){if(b===1||h.itemProp!=null)return!1;switch(d){case"meta":case"title":return!0;case"style":if(typeof h.precedence!="string"||typeof h.href!="string"||h.href==="")break;return!0;case"link":if(typeof h.rel!="string"||typeof h.href!="string"||h.href===""||h.onLoad||h.onError)break;switch(h.rel){case"stylesheet":return d=h.disabled,typeof h.precedence=="string"&&d==null;default:return!0}case"script":if(h.async&&typeof h.async!="function"&&typeof h.async!="symbol"&&!h.onLoad&&!h.onError&&h.src&&typeof h.src=="string")return!0}return!1}function Mj(d){return!(d.type==="stylesheet"&&(d.state.loading&3)===0)}function Rte(d,h,b,S){if(b.type==="stylesheet"&&(typeof S.media!="string"||matchMedia(S.media).matches!==!1)&&(b.state.loading&4)===0){if(b.instance===null){var R=_h(S.href),D=h.querySelector(bg(R));if(D){h=D._p,h!==null&&typeof h=="object"&&typeof h.then=="function"&&(d.count++,d=gy.bind(d),h.then(d,d)),b.state.loading|=4,b.instance=D,Te(D);return}D=h.ownerDocument||h,S=bj(S),(R=Ss.get(R))&&lA(S,R),D=D.createElement("link"),Te(D);var $=D;$._p=new Promise(function(ne,_e){$.onload=ne,$.onerror=_e}),Lr(D,"link",S),b.instance=D}d.stylesheets===null&&(d.stylesheets=new Map),d.stylesheets.set(b,h),(h=b.state.preload)&&(b.state.loading&3)===0&&(d.count++,b=gy.bind(d),h.addEventListener("load",b),h.addEventListener("error",b))}}var uA=0;function Pte(d,h){return d.stylesheets&&d.count===0&&vy(d,d.stylesheets),0uA?50:800)+h);return d.unsuspend=b,function(){d.unsuspend=null,clearTimeout(S),clearTimeout(R)}}:null}function gy(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)vy(this,this.stylesheets);else if(this.unsuspend){var d=this.unsuspend;this.unsuspend=null,d()}}}var xy=null;function vy(d,h){d.stylesheets=null,d.unsuspend!==null&&(d.count++,xy=new Map,h.forEach(kte,d),xy=null,gy.call(d))}function kte(d,h){if(!(h.state.loading&4)){var b=xy.get(d);if(b)var S=b.get(null);else{b=new Map,xy.set(d,b);for(var R=d.querySelectorAll("link[data-precedence],style[data-precedence]"),D=0;D"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(e){console.error(e)}}return t(),yA.exports=Kte(),yA.exports}var Zte=Yte();const Vt=t=>typeof t=="string",Cg=()=>{let t,e;const n=new Promise((i,r)=>{t=i,e=r});return n.resolve=t,n.reject=e,n},Xj=t=>t==null?"":""+t,Qte=(t,e,n)=>{t.forEach(i=>{e[i]&&(n[i]=e[i])})},Jte=/###/g,Kj=t=>t&&t.indexOf("###")>-1?t.replace(Jte,"."):t,Yj=t=>!t||Vt(t),d0=(t,e,n)=>{const i=Vt(e)?e.split("."):e;let r=0;for(;r{const{obj:i,k:r}=d0(t,e,Object);if(i!==void 0||e.length===1){i[r]=n;return}let a=e[e.length-1],s=e.slice(0,e.length-1),o=d0(t,s,Object);for(;o.obj===void 0&&s.length;)a=`${s[s.length-1]}.${a}`,s=s.slice(0,s.length-1),o=d0(t,s,Object),o?.obj&&typeof o.obj[`${o.k}.${a}`]<"u"&&(o.obj=void 0);o.obj[`${o.k}.${a}`]=n},ene=(t,e,n,i)=>{const{obj:r,k:a}=d0(t,e,Object);r[a]=r[a]||[],r[a].push(n)},R_=(t,e)=>{const{obj:n,k:i}=d0(t,e);if(n&&Object.prototype.hasOwnProperty.call(n,i))return n[i]},tne=(t,e,n)=>{const i=R_(t,n);return i!==void 0?i:R_(e,n)},iG=(t,e,n)=>{for(const i in e)i!=="__proto__"&&i!=="constructor"&&(i in t?Vt(t[i])||t[i]instanceof String||Vt(e[i])||e[i]instanceof String?n&&(t[i]=e[i]):iG(t[i],e[i],n):t[i]=e[i]);return t},Mh=t=>t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var nne={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};const ine=t=>Vt(t)?t.replace(/[&<>"'\/]/g,e=>nne[e]):t;class rne{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){const n=this.regExpMap.get(e);if(n!==void 0)return n;const i=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,i),this.regExpQueue.push(e),i}}const ane=[" ",",","?","!",";"],sne=new rne(20),one=(t,e,n)=>{e=e||"",n=n||"";const i=ane.filter(s=>e.indexOf(s)<0&&n.indexOf(s)<0);if(i.length===0)return!0;const r=sne.getRegExp(`(${i.map(s=>s==="?"?"\\?":s).join("|")})`);let a=!r.test(t);if(!a){const s=t.indexOf(n);s>0&&!r.test(t.substring(0,s))&&(a=!0)}return a},cN=(t,e,n=".")=>{if(!t)return;if(t[e])return Object.prototype.hasOwnProperty.call(t,e)?t[e]:void 0;const i=e.split(n);let r=t;for(let a=0;a-1&&lt?.replace("_","-"),lne={type:"logger",log(t){this.output("log",t)},warn(t){this.output("warn",t)},error(t){this.output("error",t)},output(t,e){console?.[t]?.apply?.(console,e)}};class P_{constructor(e,n={}){this.init(e,n)}init(e,n={}){this.prefix=n.prefix||"i18next:",this.logger=e||lne,this.options=n,this.debug=n.debug}log(...e){return this.forward(e,"log","",!0)}warn(...e){return this.forward(e,"warn","",!0)}error(...e){return this.forward(e,"error","")}deprecate(...e){return this.forward(e,"warn","WARNING DEPRECATED: ",!0)}forward(e,n,i,r){return r&&!this.debug?null:(Vt(e[0])&&(e[0]=`${i}${this.prefix} ${e[0]}`),this.logger[n](e))}create(e){return new P_(this.logger,{prefix:`${this.prefix}:${e}:`,...this.options})}clone(e){return e=e||this.options,e.prefix=e.prefix||this.prefix,new P_(this.logger,e)}}var Ho=new P_;let zS=class{constructor(){this.observers={}}on(e,n){return e.split(" ").forEach(i=>{this.observers[i]||(this.observers[i]=new Map);const r=this.observers[i].get(n)||0;this.observers[i].set(n,r+1)}),this}off(e,n){if(this.observers[e]){if(!n){delete this.observers[e];return}this.observers[e].delete(n)}}emit(e,...n){this.observers[e]&&Array.from(this.observers[e].entries()).forEach(([r,a])=>{for(let s=0;s{for(let s=0;s-1&&this.options.ns.splice(n,1)}getResource(e,n,i,r={}){const a=r.keySeparator!==void 0?r.keySeparator:this.options.keySeparator,s=r.ignoreJSONStructure!==void 0?r.ignoreJSONStructure:this.options.ignoreJSONStructure;let o;e.indexOf(".")>-1?o=e.split("."):(o=[e,n],i&&(Array.isArray(i)?o.push(...i):Vt(i)&&a?o.push(...i.split(a)):o.push(i)));const l=R_(this.data,o);return!l&&!n&&!i&&e.indexOf(".")>-1&&(e=o[0],n=o[1],i=o.slice(2).join(".")),l||!s||!Vt(i)?l:cN(this.data?.[e]?.[n],i,a)}addResource(e,n,i,r,a={silent:!1}){const s=a.keySeparator!==void 0?a.keySeparator:this.options.keySeparator;let o=[e,n];i&&(o=o.concat(s?i.split(s):i)),e.indexOf(".")>-1&&(o=e.split("."),r=n,n=o[1]),this.addNamespaces(n),Zj(this.data,o,r),a.silent||this.emit("added",e,n,i,r)}addResources(e,n,i,r={silent:!1}){for(const a in i)(Vt(i[a])||Array.isArray(i[a]))&&this.addResource(e,n,a,i[a],{silent:!0});r.silent||this.emit("added",e,n,i)}addResourceBundle(e,n,i,r,a,s={silent:!1,skipCopy:!1}){let o=[e,n];e.indexOf(".")>-1&&(o=e.split("."),r=i,i=n,n=o[1]),this.addNamespaces(n);let l=R_(this.data,o)||{};s.skipCopy||(i=JSON.parse(JSON.stringify(i))),r?iG(l,i,a):l={...l,...i},Zj(this.data,o,l),s.silent||this.emit("added",e,n,i)}removeResourceBundle(e,n){this.hasResourceBundle(e,n)&&delete this.data[e][n],this.removeNamespaces(n),this.emit("removed",e,n)}hasResourceBundle(e,n){return this.getResource(e,n)!==void 0}getResourceBundle(e,n){return n||(n=this.options.defaultNS),this.getResource(e,n)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){const n=this.getDataByLanguage(e);return!!(n&&Object.keys(n)||[]).find(r=>n[r]&&Object.keys(n[r]).length>0)}toJSON(){return this.data}}var rG={processors:{},addPostProcessor(t){this.processors[t.name]=t},handle(t,e,n,i,r){return t.forEach(a=>{e=this.processors[a]?.process(e,n,i,r)??e}),e}};const aG=Symbol("i18next/PATH_KEY");function cne(){const t=[],e=Object.create(null);let n;return e.get=(i,r)=>(n?.revoke?.(),r===aG?t:(t.push(r),n=Proxy.revocable(i,e),n.proxy)),Proxy.revocable(Object.create(null),e).proxy}function uN(t,e){const{[aG]:n}=t(cne());return n.join(e?.keySeparator??".")}const Jj={},wA=t=>!Vt(t)&&typeof t!="boolean"&&typeof t!="number";class k_ extends zS{constructor(e,n={}){super(),Qte(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,this),this.options=n,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=Ho.create("translator")}changeLanguage(e){e&&(this.language=e)}exists(e,n={interpolation:{}}){const i={...n};if(e==null)return!1;const r=this.resolve(e,i);if(r?.res===void 0)return!1;const a=wA(r.res);return!(i.returnObjects===!1&&a)}extractFromKey(e,n){let i=n.nsSeparator!==void 0?n.nsSeparator:this.options.nsSeparator;i===void 0&&(i=":");const r=n.keySeparator!==void 0?n.keySeparator:this.options.keySeparator;let a=n.ns||this.options.defaultNS||[];const s=i&&e.indexOf(i)>-1,o=!this.options.userDefinedKeySeparator&&!n.keySeparator&&!this.options.userDefinedNsSeparator&&!n.nsSeparator&&!one(e,i,r);if(s&&!o){const l=e.match(this.interpolator.nestingRegexp);if(l&&l.length>0)return{key:e,namespaces:Vt(a)?[a]:a};const c=e.split(i);(i!==r||i===r&&this.options.ns.indexOf(c[0])>-1)&&(a=c.shift()),e=c.join(r)}return{key:e,namespaces:Vt(a)?[a]:a}}translate(e,n,i){let r=typeof n=="object"?{...n}:n;if(typeof r!="object"&&this.options.overloadTranslationOptionHandler&&(r=this.options.overloadTranslationOptionHandler(arguments)),typeof r=="object"&&(r={...r}),r||(r={}),e==null)return"";typeof e=="function"&&(e=uN(e,{...this.options,...r})),Array.isArray(e)||(e=[String(e)]);const a=r.returnDetails!==void 0?r.returnDetails:this.options.returnDetails,s=r.keySeparator!==void 0?r.keySeparator:this.options.keySeparator,{key:o,namespaces:l}=this.extractFromKey(e[e.length-1],r),c=l[l.length-1];let u=r.nsSeparator!==void 0?r.nsSeparator:this.options.nsSeparator;u===void 0&&(u=":");const f=r.lng||this.language,p=r.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(f?.toLowerCase()==="cimode")return p?a?{res:`${c}${u}${o}`,usedKey:o,exactUsedKey:o,usedLng:f,usedNS:c,usedParams:this.getUsedParamsDetails(r)}:`${c}${u}${o}`:a?{res:o,usedKey:o,exactUsedKey:o,usedLng:f,usedNS:c,usedParams:this.getUsedParamsDetails(r)}:o;const g=this.resolve(e,r);let y=g?.res;const _=g?.usedKey||o,v=g?.exactUsedKey||o,x=["[object Number]","[object Function]","[object RegExp]"],M=r.joinArrays!==void 0?r.joinArrays:this.options.joinArrays,w=!this.i18nFormat||this.i18nFormat.handleAsObject,E=r.count!==void 0&&!Vt(r.count),T=k_.hasDefaultValue(r),P=E?this.pluralResolver.getSuffix(f,r.count,r):"",N=r.ordinal&&E?this.pluralResolver.getSuffix(f,r.count,{ordinal:!1}):"",U=E&&!r.ordinal&&r.count===0,C=U&&r[`defaultValue${this.options.pluralSeparator}zero`]||r[`defaultValue${P}`]||r[`defaultValue${N}`]||r.defaultValue;let k=y;w&&!y&&T&&(k=C);const F=wA(k),I=Object.prototype.toString.apply(k);if(w&&k&&F&&x.indexOf(I)<0&&!(Vt(M)&&Array.isArray(k))){if(!r.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const q=this.options.returnedObjectHandler?this.options.returnedObjectHandler(_,k,{...r,ns:l}):`key '${o} (${this.language})' returned an object instead of string.`;return a?(g.res=q,g.usedParams=this.getUsedParamsDetails(r),g):q}if(s){const q=Array.isArray(k),L=q?[]:{},H=q?v:_;for(const V in k)if(Object.prototype.hasOwnProperty.call(k,V)){const G=`${H}${s}${V}`;T&&!y?L[V]=this.translate(G,{...r,defaultValue:wA(C)?C[V]:void 0,joinArrays:!1,ns:l}):L[V]=this.translate(G,{...r,joinArrays:!1,ns:l}),L[V]===G&&(L[V]=k[V])}y=L}}else if(w&&Vt(M)&&Array.isArray(y))y=y.join(M),y&&(y=this.extendTranslation(y,e,r,i));else{let q=!1,L=!1;!this.isValidLookup(y)&&T&&(q=!0,y=C),this.isValidLookup(y)||(L=!0,y=o);const V=(r.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&L?void 0:y,G=T&&C!==y&&this.options.updateMissing;if(L||q||G){if(this.logger.log(G?"updateKey":"missingKey",f,c,o,G?C:y),s){const B=this.resolve(o,{...r,keySeparator:!1});B&&B.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let K=[];const Z=this.languageUtils.getFallbackCodes(this.options.fallbackLng,r.lng||this.language);if(this.options.saveMissingTo==="fallback"&&Z&&Z[0])for(let B=0;B{const ce=T&&ae!==y?ae:V;this.options.missingKeyHandler?this.options.missingKeyHandler(B,c,X,ce,G,r):this.backendConnector?.saveMissing&&this.backendConnector.saveMissing(B,c,X,ce,G,r),this.emit("missingKey",B,c,X,y)};this.options.saveMissing&&(this.options.saveMissingPlurals&&E?K.forEach(B=>{const X=this.pluralResolver.getSuffixes(B,r);U&&r[`defaultValue${this.options.pluralSeparator}zero`]&&X.indexOf(`${this.options.pluralSeparator}zero`)<0&&X.push(`${this.options.pluralSeparator}zero`),X.forEach(ae=>{se([B],o+ae,r[`defaultValue${ae}`]||C)})}):se(K,o,C))}y=this.extendTranslation(y,e,r,g,i),L&&y===o&&this.options.appendNamespaceToMissingKey&&(y=`${c}${u}${o}`),(L||q)&&this.options.parseMissingKeyHandler&&(y=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${c}${u}${o}`:o,q?y:void 0,r))}return a?(g.res=y,g.usedParams=this.getUsedParamsDetails(r),g):y}extendTranslation(e,n,i,r,a){if(this.i18nFormat?.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...i},i.lng||this.language||r.usedLng,r.usedNS,r.usedKey,{resolved:r});else if(!i.skipInterpolation){i.interpolation&&this.interpolator.init({...i,interpolation:{...this.options.interpolation,...i.interpolation}});const l=Vt(e)&&(i?.interpolation?.skipOnVariables!==void 0?i.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let c;if(l){const f=e.match(this.interpolator.nestingRegexp);c=f&&f.length}let u=i.replace&&!Vt(i.replace)?i.replace:i;if(this.options.interpolation.defaultVariables&&(u={...this.options.interpolation.defaultVariables,...u}),e=this.interpolator.interpolate(e,u,i.lng||this.language||r.usedLng,i),l){const f=e.match(this.interpolator.nestingRegexp),p=f&&f.length;ca?.[0]===f[0]&&!i.context?(this.logger.warn(`It seems you are nesting recursively key: ${f[0]} in key: ${n[0]}`),null):this.translate(...f,n),i)),i.interpolation&&this.interpolator.reset()}const s=i.postProcess||this.options.postProcess,o=Vt(s)?[s]:s;return e!=null&&o?.length&&i.applyPostProcessor!==!1&&(e=rG.handle(o,e,n,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...r,usedParams:this.getUsedParamsDetails(i)},...i}:i,this)),e}resolve(e,n={}){let i,r,a,s,o;return Vt(e)&&(e=[e]),e.forEach(l=>{if(this.isValidLookup(i))return;const c=this.extractFromKey(l,n),u=c.key;r=u;let f=c.namespaces;this.options.fallbackNS&&(f=f.concat(this.options.fallbackNS));const p=n.count!==void 0&&!Vt(n.count),g=p&&!n.ordinal&&n.count===0,y=n.context!==void 0&&(Vt(n.context)||typeof n.context=="number")&&n.context!=="",_=n.lngs?n.lngs:this.languageUtils.toResolveHierarchy(n.lng||this.language,n.fallbackLng);f.forEach(v=>{this.isValidLookup(i)||(o=v,!Jj[`${_[0]}-${v}`]&&this.utils?.hasLoadedNamespace&&!this.utils?.hasLoadedNamespace(o)&&(Jj[`${_[0]}-${v}`]=!0,this.logger.warn(`key "${r}" for languages "${_.join(", ")}" won't get resolved as namespace "${o}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),_.forEach(x=>{if(this.isValidLookup(i))return;s=x;const M=[u];if(this.i18nFormat?.addLookupKeys)this.i18nFormat.addLookupKeys(M,u,x,v,n);else{let E;p&&(E=this.pluralResolver.getSuffix(x,n.count,n));const T=`${this.options.pluralSeparator}zero`,P=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(p&&(n.ordinal&&E.indexOf(P)===0&&M.push(u+E.replace(P,this.options.pluralSeparator)),M.push(u+E),g&&M.push(u+T)),y){const N=`${u}${this.options.contextSeparator||"_"}${n.context}`;M.push(N),p&&(n.ordinal&&E.indexOf(P)===0&&M.push(N+E.replace(P,this.options.pluralSeparator)),M.push(N+E),g&&M.push(N+T))}}let w;for(;w=M.pop();)this.isValidLookup(i)||(a=w,i=this.getResource(x,v,w,n))}))})}),{res:i,usedKey:r,exactUsedKey:a,usedLng:s,usedNS:o}}isValidLookup(e){return e!==void 0&&!(!this.options.returnNull&&e===null)&&!(!this.options.returnEmptyString&&e==="")}getResource(e,n,i,r={}){return this.i18nFormat?.getResource?this.i18nFormat.getResource(e,n,i,r):this.resourceStore.getResource(e,n,i,r)}getUsedParamsDetails(e={}){const n=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],i=e.replace&&!Vt(e.replace);let r=i?e.replace:e;if(i&&typeof e.count<"u"&&(r.count=e.count),this.options.interpolation.defaultVariables&&(r={...this.options.interpolation.defaultVariables,...r}),!i){r={...r};for(const a of n)delete r[a]}return r}static hasDefaultValue(e){const n="defaultValue";for(const i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&n===i.substring(0,n.length)&&e[i]!==void 0)return!0;return!1}}class e4{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=Ho.create("languageUtils")}getScriptPartFromCode(e){if(e=O0(e),!e||e.indexOf("-")<0)return null;const n=e.split("-");return n.length===2||(n.pop(),n[n.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(n.join("-"))}getLanguagePartFromCode(e){if(e=O0(e),!e||e.indexOf("-")<0)return e;const n=e.split("-");return this.formatLanguageCode(n[0])}formatLanguageCode(e){if(Vt(e)&&e.indexOf("-")>-1){let n;try{n=Intl.getCanonicalLocales(e)[0]}catch{}return n&&this.options.lowerCaseLng&&(n=n.toLowerCase()),n||(this.options.lowerCaseLng?e.toLowerCase():e)}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}isSupportedCode(e){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}getBestMatchFromCodes(e){if(!e)return null;let n;return e.forEach(i=>{if(n)return;const r=this.formatLanguageCode(i);(!this.options.supportedLngs||this.isSupportedCode(r))&&(n=r)}),!n&&this.options.supportedLngs&&e.forEach(i=>{if(n)return;const r=this.getScriptPartFromCode(i);if(this.isSupportedCode(r))return n=r;const a=this.getLanguagePartFromCode(i);if(this.isSupportedCode(a))return n=a;n=this.options.supportedLngs.find(s=>{if(s===a)return s;if(!(s.indexOf("-")<0&&a.indexOf("-")<0)&&(s.indexOf("-")>0&&a.indexOf("-")<0&&s.substring(0,s.indexOf("-"))===a||s.indexOf(a)===0&&a.length>1))return s})}),n||(n=this.getFallbackCodes(this.options.fallbackLng)[0]),n}getFallbackCodes(e,n){if(!e)return[];if(typeof e=="function"&&(e=e(n)),Vt(e)&&(e=[e]),Array.isArray(e))return e;if(!n)return e.default||[];let i=e[n];return i||(i=e[this.getScriptPartFromCode(n)]),i||(i=e[this.formatLanguageCode(n)]),i||(i=e[this.getLanguagePartFromCode(n)]),i||(i=e.default),i||[]}toResolveHierarchy(e,n){const i=this.getFallbackCodes((n===!1?[]:n)||this.options.fallbackLng||[],e),r=[],a=s=>{s&&(this.isSupportedCode(s)?r.push(s):this.logger.warn(`rejecting language code not found in supportedLngs: ${s}`))};return Vt(e)&&(e.indexOf("-")>-1||e.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&a(this.formatLanguageCode(e)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&a(this.getScriptPartFromCode(e)),this.options.load!=="currentOnly"&&a(this.getLanguagePartFromCode(e))):Vt(e)&&a(this.formatLanguageCode(e)),i.forEach(s=>{r.indexOf(s)<0&&a(this.formatLanguageCode(s))}),r}}const t4={zero:0,one:1,two:2,few:3,many:4,other:5},n4={select:t=>t===1?"one":"other",resolvedOptions:()=>({pluralCategories:["one","other"]})};class une{constructor(e,n={}){this.languageUtils=e,this.options=n,this.logger=Ho.create("pluralResolver"),this.pluralRulesCache={}}addRule(e,n){this.rules[e]=n}clearCache(){this.pluralRulesCache={}}getRule(e,n={}){const i=O0(e==="dev"?"en":e),r=n.ordinal?"ordinal":"cardinal",a=JSON.stringify({cleanedCode:i,type:r});if(a in this.pluralRulesCache)return this.pluralRulesCache[a];let s;try{s=new Intl.PluralRules(i,{type:r})}catch{if(!Intl)return this.logger.error("No Intl support, please use an Intl polyfill!"),n4;if(!e.match(/-|_/))return n4;const l=this.languageUtils.getLanguagePartFromCode(e);s=this.getRule(l,n)}return this.pluralRulesCache[a]=s,s}needsPlural(e,n={}){let i=this.getRule(e,n);return i||(i=this.getRule("dev",n)),i?.resolvedOptions().pluralCategories.length>1}getPluralFormsOfKey(e,n,i={}){return this.getSuffixes(e,i).map(r=>`${n}${r}`)}getSuffixes(e,n={}){let i=this.getRule(e,n);return i||(i=this.getRule("dev",n)),i?i.resolvedOptions().pluralCategories.sort((r,a)=>t4[r]-t4[a]).map(r=>`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:""}${r}`):[]}getSuffix(e,n,i={}){const r=this.getRule(e,i);return r?`${this.options.prepend}${i.ordinal?`ordinal${this.options.prepend}`:""}${r.select(n)}`:(this.logger.warn(`no plural rule found for: ${e}`),this.getSuffix("dev",n,i))}}const i4=(t,e,n,i=".",r=!0)=>{let a=tne(t,e,n);return!a&&r&&Vt(n)&&(a=cN(t,n,i),a===void 0&&(a=cN(e,n,i))),a},MA=t=>t.replace(/\$/g,"$$$$");class dne{constructor(e={}){this.logger=Ho.create("interpolator"),this.options=e,this.format=e?.interpolation?.format||(n=>n),this.init(e)}init(e={}){e.interpolation||(e.interpolation={escapeValue:!0});const{escape:n,escapeValue:i,useRawValueToEscape:r,prefix:a,prefixEscaped:s,suffix:o,suffixEscaped:l,formatSeparator:c,unescapeSuffix:u,unescapePrefix:f,nestingPrefix:p,nestingPrefixEscaped:g,nestingSuffix:y,nestingSuffixEscaped:_,nestingOptionsSeparator:v,maxReplaces:x,alwaysFormat:M}=e.interpolation;this.escape=n!==void 0?n:ine,this.escapeValue=i!==void 0?i:!0,this.useRawValueToEscape=r!==void 0?r:!1,this.prefix=a?Mh(a):s||"{{",this.suffix=o?Mh(o):l||"}}",this.formatSeparator=c||",",this.unescapePrefix=u?"":f||"-",this.unescapeSuffix=this.unescapePrefix?"":u||"",this.nestingPrefix=p?Mh(p):g||Mh("$t("),this.nestingSuffix=y?Mh(y):_||Mh(")"),this.nestingOptionsSeparator=v||",",this.maxReplaces=x||1e3,this.alwaysFormat=M!==void 0?M:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const e=(n,i)=>n?.source===i?(n.lastIndex=0,n):new RegExp(i,"g");this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`)}interpolate(e,n,i,r){let a,s,o;const l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},c=g=>{if(g.indexOf(this.formatSeparator)<0){const x=i4(n,l,g,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(x,void 0,i,{...r,...n,interpolationkey:g}):x}const y=g.split(this.formatSeparator),_=y.shift().trim(),v=y.join(this.formatSeparator).trim();return this.format(i4(n,l,_,this.options.keySeparator,this.options.ignoreJSONStructure),v,i,{...r,...n,interpolationkey:_})};this.resetRegExp();const u=r?.missingInterpolationHandler||this.options.missingInterpolationHandler,f=r?.interpolation?.skipOnVariables!==void 0?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:g=>MA(g)},{regex:this.regexp,safeValue:g=>this.escapeValue?MA(this.escape(g)):MA(g)}].forEach(g=>{for(o=0;a=g.regex.exec(e);){const y=a[1].trim();if(s=c(y),s===void 0)if(typeof u=="function"){const v=u(e,a,r);s=Vt(v)?v:""}else if(r&&Object.prototype.hasOwnProperty.call(r,y))s="";else if(f){s=a[0];continue}else this.logger.warn(`missed to pass in variable ${y} for interpolating ${e}`),s="";else!Vt(s)&&!this.useRawValueToEscape&&(s=Xj(s));const _=g.safeValue(s);if(e=e.replace(a[0],_),f?(g.regex.lastIndex+=s.length,g.regex.lastIndex-=a[0].length):g.regex.lastIndex=0,o++,o>=this.maxReplaces)break}}),e}nest(e,n,i={}){let r,a,s;const o=(l,c)=>{const u=this.nestingOptionsSeparator;if(l.indexOf(u)<0)return l;const f=l.split(new RegExp(`${u}[ ]*{`));let p=`{${f[1]}`;l=f[0],p=this.interpolate(p,s);const g=p.match(/'/g),y=p.match(/"/g);((g?.length??0)%2===0&&!y||y.length%2!==0)&&(p=p.replace(/'/g,'"'));try{s=JSON.parse(p),c&&(s={...c,...s})}catch(_){return this.logger.warn(`failed parsing options string in nesting for key ${l}`,_),`${l}${u}${p}`}return s.defaultValue&&s.defaultValue.indexOf(this.prefix)>-1&&delete s.defaultValue,l};for(;r=this.nestingRegexp.exec(e);){let l=[];s={...i},s=s.replace&&!Vt(s.replace)?s.replace:s,s.applyPostProcessor=!1,delete s.defaultValue;const c=/{.*}/.test(r[1])?r[1].lastIndexOf("}")+1:r[1].indexOf(this.formatSeparator);if(c!==-1&&(l=r[1].slice(c).split(this.formatSeparator).map(u=>u.trim()).filter(Boolean),r[1]=r[1].slice(0,c)),a=n(o.call(this,r[1].trim(),s),s),a&&r[0]===e&&!Vt(a))return a;Vt(a)||(a=Xj(a)),a||(this.logger.warn(`missed to resolve ${r[1]} for nesting ${e}`),a=""),l.length&&(a=l.reduce((u,f)=>this.format(u,f,i.lng,{...i,interpolationkey:r[1].trim()}),a.trim())),e=e.replace(r[0],a),this.regexp.lastIndex=0}return e}}const fne=t=>{let e=t.toLowerCase().trim();const n={};if(t.indexOf("(")>-1){const i=t.split("(");e=i[0].toLowerCase().trim();const r=i[1].substring(0,i[1].length-1);e==="currency"&&r.indexOf(":")<0?n.currency||(n.currency=r.trim()):e==="relativetime"&&r.indexOf(":")<0?n.range||(n.range=r.trim()):r.split(";").forEach(s=>{if(s){const[o,...l]=s.split(":"),c=l.join(":").trim().replace(/^'+|'+$/g,""),u=o.trim();n[u]||(n[u]=c),c==="false"&&(n[u]=!1),c==="true"&&(n[u]=!0),isNaN(c)||(n[u]=parseInt(c,10))}})}return{formatName:e,formatOptions:n}},r4=t=>{const e={};return(n,i,r)=>{let a=r;r&&r.interpolationkey&&r.formatParams&&r.formatParams[r.interpolationkey]&&r[r.interpolationkey]&&(a={...a,[r.interpolationkey]:void 0});const s=i+JSON.stringify(a);let o=e[s];return o||(o=t(O0(i),r),e[s]=o),o(n)}},hne=t=>(e,n,i)=>t(O0(n),i)(e);class pne{constructor(e={}){this.logger=Ho.create("formatter"),this.options=e,this.init(e)}init(e,n={interpolation:{}}){this.formatSeparator=n.interpolation.formatSeparator||",";const i=n.cacheInBuiltFormats?r4:hne;this.formats={number:i((r,a)=>{const s=new Intl.NumberFormat(r,{...a});return o=>s.format(o)}),currency:i((r,a)=>{const s=new Intl.NumberFormat(r,{...a,style:"currency"});return o=>s.format(o)}),datetime:i((r,a)=>{const s=new Intl.DateTimeFormat(r,{...a});return o=>s.format(o)}),relativetime:i((r,a)=>{const s=new Intl.RelativeTimeFormat(r,{...a});return o=>s.format(o,a.range||"day")}),list:i((r,a)=>{const s=new Intl.ListFormat(r,{...a});return o=>s.format(o)})}}add(e,n){this.formats[e.toLowerCase().trim()]=n}addCached(e,n){this.formats[e.toLowerCase().trim()]=r4(n)}format(e,n,i,r={}){const a=n.split(this.formatSeparator);if(a.length>1&&a[0].indexOf("(")>1&&a[0].indexOf(")")<0&&a.find(o=>o.indexOf(")")>-1)){const o=a.findIndex(l=>l.indexOf(")")>-1);a[0]=[a[0],...a.splice(1,o)].join(this.formatSeparator)}return a.reduce((o,l)=>{const{formatName:c,formatOptions:u}=fne(l);if(this.formats[c]){let f=o;try{const p=r?.formatParams?.[r.interpolationkey]||{},g=p.locale||p.lng||r.locale||r.lng||i;f=this.formats[c](o,g,{...u,...r,...p})}catch(p){this.logger.warn(p)}return f}else this.logger.warn(`there was no format function for ${c}`);return o},e)}}const mne=(t,e)=>{t.pending[e]!==void 0&&(delete t.pending[e],t.pendingCount--)};class gne extends zS{constructor(e,n,i,r={}){super(),this.backend=e,this.store=n,this.services=i,this.languageUtils=i.languageUtils,this.options=r,this.logger=Ho.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=r.maxParallelReads||10,this.readingCalls=0,this.maxRetries=r.maxRetries>=0?r.maxRetries:5,this.retryTimeout=r.retryTimeout>=1?r.retryTimeout:350,this.state={},this.queue=[],this.backend?.init?.(i,r.backend,r)}queueLoad(e,n,i,r){const a={},s={},o={},l={};return e.forEach(c=>{let u=!0;n.forEach(f=>{const p=`${c}|${f}`;!i.reload&&this.store.hasResourceBundle(c,f)?this.state[p]=2:this.state[p]<0||(this.state[p]===1?s[p]===void 0&&(s[p]=!0):(this.state[p]=1,u=!1,s[p]===void 0&&(s[p]=!0),a[p]===void 0&&(a[p]=!0),l[f]===void 0&&(l[f]=!0)))}),u||(o[c]=!0)}),(Object.keys(a).length||Object.keys(s).length)&&this.queue.push({pending:s,pendingCount:Object.keys(s).length,loaded:{},errors:[],callback:r}),{toLoad:Object.keys(a),pending:Object.keys(s),toLoadLanguages:Object.keys(o),toLoadNamespaces:Object.keys(l)}}loaded(e,n,i){const r=e.split("|"),a=r[0],s=r[1];n&&this.emit("failedLoading",a,s,n),!n&&i&&this.store.addResourceBundle(a,s,i,void 0,void 0,{skipCopy:!0}),this.state[e]=n?-1:2,n&&i&&(this.state[e]=0);const o={};this.queue.forEach(l=>{ene(l.loaded,[a],s),mne(l,e),n&&l.errors.push(n),l.pendingCount===0&&!l.done&&(Object.keys(l.loaded).forEach(c=>{o[c]||(o[c]={});const u=l.loaded[c];u.length&&u.forEach(f=>{o[c][f]===void 0&&(o[c][f]=!0)})}),l.done=!0,l.errors.length?l.callback(l.errors):l.callback())}),this.emit("loaded",o),this.queue=this.queue.filter(l=>!l.done)}read(e,n,i,r=0,a=this.retryTimeout,s){if(!e.length)return s(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:e,ns:n,fcName:i,tried:r,wait:a,callback:s});return}this.readingCalls++;const o=(c,u)=>{if(this.readingCalls--,this.waitingReads.length>0){const f=this.waitingReads.shift();this.read(f.lng,f.ns,f.fcName,f.tried,f.wait,f.callback)}if(c&&u&&r{this.read.call(this,e,n,i,r+1,a*2,s)},a);return}s(c,u)},l=this.backend[i].bind(this.backend);if(l.length===2){try{const c=l(e,n);c&&typeof c.then=="function"?c.then(u=>o(null,u)).catch(o):o(null,c)}catch(c){o(c)}return}return l(e,n,o)}prepareLoading(e,n,i={},r){if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),r&&r();Vt(e)&&(e=this.languageUtils.toResolveHierarchy(e)),Vt(n)&&(n=[n]);const a=this.queueLoad(e,n,i,r);if(!a.toLoad.length)return a.pending.length||r(),null;a.toLoad.forEach(s=>{this.loadOne(s)})}load(e,n,i){this.prepareLoading(e,n,{},i)}reload(e,n,i){this.prepareLoading(e,n,{reload:!0},i)}loadOne(e,n=""){const i=e.split("|"),r=i[0],a=i[1];this.read(r,a,"read",void 0,void 0,(s,o)=>{s&&this.logger.warn(`${n}loading namespace ${a} for language ${r} failed`,s),!s&&o&&this.logger.log(`${n}loaded namespace ${a} for language ${r}`,o),this.loaded(e,s,o)})}saveMissing(e,n,i,r,a,s={},o=()=>{}){if(this.services?.utils?.hasLoadedNamespace&&!this.services?.utils?.hasLoadedNamespace(n)){this.logger.warn(`did not save key "${i}" as the namespace "${n}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(i==null||i==="")){if(this.backend?.create){const l={...s,isUpdate:a},c=this.backend.create.bind(this.backend);if(c.length<6)try{let u;c.length===5?u=c(e,n,i,r,l):u=c(e,n,i,r),u&&typeof u.then=="function"?u.then(f=>o(null,f)).catch(o):o(null,u)}catch(u){o(u)}else c(e,n,i,r,o,l)}!e||!e[0]||this.store.addResource(e[0],n,i,r)}}}const a4=()=>({debug:!1,initAsync:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:t=>{let e={};if(typeof t[1]=="object"&&(e=t[1]),Vt(t[1])&&(e.defaultValue=t[1]),Vt(t[2])&&(e.tDescription=t[2]),typeof t[2]=="object"||typeof t[3]=="object"){const n=t[3]||t[2];Object.keys(n).forEach(i=>{e[i]=n[i]})}return e},interpolation:{escapeValue:!0,format:t=>t,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),s4=t=>(Vt(t.ns)&&(t.ns=[t.ns]),Vt(t.fallbackLng)&&(t.fallbackLng=[t.fallbackLng]),Vt(t.fallbackNS)&&(t.fallbackNS=[t.fallbackNS]),t.supportedLngs?.indexOf?.("cimode")<0&&(t.supportedLngs=t.supportedLngs.concat(["cimode"])),typeof t.initImmediate=="boolean"&&(t.initAsync=t.initImmediate),t),Ty=()=>{},xne=t=>{Object.getOwnPropertyNames(Object.getPrototypeOf(t)).forEach(n=>{typeof t[n]=="function"&&(t[n]=t[n].bind(t))})};class f0 extends zS{constructor(e={},n){if(super(),this.options=s4(e),this.services={},this.logger=Ho,this.modules={external:[]},xne(this),n&&!this.isInitialized&&!e.isClone){if(!this.options.initAsync)return this.init(e,n),this;setTimeout(()=>{this.init(e,n)},0)}}init(e={},n){this.isInitializing=!0,typeof e=="function"&&(n=e,e={}),e.defaultNS==null&&e.ns&&(Vt(e.ns)?e.defaultNS=e.ns:e.ns.indexOf("translation")<0&&(e.defaultNS=e.ns[0]));const i=a4();this.options={...i,...this.options,...s4(e)},this.options.interpolation={...i.interpolation,...this.options.interpolation},e.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=e.keySeparator),e.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=e.nsSeparator);const r=c=>c?typeof c=="function"?new c:c:null;if(!this.options.isClone){this.modules.logger?Ho.init(r(this.modules.logger),this.options):Ho.init(null,this.options);let c;this.modules.formatter?c=this.modules.formatter:c=pne;const u=new e4(this.options);this.store=new Qj(this.options.resources,this.options);const f=this.services;f.logger=Ho,f.resourceStore=this.store,f.languageUtils=u,f.pluralResolver=new une(u,{prepend:this.options.pluralSeparator,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),this.options.interpolation.format&&this.options.interpolation.format!==i.interpolation.format&&this.logger.deprecate("init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting"),c&&(!this.options.interpolation.format||this.options.interpolation.format===i.interpolation.format)&&(f.formatter=r(c),f.formatter.init&&f.formatter.init(f,this.options),this.options.interpolation.format=f.formatter.format.bind(f.formatter)),f.interpolator=new dne(this.options),f.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},f.backendConnector=new gne(r(this.modules.backend),f.resourceStore,f,this.options),f.backendConnector.on("*",(g,...y)=>{this.emit(g,...y)}),this.modules.languageDetector&&(f.languageDetector=r(this.modules.languageDetector),f.languageDetector.init&&f.languageDetector.init(f,this.options.detection,this.options)),this.modules.i18nFormat&&(f.i18nFormat=r(this.modules.i18nFormat),f.i18nFormat.init&&f.i18nFormat.init(this)),this.translator=new k_(this.services,this.options),this.translator.on("*",(g,...y)=>{this.emit(g,...y)}),this.modules.external.forEach(g=>{g.init&&g.init(this)})}if(this.format=this.options.interpolation.format,n||(n=Ty),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const c=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);c.length>0&&c[0]!=="dev"&&(this.options.lng=c[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(c=>{this[c]=(...u)=>this.store[c](...u)}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(c=>{this[c]=(...u)=>(this.store[c](...u),this)});const o=Cg(),l=()=>{const c=(u,f)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),o.resolve(f),n(u,f)};if(this.languages&&!this.isInitialized)return c(null,this.t.bind(this));this.changeLanguage(this.options.lng,c)};return this.options.resources||!this.options.initAsync?l():setTimeout(l,0),o}loadResources(e,n=Ty){let i=n;const r=Vt(e)?e:this.language;if(typeof e=="function"&&(i=e),!this.options.resources||this.options.partialBundledLanguages){if(r?.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return i();const a=[],s=o=>{if(!o||o==="cimode")return;this.services.languageUtils.toResolveHierarchy(o).forEach(c=>{c!=="cimode"&&a.indexOf(c)<0&&a.push(c)})};r?s(r):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(l=>s(l)),this.options.preload?.forEach?.(o=>s(o)),this.services.backendConnector.load(a,this.options.ns,o=>{!o&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),i(o)})}else i(null)}reloadResources(e,n,i){const r=Cg();return typeof e=="function"&&(i=e,e=void 0),typeof n=="function"&&(i=n,n=void 0),e||(e=this.languages),n||(n=this.options.ns),i||(i=Ty),this.services.backendConnector.reload(e,n,a=>{r.resolve(),i(a)}),r}use(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return e.type==="backend"&&(this.modules.backend=e),(e.type==="logger"||e.log&&e.warn&&e.error)&&(this.modules.logger=e),e.type==="languageDetector"&&(this.modules.languageDetector=e),e.type==="i18nFormat"&&(this.modules.i18nFormat=e),e.type==="postProcessor"&&rG.addPostProcessor(e),e.type==="formatter"&&(this.modules.formatter=e),e.type==="3rdParty"&&this.modules.external.push(e),this}setResolvedLanguage(e){if(!(!e||!this.languages)&&!(["cimode","dev"].indexOf(e)>-1)){for(let n=0;n-1)&&this.store.hasLanguageSomeTranslations(i)){this.resolvedLanguage=i;break}}!this.resolvedLanguage&&this.languages.indexOf(e)<0&&this.store.hasLanguageSomeTranslations(e)&&(this.resolvedLanguage=e,this.languages.unshift(e))}}changeLanguage(e,n){this.isLanguageChangingTo=e;const i=Cg();this.emit("languageChanging",e);const r=o=>{this.language=o,this.languages=this.services.languageUtils.toResolveHierarchy(o),this.resolvedLanguage=void 0,this.setResolvedLanguage(o)},a=(o,l)=>{l?this.isLanguageChangingTo===e&&(r(l),this.translator.changeLanguage(l),this.isLanguageChangingTo=void 0,this.emit("languageChanged",l),this.logger.log("languageChanged",l)):this.isLanguageChangingTo=void 0,i.resolve((...c)=>this.t(...c)),n&&n(o,(...c)=>this.t(...c))},s=o=>{!e&&!o&&this.services.languageDetector&&(o=[]);const l=Vt(o)?o:o&&o[0],c=this.store.hasLanguageSomeTranslations(l)?l:this.services.languageUtils.getBestMatchFromCodes(Vt(o)?[o]:o);c&&(this.language||r(c),this.translator.language||this.translator.changeLanguage(c),this.services.languageDetector?.cacheUserLanguage?.(c)),this.loadResources(c,u=>{a(u,c)})};return!e&&this.services.languageDetector&&!this.services.languageDetector.async?s(this.services.languageDetector.detect()):!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(s):this.services.languageDetector.detect(s):s(e),i}getFixedT(e,n,i){const r=(a,s,...o)=>{let l;typeof s!="object"?l=this.options.overloadTranslationOptionHandler([a,s].concat(o)):l={...s},l.lng=l.lng||r.lng,l.lngs=l.lngs||r.lngs,l.ns=l.ns||r.ns,l.keyPrefix!==""&&(l.keyPrefix=l.keyPrefix||i||r.keyPrefix);const c=this.options.keySeparator||".";let u;return l.keyPrefix&&Array.isArray(a)?u=a.map(f=>(typeof f=="function"&&(f=uN(f,{...this.options,...s})),`${l.keyPrefix}${c}${f}`)):(typeof a=="function"&&(a=uN(a,{...this.options,...s})),u=l.keyPrefix?`${l.keyPrefix}${c}${a}`:a),this.t(u,l)};return Vt(e)?r.lng=e:r.lngs=e,r.ns=n,r.keyPrefix=i,r}t(...e){return this.translator?.translate(...e)}exists(...e){return this.translator?.exists(...e)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e,n={}){if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const i=n.lng||this.resolvedLanguage||this.languages[0],r=this.options?this.options.fallbackLng:!1,a=this.languages[this.languages.length-1];if(i.toLowerCase()==="cimode")return!0;const s=(o,l)=>{const c=this.services.backendConnector.state[`${o}|${l}`];return c===-1||c===0||c===2};if(n.precheck){const o=n.precheck(this,s);if(o!==void 0)return o}return!!(this.hasResourceBundle(i,e)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||s(i,e)&&(!r||s(a,e)))}loadNamespaces(e,n){const i=Cg();return this.options.ns?(Vt(e)&&(e=[e]),e.forEach(r=>{this.options.ns.indexOf(r)<0&&this.options.ns.push(r)}),this.loadResources(r=>{i.resolve(),n&&n(r)}),i):(n&&n(),Promise.resolve())}loadLanguages(e,n){const i=Cg();Vt(e)&&(e=[e]);const r=this.options.preload||[],a=e.filter(s=>r.indexOf(s)<0&&this.services.languageUtils.isSupportedCode(s));return a.length?(this.options.preload=r.concat(a),this.loadResources(s=>{i.resolve(),n&&n(s)}),i):(n&&n(),Promise.resolve())}dir(e){if(e||(e=this.resolvedLanguage||(this.languages?.length>0?this.languages[0]:this.language)),!e)return"rtl";try{const r=new Intl.Locale(e);if(r&&r.getTextInfo){const a=r.getTextInfo();if(a&&a.direction)return a.direction}}catch{}const n=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],i=this.services?.languageUtils||new e4(a4());return e.toLowerCase().indexOf("-latn")>1?"ltr":n.indexOf(i.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(e={},n){const i=new f0(e,n);return i.createInstance=f0.createInstance,i}cloneInstance(e={},n=Ty){const i=e.forkResourceStore;i&&delete e.forkResourceStore;const r={...this.options,...e,isClone:!0},a=new f0(r);if((e.debug!==void 0||e.prefix!==void 0)&&(a.logger=a.logger.clone(e)),["store","services","language"].forEach(o=>{a[o]=this[o]}),a.services={...this.services},a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},i){const o=Object.keys(this.store.data).reduce((l,c)=>(l[c]={...this.store.data[c]},l[c]=Object.keys(l[c]).reduce((u,f)=>(u[f]={...l[c][f]},u),l[c]),l),{});a.store=new Qj(o,r),a.services.resourceStore=a.store}return a.translator=new k_(a.services,r),a.translator.on("*",(o,...l)=>{a.emit(o,...l)}),a.init(r,n),a.translator.options=r,a.translator.backendConnector.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const wa=f0.createInstance();wa.createInstance;wa.dir;wa.init;wa.loadResources;wa.reloadResources;wa.use;wa.changeLanguage;wa.getFixedT;wa.t;wa.exists;wa.setDefaultNamespace;wa.hasLoadedNamespace;wa.loadNamespaces;wa.loadLanguages;const vne=(t,e,n,i)=>{const r=[n,{code:e,...i||{}}];if(t?.services?.logger?.forward)return t.services.logger.forward(r,"warn","react-i18next::",!0);_f(r[0])&&(r[0]=`react-i18next:: ${r[0]}`),t?.services?.logger?.warn?t.services.logger.warn(...r):console?.warn&&console.warn(...r)},o4={},sG=(t,e,n,i)=>{_f(n)&&o4[n]||(_f(n)&&(o4[n]=new Date),vne(t,e,n,i))},oG=(t,e)=>()=>{if(t.isInitialized)e();else{const n=()=>{setTimeout(()=>{t.off("initialized",n)},0),e()};t.on("initialized",n)}},dN=(t,e,n)=>{t.loadNamespaces(e,oG(t,n))},l4=(t,e,n,i)=>{if(_f(n)&&(n=[n]),t.options.preload&&t.options.preload.indexOf(e)>-1)return dN(t,n,i);n.forEach(r=>{t.options.ns.indexOf(r)<0&&t.options.ns.push(r)}),t.loadLanguages(e,oG(t,i))},yne=(t,e,n={})=>!e.languages||!e.languages.length?(sG(e,"NO_LANGUAGES","i18n.languages were undefined or empty",{languages:e.languages}),!0):e.hasLoadedNamespace(t,{lng:n.lng,precheck:(i,r)=>{if(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&i.services.backendConnector.backend&&i.isLanguageChangingTo&&!r(i.isLanguageChangingTo,t))return!1}}),_f=t=>typeof t=="string",bne=t=>typeof t=="object"&&t!==null,_ne=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,Sne={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},wne=t=>Sne[t],Mne=t=>t.replace(_ne,wne);let fN={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:Mne};const Ene=(t={})=>{fN={...fN,...t}},Ane=()=>fN;let lG;const Tne=t=>{lG=t},Cne=()=>lG,Nne={type:"3rdParty",init(t){Ene(t.options.react),Tne(t)}},Rne=A.createContext();class Pne{constructor(){this.usedNamespaces={}}addUsedNamespaces(e){e.forEach(n=>{this.usedNamespaces[n]||(this.usedNamespaces[n]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}}var EA={exports:{}},AA={};var c4;function kne(){if(c4)return AA;c4=1;var t=pm();function e(f,p){return f===p&&(f!==0||1/f===1/p)||f!==f&&p!==p}var n=typeof Object.is=="function"?Object.is:e,i=t.useState,r=t.useEffect,a=t.useLayoutEffect,s=t.useDebugValue;function o(f,p){var g=p(),y=i({inst:{value:g,getSnapshot:p}}),_=y[0].inst,v=y[1];return a(function(){_.value=g,_.getSnapshot=p,l(_)&&v({inst:_})},[f,g,p]),r(function(){return l(_)&&v({inst:_}),f(function(){l(_)&&v({inst:_})})},[f]),s(g),g}function l(f){var p=f.getSnapshot;f=f.value;try{var g=p();return!n(f,g)}catch{return!0}}function c(f,p){return p()}var u=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?c:o;return AA.useSyncExternalStore=t.useSyncExternalStore!==void 0?t.useSyncExternalStore:u,AA}var u4;function cG(){return u4||(u4=1,EA.exports=kne()),EA.exports}var xP=cG();const Dne=(t,e)=>_f(e)?e:bne(e)&&_f(e.defaultValue)?e.defaultValue:Array.isArray(t)?t[t.length-1]:t,One={t:Dne,ready:!1},Lne=()=>()=>{},vP=(t,e={})=>{const{i18n:n}=e,{i18n:i,defaultNS:r}=A.useContext(Rne)||{},a=n||i||Cne();a&&!a.reportNamespaces&&(a.reportNamespaces=new Pne),a||sG(a,"NO_I18NEXT_INSTANCE","useTranslation: You will need to pass in an i18next instance by using initReactI18next");const s=A.useMemo(()=>({...Ane(),...a?.options?.react,...e}),[a,e]),{useSuspense:o,keyPrefix:l}=s,c=r||a?.options?.defaultNS,u=_f(c)?[c]:c||["translation"],f=A.useMemo(()=>u,u);a?.reportNamespaces?.addUsedNamespaces?.(f);const p=A.useRef(0),g=A.useCallback(C=>{if(!a)return Lne;const{bindI18n:k,bindI18nStore:F}=s,I=()=>{p.current+=1,C()};return k&&a.on(k,I),F&&a.store.on(F,I),()=>{k&&k.split(" ").forEach(q=>a.off(q,I)),F&&F.split(" ").forEach(q=>a.store.off(q,I))}},[a,s]),y=A.useRef(),_=A.useCallback(()=>{if(!a)return One;const C=!!(a.isInitialized||a.initializedStoreOnce)&&f.every(H=>yne(H,a,s)),k=e.lng||a.language,F=p.current,I=y.current;if(I&&I.ready===C&&I.lng===k&&I.keyPrefix===l&&I.revision===F)return I;const L={t:a.getFixedT(k,s.nsMode==="fallback"?f:f[0],l),ready:C,lng:k,keyPrefix:l,revision:F};return y.current=L,L},[a,f,l,s,e.lng]),[v,x]=A.useState(0),{t:M,ready:w}=xP.useSyncExternalStore(g,_,_);A.useEffect(()=>{if(a&&!w&&!o){const C=()=>x(k=>k+1);e.lng?l4(a,e.lng,f,C):dN(a,f,C)}},[a,e.lng,f,w,o,v]);const E=a||{},T=A.useRef(null),P=A.useRef(),N=C=>{const k=Object.getOwnPropertyDescriptors(C);k.__original&&delete k.__original;const F=Object.create(Object.getPrototypeOf(C),k);if(!Object.prototype.hasOwnProperty.call(F,"__original"))try{Object.defineProperty(F,"__original",{value:C,writable:!1,enumerable:!1,configurable:!1})}catch{}return F},U=A.useMemo(()=>{const C=E,k=C?.language;let F=C;C&&(T.current&&T.current.__original===C?P.current!==k?(F=N(C),T.current=F,P.current=k):F=T.current:(F=N(C),T.current=F,P.current=k));const I=[M,F,w];return I.t=M,I.i18n=F,I.ready=w,I},[M,E,w,E.resolvedLanguage,E.language,E.languages]);if(a&&o&&!w)throw new Promise(C=>{const k=()=>C();e.lng?l4(a,e.lng,f,k):dN(a,f,k)});return U},{slice:Ine,forEach:Une}=[];function jne(t){return Une.call(Ine.call(arguments,1),e=>{if(e)for(const n in e)t[n]===void 0&&(t[n]=e[n])}),t}function Fne(t){return typeof t!="string"?!1:[/<\s*script.*?>/i,/<\s*\/\s*script\s*>/i,/<\s*img.*?on\w+\s*=/i,/<\s*\w+\s*on\w+\s*=.*?>/i,/javascript\s*:/i,/vbscript\s*:/i,/expression\s*\(/i,/eval\s*\(/i,/alert\s*\(/i,/document\.cookie/i,/document\.write\s*\(/i,/window\.location/i,/innerHTML/i].some(n=>n.test(t))}const d4=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,zne=function(t,e){const i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{path:"/"},r=encodeURIComponent(e);let a=`${t}=${r}`;if(i.maxAge>0){const s=i.maxAge-0;if(Number.isNaN(s))throw new Error("maxAge should be a Number");a+=`; Max-Age=${Math.floor(s)}`}if(i.domain){if(!d4.test(i.domain))throw new TypeError("option domain is invalid");a+=`; Domain=${i.domain}`}if(i.path){if(!d4.test(i.path))throw new TypeError("option path is invalid");a+=`; Path=${i.path}`}if(i.expires){if(typeof i.expires.toUTCString!="function")throw new TypeError("option expires is invalid");a+=`; Expires=${i.expires.toUTCString()}`}if(i.httpOnly&&(a+="; HttpOnly"),i.secure&&(a+="; Secure"),i.sameSite)switch(typeof i.sameSite=="string"?i.sameSite.toLowerCase():i.sameSite){case!0:a+="; SameSite=Strict";break;case"lax":a+="; SameSite=Lax";break;case"strict":a+="; SameSite=Strict";break;case"none":a+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}return i.partitioned&&(a+="; Partitioned"),a},f4={create(t,e,n,i){let r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{path:"/",sameSite:"strict"};n&&(r.expires=new Date,r.expires.setTime(r.expires.getTime()+n*60*1e3)),i&&(r.domain=i),document.cookie=zne(t,e,r)},read(t){const e=`${t}=`,n=document.cookie.split(";");for(let i=0;i-1&&(i=window.location.hash.substring(window.location.hash.indexOf("?")));const a=i.substring(1).split("&");for(let s=0;s0&&a[s].substring(0,o)===e&&(n=a[s].substring(o+1))}}return n}},Vne={name:"hash",lookup(t){let{lookupHash:e,lookupFromHashIndex:n}=t,i;if(typeof window<"u"){const{hash:r}=window.location;if(r&&r.length>2){const a=r.substring(1);if(e){const s=a.split("&");for(let o=0;o0&&s[o].substring(0,l)===e&&(i=s[o].substring(l+1))}}if(i)return i;if(!i&&n>-1){const s=r.match(/\/([a-zA-Z-]*)/g);return Array.isArray(s)?s[typeof n=="number"?n:0]?.replace("/",""):void 0}}}return i}};let Eh=null;const h4=()=>{if(Eh!==null)return Eh;try{if(Eh=typeof window<"u"&&window.localStorage!==null,!Eh)return!1;const t="i18next.translate.boo";window.localStorage.setItem(t,"foo"),window.localStorage.removeItem(t)}catch{Eh=!1}return Eh};var $ne={name:"localStorage",lookup(t){let{lookupLocalStorage:e}=t;if(e&&h4())return window.localStorage.getItem(e)||void 0},cacheUserLanguage(t,e){let{lookupLocalStorage:n}=e;n&&h4()&&window.localStorage.setItem(n,t)}};let Ah=null;const p4=()=>{if(Ah!==null)return Ah;try{if(Ah=typeof window<"u"&&window.sessionStorage!==null,!Ah)return!1;const t="i18next.translate.boo";window.sessionStorage.setItem(t,"foo"),window.sessionStorage.removeItem(t)}catch{Ah=!1}return Ah};var Gne={name:"sessionStorage",lookup(t){let{lookupSessionStorage:e}=t;if(e&&p4())return window.sessionStorage.getItem(e)||void 0},cacheUserLanguage(t,e){let{lookupSessionStorage:n}=e;n&&p4()&&window.sessionStorage.setItem(n,t)}},Wne={name:"navigator",lookup(t){const e=[];if(typeof navigator<"u"){const{languages:n,userLanguage:i,language:r}=navigator;if(n)for(let a=0;a0?e:void 0}},qne={name:"htmlTag",lookup(t){let{htmlTag:e}=t,n;const i=e||(typeof document<"u"?document.documentElement:null);return i&&typeof i.getAttribute=="function"&&(n=i.getAttribute("lang")),n}},Xne={name:"path",lookup(t){let{lookupFromPathIndex:e}=t;if(typeof window>"u")return;const n=window.location.pathname.match(/\/([a-zA-Z-]*)/g);return Array.isArray(n)?n[typeof e=="number"?e:0]?.replace("/",""):void 0}},Kne={name:"subdomain",lookup(t){let{lookupFromSubdomainIndex:e}=t;const n=typeof e=="number"?e+1:1,i=typeof window<"u"&&window.location?.hostname?.match(/^(\w{2,5})\.(([a-z0-9-]{1,63}\.[a-z]{2,6})|localhost)/i);if(i)return i[n]}};let uG=!1;try{document.cookie,uG=!0}catch{}const dG=["querystring","cookie","localStorage","sessionStorage","navigator","htmlTag"];uG||dG.splice(1,1);const Yne=()=>({order:dG,lookupQuerystring:"lng",lookupCookie:"i18next",lookupLocalStorage:"i18nextLng",lookupSessionStorage:"i18nextLng",caches:["localStorage"],excludeCacheFor:["cimode"],convertDetectedLanguage:t=>t});class fG{constructor(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.type="languageDetector",this.detectors={},this.init(e,n)}init(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{languageUtils:{}},n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.services=e,this.options=jne(n,this.options||{},Yne()),typeof this.options.convertDetectedLanguage=="string"&&this.options.convertDetectedLanguage.indexOf("15897")>-1&&(this.options.convertDetectedLanguage=r=>r.replace("-","_")),this.options.lookupFromUrlIndex&&(this.options.lookupFromPathIndex=this.options.lookupFromUrlIndex),this.i18nOptions=i,this.addDetector(Bne),this.addDetector(Hne),this.addDetector($ne),this.addDetector(Gne),this.addDetector(Wne),this.addDetector(qne),this.addDetector(Xne),this.addDetector(Kne),this.addDetector(Vne)}addDetector(e){return this.detectors[e.name]=e,this}detect(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.order,n=[];return e.forEach(i=>{if(this.detectors[i]){let r=this.detectors[i].lookup(this.options);r&&typeof r=="string"&&(r=[r]),r&&(n=n.concat(r))}}),n=n.filter(i=>i!=null&&!Fne(i)).map(i=>this.options.convertDetectedLanguage(i)),this.services&&this.services.languageUtils&&this.services.languageUtils.getBestMatchFromCodes?n:n.length>0?n[0]:null}cacheUserLanguage(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.options.caches;n&&(this.options.excludeCacheFor&&this.options.excludeCacheFor.indexOf(e)>-1||n.forEach(i=>{this.detectors[i]&&this.detectors[i].cacheUserLanguage(e,this.options)}))}}fG.type="languageDetector";const Zne={nav:{printers:"Printers",control:"Control",archives:"Archives",queue:"Queue",stats:"Statistics",profiles:"Profiles",maintenance:"Maintenance",settings:"Settings",collapseSidebar:"Collapse sidebar",expandSidebar:"Expand sidebar",update:"Update",updateAvailable:"Update available: v{{version}}",viewOnGithub:"View on GitHub",keyboardShortcuts:"Keyboard shortcuts (?)",switchToLight:"Switch to light mode",switchToDark:"Switch to dark mode"},common:{save:"Save",cancel:"Cancel",delete:"Delete",edit:"Edit",add:"Add",close:"Close",confirm:"Confirm",loading:"Loading...",error:"Error",success:"Success",warning:"Warning",enabled:"Enabled",disabled:"Disabled",yes:"Yes",no:"No",on:"On",off:"Off",all:"All",none:"None",search:"Search",filter:"Filter",sort:"Sort",refresh:"Refresh",download:"Download",upload:"Upload",actions:"Actions",status:"Status",name:"Name",description:"Description",date:"Date",time:"Time",hours:"hours",minutes:"minutes",seconds:"seconds",noPrinters:"No printers configured",noData:"No data available",required:"Required",optional:"Optional"},printers:{title:"Printers",addPrinter:"Add Printer",editPrinter:"Edit Printer",deletePrinter:"Delete Printer",printerName:"Printer Name",serialNumber:"Serial Number",ipAddress:"IP Address",accessCode:"Access Code",model:"Model",nozzleCount:"Nozzle Count",autoArchive:"Auto Archive",status:{idle:"Idle",printing:"Printing",paused:"Paused",offline:"Offline",error:"Error",finished:"Finished",unknown:"Unknown"},temperatures:{nozzle:"Nozzle",bed:"Bed",chamber:"Chamber"},progress:"{{percent}}% complete",timeRemaining:"{{time}} remaining",deleteConfirm:'Are you sure you want to delete "{{name}}"?',maintenanceOk:"Maintenance OK",maintenanceWarning:"{{count}} warning",maintenanceWarning_plural:"{{count}} warnings",maintenanceDue:"{{count}} due",maintenanceDue_plural:"{{count}} due"},archives:{title:"Print Archives",searchPlaceholder:"Search archives...",filterByPrinter:"Filter by printer",filterByStatus:"Filter by status",sortBy:"Sort by",sortNewest:"Newest first",sortOldest:"Oldest first",sortName:"Name",sortDuration:"Duration",noArchives:"No archives found",printTime:"Print Time",filamentUsed:"Filament Used",cost:"Cost",reprint:"Reprint",preview:"Preview",deleteArchive:"Delete Archive",deleteConfirm:"Are you sure you want to delete this archive?",favorite:"Favorite",unfavorite:"Remove from favorites",viewDetails:"View Details",status:{completed:"Completed",failed:"Failed",stopped:"Stopped"}},queue:{title:"Print Queue",addToQueue:"Add to Queue",clearQueue:"Clear Queue",emptyQueue:"Queue is empty",position:"Position",scheduledTime:"Scheduled Time",moveUp:"Move Up",moveDown:"Move Down",remove:"Remove",startNow:"Start Now",status:{pending:"Pending",printing:"Printing",completed:"Completed",failed:"Failed",cancelled:"Cancelled"}},stats:{title:"Statistics",overview:"Overview",totalPrints:"Total Prints",successRate:"Success Rate",totalPrintTime:"Total Print Time",totalFilament:"Total Filament Used",totalCost:"Total Cost",averagePrintTime:"Average Print Time",printsPerDay:"Prints per Day",byPrinter:"By Printer",byMaterial:"By Material",byMonth:"By Month",last7Days:"Last 7 Days",last30Days:"Last 30 Days",last90Days:"Last 90 Days",allTime:"All Time"},profiles:{title:"Filament Profiles",addProfile:"Add Profile",editProfile:"Edit Profile",deleteProfile:"Delete Profile",material:"Material",brand:"Brand",color:"Color",diameter:"Diameter",density:"Density",costPerKg:"Cost per kg",spoolWeight:"Spool Weight",noProfiles:"No profiles configured",deleteConfirm:"Are you sure you want to delete this profile?"},maintenance:{title:"Maintenance",overview:"Overview",allOk:"All maintenance up to date",dueCount:"{{count}} item due",dueCount_plural:"{{count}} items due",warningCount:"{{count}} warning",warningCount_plural:"{{count}} warnings",totalPrintTime:"Total Print Time",nextMaintenance:"Next Maintenance",nothingDue:"Nothing due",tasks:"Tasks",lastPerformed:"Last performed",interval:"Interval",hoursRemaining:"{{hours}}h remaining",hoursOverdue:"{{hours}}h overdue",markDone:"Mark as Done",performMaintenance:"Perform Maintenance",history:"History",noHistory:"No maintenance history",editPrintHours:"Edit Print Hours",currentHours:"Current Hours",types:{lubricateRails:"Lubricate Linear Rails",cleanNozzle:"Clean Nozzle/Hotend",checkBelts:"Check Belt Tension",cleanBuildPlate:"Clean Build Plate",checkExtruder:"Check Extruder Gears",checkCooling:"Check Cooling Fans",generalInspection:"General Inspection"}},settings:{title:"Settings",general:"General",appearance:"Appearance",notifications:"Notifications",smartPlugs:"Smart Plugs",spoolman:"Spoolman",updates:"Updates",language:"Language",languageDescription:"Select your preferred language",theme:"Theme",themeLight:"Light",themeDark:"Dark",themeSystem:"System",defaultView:"Default View",defaultViewDescription:"Page to show when opening the app",checkForUpdates:"Check for Updates",autoUpdate:"Auto Update",currentVersion:"Current Version",latestVersion:"Latest Version",upToDate:"You are up to date",updateAvailable:"Update available",notificationLanguage:"Notification Language",notificationLanguageDescription:"Language for push notifications",notificationProviders:"Notification Providers",addProvider:"Add Provider",editProvider:"Edit Provider",providerType:"Provider Type",testNotification:"Test Notification",testSuccess:"Test notification sent successfully",testFailed:"Failed to send test notification",quietHours:"Quiet Hours",quietHoursDescription:"Do not disturb during these hours",quietHoursStart:"Start",quietHoursEnd:"End",events:{title:"Notification Events",printStart:"Print Started",printComplete:"Print Completed",printFailed:"Print Failed",printStopped:"Print Stopped",printProgress:"Progress Milestones",printProgressDescription:"Notify at 25%, 50%, 75%",printerOffline:"Printer Offline",printerError:"Printer Error",filamentLow:"Low Filament",maintenanceDue:"Maintenance Due",maintenanceDueDescription:"Notify when maintenance is needed"},smartPlug:{title:"Smart Plugs",add:"Add Smart Plug",edit:"Edit Smart Plug",name:"Name",ipAddress:"IP Address",linkedPrinter:"Linked Printer",autoOn:"Auto Power On",autoOnDescription:"Turn on when print starts",autoOff:"Auto Power Off",autoOffDescription:"Turn off after print completes",offDelay:"Off Delay",offDelayMinutes:"Minutes after print",offDelayTemp:"When nozzle below temperature",currentState:"Current State",turnOn:"Turn On",turnOff:"Turn Off"},spoolmanEnabled:"Enable Spoolman Integration",spoolmanUrl:"Spoolman URL",spoolmanConnected:"Connected",spoolmanDisconnected:"Disconnected"},notification:{printStarted:{title:"Print Started",body:"{{printer}}: {{filename}} has started printing"},printCompleted:{title:"Print Completed",body:"{{printer}}: {{filename}} completed successfully"},printFailed:{title:"Print Failed",body:"{{printer}}: {{filename}} has failed"},printStopped:{title:"Print Stopped",body:"{{printer}}: {{filename}} was stopped"},printProgress:{title:"Print Progress",body:"{{printer}}: {{filename}} is {{percent}}% complete"},printerOffline:{title:"Printer Offline",body:"{{printer}} is offline"},printerError:{title:"Printer Error",body:"{{printer}}: {{error}}"},filamentLow:{title:"Low Filament",body:"{{printer}}: Filament is running low"},maintenanceDue:{title:"Maintenance Due",body:"{{printer}}: {{items}} need attention"}},errors:{generic:"Something went wrong",networkError:"Network error. Please check your connection.",notFound:"Not found",unauthorized:"Unauthorized",serverError:"Server error",validationError:"Please check your input",printerConnectionFailed:"Failed to connect to printer",saveFailed:"Failed to save changes",deleteFailed:"Failed to delete",loadFailed:"Failed to load data"},confirm:{delete:"Are you sure you want to delete this?",unsavedChanges:"You have unsaved changes. Are you sure you want to leave?",clearQueue:"Are you sure you want to clear the queue?"}},Qne={nav:{printers:"Drucker",control:"Steuerung",archives:"Archiv",queue:"Warteschlange",stats:"Statistiken",profiles:"Profile",maintenance:"Wartung",settings:"Einstellungen",collapseSidebar:"Seitenleiste einklappen",expandSidebar:"Seitenleiste ausklappen",update:"Update",updateAvailable:"Update verfügbar: v{{version}}",viewOnGithub:"Auf GitHub ansehen",keyboardShortcuts:"Tastaturkürzel (?)",switchToLight:"Zum hellen Modus wechseln",switchToDark:"Zum dunklen Modus wechseln"},common:{save:"Speichern",cancel:"Abbrechen",delete:"Löschen",edit:"Bearbeiten",add:"Hinzufügen",close:"Schließen",confirm:"Bestätigen",loading:"Lädt...",error:"Fehler",success:"Erfolg",warning:"Warnung",enabled:"Aktiviert",disabled:"Deaktiviert",yes:"Ja",no:"Nein",on:"An",off:"Aus",all:"Alle",none:"Keine",search:"Suchen",filter:"Filtern",sort:"Sortieren",refresh:"Aktualisieren",download:"Herunterladen",upload:"Hochladen",actions:"Aktionen",status:"Status",name:"Name",description:"Beschreibung",date:"Datum",time:"Zeit",hours:"Stunden",minutes:"Minuten",seconds:"Sekunden",noPrinters:"Keine Drucker konfiguriert",noData:"Keine Daten verfügbar",required:"Erforderlich",optional:"Optional"},printers:{title:"Drucker",addPrinter:"Drucker hinzufügen",editPrinter:"Drucker bearbeiten",deletePrinter:"Drucker löschen",printerName:"Druckername",serialNumber:"Seriennummer",ipAddress:"IP-Adresse",accessCode:"Zugangscode",model:"Modell",nozzleCount:"Düsenanzahl",autoArchive:"Automatische Archivierung",status:{idle:"Bereit",printing:"Druckt",paused:"Pausiert",offline:"Offline",error:"Fehler",finished:"Fertig",unknown:"Unbekannt"},temperatures:{nozzle:"Düse",bed:"Druckbett",chamber:"Kammer"},progress:"{{percent}}% abgeschlossen",timeRemaining:"Noch {{time}}",deleteConfirm:'Möchten Sie "{{name}}" wirklich löschen?',maintenanceOk:"Wartung OK",maintenanceWarning:"{{count}} Warnung",maintenanceWarning_plural:"{{count}} Warnungen",maintenanceDue:"{{count}} fällig",maintenanceDue_plural:"{{count}} fällig"},archives:{title:"Druckarchiv",searchPlaceholder:"Archiv durchsuchen...",filterByPrinter:"Nach Drucker filtern",filterByStatus:"Nach Status filtern",sortBy:"Sortieren nach",sortNewest:"Neueste zuerst",sortOldest:"Älteste zuerst",sortName:"Name",sortDuration:"Dauer",noArchives:"Keine Archive gefunden",printTime:"Druckzeit",filamentUsed:"Verbrauchtes Filament",cost:"Kosten",reprint:"Erneut drucken",preview:"Vorschau",deleteArchive:"Archiv löschen",deleteConfirm:"Möchten Sie dieses Archiv wirklich löschen?",favorite:"Favorit",unfavorite:"Aus Favoriten entfernen",viewDetails:"Details anzeigen",status:{completed:"Abgeschlossen",failed:"Fehlgeschlagen",stopped:"Gestoppt"}},queue:{title:"Druckwarteschlange",addToQueue:"Zur Warteschlange hinzufügen",clearQueue:"Warteschlange leeren",emptyQueue:"Warteschlange ist leer",position:"Position",scheduledTime:"Geplante Zeit",moveUp:"Nach oben",moveDown:"Nach unten",remove:"Entfernen",startNow:"Jetzt starten",status:{pending:"Ausstehend",printing:"Druckt",completed:"Abgeschlossen",failed:"Fehlgeschlagen",cancelled:"Abgebrochen"}},stats:{title:"Statistiken",overview:"Übersicht",totalPrints:"Gesamtdrucke",successRate:"Erfolgsrate",totalPrintTime:"Gesamtdruckzeit",totalFilament:"Gesamtverbrauch Filament",totalCost:"Gesamtkosten",averagePrintTime:"Durchschnittliche Druckzeit",printsPerDay:"Drucke pro Tag",byPrinter:"Nach Drucker",byMaterial:"Nach Material",byMonth:"Nach Monat",last7Days:"Letzte 7 Tage",last30Days:"Letzte 30 Tage",last90Days:"Letzte 90 Tage",allTime:"Gesamt"},profiles:{title:"Filament-Profile",addProfile:"Profil hinzufügen",editProfile:"Profil bearbeiten",deleteProfile:"Profil löschen",material:"Material",brand:"Marke",color:"Farbe",diameter:"Durchmesser",density:"Dichte",costPerKg:"Kosten pro kg",spoolWeight:"Spulengewicht",noProfiles:"Keine Profile konfiguriert",deleteConfirm:"Möchten Sie dieses Profil wirklich löschen?"},maintenance:{title:"Wartung",overview:"Übersicht",allOk:"Alle Wartungen aktuell",dueCount:"{{count}} Aufgabe fällig",dueCount_plural:"{{count}} Aufgaben fällig",warningCount:"{{count}} Warnung",warningCount_plural:"{{count}} Warnungen",totalPrintTime:"Gesamtdruckzeit",nextMaintenance:"Nächste Wartung",nothingDue:"Nichts fällig",tasks:"Aufgaben",lastPerformed:"Zuletzt durchgeführt",interval:"Intervall",hoursRemaining:"{{hours}}h verbleibend",hoursOverdue:"{{hours}}h überfällig",markDone:"Als erledigt markieren",performMaintenance:"Wartung durchführen",history:"Verlauf",noHistory:"Kein Wartungsverlauf",editPrintHours:"Druckstunden bearbeiten",currentHours:"Aktuelle Stunden",types:{lubricateRails:"Linearschienen schmieren",cleanNozzle:"Düse/Hotend reinigen",checkBelts:"Riemenspannung prüfen",cleanBuildPlate:"Druckbett reinigen",checkExtruder:"Extruderzahnräder prüfen",checkCooling:"Kühlungslüfter prüfen",generalInspection:"Allgemeine Inspektion"}},settings:{title:"Einstellungen",general:"Allgemein",appearance:"Erscheinungsbild",notifications:"Benachrichtigungen",smartPlugs:"Smart Plugs",spoolman:"Spoolman",updates:"Updates",language:"Sprache",languageDescription:"Wählen Sie Ihre bevorzugte Sprache",theme:"Design",themeLight:"Hell",themeDark:"Dunkel",themeSystem:"System",defaultView:"Standardansicht",defaultViewDescription:"Seite, die beim Öffnen der App angezeigt wird",checkForUpdates:"Nach Updates suchen",autoUpdate:"Automatische Updates",currentVersion:"Aktuelle Version",latestVersion:"Neueste Version",upToDate:"Sie sind auf dem neuesten Stand",updateAvailable:"Update verfügbar",notificationLanguage:"Benachrichtigungssprache",notificationLanguageDescription:"Sprache für Push-Benachrichtigungen",notificationProviders:"Benachrichtigungsanbieter",addProvider:"Anbieter hinzufügen",editProvider:"Anbieter bearbeiten",providerType:"Anbietertyp",testNotification:"Testbenachrichtigung",testSuccess:"Testbenachrichtigung erfolgreich gesendet",testFailed:"Testbenachrichtigung konnte nicht gesendet werden",quietHours:"Ruhezeiten",quietHoursDescription:"Keine Störungen während dieser Zeiten",quietHoursStart:"Beginn",quietHoursEnd:"Ende",events:{title:"Benachrichtigungsereignisse",printStart:"Druck gestartet",printComplete:"Druck abgeschlossen",printFailed:"Druck fehlgeschlagen",printStopped:"Druck gestoppt",printProgress:"Fortschrittsmeldungen",printProgressDescription:"Bei 25%, 50%, 75% benachrichtigen",printerOffline:"Drucker offline",printerError:"Druckerfehler",filamentLow:"Filament niedrig",maintenanceDue:"Wartung fällig",maintenanceDueDescription:"Benachrichtigen, wenn Wartung erforderlich"},smartPlug:{title:"Smart Plugs",add:"Smart Plug hinzufügen",edit:"Smart Plug bearbeiten",name:"Name",ipAddress:"IP-Adresse",linkedPrinter:"Verknüpfter Drucker",autoOn:"Automatisch einschalten",autoOnDescription:"Einschalten beim Druckstart",autoOff:"Automatisch ausschalten",autoOffDescription:"Ausschalten nach Druckende",offDelay:"Ausschaltverzögerung",offDelayMinutes:"Minuten nach Druck",offDelayTemp:"Wenn Düse unter Temperatur",currentState:"Aktueller Status",turnOn:"Einschalten",turnOff:"Ausschalten"},spoolmanEnabled:"Spoolman-Integration aktivieren",spoolmanUrl:"Spoolman URL",spoolmanConnected:"Verbunden",spoolmanDisconnected:"Nicht verbunden"},notification:{printStarted:{title:"Druck gestartet",body:"{{printer}}: {{filename}} wird gedruckt"},printCompleted:{title:"Druck abgeschlossen",body:"{{printer}}: {{filename}} erfolgreich abgeschlossen"},printFailed:{title:"Druck fehlgeschlagen",body:"{{printer}}: {{filename}} ist fehlgeschlagen"},printStopped:{title:"Druck gestoppt",body:"{{printer}}: {{filename}} wurde gestoppt"},printProgress:{title:"Druckfortschritt",body:"{{printer}}: {{filename}} ist zu {{percent}}% abgeschlossen"},printerOffline:{title:"Drucker offline",body:"{{printer}} ist offline"},printerError:{title:"Druckerfehler",body:"{{printer}}: {{error}}"},filamentLow:{title:"Filament niedrig",body:"{{printer}}: Filament geht zur Neige"},maintenanceDue:{title:"Wartung fällig",body:"{{printer}}: {{items}} benötigen Aufmerksamkeit"}},errors:{generic:"Etwas ist schiefgelaufen",networkError:"Netzwerkfehler. Bitte überprüfen Sie Ihre Verbindung.",notFound:"Nicht gefunden",unauthorized:"Nicht autorisiert",serverError:"Serverfehler",validationError:"Bitte überprüfen Sie Ihre Eingabe",printerConnectionFailed:"Verbindung zum Drucker fehlgeschlagen",saveFailed:"Speichern fehlgeschlagen",deleteFailed:"Löschen fehlgeschlagen",loadFailed:"Laden der Daten fehlgeschlagen"},confirm:{delete:"Möchten Sie dies wirklich löschen?",unsavedChanges:"Sie haben ungespeicherte Änderungen. Möchten Sie wirklich verlassen?",clearQueue:"Möchten Sie die Warteschlange wirklich leeren?"}},Jne={en:{translation:Zne},de:{translation:Qne}};wa.use(fG).use(Nne).init({resources:Jne,fallbackLng:"en",supportedLngs:["en","de"],detection:{order:["localStorage","navigator","htmlTag"],lookupLocalStorage:"bambutrack_language",caches:["localStorage"]},interpolation:{escapeValue:!1},react:{useSuspense:!1}});const m4=[{code:"en",name:"English",nativeName:"English"},{code:"de",name:"German",nativeName:"Deutsch"}];var g4="popstate";function eie(t={}){function e(i,r){let{pathname:a,search:s,hash:o}=i.location;return hN("",{pathname:a,search:s,hash:o},r.state&&r.state.usr||null,r.state&&r.state.key||"default")}function n(i,r){return typeof r=="string"?r:L0(r)}return nie(e,n,null,t)}function mi(t,e){if(t===!1||t===null||typeof t>"u")throw new Error(e)}function Ws(t,e){if(!t){typeof console<"u"&&console.warn(e);try{throw new Error(e)}catch{}}}function tie(){return Math.random().toString(36).substring(2,10)}function x4(t,e){return{usr:t.state,key:t.key,idx:e}}function hN(t,e,n=null,i){return{pathname:typeof t=="string"?t:t.pathname,search:"",hash:"",...typeof e=="string"?mm(e):e,state:n,key:e&&e.key||i||tie()}}function L0({pathname:t="/",search:e="",hash:n=""}){return e&&e!=="?"&&(t+=e.charAt(0)==="?"?e:"?"+e),n&&n!=="#"&&(t+=n.charAt(0)==="#"?n:"#"+n),t}function mm(t){let e={};if(t){let n=t.indexOf("#");n>=0&&(e.hash=t.substring(n),t=t.substring(0,n));let i=t.indexOf("?");i>=0&&(e.search=t.substring(i),t=t.substring(0,i)),t&&(e.pathname=t)}return e}function nie(t,e,n,i={}){let{window:r=document.defaultView,v5Compat:a=!1}=i,s=r.history,o="POP",l=null,c=u();c==null&&(c=0,s.replaceState({...s.state,idx:c},""));function u(){return(s.state||{idx:null}).idx}function f(){o="POP";let v=u(),x=v==null?null:v-c;c=v,l&&l({action:o,location:_.location,delta:x})}function p(v,x){o="PUSH";let M=hN(_.location,v,x);c=u()+1;let w=x4(M,c),E=_.createHref(M);try{s.pushState(w,"",E)}catch(T){if(T instanceof DOMException&&T.name==="DataCloneError")throw T;r.location.assign(E)}a&&l&&l({action:o,location:_.location,delta:1})}function g(v,x){o="REPLACE";let M=hN(_.location,v,x);c=u();let w=x4(M,c),E=_.createHref(M);s.replaceState(w,"",E),a&&l&&l({action:o,location:_.location,delta:0})}function y(v){return iie(v)}let _={get action(){return o},get location(){return t(r,s)},listen(v){if(l)throw new Error("A history only accepts one active listener");return r.addEventListener(g4,f),l=v,()=>{r.removeEventListener(g4,f),l=null}},createHref(v){return e(r,v)},createURL:y,encodeLocation(v){let x=y(v);return{pathname:x.pathname,search:x.search,hash:x.hash}},push:p,replace:g,go(v){return s.go(v)}};return _}function iie(t,e=!1){let n="http://localhost";typeof window<"u"&&(n=window.location.origin!=="null"?window.location.origin:window.location.href),mi(n,"No window.location.(origin|href) available to create URL");let i=typeof t=="string"?t:L0(t);return i=i.replace(/ $/,"%20"),!e&&i.startsWith("//")&&(i=n+i),new URL(i,n)}function hG(t,e,n="/"){return rie(t,e,n,!1)}function rie(t,e,n,i){let r=typeof e=="string"?mm(e):e,a=cc(r.pathname||"/",n);if(a==null)return null;let s=pG(t);aie(s);let o=null;for(let l=0;o==null&&l{let u={relativePath:c===void 0?s.path||"":c,caseSensitive:s.caseSensitive===!0,childrenIndex:o,route:s};if(u.relativePath.startsWith("/")){if(!u.relativePath.startsWith(i)&&l)return;mi(u.relativePath.startsWith(i),`Absolute route path "${u.relativePath}" nested under path "${i}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),u.relativePath=u.relativePath.slice(i.length)}let f=tc([i,u.relativePath]),p=n.concat(u);s.children&&s.children.length>0&&(mi(s.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${f}".`),pG(s.children,e,p,f,l)),!(s.path==null&&!s.index)&&e.push({path:f,score:fie(f,s.index),routesMeta:p})};return t.forEach((s,o)=>{if(s.path===""||!s.path?.includes("?"))a(s,o);else for(let l of mG(s.path))a(s,o,!0,l)}),e}function mG(t){let e=t.split("/");if(e.length===0)return[];let[n,...i]=e,r=n.endsWith("?"),a=n.replace(/\?$/,"");if(i.length===0)return r?[a,""]:[a];let s=mG(i.join("/")),o=[];return o.push(...s.map(l=>l===""?a:[a,l].join("/"))),r&&o.push(...s),o.map(l=>t.startsWith("/")&&l===""?"/":l)}function aie(t){t.sort((e,n)=>e.score!==n.score?n.score-e.score:hie(e.routesMeta.map(i=>i.childrenIndex),n.routesMeta.map(i=>i.childrenIndex)))}var sie=/^:[\w-]+$/,oie=3,lie=2,cie=1,uie=10,die=-2,v4=t=>t==="*";function fie(t,e){let n=t.split("/"),i=n.length;return n.some(v4)&&(i+=die),e&&(i+=lie),n.filter(r=>!v4(r)).reduce((r,a)=>r+(sie.test(a)?oie:a===""?cie:uie),i)}function hie(t,e){return t.length===e.length&&t.slice(0,-1).every((i,r)=>i===e[r])?t[t.length-1]-e[e.length-1]:0}function pie(t,e,n=!1){let{routesMeta:i}=t,r={},a="/",s=[];for(let o=0;o{if(u==="*"){let y=o[p]||"";s=a.slice(0,a.length-y.length).replace(/(.)\/+$/,"$1")}const g=o[p];return f&&!g?c[u]=void 0:c[u]=(g||"").replace(/%2F/g,"/"),c},{}),pathname:a,pathnameBase:s,pattern:t}}function mie(t,e=!1,n=!0){Ws(t==="*"||!t.endsWith("*")||t.endsWith("/*"),`Route path "${t}" will be treated as if it were "${t.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${t.replace(/\*$/,"/*")}".`);let i=[],r="^"+t.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(s,o,l)=>(i.push({paramName:o,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return t.endsWith("*")?(i.push({paramName:"*"}),r+=t==="*"||t==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?r+="\\/*$":t!==""&&t!=="/"&&(r+="(?:(?=\\/|$))"),[new RegExp(r,e?void 0:"i"),i]}function gie(t){try{return t.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(e){return Ws(!1,`The URL path "${t}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${e}).`),t}}function cc(t,e){if(e==="/")return t;if(!t.toLowerCase().startsWith(e.toLowerCase()))return null;let n=e.endsWith("/")?e.length-1:e.length,i=t.charAt(n);return i&&i!=="/"?null:t.slice(n)||"/"}var xie=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,vie=t=>xie.test(t);function yie(t,e="/"){let{pathname:n,search:i="",hash:r=""}=typeof t=="string"?mm(t):t,a;if(n)if(vie(n))a=n;else{if(n.includes("//")){let s=n;n=n.replace(/\/\/+/g,"/"),Ws(!1,`Pathnames cannot have embedded double slashes - normalizing ${s} -> ${n}`)}n.startsWith("/")?a=y4(n.substring(1),"/"):a=y4(n,e)}else a=e;return{pathname:a,search:Sie(i),hash:wie(r)}}function y4(t,e){let n=e.replace(/\/+$/,"").split("/");return t.split("/").forEach(r=>{r===".."?n.length>1&&n.pop():r!=="."&&n.push(r)}),n.length>1?n.join("/"):"/"}function TA(t,e,n,i){return`Cannot include a '${t}' character in a manually specified \`to.${e}\` field [${JSON.stringify(i)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function bie(t){return t.filter((e,n)=>n===0||e.route.path&&e.route.path.length>0)}function gG(t){let e=bie(t);return e.map((n,i)=>i===e.length-1?n.pathname:n.pathnameBase)}function xG(t,e,n,i=!1){let r;typeof t=="string"?r=mm(t):(r={...t},mi(!r.pathname||!r.pathname.includes("?"),TA("?","pathname","search",r)),mi(!r.pathname||!r.pathname.includes("#"),TA("#","pathname","hash",r)),mi(!r.search||!r.search.includes("#"),TA("#","search","hash",r)));let a=t===""||r.pathname==="",s=a?"/":r.pathname,o;if(s==null)o=n;else{let f=e.length-1;if(!i&&s.startsWith("..")){let p=s.split("/");for(;p[0]==="..";)p.shift(),f-=1;r.pathname=p.join("/")}o=f>=0?e[f]:"/"}let l=yie(r,o),c=s&&s!=="/"&&s.endsWith("/"),u=(a||s===".")&&n.endsWith("/");return!l.pathname.endsWith("/")&&(c||u)&&(l.pathname+="/"),l}var tc=t=>t.join("/").replace(/\/\/+/g,"/"),_ie=t=>t.replace(/\/+$/,"").replace(/^\/*/,"/"),Sie=t=>!t||t==="?"?"":t.startsWith("?")?t:"?"+t,wie=t=>!t||t==="#"?"":t.startsWith("#")?t:"#"+t;function Mie(t){return t!=null&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.internal=="boolean"&&"data"in t}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var vG=["POST","PUT","PATCH","DELETE"];new Set(vG);var Eie=["GET",...vG];new Set(Eie);var gm=A.createContext(null);gm.displayName="DataRouter";var BS=A.createContext(null);BS.displayName="DataRouterState";A.createContext(!1);var yG=A.createContext({isTransitioning:!1});yG.displayName="ViewTransition";var Aie=A.createContext(new Map);Aie.displayName="Fetchers";var Tie=A.createContext(null);Tie.displayName="Await";var rl=A.createContext(null);rl.displayName="Navigation";var Tx=A.createContext(null);Tx.displayName="Location";var al=A.createContext({outlet:null,matches:[],isDataRoute:!1});al.displayName="Route";var yP=A.createContext(null);yP.displayName="RouteError";function Cie(t,{relative:e}={}){mi(Cx(),"useHref() may be used only in the context of a component.");let{basename:n,navigator:i}=A.useContext(rl),{hash:r,pathname:a,search:s}=Nx(t,{relative:e}),o=a;return n!=="/"&&(o=a==="/"?n:tc([n,a])),i.createHref({pathname:o,search:s,hash:r})}function Cx(){return A.useContext(Tx)!=null}function Sc(){return mi(Cx(),"useLocation() may be used only in the context of a component."),A.useContext(Tx).location}var bG="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function _G(t){A.useContext(rl).static||A.useLayoutEffect(t)}function HS(){let{isDataRoute:t}=A.useContext(al);return t?Vie():Nie()}function Nie(){mi(Cx(),"useNavigate() may be used only in the context of a component.");let t=A.useContext(gm),{basename:e,navigator:n}=A.useContext(rl),{matches:i}=A.useContext(al),{pathname:r}=Sc(),a=JSON.stringify(gG(i)),s=A.useRef(!1);return _G(()=>{s.current=!0}),A.useCallback((l,c={})=>{if(Ws(s.current,bG),!s.current)return;if(typeof l=="number"){n.go(l);return}let u=xG(l,JSON.parse(a),r,c.relative==="path");t==null&&e!=="/"&&(u.pathname=u.pathname==="/"?e:tc([e,u.pathname])),(c.replace?n.replace:n.push)(u,c.state,c)},[e,n,a,r,t])}var Rie=A.createContext(null);function Pie(t){let e=A.useContext(al).outlet;return A.useMemo(()=>e&&A.createElement(Rie.Provider,{value:t},e),[e,t])}function Nx(t,{relative:e}={}){let{matches:n}=A.useContext(al),{pathname:i}=Sc(),r=JSON.stringify(gG(n));return A.useMemo(()=>xG(t,JSON.parse(r),i,e==="path"),[t,r,i,e])}function kie(t,e){return SG(t,e)}function SG(t,e,n,i,r){mi(Cx(),"useRoutes() may be used only in the context of a component.");let{navigator:a}=A.useContext(rl),{matches:s}=A.useContext(al),o=s[s.length-1],l=o?o.params:{},c=o?o.pathname:"/",u=o?o.pathnameBase:"/",f=o&&o.route;{let M=f&&f.path||"";wG(c,!f||M.endsWith("*")||M.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${c}" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render. -Please change the parent to .`)}let p=Sc(),g;if(e){let M=typeof e=="string"?pm(e):e;mi(u==="/"||M.pathname?.startsWith(u),`When overriding the location using \`\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${u}" but pathname "${M.pathname}" was given in the \`location\` prop.`),g=M}else g=p;let y=g.pathname||"/",_=y;if(u!=="/"){let M=u.replace(/^\//,"").split("/");_="/"+y.replace(/^\//,"").split("/").slice(M.length).join("/")}let v=hG(t,{pathname:_});Ws(f||v!=null,`No routes matched location "${g.pathname}${g.search}${g.hash}" `),Ws(v==null||v[v.length-1].route.element!==void 0||v[v.length-1].route.Component!==void 0||v[v.length-1].route.lazy!==void 0,`Matched leaf route at location "${g.pathname}${g.search}${g.hash}" does not have an element or Component. This means it will render an with a null value by default resulting in an "empty" page.`);let x=Uie(v&&v.map(M=>Object.assign({},M,{params:Object.assign({},l,M.params),pathname:tc([u,a.encodeLocation?a.encodeLocation(M.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:M.pathname]),pathnameBase:M.pathnameBase==="/"?u:tc([u,a.encodeLocation?a.encodeLocation(M.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:M.pathnameBase])})),s,n,i,r);return e&&x?A.createElement(Tx.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...g},navigationType:"POP"}},x):x}function kie(){let t=Hie(),e=Mie(t)?`${t.status} ${t.statusText}`:t instanceof Error?t.message:JSON.stringify(t),n=t instanceof Error?t.stack:null,i="rgba(200,200,200, 0.5)",r={padding:"0.5rem",backgroundColor:i},a={padding:"2px 4px",backgroundColor:i},s=null;return console.error("Error handled by React Router default ErrorBoundary:",t),s=A.createElement(A.Fragment,null,A.createElement("p",null,"💿 Hey developer 👋"),A.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",A.createElement("code",{style:a},"ErrorBoundary")," or"," ",A.createElement("code",{style:a},"errorElement")," prop on your route.")),A.createElement(A.Fragment,null,A.createElement("h2",null,"Unexpected Application Error!"),A.createElement("h3",{style:{fontStyle:"italic"}},e),n?A.createElement("pre",{style:r},n):null,s)}var Oie=A.createElement(kie,null),Lie=class extends A.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,e){return e.location!==t.location||e.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:e.error,location:e.location,revalidation:t.revalidation||e.revalidation}}componentDidCatch(t,e){this.props.onError?this.props.onError(t,e):console.error("React Router caught the following error during render",t)}render(){return this.state.error!==void 0?A.createElement(al.Provider,{value:this.props.routeContext},A.createElement(yP.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function Iie({routeContext:t,match:e,children:n}){let i=A.useContext(mm);return i&&i.static&&i.staticContext&&(e.route.errorElement||e.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=e.route.id),A.createElement(al.Provider,{value:t},n)}function Uie(t,e=[],n=null,i=null,r=null){if(t==null){if(!n)return null;if(n.errors)t=n.matches;else if(e.length===0&&!n.initialized&&n.matches.length>0)t=n.matches;else return null}let a=t,s=n?.errors;if(s!=null){let u=a.findIndex(f=>f.route.id&&s?.[f.route.id]!==void 0);mi(u>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(s).join(",")}`),a=a.slice(0,Math.min(a.length,u+1))}let o=!1,l=-1;if(n)for(let u=0;u=0?a=a.slice(0,l+1):a=[a[0]];break}}}let c=n&&i?(u,f)=>{i(u,{location:n.location,params:n.matches?.[0]?.params??{},errorInfo:f})}:void 0;return a.reduceRight((u,f,p)=>{let g,y=!1,_=null,v=null;n&&(g=s&&f.route.id?s[f.route.id]:void 0,_=f.route.errorElement||Oie,o&&(l<0&&p===0?(wG("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),y=!0,v=null):l===p&&(y=!0,v=f.route.hydrateFallbackElement||null)));let x=e.concat(a.slice(0,p+1)),M=()=>{let w;return g?w=_:y?w=v:f.route.Component?w=A.createElement(f.route.Component,null):f.route.element?w=f.route.element:w=u,A.createElement(Iie,{match:f,routeContext:{outlet:u,matches:x,isDataRoute:n!=null},children:w})};return n&&(f.route.ErrorBoundary||f.route.errorElement||p===0)?A.createElement(Lie,{location:n.location,revalidation:n.revalidation,component:_,error:g,children:M(),routeContext:{outlet:null,matches:x,isDataRoute:!0},onError:c}):M()},null)}function bP(t){return`${t} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function jie(t){let e=A.useContext(mm);return mi(e,bP(t)),e}function Fie(t){let e=A.useContext(BS);return mi(e,bP(t)),e}function zie(t){let e=A.useContext(al);return mi(e,bP(t)),e}function _P(t){let e=zie(t),n=e.matches[e.matches.length-1];return mi(n.route.id,`${t} can only be used on routes that contain a unique "id"`),n.route.id}function Bie(){return _P("useRouteId")}function Hie(){let t=A.useContext(yP),e=Fie("useRouteError"),n=_P("useRouteError");return t!==void 0?t:e.errors?.[n]}function Vie(){let{router:t}=jie("useNavigate"),e=_P("useNavigate"),n=A.useRef(!1);return _G(()=>{n.current=!0}),A.useCallback(async(r,a={})=>{Ws(n.current,bG),n.current&&(typeof r=="number"?t.navigate(r):await t.navigate(r,{fromRouteId:e,...a}))},[t,e])}var b4={};function wG(t,e,n){!e&&!b4[t]&&(b4[t]=!0,Ws(!1,n))}A.memo($ie);function $ie({routes:t,future:e,state:n,unstable_onError:i}){return SG(t,void 0,n,i,e)}function Gie(t){return Pie(t.context)}function Lo(t){mi(!1,"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .")}function Wie({basename:t="/",children:e=null,location:n,navigationType:i="POP",navigator:r,static:a=!1}){mi(!Cx(),"You cannot render a inside another . You should never have more than one in your app.");let s=t.replace(/^\/*/,"/"),o=A.useMemo(()=>({basename:s,navigator:r,static:a,future:{}}),[s,r,a]);typeof n=="string"&&(n=pm(n));let{pathname:l="/",search:c="",hash:u="",state:f=null,key:p="default"}=n,g=A.useMemo(()=>{let y=cc(l,s);return y==null?null:{location:{pathname:y,search:c,hash:u,state:f,key:p},navigationType:i}},[s,l,c,u,f,p,i]);return Ws(g!=null,` is not able to match the URL "${l}${c}${u}" because it does not start with the basename, so the won't render anything.`),g==null?null:A.createElement(rl.Provider,{value:o},A.createElement(Tx.Provider,{children:e,value:g}))}function qie({children:t,location:e}){return Die(pN(t),e)}function pN(t,e=[]){let n=[];return A.Children.forEach(t,(i,r)=>{if(!A.isValidElement(i))return;let a=[...e,r];if(i.type===A.Fragment){n.push.apply(n,pN(i.props.children,a));return}mi(i.type===Lo,`[${typeof i.type=="string"?i.type:i.type.name}] is not a component. All component children of must be a or `),mi(!i.props.index||!i.props.children,"An index route cannot have child routes.");let s={id:i.props.id||a.join("-"),caseSensitive:i.props.caseSensitive,element:i.props.element,Component:i.props.Component,index:i.props.index,path:i.props.path,middleware:i.props.middleware,loader:i.props.loader,action:i.props.action,hydrateFallbackElement:i.props.hydrateFallbackElement,HydrateFallback:i.props.HydrateFallback,errorElement:i.props.errorElement,ErrorBoundary:i.props.ErrorBoundary,hasErrorBoundary:i.props.hasErrorBoundary===!0||i.props.ErrorBoundary!=null||i.props.errorElement!=null,shouldRevalidate:i.props.shouldRevalidate,handle:i.props.handle,lazy:i.props.lazy};i.props.children&&(s.children=pN(i.props.children,a)),n.push(s)}),n}var s_="get",o_="application/x-www-form-urlencoded";function VS(t){return t!=null&&typeof t.tagName=="string"}function Xie(t){return VS(t)&&t.tagName.toLowerCase()==="button"}function Kie(t){return VS(t)&&t.tagName.toLowerCase()==="form"}function Yie(t){return VS(t)&&t.tagName.toLowerCase()==="input"}function Zie(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}function Qie(t,e){return t.button===0&&(!e||e==="_self")&&!Zie(t)}function mN(t=""){return new URLSearchParams(typeof t=="string"||Array.isArray(t)||t instanceof URLSearchParams?t:Object.keys(t).reduce((e,n)=>{let i=t[n];return e.concat(Array.isArray(i)?i.map(r=>[n,r]):[[n,i]])},[]))}function Jie(t,e){let n=mN(t);return e&&e.forEach((i,r)=>{n.has(r)||e.getAll(r).forEach(a=>{n.append(r,a)})}),n}var Cy=null;function ere(){if(Cy===null)try{new FormData(document.createElement("form"),0),Cy=!1}catch{Cy=!0}return Cy}var tre=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function CA(t){return t!=null&&!tre.has(t)?(Ws(!1,`"${t}" is not a valid \`encType\` for \`

\`/\`\` and will default to "${o_}"`),null):t}function nre(t,e){let n,i,r,a,s;if(Kie(t)){let o=t.getAttribute("action");i=o?cc(o,e):null,n=t.getAttribute("method")||s_,r=CA(t.getAttribute("enctype"))||o_,a=new FormData(t)}else if(Xie(t)||Yie(t)&&(t.type==="submit"||t.type==="image")){let o=t.form;if(o==null)throw new Error('Cannot submit a