diff --git a/CHANGELOG.md b/CHANGELOG.md index 4238ff513..4ace2e22b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ All notable changes to Bambuddy will be documented in this file. ## [0.2.5b1] - Unreleased ### Fixed +- **"Assign Spool" no longer claims the AMS slot was configured when it wasn't (#1680, reported by @kleinwareio)** — Reporter clicked Assign Spool from the printer card for AMS-B slot 4 while that slot was empty. The toast said "Spool assigned and AMS slot configured" but the AMS card kept showing slot 4 as Empty. **Root cause: misleading toast on the empty-slot deferred-config path.** The backend (`inventory.py:1385-1405`) deliberately skips the MQTT `ams_filament_setting` publish when the AMS reports an empty tray state (state ∈ {9, 10}) because Bambu firmware silently drops the push for empty slots — there's no point sending a command the printer will discard. The assignment row is persisted with `pending_config=true`, and `on_ams_change` (`main.py:1031-1054`) re-fires the full configuration the moment the AMS reports a non-empty fingerprint in that slot. The flow is correct; the success log line `Pre-configured assignment: spool 16 → printer 1 AMS1-T3 (slot empty, will configure on insert)` confirms the backend did exactly that. **But the frontend ignored the response flag.** `AssignSpoolModal.tsx:153` always called `showToast(t('inventory.assignSuccess'), 'success')` — the wording "Spool assigned and AMS slot configured" — regardless of whether the backend actually configured the slot or deferred. The sibling SpoolBuddy modal (`spoolbuddy/AssignToAmsModal.tsx:212-226`) already branched on `pending_config` and showed a distinct "Slot will configure when you insert the spool" message; the printer-card modal was just never updated to match. **Fix:** `AssignSpoolModal.tsx` now reads `newAssignment.pending_config` and picks between `'inventory.assignSuccess'` (slot configured immediately) and the new `'inventory.assignPendingInsert'` ("Assigned. Slot will configure when you insert the spool.") key. Spoolman-mode branch unchanged — the Spoolman backend route always sends the MQTT push (no pending_config flag is exposed) and the SpoolBuddy modal's existing comment documents that. **i18n:** new `inventory.assignPendingInsert` key in all 11 locales (de / en / es / fr / it / ja / ko / pt-BR / tr / zh-CN / zh-TW), translations copied verbatim from the existing parallel `spoolbuddy.modal.assignPendingInsert` entries so the message reads identically across the app. No English fallbacks per the project's hard rule; i18n parity check confirms 5066 leaves × 11 locales. **Tests:** 2 new in `AssignSpoolModal.test.tsx` — `shows the pending-insert toast when backend returns pending_config=true (#1680)` pins the new branch (slot-was-empty case the reporter hit), and `shows the configured toast when backend returns pending_config=false (#1680)` is the counterpart regression guard so a future refactor can't silently mark every assign as pending. Both also assert the WRONG toast is NOT also called (defense against accidental double-toast). 16/16 AssignSpoolModal tests pass; frontend build clean; ESLint clean. + - **Restarting Bambuddy mid-print no longer marks the live archive as "cancelled / aborted" + duplicates it + double-counts filament (#1679, reported by @IndividualGhost1905)** — Reporter on X1C, daily build `v0.2.5b1-daily.20260607`: a print was running, the host was restarted (planned reboot / power outage / watchtower image update), and Bambuddy's printer card showed the print as **cancelled** while the printer continued printing happily. Print log showed `aborted` for that row, filament usage was deducted at the cancellation moment (48.6 g / 5 % in the supplied screenshots), and when the print actually finished a *second* archive was created and filament was deducted *again*. Net effect: filament inventory off by the entire print weight, statistics showing one "user-cancelled" entry alongside one "completed" entry for the same physical print. Second confirmed hit from the same reporter, plus a corroborating comment from @Arn0uDz on watchtower-driven restarts. **Root cause: connected-edge reconciliation fired on a bare MQTT-connected state that had no real data yet.** On Bambuddy startup, a fresh `BambuMQTTClient` is constructed with `PrinterState` defaults — most importantly `state.state = "unknown"` and `state.subtask_name = ""`. The MQTT `_on_connect` callback (`bambu_mqtt.py:668-669`) broadcasts `on_state_change(self.state)` *immediately* after the broker accepts the connection — BEFORE the `_request_push_all` round-trips with the printer's real status. `on_printer_status_change` (`main.py:825`) sees `state.connected=True` flip on the connected-edge, spawns `reconcile_stale_active_prints` for that printer. The reconcile walks every archive in `status="printing"`, calls `_is_active_archive_stale` (`main.py:3352`) — which sees `state.state="UNKNOWN"` (skips the IDLE/FINISH/FAILED branch), then `state.subtask_name=""` (matches trigger 3, "printer subtask_name empty") and **returns stale**. A synthesised `aborted` PRINT COMPLETE fires for every in-flight archive on every printer, clears `_active_prints`, and when the real PRINT COMPLETE finally arrives at print end, `_active_prints` doesn't have the entry, so a brand-new archive row is created instead of overwriting the synthesised one. The pre-existing comment at `_is_active_archive_stale` ("the next real PRINT COMPLETE would have overwritten the status anyway") was wrong: the reactive completion handler uses `_active_prints` for lookup, not a join on filename/subtask_id, so the original row stays cancelled and a duplicate is born. Timing-dependent in practice — on hosts where the printer's first `push_status` response wins the race against the reconcile background task, state is real and reconcile doesn't false-positive; on slower hosts or busy MQTT brokers, the bare-connect-edge fires first and the bug hits. The reporter is on a slower-race host and saw it twice. **Fix: two-layer guard.** (1) Primary: `on_printer_status_change` now gates the reconcile spawn on `state.state` being a real value — `state_known = bool(state.state) and state.state.upper() not in ("", "UNKNOWN")` — so reconcile doesn't fire until the first `push_status` updates `state.state` to a real Bambu firmware value (RUNNING / IDLE / FINISH / PREPARE / SLICING / PAUSE / FAILED). When that real push arrives, `on_printer_status_change` fires again, the connected-edge flag is still `False` (we never set it), and reconcile runs against actual evidence. The existing #1542 mechanism — synthesising a missed PRINT COMPLETE for prints that finished during a disconnect window — keeps working: if the printer reports `IDLE` on its first real push after reconnect, reconcile catches it the way it always did. (2) Belt-and-braces: `_is_active_archive_stale` now returns `(False, "")` when `state.state` is empty / `"unknown"` / `None`, regardless of the subtask fields. Strictly more conservative than the previous behaviour; only suppresses the degenerate-input false positive. Any future caller that bypasses the primary gate still can't synthesise an aborted completion from defaults. **Tests:** `test_reconcile_stale_active_prints.py` 26 cases (up from 21) — new parametrize `test_pre_push_state_returns_not_stale_even_with_empty_subtask` pins all five degenerate forms (`"unknown"`, `"UNKNOWN"`, `"Unknown"`, `""`, `None`) and asserts none triggers stale even with empty `subtask_id` + empty `subtask_name`. The existing #1542 regression coverage stays green — terminal-state, subtask-id-mismatch, and empty-subtask-name-under-RUNNING all still report stale on real state pushes. Full backend suite: 3836 / 3836 pass. ruff clean. - **Print queue no longer wedges in "Currently Printing" when a printer accepts `project_file` but never starts (#1678, reported by @kleinwareio)** — Reporter on two P1S, one was power-cycled mid-print and came back online; from then on Bambuddy showed the next queue item as "Currently Printing" at 0% while the printer card showed "Idle / Ready to print". The same file also re-appeared in the Queued list as Pending after the user resubmitted. Only restarting the Bambuddy container ever recovered it. Support log + screenshots confirm: at dispatch time MQTT `project_file` was ACK'd, printer pushed `gcode_state=IDLE, gcode_file=, subtask_id=` — i.e. the file landed on the printer but the printer never transitioned IDLE → PREPARE → RUNNING. **Root cause: `_watchdog_print_start` returned SUCCESS as soon as `subtask_id` advanced.** The subtask_id-as-pickup-signal was added for H2D, which can sit at `FINISH` for ~50 s after accepting `project_file` before flipping to PREPARE (#1078) — but it's strictly a "command landed" signal, not "actually printing". When the printer accepts the file but then wedges (cloud+LAN re-auth dance after a power cycle, old firmware, partial network outage), the watchdog returned success, the queue row stayed at `status='printing'`, the in-memory `_expected_prints` entry stayed registered (TTL is 2 hours and only clears the dict, not the DB row), and every subsequent queue item was blocked because the printer was still "in flight". This reporter's firmware (01.07.00.00, current is 01.08.x+) and `bambu_cloud_token`-enabled cloud+LAN mode make the post-power-cycle wedge measurably more likely on their box, but the queue-wedge bug applies to any printer that accepts a file but stalls before starting. **Fix: split the watchdog into two phases.** Phase A (up to `timeout`, default 90 s, unchanged behaviour) waits for either an active-state transition OR a `subtask_id` advance — if neither happens the publish was lost on a half-broken MQTT session (#887/#936) and we revert + force-reconnect (the original #967 recovery path). Phase B (new, up to `phase_b_timeout`, default 180 s) only runs when Phase A exited via subtask_id-alone: keep watching for the active-state transition. 180 s is ~3.5× the worst observed H2D FINISH → PREPARE delay (#1078), so the H2D path stays green. If Phase B times out the queue item is reverted to `pending` so the user can retry without restarting Bambuddy — and Phase B explicitly does NOT force a MQTT reconnect because subtask_id-advance proves the project_file landed and a forced reconnect mid-parse triggers 0500_4003 (#1150). Phase A's existing `gcode_file`-changed discriminator (#1150) stays put for the no-subtask-id-advance case. **Tests:** `test_scheduler_watchdog.py` 14 cases (up from 13) — the #1078 H2D regression test rewritten to step the status through Phase A (subtask_id advance with state=FINISH) then Phase B (state flips to RUNNING) and pin success; new `test_reverts_when_subtask_advanced_but_state_never_active` pins the #1678 wedge case (subtask_id advances, state stays IDLE for the full Phase B window → revert + NO force_reconnect call); new `test_default_phase_b_timeout_is_180_seconds` pins the new default so a future refactor doesn't silently shrink the H2D headroom. Existing #967 / #1150 / #1370 / disconnect / fallback / discriminator regression coverage all stays green. Wider scheduler + queue + dispatch test surface (305 tests) stays green; ruff clean. diff --git a/frontend/src/__tests__/components/AssignSpoolModal.test.tsx b/frontend/src/__tests__/components/AssignSpoolModal.test.tsx index 884098aa9..96789b76e 100644 --- a/frontend/src/__tests__/components/AssignSpoolModal.test.tsx +++ b/frontend/src/__tests__/components/AssignSpoolModal.test.tsx @@ -18,6 +18,15 @@ vi.mock('../../api/client', () => ({ }, })); +const mockShowToast = vi.fn(); +vi.mock('../../contexts/ToastContext', async (importOriginal) => { + const actual = await importOriginal(); + return { + ...actual, + useToast: () => ({ showToast: mockShowToast }), + }; +}); + const defaultProps = { isOpen: true, onClose: vi.fn(), @@ -323,6 +332,88 @@ describe('AssignSpoolModal', () => { expect(api.refreshPrinterStatus).toHaveBeenCalledWith(7); }); }); + + // #1680: backend returns `pending_config=true` when the AMS slot was empty + // at assign time (firmware drops the MQTT push silently; on_ams_change + // re-fires the config when filament is detected). The toast MUST reflect + // that the slot hasn't been configured yet — saying "AMS slot configured" + // reads as a lie and is what the reporter hit. + it('shows the pending-insert toast when backend returns pending_config=true (#1680)', async () => { + const { default: userEvent } = await import('@testing-library/user-event'); + const user = userEvent.setup(); + + (api.getSpools as ReturnType).mockResolvedValue([manualSpool]); + (api.assignSpool as ReturnType).mockResolvedValue({ + id: 1, spool_id: 1, printer_id: 7, ams_id: 0, tray_id: 0, + pending_config: true, + }); + + render( + + ); + + await waitFor(() => { + expect(screen.getByText(/Polymaker/)).toBeInTheDocument(); + }); + await user.click(screen.getByText(/Polymaker/)); + await user.click(screen.getByRole('button', { name: /assign spool/i })); + + await waitFor(() => { + expect(mockShowToast).toHaveBeenCalledWith( + expect.stringContaining('Slot will configure when you insert the spool'), + 'success', + ); + }); + // And the "AMS slot configured" toast must NOT also have fired. + expect(mockShowToast).not.toHaveBeenCalledWith( + expect.stringContaining('AMS slot configured'), + expect.anything(), + ); + }); + + // Counterpart guard: when the backend did configure the slot + // (pending_config=false or absent), the existing success toast still + // fires. Without this regression test, the #1680 fix could silently + // overshoot and label every assign as pending. + it('shows the configured toast when backend returns pending_config=false (#1680)', async () => { + const { default: userEvent } = await import('@testing-library/user-event'); + const user = userEvent.setup(); + + (api.getSpools as ReturnType).mockResolvedValue([manualSpool]); + (api.assignSpool as ReturnType).mockResolvedValue({ + id: 1, spool_id: 1, printer_id: 7, ams_id: 0, tray_id: 0, + pending_config: false, + }); + + render( + + ); + + await waitFor(() => { + expect(screen.getByText(/Polymaker/)).toBeInTheDocument(); + }); + await user.click(screen.getByText(/Polymaker/)); + await user.click(screen.getByRole('button', { name: /assign spool/i })); + + await waitFor(() => { + expect(mockShowToast).toHaveBeenCalledWith( + expect.stringContaining('AMS slot configured'), + 'success', + ); + }); + expect(mockShowToast).not.toHaveBeenCalledWith( + expect.stringContaining('Slot will configure when you insert'), + expect.anything(), + ); + }); }); describe('AssignSpoolModal — Spoolman enabled (T-Gap 7)', () => { diff --git a/frontend/src/components/AssignSpoolModal.tsx b/frontend/src/components/AssignSpoolModal.tsx index bc1bbdd28..66335289a 100644 --- a/frontend/src/components/AssignSpoolModal.tsx +++ b/frontend/src/components/AssignSpoolModal.tsx @@ -150,7 +150,19 @@ export function AssignSpoolModal({ isOpen, onClose, printerId, amsId, trayId, tr }); queryClient.invalidateQueries({ queryKey: ['spool-assignments'] }); nudgePrinterRepublish(); - showToast(t('inventory.assignSuccess'), 'success'); + // When the AMS slot was empty at assign time (tray_state ∈ {9, 10}), the + // backend persists the assignment but deliberately skips the MQTT + // `ams_filament_setting` push because Bambu firmware drops it silently + // for empty slots. `on_ams_change` re-fires the configuration once a + // spool is detected in the slot (#1680). The success-but-pending case + // gets a distinct toast so the user understands the slot hasn't been + // configured on the printer yet — saying "AMS slot configured" reads + // as a lie in that state. Mirror of `spoolbuddy/AssignToAmsModal.tsx`, + // which has handled this since the SpoolBuddy assign flow shipped. + const toastKey = newAssignment.pending_config + ? 'inventory.assignPendingInsert' + : 'inventory.assignSuccess'; + showToast(t(toastKey), 'success'); setShowMismatchConfirm(false); setPendingAssignId(null); setMismatchDetails(null); diff --git a/frontend/src/i18n/locales/de.ts b/frontend/src/i18n/locales/de.ts index f4cf28445..336f163cb 100644 --- a/frontend/src/i18n/locales/de.ts +++ b/frontend/src/i18n/locales/de.ts @@ -3731,6 +3731,7 @@ export default { assignSpool: 'Spule zuweisen', unassignSpool: 'Zuweisung aufheben', assignSuccess: 'Spule zugewiesen und AMS-Slot konfiguriert', + assignPendingInsert: 'Zugewiesen. Slot wird beim Einsetzen der Spule konfiguriert.', assignFailed: 'Spulenzuweisung fehlgeschlagen', selectSpool: 'Wählen Sie eine Spule für diesen Slot', assigned: 'Zugewiesen', diff --git a/frontend/src/i18n/locales/en.ts b/frontend/src/i18n/locales/en.ts index 2fdc6c6f7..fb4d953f6 100644 --- a/frontend/src/i18n/locales/en.ts +++ b/frontend/src/i18n/locales/en.ts @@ -3739,6 +3739,7 @@ export default { assignSpool: 'Assign Spool', unassignSpool: 'Unassign', assignSuccess: 'Spool assigned and AMS slot configured', + assignPendingInsert: 'Assigned. Slot will configure when you insert the spool.', assignFailed: 'Failed to assign spool', selectSpool: 'Select a spool to assign to this slot', assigned: 'Assigned', diff --git a/frontend/src/i18n/locales/es.ts b/frontend/src/i18n/locales/es.ts index d6c3f5eae..e3526d92c 100644 --- a/frontend/src/i18n/locales/es.ts +++ b/frontend/src/i18n/locales/es.ts @@ -3735,6 +3735,7 @@ export default { assignSpool: 'Asignar bobina', unassignSpool: 'Desasignar', assignSuccess: 'Bobina asignada y ranura del AMS configurada', + assignPendingInsert: 'Asignada. La ranura se configurará cuando inserte la bobina.', assignFailed: 'Error al asignar la bobina', selectSpool: 'Seleccione una bobina para asignar a esta ranura', assigned: 'Asignada', diff --git a/frontend/src/i18n/locales/fr.ts b/frontend/src/i18n/locales/fr.ts index 2fc7f7d52..b85b96688 100644 --- a/frontend/src/i18n/locales/fr.ts +++ b/frontend/src/i18n/locales/fr.ts @@ -3719,6 +3719,7 @@ export default { assignSpool: 'Assigner Bobine', unassignSpool: 'Désassigner', assignSuccess: 'Bobine assignée et slot AMS configuré', + assignPendingInsert: 'Assigné. Le slot sera configuré lors de l\'insertion de la bobine.', assignFailed: 'Échec assignation', selectSpool: 'Choisir une bobine pour ce slot', assigned: 'Assigné', diff --git a/frontend/src/i18n/locales/it.ts b/frontend/src/i18n/locales/it.ts index 0d8aae026..c79559f76 100644 --- a/frontend/src/i18n/locales/it.ts +++ b/frontend/src/i18n/locales/it.ts @@ -3718,6 +3718,7 @@ export default { assignSpool: 'Assegna Bobina', unassignSpool: 'Scollega', assignSuccess: 'Bobina assegnata e slot AMS configurato', + assignPendingInsert: 'Assegnato. Lo slot verrà configurato all\'inserimento della bobina.', assignFailed: 'Assegnazione bobina fallita', selectSpool: 'Seleziona una bobina da assegnare a questo slot', assigned: 'Assegnato', diff --git a/frontend/src/i18n/locales/ja.ts b/frontend/src/i18n/locales/ja.ts index 33589218e..2dff228f4 100644 --- a/frontend/src/i18n/locales/ja.ts +++ b/frontend/src/i18n/locales/ja.ts @@ -3730,6 +3730,7 @@ export default { assignSpool: 'スプールを割り当て', unassignSpool: '割り当て解除', assignSuccess: 'スプールを割り当て、AMSスロットを設定しました', + assignPendingInsert: '割り当てました。スプールを挿入したときにスロットが設定されます。', assignFailed: 'スプールの割り当てに失敗しました', selectSpool: 'このスロットに割り当てるスプールを選択', assigned: '割り当て済み', diff --git a/frontend/src/i18n/locales/ko.ts b/frontend/src/i18n/locales/ko.ts index ccee3cf26..03b60dcc8 100644 --- a/frontend/src/i18n/locales/ko.ts +++ b/frontend/src/i18n/locales/ko.ts @@ -3519,6 +3519,7 @@ export default { assignSpool: '스풀 할당', unassignSpool: '할당 해제', assignSuccess: '스풀 할당 및 AMS 슬롯 구성됨', + assignPendingInsert: '할당됨. 스풀을 삽입하면 슬롯이 구성됩니다.', assignFailed: '스풀 할당 실패', selectSpool: '이 슬롯에 할당할 스풀 선택', assigned: '할당됨', diff --git a/frontend/src/i18n/locales/pt-BR.ts b/frontend/src/i18n/locales/pt-BR.ts index 14a880f0d..4d8ec3c50 100644 --- a/frontend/src/i18n/locales/pt-BR.ts +++ b/frontend/src/i18n/locales/pt-BR.ts @@ -3718,6 +3718,7 @@ export default { assignSpool: 'Atribuir Carretel', unassignSpool: 'Desatribuir', assignSuccess: 'Carretel atribuído e slot AMS configurado', + assignPendingInsert: 'Atribuído. O slot será configurado quando você inserir o carretel.', assignFailed: 'Falha ao atribuir carretel', selectSpool: 'Selecione um carretel para atribuir a este slot', assigned: 'Atribuído', diff --git a/frontend/src/i18n/locales/tr.ts b/frontend/src/i18n/locales/tr.ts index e60575bed..caf340eee 100644 --- a/frontend/src/i18n/locales/tr.ts +++ b/frontend/src/i18n/locales/tr.ts @@ -3718,6 +3718,7 @@ export default { assignSpool: 'Makara Ata', unassignSpool: 'Atamayı Kaldır', assignSuccess: 'Makara atandı ve AMS yuvası yapılandırıldı', + assignPendingInsert: 'Atandı. Makarayı yerleştirdiğinizde yuva yapılandırılacak.', assignFailed: 'Makara atanamadı', selectSpool: 'Bu yuvaya atamak için bir makara seçin', assigned: 'Atandı', diff --git a/frontend/src/i18n/locales/zh-CN.ts b/frontend/src/i18n/locales/zh-CN.ts index 4b8bd3b45..c34cafbd3 100644 --- a/frontend/src/i18n/locales/zh-CN.ts +++ b/frontend/src/i18n/locales/zh-CN.ts @@ -3718,6 +3718,7 @@ export default { assignSpool: '分配耗材', unassignSpool: '取消分配', assignSuccess: '耗材已分配,AMS 槽位已配置', + assignPendingInsert: '已分配。插入耗材后将配置槽位。', assignFailed: '分配耗材失败', assignMismatchTitle: '材料不匹配', assignMismatchMessage: '所选线轴材料 "{{spoolMaterial}}" 与 {{location}} 的料槽材料 "{{trayMaterial}}" 不匹配。仍要分配吗?', diff --git a/frontend/src/i18n/locales/zh-TW.ts b/frontend/src/i18n/locales/zh-TW.ts index ba05b33cf..3a0464ba0 100644 --- a/frontend/src/i18n/locales/zh-TW.ts +++ b/frontend/src/i18n/locales/zh-TW.ts @@ -3718,6 +3718,7 @@ export default { assignSpool: '分配耗材', unassignSpool: '取消分配', assignSuccess: '耗材已分配,AMS 槽位已設定', + assignPendingInsert: '已分配。插入耗材後將設定槽位。', assignFailed: '分配耗材失敗', assignMismatchTitle: '材料不符', assignMismatchMessage: '所選料盤材料 "{{spoolMaterial}}" 與 {{location}} 的料槽材料 "{{trayMaterial}}" 不符。仍要分配嗎?', diff --git a/static/assets/index-B-fcW9HO.js b/static/assets/index-CqscW2CN.js similarity index 93% rename from static/assets/index-B-fcW9HO.js rename to static/assets/index-CqscW2CN.js index a9389bb1d..6af6b24b8 100644 --- a/static/assets/index-B-fcW9HO.js +++ b/static/assets/index-CqscW2CN.js @@ -1,47 +1,47 @@ -function dme(t,e){for(var a=0;an[i]})}}}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 i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function a(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(i){if(i.ep)return;i.ep=!0;const s=a(i);fetch(i.href,s)}})();var M_=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Fc(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var nE={exports:{}},i0={};var Mq;function ume(){if(Mq)return i0;Mq=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.fragment");function a(n,i,s){var o=null;if(s!==void 0&&(o=""+s),i.key!==void 0&&(o=""+i.key),"key"in i){s={};for(var l in i)l!=="key"&&(s[l]=i[l])}else s=i;return i=s.ref,{$$typeof:t,type:n,key:o,ref:i!==void 0?i:null,props:s}}return i0.Fragment=e,i0.jsx=a,i0.jsxs=a,i0}var Eq;function mme(){return Eq||(Eq=1,nE.exports=ume()),nE.exports}var r=mme(),iE={exports:{}},Ya={};var Dq;function pme(){if(Dq)return Ya;Dq=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),n=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),s=Symbol.for("react.consumer"),o=Symbol.for("react.context"),l=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),u=Symbol.for("react.lazy"),m=Symbol.for("react.activity"),p=Symbol.iterator;function f(Q){return Q===null||typeof Q!="object"?null:(Q=p&&Q[p]||Q["@@iterator"],typeof Q=="function"?Q:null)}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},v=Object.assign,b={};function x(Q,re,ue){this.props=Q,this.context=re,this.refs=b,this.updater=ue||g}x.prototype.isReactComponent={},x.prototype.setState=function(Q,re){if(typeof Q!="object"&&typeof Q!="function"&&Q!=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,Q,re,"setState")},x.prototype.forceUpdate=function(Q){this.updater.enqueueForceUpdate(this,Q,"forceUpdate")};function S(){}S.prototype=x.prototype;function k(Q,re,ue){this.props=Q,this.context=re,this.refs=b,this.updater=ue||g}var C=k.prototype=new S;C.constructor=k,v(C,x.prototype),C.isPureReactComponent=!0;var N=Array.isArray;function T(){}var j={H:null,A:null,T:null,S:null},D=Object.prototype.hasOwnProperty;function P(Q,re,ue){var me=ue.ref;return{$$typeof:t,type:Q,key:re,ref:me!==void 0?me:null,props:ue}}function E(Q,re){return P(Q.type,re,Q.props)}function z(Q){return typeof Q=="object"&&Q!==null&&Q.$$typeof===t}function O(Q){var re={"=":"=0",":":"=2"};return"$"+Q.replace(/[=:]/g,function(ue){return re[ue]})}var I=/\/+/g;function R(Q,re){return typeof Q=="object"&&Q!==null&&Q.key!=null?O(""+Q.key):re.toString(36)}function Y(Q){switch(Q.status){case"fulfilled":return Q.value;case"rejected":throw Q.reason;default:switch(typeof Q.status=="string"?Q.then(T,T):(Q.status="pending",Q.then(function(re){Q.status==="pending"&&(Q.status="fulfilled",Q.value=re)},function(re){Q.status==="pending"&&(Q.status="rejected",Q.reason=re)})),Q.status){case"fulfilled":return Q.value;case"rejected":throw Q.reason}}throw Q}function te(Q,re,ue,me,xe){var G=typeof Q;(G==="undefined"||G==="boolean")&&(Q=null);var Z=!1;if(Q===null)Z=!0;else switch(G){case"bigint":case"string":case"number":Z=!0;break;case"object":switch(Q.$$typeof){case t:case e:Z=!0;break;case u:return Z=Q._init,te(Z(Q._payload),re,ue,me,xe)}}if(Z)return xe=xe(Q),Z=me===""?"."+R(Q,0):me,N(xe)?(ue="",Z!=null&&(ue=Z.replace(I,"$&/")+"/"),te(xe,re,ue,"",function(U){return U})):xe!=null&&(z(xe)&&(xe=E(xe,ue+(xe.key==null||Q&&Q.key===xe.key?"":(""+xe.key).replace(I,"$&/")+"/")+Z)),re.push(xe)),1;Z=0;var A=me===""?".":me+":";if(N(Q))for(var F=0;F>>1,le=te[de];if(0>>1;dei(ue,ce))mei(xe,ue)?(te[de]=xe,te[me]=ce,de=me):(te[de]=ue,te[re]=ce,de=re);else if(mei(xe,ce))te[de]=xe,te[me]=ce,de=me;else break e}}return J}function i(te,J){var ce=te.sortIndex-J.sortIndex;return ce!==0?ce:te.id-J.id}if(t.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var s=performance;t.unstable_now=function(){return s.now()}}else{var o=Date,l=o.now();t.unstable_now=function(){return o.now()-l}}var c=[],d=[],u=1,m=null,p=3,f=!1,g=!1,v=!1,b=!1,x=typeof setTimeout=="function"?setTimeout:null,S=typeof clearTimeout=="function"?clearTimeout:null,k=typeof setImmediate<"u"?setImmediate:null;function C(te){for(var J=a(d);J!==null;){if(J.callback===null)n(d);else if(J.startTime<=te)n(d),J.sortIndex=J.expirationTime,e(c,J);else break;J=a(d)}}function N(te){if(v=!1,C(te),!g)if(a(c)!==null)g=!0,T||(T=!0,O());else{var J=a(d);J!==null&&Y(N,J.startTime-te)}}var T=!1,j=-1,D=5,P=-1;function E(){return b?!0:!(t.unstable_now()-Pte&&E());){var de=m.callback;if(typeof de=="function"){m.callback=null,p=m.priorityLevel;var le=de(m.expirationTime<=te);if(te=t.unstable_now(),typeof le=="function"){m.callback=le,C(te),J=!0;break t}m===a(c)&&n(c),C(te)}else n(c);m=a(c)}if(m!==null)J=!0;else{var Q=a(d);Q!==null&&Y(N,Q.startTime-te),J=!1}}break e}finally{m=null,p=ce,f=!1}J=void 0}}finally{J?O():T=!1}}}var O;if(typeof k=="function")O=function(){k(z)};else if(typeof MessageChannel<"u"){var I=new MessageChannel,R=I.port2;I.port1.onmessage=z,O=function(){R.postMessage(null)}}else O=function(){x(z,0)};function Y(te,J){j=x(function(){te(t.unstable_now())},J)}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(te){te.callback=null},t.unstable_forceFrameRate=function(te){0>te||125de?(te.sortIndex=ce,e(d,te),a(c)===null&&te===a(d)&&(v?(S(j),j=-1):v=!0,Y(N,ce-de))):(te.sortIndex=le,e(c,te),g||f||(g=!0,T||(T=!0,O()))),te},t.unstable_shouldYield=E,t.unstable_wrapCallback=function(te){var J=p;return function(){var ce=p;p=J;try{return te.apply(this,arguments)}finally{p=ce}}}})(lE)),lE}var Rq;function gme(){return Rq||(Rq=1,oE.exports=fme()),oE.exports}var cE={exports:{}},qs={};var zq;function bme(){if(zq)return qs;zq=1;var t=ub();function e(c){var d="https://react.dev/errors/"+c;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(e){console.error(e)}}return t(),cE.exports=bme(),cE.exports}var Oq;function xme(){if(Oq)return s0;Oq=1;var t=gme(),e=ub(),a=iZ();function n(h){var w="https://react.dev/errors/"+h;if(1le||(h.current=de[le],de[le]=null,le--)}function ue(h,w){le++,de[le]=h.current,h.current=w}var me=Q(null),xe=Q(null),G=Q(null),Z=Q(null);function A(h,w){switch(ue(G,w),ue(xe,h),ue(me,null),w.nodeType){case 9:case 11:h=(h=w.documentElement)&&(h=h.namespaceURI)?eq(h):0;break;default:if(h=w.tagName,w=w.namespaceURI)w=eq(w),h=tq(w,h);else switch(h){case"svg":h=1;break;case"math":h=2;break;default:h=0}}re(me),ue(me,h)}function F(){re(me),re(xe),re(G)}function U(h){h.memoizedState!==null&&ue(Z,h);var w=me.current,_=tq(w,h.type);w!==_&&(ue(xe,h),ue(me,_))}function V(h){xe.current===h&&(re(me),re(xe)),Z.current===h&&(re(Z),t0._currentValue=ce)}var H,oe;function B(h){if(H===void 0)try{throw Error()}catch(_){var w=_.stack.trim().match(/\n( *(at )?)/);H=w&&w[1]||"",oe=-1<_.stack.indexOf(` +function dme(t,e){for(var a=0;an[i]})}}}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 i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function a(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(i){if(i.ep)return;i.ep=!0;const s=a(i);fetch(i.href,s)}})();var M_=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Fc(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var nE={exports:{}},i0={};var Mq;function ume(){if(Mq)return i0;Mq=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.fragment");function a(n,i,s){var o=null;if(s!==void 0&&(o=""+s),i.key!==void 0&&(o=""+i.key),"key"in i){s={};for(var l in i)l!=="key"&&(s[l]=i[l])}else s=i;return i=s.ref,{$$typeof:t,type:n,key:o,ref:i!==void 0?i:null,props:s}}return i0.Fragment=e,i0.jsx=a,i0.jsxs=a,i0}var Eq;function mme(){return Eq||(Eq=1,nE.exports=ume()),nE.exports}var r=mme(),iE={exports:{}},Ya={};var Dq;function pme(){if(Dq)return Ya;Dq=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),n=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),s=Symbol.for("react.consumer"),o=Symbol.for("react.context"),l=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),u=Symbol.for("react.lazy"),m=Symbol.for("react.activity"),p=Symbol.iterator;function f(Q){return Q===null||typeof Q!="object"?null:(Q=p&&Q[p]||Q["@@iterator"],typeof Q=="function"?Q:null)}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},v=Object.assign,b={};function x(Q,re,ue){this.props=Q,this.context=re,this.refs=b,this.updater=ue||g}x.prototype.isReactComponent={},x.prototype.setState=function(Q,re){if(typeof Q!="object"&&typeof Q!="function"&&Q!=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,Q,re,"setState")},x.prototype.forceUpdate=function(Q){this.updater.enqueueForceUpdate(this,Q,"forceUpdate")};function S(){}S.prototype=x.prototype;function k(Q,re,ue){this.props=Q,this.context=re,this.refs=b,this.updater=ue||g}var C=k.prototype=new S;C.constructor=k,v(C,x.prototype),C.isPureReactComponent=!0;var N=Array.isArray;function T(){}var j={H:null,A:null,T:null,S:null},D=Object.prototype.hasOwnProperty;function P(Q,re,ue){var me=ue.ref;return{$$typeof:t,type:Q,key:re,ref:me!==void 0?me:null,props:ue}}function E(Q,re){return P(Q.type,re,Q.props)}function z(Q){return typeof Q=="object"&&Q!==null&&Q.$$typeof===t}function O(Q){var re={"=":"=0",":":"=2"};return"$"+Q.replace(/[=:]/g,function(ue){return re[ue]})}var I=/\/+/g;function R(Q,re){return typeof Q=="object"&&Q!==null&&Q.key!=null?O(""+Q.key):re.toString(36)}function Y(Q){switch(Q.status){case"fulfilled":return Q.value;case"rejected":throw Q.reason;default:switch(typeof Q.status=="string"?Q.then(T,T):(Q.status="pending",Q.then(function(re){Q.status==="pending"&&(Q.status="fulfilled",Q.value=re)},function(re){Q.status==="pending"&&(Q.status="rejected",Q.reason=re)})),Q.status){case"fulfilled":return Q.value;case"rejected":throw Q.reason}}throw Q}function te(Q,re,ue,me,xe){var G=typeof Q;(G==="undefined"||G==="boolean")&&(Q=null);var Z=!1;if(Q===null)Z=!0;else switch(G){case"bigint":case"string":case"number":Z=!0;break;case"object":switch(Q.$$typeof){case t:case e:Z=!0;break;case u:return Z=Q._init,te(Z(Q._payload),re,ue,me,xe)}}if(Z)return xe=xe(Q),Z=me===""?"."+R(Q,0):me,N(xe)?(ue="",Z!=null&&(ue=Z.replace(I,"$&/")+"/"),te(xe,re,ue,"",function(U){return U})):xe!=null&&(z(xe)&&(xe=E(xe,ue+(xe.key==null||Q&&Q.key===xe.key?"":(""+xe.key).replace(I,"$&/")+"/")+Z)),re.push(xe)),1;Z=0;var A=me===""?".":me+":";if(N(Q))for(var F=0;F>>1,le=te[de];if(0>>1;dei(ue,ce))mei(xe,ue)?(te[de]=xe,te[me]=ce,de=me):(te[de]=ue,te[re]=ce,de=re);else if(mei(xe,ce))te[de]=xe,te[me]=ce,de=me;else break e}}return J}function i(te,J){var ce=te.sortIndex-J.sortIndex;return ce!==0?ce:te.id-J.id}if(t.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var s=performance;t.unstable_now=function(){return s.now()}}else{var o=Date,l=o.now();t.unstable_now=function(){return o.now()-l}}var c=[],d=[],u=1,m=null,p=3,f=!1,g=!1,v=!1,b=!1,x=typeof setTimeout=="function"?setTimeout:null,S=typeof clearTimeout=="function"?clearTimeout:null,k=typeof setImmediate<"u"?setImmediate:null;function C(te){for(var J=a(d);J!==null;){if(J.callback===null)n(d);else if(J.startTime<=te)n(d),J.sortIndex=J.expirationTime,e(c,J);else break;J=a(d)}}function N(te){if(v=!1,C(te),!g)if(a(c)!==null)g=!0,T||(T=!0,O());else{var J=a(d);J!==null&&Y(N,J.startTime-te)}}var T=!1,j=-1,D=5,P=-1;function E(){return b?!0:!(t.unstable_now()-Pte&&E());){var de=m.callback;if(typeof de=="function"){m.callback=null,p=m.priorityLevel;var le=de(m.expirationTime<=te);if(te=t.unstable_now(),typeof le=="function"){m.callback=le,C(te),J=!0;break t}m===a(c)&&n(c),C(te)}else n(c);m=a(c)}if(m!==null)J=!0;else{var Q=a(d);Q!==null&&Y(N,Q.startTime-te),J=!1}}break e}finally{m=null,p=ce,f=!1}J=void 0}}finally{J?O():T=!1}}}var O;if(typeof k=="function")O=function(){k(z)};else if(typeof MessageChannel<"u"){var I=new MessageChannel,R=I.port2;I.port1.onmessage=z,O=function(){R.postMessage(null)}}else O=function(){x(z,0)};function Y(te,J){j=x(function(){te(t.unstable_now())},J)}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(te){te.callback=null},t.unstable_forceFrameRate=function(te){0>te||125de?(te.sortIndex=ce,e(d,te),a(c)===null&&te===a(d)&&(v?(S(j),j=-1):v=!0,Y(N,ce-de))):(te.sortIndex=le,e(c,te),g||f||(g=!0,T||(T=!0,O()))),te},t.unstable_shouldYield=E,t.unstable_wrapCallback=function(te){var J=p;return function(){var ce=p;p=J;try{return te.apply(this,arguments)}finally{p=ce}}}})(lE)),lE}var Rq;function gme(){return Rq||(Rq=1,oE.exports=fme()),oE.exports}var cE={exports:{}},qs={};var zq;function bme(){if(zq)return qs;zq=1;var t=ub();function e(c){var d="https://react.dev/errors/"+c;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(e){console.error(e)}}return t(),cE.exports=bme(),cE.exports}var Oq;function xme(){if(Oq)return s0;Oq=1;var t=gme(),e=ub(),a=iZ();function n(h){var w="https://react.dev/errors/"+h;if(1le||(h.current=de[le],de[le]=null,le--)}function ue(h,w){le++,de[le]=h.current,h.current=w}var me=Q(null),xe=Q(null),G=Q(null),Z=Q(null);function A(h,w){switch(ue(G,w),ue(xe,h),ue(me,null),w.nodeType){case 9:case 11:h=(h=w.documentElement)&&(h=h.namespaceURI)?eq(h):0;break;default:if(h=w.tagName,w=w.namespaceURI)w=eq(w),h=tq(w,h);else switch(h){case"svg":h=1;break;case"math":h=2;break;default:h=0}}re(me),ue(me,h)}function F(){re(me),re(xe),re(G)}function U(h){h.memoizedState!==null&&ue(Z,h);var w=me.current,_=tq(w,h.type);w!==_&&(ue(xe,h),ue(me,_))}function W(h){xe.current===h&&(re(me),re(xe)),Z.current===h&&(re(Z),t0._currentValue=ce)}var H,oe;function B(h){if(H===void 0)try{throw Error()}catch(_){var w=_.stack.trim().match(/\n( *(at )?)/);H=w&&w[1]||"",oe=-1<_.stack.indexOf(` at`)?" ()":-1<_.stack.indexOf("@")?"@unknown:0:0":""}return` -`+H+h+oe}var q=!1;function K(h,w){if(!h||q)return"";q=!0;var _=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var M={DetermineComponentFrameRoot:function(){try{if(w){var Wt=function(){throw Error()};if(Object.defineProperty(Wt.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(Wt,[])}catch(Bt){var Lt=Bt}Reflect.construct(h,[],Wt)}else{try{Wt.call()}catch(Bt){Lt=Bt}h.call(Wt.prototype)}}else{try{throw Error()}catch(Bt){Lt=Bt}(Wt=h())&&typeof Wt.catch=="function"&&Wt.catch(function(){})}}catch(Bt){if(Bt&&Lt&&typeof Bt.stack=="string")return[Bt.stack,Lt.stack]}return[null,null]}};M.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var W=Object.getOwnPropertyDescriptor(M.DetermineComponentFrameRoot,"name");W&&W.configurable&&Object.defineProperty(M.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var ee=M.DetermineComponentFrameRoot(),Se=ee[0],He=ee[1];if(Se&&He){var pt=Se.split(` +`+H+h+oe}var q=!1;function K(h,w){if(!h||q)return"";q=!0;var _=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var M={DetermineComponentFrameRoot:function(){try{if(w){var Wt=function(){throw Error()};if(Object.defineProperty(Wt.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(Wt,[])}catch(Bt){var Lt=Bt}Reflect.construct(h,[],Wt)}else{try{Wt.call()}catch(Bt){Lt=Bt}h.call(Wt.prototype)}}else{try{throw Error()}catch(Bt){Lt=Bt}(Wt=h())&&typeof Wt.catch=="function"&&Wt.catch(function(){})}}catch(Bt){if(Bt&&Lt&&typeof Bt.stack=="string")return[Bt.stack,Lt.stack]}return[null,null]}};M.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var V=Object.getOwnPropertyDescriptor(M.DetermineComponentFrameRoot,"name");V&&V.configurable&&Object.defineProperty(M.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var ee=M.DetermineComponentFrameRoot(),Se=ee[0],He=ee[1];if(Se&&He){var pt=Se.split(` `),Et=He.split(` -`);for(W=M=0;MW||pt[M]!==Et[W]){var qt=` -`+pt[M].replace(" at new "," at ");return h.displayName&&qt.includes("")&&(qt=qt.replace("",h.displayName)),qt}while(1<=M&&0<=W);break}}}finally{q=!1,Error.prepareStackTrace=_}return(_=h?h.displayName||h.name:"")?B(_):""}function X(h,w){switch(h.tag){case 26:case 27:case 5:return B(h.type);case 16:return B("Lazy");case 13:return h.child!==w&&w!==null?B("Suspense Fallback"):B("Suspense");case 19:return B("SuspenseList");case 0:case 15:return K(h.type,!1);case 11:return K(h.type.render,!1);case 1:return K(h.type,!0);case 31:return B("Activity");default:return""}}function ie(h){try{var w="",_=null;do w+=X(h,_),_=h,h=h.return;while(h);return w}catch(M){return` +`);for(V=M=0;MV||pt[M]!==Et[V]){var qt=` +`+pt[M].replace(" at new "," at ");return h.displayName&&qt.includes("")&&(qt=qt.replace("",h.displayName)),qt}while(1<=M&&0<=V);break}}}finally{q=!1,Error.prepareStackTrace=_}return(_=h?h.displayName||h.name:"")?B(_):""}function X(h,w){switch(h.tag){case 26:case 27:case 5:return B(h.type);case 16:return B("Lazy");case 13:return h.child!==w&&w!==null?B("Suspense Fallback"):B("Suspense");case 19:return B("SuspenseList");case 0:case 15:return K(h.type,!1);case 11:return K(h.type.render,!1);case 1:return K(h.type,!0);case 31:return B("Activity");default:return""}}function ie(h){try{var w="",_=null;do w+=X(h,_),_=h,h=h.return;while(h);return w}catch(M){return` Error generating stack: `+M.message+` -`+M.stack}}var se=Object.prototype.hasOwnProperty,he=t.unstable_scheduleCallback,pe=t.unstable_cancelCallback,fe=t.unstable_shouldYield,$=t.unstable_requestPaint,L=t.unstable_now,ae=t.unstable_getCurrentPriorityLevel,ge=t.unstable_ImmediatePriority,be=t.unstable_UserBlockingPriority,ve=t.unstable_NormalPriority,Me=t.unstable_LowPriority,Ee=t.unstable_IdlePriority,Pe=t.log,Ue=t.unstable_setDisableYieldValue,Ce=null,Ie=null;function Re(h){if(typeof Pe=="function"&&Ue(h),Ie&&typeof Ie.setStrictMode=="function")try{Ie.setStrictMode(Ce,h)}catch{}}var qe=Math.clz32?Math.clz32:ze,Le=Math.log,st=Math.LN2;function ze(h){return h>>>=0,h===0?32:31-(Le(h)/st|0)|0}var at=256,je=262144,Qe=4194304;function $e(h){var w=h&42;if(w!==0)return w;switch(h&-h){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 h&261888;case 262144:case 524288:case 1048576:case 2097152:return h&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return h&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return h}}function Ne(h,w,_){var M=h.pendingLanes;if(M===0)return 0;var W=0,ee=h.suspendedLanes,Se=h.pingedLanes;h=h.warmLanes;var He=M&134217727;return He!==0?(M=He&~ee,M!==0?W=$e(M):(Se&=He,Se!==0?W=$e(Se):_||(_=He&~h,_!==0&&(W=$e(_))))):(He=M&~ee,He!==0?W=$e(He):Se!==0?W=$e(Se):_||(_=M&~h,_!==0&&(W=$e(_)))),W===0?0:w!==0&&w!==W&&(w&ee)===0&&(ee=W&-W,_=w&-w,ee>=_||ee===32&&(_&4194048)!==0)?w:W}function Oe(h,w){return(h.pendingLanes&~(h.suspendedLanes&~h.pingedLanes)&w)===0}function Ze(h,w){switch(h){case 1:case 2:case 4:case 8:case 64:return w+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 w+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 We(){var h=Qe;return Qe<<=1,(Qe&62914560)===0&&(Qe=4194304),h}function Ae(h){for(var w=[],_=0;31>_;_++)w.push(h);return w}function rt(h,w){h.pendingLanes|=w,w!==268435456&&(h.suspendedLanes=0,h.pingedLanes=0,h.warmLanes=0)}function et(h,w,_,M,W,ee){var Se=h.pendingLanes;h.pendingLanes=_,h.suspendedLanes=0,h.pingedLanes=0,h.warmLanes=0,h.expiredLanes&=_,h.entangledLanes&=_,h.errorRecoveryDisabledLanes&=_,h.shellSuspendCounter=0;var He=h.entanglements,pt=h.expirationTimes,Et=h.hiddenUpdates;for(_=Se&~_;0<_;){var qt=31-qe(_),Wt=1<"u")return null;try{return h.activeElement||h.body}catch{return h.body}}var Ir=/[\n"\\]/g;function Oa(h){return h.replace(Ir,function(w){return"\\"+w.charCodeAt(0).toString(16)+" "})}function Un(h,w,_,M,W,ee,Se,He){h.name="",Se!=null&&typeof Se!="function"&&typeof Se!="symbol"&&typeof Se!="boolean"?h.type=Se:h.removeAttribute("type"),w!=null?Se==="number"?(w===0&&h.value===""||h.value!=w)&&(h.value=""+da(w)):h.value!==""+da(w)&&(h.value=""+da(w)):Se!=="submit"&&Se!=="reset"||h.removeAttribute("value"),w!=null?un(h,Se,da(w)):_!=null?un(h,Se,da(_)):M!=null&&h.removeAttribute("value"),W==null&&ee!=null&&(h.defaultChecked=!!ee),W!=null&&(h.checked=W&&typeof W!="function"&&typeof W!="symbol"),He!=null&&typeof He!="function"&&typeof He!="symbol"&&typeof He!="boolean"?h.name=""+da(He):h.removeAttribute("name")}function Ua(h,w,_,M,W,ee,Se,He){if(ee!=null&&typeof ee!="function"&&typeof ee!="symbol"&&typeof ee!="boolean"&&(h.type=ee),w!=null||_!=null){if(!(ee!=="submit"&&ee!=="reset"||w!=null)){ma(h);return}_=_!=null?""+da(_):"",w=w!=null?""+da(w):_,He||w===h.value||(h.value=w),h.defaultValue=w}M=M??W,M=typeof M!="function"&&typeof M!="symbol"&&!!M,h.checked=He?h.checked:!!M,h.defaultChecked=!!M,Se!=null&&typeof Se!="function"&&typeof Se!="symbol"&&typeof Se!="boolean"&&(h.name=Se),ma(h)}function un(h,w,_){w==="number"&&Za(h.ownerDocument)===h||h.defaultValue===""+_||(h.defaultValue=""+_)}function Mr(h,w,_,M){if(h=h.options,w){w={};for(var W=0;W<_.length;W++)w["$"+_[W]]=!0;for(_=0;_"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),bp=!1;if(Ja)try{var Cd={};Object.defineProperty(Cd,"passive",{get:function(){bp=!0}}),window.addEventListener("test",Cd,Cd),window.removeEventListener("test",Cd,Cd)}catch{bp=!1}var li=null,Eu=null,wi=null;function wf(){if(wi)return wi;var h,w=Eu,_=w.length,M,W="value"in li?li.value:li.textContent,ee=W.length;for(h=0;h<_&&w[h]===W[h];h++);var Se=_-h;for(M=1;M<=Se&&w[_-M]===W[ee-M];M++);return wi=W.slice(h,1=di),Sp=" ",Nb=!1;function ye(h,w){switch(h){case"keyup":return Cv.indexOf(w.keyCode)!==-1;case"keydown":return w.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Ot(h){return h=h.detail,typeof h=="object"&&"data"in h?h.data:null}var la=!1;function Ta(h,w){switch(h){case"compositionend":return Ot(w);case"keypress":return w.which!==32?null:(Nb=!0,Sp);case"textInput":return h=w.data,h===Sp&&Nb?null:h;default:return null}}function Ha(h,w){if(la)return h==="compositionend"||!sl&&ye(h,w)?(h=wf(),wi=Eu=li=null,la=!1,h):null;switch(h){case"paste":return null;case"keypress":if(!(w.ctrlKey||w.altKey||w.metaKey)||w.ctrlKey&&w.altKey){if(w.char&&1=w)return{node:_,offset:w-h};h=M}e:{for(;_;){if(_.nextSibling){_=_.nextSibling;break e}_=_.parentNode}_=void 0}_=Eo(_)}}function Do(h,w){return h&&w?h===w?!0:h&&h.nodeType===3?!1:w&&w.nodeType===3?Do(h,w.parentNode):"contains"in h?h.contains(w):h.compareDocumentPosition?!!(h.compareDocumentPosition(w)&16):!1:!1}function uo(h){h=h!=null&&h.ownerDocument!=null&&h.ownerDocument.defaultView!=null?h.ownerDocument.defaultView:window;for(var w=Za(h.document);w instanceof h.HTMLIFrameElement;){try{var _=typeof w.contentWindow.location.href=="string"}catch{_=!1}if(_)h=w.contentWindow;else break;w=Za(h.document)}return w}function Si(h){var w=h&&h.nodeName&&h.nodeName.toLowerCase();return w&&(w==="input"&&(h.type==="text"||h.type==="search"||h.type==="tel"||h.type==="url"||h.type==="password")||w==="textarea"||h.contentEditable==="true")}var Md=Ja&&"documentMode"in document&&11>=document.documentMode,mi=null,fr=null,Er=null,Qn=!1;function kp(h,w,_){var M=_.window===_?_.document:_.nodeType===9?_:_.ownerDocument;Qn||mi==null||mi!==Za(M)||(M=mi,"selectionStart"in M&&Si(M)?M={start:M.selectionStart,end:M.selectionEnd}:(M=(M.ownerDocument&&M.ownerDocument.defaultView||window).getSelection(),M={anchorNode:M.anchorNode,anchorOffset:M.anchorOffset,focusNode:M.focusNode,focusOffset:M.focusOffset}),Er&&vs(Er,M)||(Er=M,M=g_(fr,"onSelect"),0>=Se,W-=Se,Dd=1<<32-qe(w)+W|_<tr?(_r=Ca,Ca=null):_r=Ca.sibling;var Lr=Lt(kt,Ca,Mt[tr],$t);if(Lr===null){Ca===null&&(Ca=_r);break}h&&Ca&&Lr.alternate===null&&w(kt,Ca),xt=ee(Lr,xt,tr),Fr===null?Da=Lr:Fr.sibling=Lr,Fr=Lr,Ca=_r}if(tr===Mt.length)return _(kt,Ca),Cr&&Bu(kt,tr),Da;if(Ca===null){for(;trtr?(_r=Ca,Ca=null):_r=Ca.sibling;var $p=Lt(kt,Ca,Lr.value,$t);if($p===null){Ca===null&&(Ca=_r);break}h&&Ca&&$p.alternate===null&&w(kt,Ca),xt=ee($p,xt,tr),Fr===null?Da=$p:Fr.sibling=$p,Fr=$p,Ca=_r}if(Lr.done)return _(kt,Ca),Cr&&Bu(kt,tr),Da;if(Ca===null){for(;!Lr.done;tr++,Lr=Mt.next())Lr=Wt(kt,Lr.value,$t),Lr!==null&&(xt=ee(Lr,xt,tr),Fr===null?Da=Lr:Fr.sibling=Lr,Fr=Lr);return Cr&&Bu(kt,tr),Da}for(Ca=M(Ca);!Lr.done;tr++,Lr=Mt.next())Lr=Bt(Ca,kt,tr,Lr.value,$t),Lr!==null&&(h&&Lr.alternate!==null&&Ca.delete(Lr.key===null?tr:Lr.key),xt=ee(Lr,xt,tr),Fr===null?Da=Lr:Fr.sibling=Lr,Fr=Lr);return h&&Ca.forEach(function(cme){return w(kt,cme)}),Cr&&Bu(kt,tr),Da}function an(kt,xt,Mt,$t){if(typeof Mt=="object"&&Mt!==null&&Mt.type===v&&Mt.key===null&&(Mt=Mt.props.children),typeof Mt=="object"&&Mt!==null){switch(Mt.$$typeof){case f:e:{for(var Da=Mt.key;xt!==null;){if(xt.key===Da){if(Da=Mt.type,Da===v){if(xt.tag===7){_(kt,xt.sibling),$t=W(xt,Mt.props.children),$t.return=kt,kt=$t;break e}}else if(xt.elementType===Da||typeof Da=="object"&&Da!==null&&Da.$$typeof===D&&Mf(Da)===xt.type){_(kt,xt.sibling),$t=W(xt,Mt.props),Ev($t,Mt),$t.return=kt,kt=$t;break e}_(kt,xt);break}else w(kt,xt);xt=xt.sibling}Mt.type===v?($t=Cf(Mt.props.children,kt.mode,$t,Mt.key),$t.return=kt,kt=$t):($t=Dk(Mt.type,Mt.key,Mt.props,null,kt.mode,$t),Ev($t,Mt),$t.return=kt,kt=$t)}return Se(kt);case g:e:{for(Da=Mt.key;xt!==null;){if(xt.key===Da)if(xt.tag===4&&xt.stateNode.containerInfo===Mt.containerInfo&&xt.stateNode.implementation===Mt.implementation){_(kt,xt.sibling),$t=W(xt,Mt.children||[]),$t.return=kt,kt=$t;break e}else{_(kt,xt);break}else w(kt,xt);xt=xt.sibling}$t=Sj(Mt,kt.mode,$t),$t.return=kt,kt=$t}return Se(kt);case D:return Mt=Mf(Mt),an(kt,xt,Mt,$t)}if(Y(Mt))return wa(kt,xt,Mt,$t);if(O(Mt)){if(Da=O(Mt),typeof Da!="function")throw Error(n(150));return Mt=Da.call(Mt),za(kt,xt,Mt,$t)}if(typeof Mt.then=="function")return an(kt,xt,Bk(Mt),$t);if(Mt.$$typeof===k)return an(kt,xt,Rk(kt,Mt),$t);Uk(kt,Mt)}return typeof Mt=="string"&&Mt!==""||typeof Mt=="number"||typeof Mt=="bigint"?(Mt=""+Mt,xt!==null&&xt.tag===6?(_(kt,xt.sibling),$t=W(xt,Mt),$t.return=kt,kt=$t):(_(kt,xt),$t=wj(Mt,kt.mode,$t),$t.return=kt,kt=$t),Se(kt)):_(kt,xt)}return function(kt,xt,Mt,$t){try{Mv=0;var Da=an(kt,xt,Mt,$t);return zb=null,Da}catch(Ca){if(Ca===Rb||Ca===Ik)throw Ca;var Fr=ol(29,Ca,null,kt.mode);return Fr.lanes=$t,Fr.return=kt,Fr}}}var Df=$5(!0),V5=$5(!1),Tp=!1;function Fj(h){h.updateQueue={baseState:h.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Lj(h,w){h=h.updateQueue,w.updateQueue===h&&(w.updateQueue={baseState:h.baseState,firstBaseUpdate:h.firstBaseUpdate,lastBaseUpdate:h.lastBaseUpdate,shared:h.shared,callbacks:null})}function Ap(h){return{lane:h,tag:0,payload:null,callback:null,next:null}}function jp(h,w,_){var M=h.updateQueue;if(M===null)return null;if(M=M.shared,(Br&2)!==0){var W=M.pending;return W===null?w.next=w:(w.next=W.next,W.next=w),M.pending=w,w=Ek(h),A5(h,null,_),w}return Mk(h,M,w,_),Ek(h)}function Dv(h,w,_){if(w=w.updateQueue,w!==null&&(w=w.shared,(_&4194048)!==0)){var M=w.lanes;M&=h.pendingLanes,_|=M,w.lanes=_,Ut(h,_)}}function Rj(h,w){var _=h.updateQueue,M=h.alternate;if(M!==null&&(M=M.updateQueue,_===M)){var W=null,ee=null;if(_=_.firstBaseUpdate,_!==null){do{var Se={lane:_.lane,tag:_.tag,payload:_.payload,callback:null,next:null};ee===null?W=ee=Se:ee=ee.next=Se,_=_.next}while(_!==null);ee===null?W=ee=w:ee=ee.next=w}else W=ee=w;_={baseState:M.baseState,firstBaseUpdate:W,lastBaseUpdate:ee,shared:M.shared,callbacks:M.callbacks},h.updateQueue=_;return}h=_.lastBaseUpdate,h===null?_.firstBaseUpdate=w:h.next=w,_.lastBaseUpdate=w}var zj=!1;function Fv(){if(zj){var h=Lb;if(h!==null)throw h}}function Lv(h,w,_,M){zj=!1;var W=h.updateQueue;Tp=!1;var ee=W.firstBaseUpdate,Se=W.lastBaseUpdate,He=W.shared.pending;if(He!==null){W.shared.pending=null;var pt=He,Et=pt.next;pt.next=null,Se===null?ee=Et:Se.next=Et,Se=pt;var qt=h.alternate;qt!==null&&(qt=qt.updateQueue,He=qt.lastBaseUpdate,He!==Se&&(He===null?qt.firstBaseUpdate=Et:He.next=Et,qt.lastBaseUpdate=pt))}if(ee!==null){var Wt=W.baseState;Se=0,qt=Et=pt=null,He=ee;do{var Lt=He.lane&-536870913,Bt=Lt!==He.lane;if(Bt?(kr&Lt)===Lt:(M&Lt)===Lt){Lt!==0&&Lt===Fb&&(zj=!0),qt!==null&&(qt=qt.next={lane:0,tag:He.tag,payload:He.payload,callback:null,next:null});e:{var wa=h,za=He;Lt=w;var an=_;switch(za.tag){case 1:if(wa=za.payload,typeof wa=="function"){Wt=wa.call(an,Wt,Lt);break e}Wt=wa;break e;case 3:wa.flags=wa.flags&-65537|128;case 0:if(wa=za.payload,Lt=typeof wa=="function"?wa.call(an,Wt,Lt):wa,Lt==null)break e;Wt=m({},Wt,Lt);break e;case 2:Tp=!0}}Lt=He.callback,Lt!==null&&(h.flags|=64,Bt&&(h.flags|=8192),Bt=W.callbacks,Bt===null?W.callbacks=[Lt]:Bt.push(Lt))}else Bt={lane:Lt,tag:He.tag,payload:He.payload,callback:He.callback,next:null},qt===null?(Et=qt=Bt,pt=Wt):qt=qt.next=Bt,Se|=Lt;if(He=He.next,He===null){if(He=W.shared.pending,He===null)break;Bt=He,He=Bt.next,Bt.next=null,W.lastBaseUpdate=Bt,W.shared.pending=null}}while(!0);qt===null&&(pt=Wt),W.baseState=pt,W.firstBaseUpdate=Et,W.lastBaseUpdate=qt,ee===null&&(W.shared.lanes=0),Lp|=Se,h.lanes=Se,h.memoizedState=Wt}}function W5(h,w){if(typeof h!="function")throw Error(n(191,h));h.call(w)}function K5(h,w){var _=h.callbacks;if(_!==null)for(h.callbacks=null,h=0;h<_.length;h++)W5(_[h],w)}var Ib=Q(null),Hk=Q(0);function Y5(h,w){h=Xu,ue(Hk,h),ue(Ib,w),Xu=h|w.baseLanes}function Ij(){ue(Hk,Xu),ue(Ib,Ib.current)}function Oj(){Xu=Hk.current,re(Ib),re(Hk)}var ll=Q(null),Yl=null;function Mp(h){var w=h.alternate;ue(pi,pi.current&1),ue(ll,h),Yl===null&&(w===null||Ib.current!==null||w.memoizedState!==null)&&(Yl=h)}function Bj(h){ue(pi,pi.current),ue(ll,h),Yl===null&&(Yl=h)}function Q5(h){h.tag===22?(ue(pi,pi.current),ue(ll,h),Yl===null&&(Yl=h)):Ep()}function Ep(){ue(pi,pi.current),ue(ll,ll.current)}function cl(h){re(ll),Yl===h&&(Yl=null),re(pi)}var pi=Q(0);function qk(h){for(var w=h;w!==null;){if(w.tag===13){var _=w.memoizedState;if(_!==null&&(_=_.dehydrated,_===null||VM(_)||WM(_)))return w}else if(w.tag===19&&(w.memoizedProps.revealOrder==="forwards"||w.memoizedProps.revealOrder==="backwards"||w.memoizedProps.revealOrder==="unstable_legacy-backwards"||w.memoizedProps.revealOrder==="together")){if((w.flags&128)!==0)return w}else if(w.child!==null){w.child.return=w,w=w.child;continue}if(w===h)break;for(;w.sibling===null;){if(w.return===null||w.return===h)return null;w=w.return}w.sibling.return=w.return,w=w.sibling}return null}var qu=0,er=null,en=null,_i=null,Gk=!1,Ob=!1,Ff=!1,$k=0,Rv=0,Bb=null,Jde=0;function Xn(){throw Error(n(321))}function Uj(h,w){if(w===null)return!1;for(var _=0;_ee?ee:8;var Se=te.T,He={};te.T=He,aM(h,!1,w,_);try{var pt=W(),Et=te.S;if(Et!==null&&Et(He,pt),pt!==null&&typeof pt=="object"&&typeof pt.then=="function"){var qt=Zde(pt,M);Iv(h,w,qt,ml(h))}else Iv(h,w,M,ml(h))}catch(Wt){Iv(h,w,{then:function(){},status:"rejected",reason:Wt},ml())}finally{J.p=ee,Se!==null&&He.types!==null&&(Se.types=He.types),te.T=Se}}function nue(){}function eM(h,w,_,M){if(h.tag!==5)throw Error(n(476));var W=CU(h).queue;PU(h,W,w,ce,_===null?nue:function(){return NU(h),_(M)})}function CU(h){var w=h.memoizedState;if(w!==null)return w;w={memoizedState:ce,baseState:ce,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Gu,lastRenderedState:ce},next:null};var _={};return w.next={memoizedState:_,baseState:_,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Gu,lastRenderedState:_},next:null},h.memoizedState=w,h=h.alternate,h!==null&&(h.memoizedState=w),w}function NU(h){var w=CU(h);w.next===null&&(w=h.alternate.memoizedState),Iv(h,w.next.queue,{},ml())}function tM(){return Ss(t0)}function TU(){return hi().memoizedState}function AU(){return hi().memoizedState}function iue(h){for(var w=h.return;w!==null;){switch(w.tag){case 24:case 3:var _=ml();h=Ap(_);var M=jp(w,h,_);M!==null&&(Io(M,w,_),Dv(M,w,_)),w={cache:jj()},h.payload=w;return}w=w.return}}function sue(h,w,_){var M=ml();_={lane:M,revertLane:0,gesture:null,action:_,hasEagerState:!1,eagerState:null,next:null},Xk(h)?MU(w,_):(_=yj(h,w,_,M),_!==null&&(Io(_,h,M),EU(_,w,M)))}function jU(h,w,_){var M=ml();Iv(h,w,_,M)}function Iv(h,w,_,M){var W={lane:M,revertLane:0,gesture:null,action:_,hasEagerState:!1,eagerState:null,next:null};if(Xk(h))MU(w,W);else{var ee=h.alternate;if(h.lanes===0&&(ee===null||ee.lanes===0)&&(ee=w.lastRenderedReducer,ee!==null))try{var Se=w.lastRenderedState,He=ee(Se,_);if(W.hasEagerState=!0,W.eagerState=He,En(He,Se))return Mk(h,w,W,0),hn===null&&jk(),!1}catch{}if(_=yj(h,w,W,M),_!==null)return Io(_,h,M),EU(_,w,M),!0}return!1}function aM(h,w,_,M){if(M={lane:2,revertLane:FM(),gesture:null,action:M,hasEagerState:!1,eagerState:null,next:null},Xk(h)){if(w)throw Error(n(479))}else w=yj(h,_,M,2),w!==null&&Io(w,h,2)}function Xk(h){var w=h.alternate;return h===er||w!==null&&w===er}function MU(h,w){Ob=Gk=!0;var _=h.pending;_===null?w.next=w:(w.next=_.next,_.next=w),h.pending=w}function EU(h,w,_){if((_&4194048)!==0){var M=w.lanes;M&=h.pendingLanes,_|=M,w.lanes=_,Ut(h,_)}}var Ov={readContext:Ss,use:Wk,useCallback:Xn,useContext:Xn,useEffect:Xn,useImperativeHandle:Xn,useLayoutEffect:Xn,useInsertionEffect:Xn,useMemo:Xn,useReducer:Xn,useRef:Xn,useState:Xn,useDebugValue:Xn,useDeferredValue:Xn,useTransition:Xn,useSyncExternalStore:Xn,useId:Xn,useHostTransitionStatus:Xn,useFormState:Xn,useActionState:Xn,useOptimistic:Xn,useMemoCache:Xn,useCacheRefresh:Xn};Ov.useEffectEvent=Xn;var DU={readContext:Ss,use:Wk,useCallback:function(h,w){return mo().memoizedState=[h,w===void 0?null:w],h},useContext:Ss,useEffect:gU,useImperativeHandle:function(h,w,_){_=_!=null?_.concat([h]):null,Yk(4194308,4,vU.bind(null,w,h),_)},useLayoutEffect:function(h,w){return Yk(4194308,4,h,w)},useInsertionEffect:function(h,w){Yk(4,2,h,w)},useMemo:function(h,w){var _=mo();w=w===void 0?null:w;var M=h();if(Ff){Re(!0);try{h()}finally{Re(!1)}}return _.memoizedState=[M,w],M},useReducer:function(h,w,_){var M=mo();if(_!==void 0){var W=_(w);if(Ff){Re(!0);try{_(w)}finally{Re(!1)}}}else W=w;return M.memoizedState=M.baseState=W,h={pending:null,lanes:0,dispatch:null,lastRenderedReducer:h,lastRenderedState:W},M.queue=h,h=h.dispatch=sue.bind(null,er,h),[M.memoizedState,h]},useRef:function(h){var w=mo();return h={current:h},w.memoizedState=h},useState:function(h){h=Yj(h);var w=h.queue,_=jU.bind(null,er,w);return w.dispatch=_,[h.memoizedState,_]},useDebugValue:Zj,useDeferredValue:function(h,w){var _=mo();return Jj(_,h,w)},useTransition:function(){var h=Yj(!1);return h=PU.bind(null,er,h.queue,!0,!1),mo().memoizedState=h,[!1,h]},useSyncExternalStore:function(h,w,_){var M=er,W=mo();if(Cr){if(_===void 0)throw Error(n(407));_=_()}else{if(_=w(),hn===null)throw Error(n(349));(kr&127)!==0||eU(M,w,_)}W.memoizedState=_;var ee={value:_,getSnapshot:w};return W.queue=ee,gU(aU.bind(null,M,ee,h),[h]),M.flags|=2048,Ub(9,{destroy:void 0},tU.bind(null,M,ee,_,w),null),_},useId:function(){var h=mo(),w=hn.identifierPrefix;if(Cr){var _=Fd,M=Dd;_=(M&~(1<<32-qe(M)-1)).toString(32)+_,w="_"+w+"R_"+_,_=$k++,0<_&&(w+="H"+_.toString(32)),w+="_"}else _=Jde++,w="_"+w+"r_"+_.toString(32)+"_";return h.memoizedState=w},useHostTransitionStatus:tM,useFormState:uU,useActionState:uU,useOptimistic:function(h){var w=mo();w.memoizedState=w.baseState=h;var _={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return w.queue=_,w=aM.bind(null,er,!0,_),_.dispatch=w,[h,w]},useMemoCache:Vj,useCacheRefresh:function(){return mo().memoizedState=iue.bind(null,er)},useEffectEvent:function(h){var w=mo(),_={impl:h};return w.memoizedState=_,function(){if((Br&2)!==0)throw Error(n(440));return _.impl.apply(void 0,arguments)}}},rM={readContext:Ss,use:Wk,useCallback:SU,useContext:Ss,useEffect:Xj,useImperativeHandle:wU,useInsertionEffect:xU,useLayoutEffect:yU,useMemo:kU,useReducer:Kk,useRef:fU,useState:function(){return Kk(Gu)},useDebugValue:Zj,useDeferredValue:function(h,w){var _=hi();return _U(_,en.memoizedState,h,w)},useTransition:function(){var h=Kk(Gu)[0],w=hi().memoizedState;return[typeof h=="boolean"?h:zv(h),w]},useSyncExternalStore:J5,useId:TU,useHostTransitionStatus:tM,useFormState:mU,useActionState:mU,useOptimistic:function(h,w){var _=hi();return iU(_,en,h,w)},useMemoCache:Vj,useCacheRefresh:AU};rM.useEffectEvent=bU;var FU={readContext:Ss,use:Wk,useCallback:SU,useContext:Ss,useEffect:Xj,useImperativeHandle:wU,useInsertionEffect:xU,useLayoutEffect:yU,useMemo:kU,useReducer:Kj,useRef:fU,useState:function(){return Kj(Gu)},useDebugValue:Zj,useDeferredValue:function(h,w){var _=hi();return en===null?Jj(_,h,w):_U(_,en.memoizedState,h,w)},useTransition:function(){var h=Kj(Gu)[0],w=hi().memoizedState;return[typeof h=="boolean"?h:zv(h),w]},useSyncExternalStore:J5,useId:TU,useHostTransitionStatus:tM,useFormState:hU,useActionState:hU,useOptimistic:function(h,w){var _=hi();return en!==null?iU(_,en,h,w):(_.baseState=h,[h,_.queue.dispatch])},useMemoCache:Vj,useCacheRefresh:AU};FU.useEffectEvent=bU;function nM(h,w,_,M){w=h.memoizedState,_=_(M,w),_=_==null?w:m({},w,_),h.memoizedState=_,h.lanes===0&&(h.updateQueue.baseState=_)}var iM={enqueueSetState:function(h,w,_){h=h._reactInternals;var M=ml(),W=Ap(M);W.payload=w,_!=null&&(W.callback=_),w=jp(h,W,M),w!==null&&(Io(w,h,M),Dv(w,h,M))},enqueueReplaceState:function(h,w,_){h=h._reactInternals;var M=ml(),W=Ap(M);W.tag=1,W.payload=w,_!=null&&(W.callback=_),w=jp(h,W,M),w!==null&&(Io(w,h,M),Dv(w,h,M))},enqueueForceUpdate:function(h,w){h=h._reactInternals;var _=ml(),M=Ap(_);M.tag=2,w!=null&&(M.callback=w),w=jp(h,M,_),w!==null&&(Io(w,h,_),Dv(w,h,_))}};function LU(h,w,_,M,W,ee,Se){return h=h.stateNode,typeof h.shouldComponentUpdate=="function"?h.shouldComponentUpdate(M,ee,Se):w.prototype&&w.prototype.isPureReactComponent?!vs(_,M)||!vs(W,ee):!0}function RU(h,w,_,M){h=w.state,typeof w.componentWillReceiveProps=="function"&&w.componentWillReceiveProps(_,M),typeof w.UNSAFE_componentWillReceiveProps=="function"&&w.UNSAFE_componentWillReceiveProps(_,M),w.state!==h&&iM.enqueueReplaceState(w,w.state,null)}function Lf(h,w){var _=w;if("ref"in w){_={};for(var M in w)M!=="ref"&&(_[M]=w[M])}if(h=h.defaultProps){_===w&&(_=m({},_));for(var W in h)_[W]===void 0&&(_[W]=h[W])}return _}function zU(h){Ak(h)}function IU(h){console.error(h)}function OU(h){Ak(h)}function Zk(h,w){try{var _=h.onUncaughtError;_(w.value,{componentStack:w.stack})}catch(M){setTimeout(function(){throw M})}}function BU(h,w,_){try{var M=h.onCaughtError;M(_.value,{componentStack:_.stack,errorBoundary:w.tag===1?w.stateNode:null})}catch(W){setTimeout(function(){throw W})}}function sM(h,w,_){return _=Ap(_),_.tag=3,_.payload={element:null},_.callback=function(){Zk(h,w)},_}function UU(h){return h=Ap(h),h.tag=3,h}function HU(h,w,_,M){var W=_.type.getDerivedStateFromError;if(typeof W=="function"){var ee=M.value;h.payload=function(){return W(ee)},h.callback=function(){BU(w,_,M)}}var Se=_.stateNode;Se!==null&&typeof Se.componentDidCatch=="function"&&(h.callback=function(){BU(w,_,M),typeof W!="function"&&(Rp===null?Rp=new Set([this]):Rp.add(this));var He=M.stack;this.componentDidCatch(M.value,{componentStack:He!==null?He:""})})}function oue(h,w,_,M,W){if(_.flags|=32768,M!==null&&typeof M=="object"&&typeof M.then=="function"){if(w=_.alternate,w!==null&&Db(w,_,W,!0),_=ll.current,_!==null){switch(_.tag){case 31:case 13:return Yl===null?d_():_.alternate===null&&Zn===0&&(Zn=3),_.flags&=-257,_.flags|=65536,_.lanes=W,M===Ok?_.flags|=16384:(w=_.updateQueue,w===null?_.updateQueue=new Set([M]):w.add(M),MM(h,M,W)),!1;case 22:return _.flags|=65536,M===Ok?_.flags|=16384:(w=_.updateQueue,w===null?(w={transitions:null,markerInstances:null,retryQueue:new Set([M])},_.updateQueue=w):(_=w.retryQueue,_===null?w.retryQueue=new Set([M]):_.add(M)),MM(h,M,W)),!1}throw Error(n(435,_.tag))}return MM(h,M,W),d_(),!1}if(Cr)return w=ll.current,w!==null?((w.flags&65536)===0&&(w.flags|=256),w.flags|=65536,w.lanes=W,M!==Pj&&(h=Error(n(422),{cause:M}),Tv($l(h,_)))):(M!==Pj&&(w=Error(n(423),{cause:M}),Tv($l(w,_))),h=h.current.alternate,h.flags|=65536,W&=-W,h.lanes|=W,M=$l(M,_),W=sM(h.stateNode,M,W),Rj(h,W),Zn!==4&&(Zn=2)),!1;var ee=Error(n(520),{cause:M});if(ee=$l(ee,_),Wv===null?Wv=[ee]:Wv.push(ee),Zn!==4&&(Zn=2),w===null)return!0;M=$l(M,_),_=w;do{switch(_.tag){case 3:return _.flags|=65536,h=W&-W,_.lanes|=h,h=sM(_.stateNode,M,h),Rj(_,h),!1;case 1:if(w=_.type,ee=_.stateNode,(_.flags&128)===0&&(typeof w.getDerivedStateFromError=="function"||ee!==null&&typeof ee.componentDidCatch=="function"&&(Rp===null||!Rp.has(ee))))return _.flags|=65536,W&=-W,_.lanes|=W,W=UU(W),HU(W,h,_,M),Rj(_,W),!1}_=_.return}while(_!==null);return!1}var oM=Error(n(461)),Pi=!1;function ks(h,w,_,M){w.child=h===null?V5(w,null,_,M):Df(w,h.child,_,M)}function qU(h,w,_,M,W){_=_.render;var ee=w.ref;if("ref"in M){var Se={};for(var He in M)He!=="ref"&&(Se[He]=M[He])}else Se=M;return Af(w),M=Hj(h,w,_,Se,ee,W),He=qj(),h!==null&&!Pi?(Gj(h,w,W),$u(h,w,W)):(Cr&&He&&kj(w),w.flags|=1,ks(h,w,M,W),w.child)}function GU(h,w,_,M,W){if(h===null){var ee=_.type;return typeof ee=="function"&&!vj(ee)&&ee.defaultProps===void 0&&_.compare===null?(w.tag=15,w.type=ee,$U(h,w,ee,M,W)):(h=Dk(_.type,null,M,w,w.mode,W),h.ref=w.ref,h.return=w,w.child=h)}if(ee=h.child,!fM(h,W)){var Se=ee.memoizedProps;if(_=_.compare,_=_!==null?_:vs,_(Se,M)&&h.ref===w.ref)return $u(h,w,W)}return w.flags|=1,h=Ou(ee,M),h.ref=w.ref,h.return=w,w.child=h}function $U(h,w,_,M,W){if(h!==null){var ee=h.memoizedProps;if(vs(ee,M)&&h.ref===w.ref)if(Pi=!1,w.pendingProps=M=ee,fM(h,W))(h.flags&131072)!==0&&(Pi=!0);else return w.lanes=h.lanes,$u(h,w,W)}return lM(h,w,_,M,W)}function VU(h,w,_,M){var W=M.children,ee=h!==null?h.memoizedState:null;if(h===null&&w.stateNode===null&&(w.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),M.mode==="hidden"){if((w.flags&128)!==0){if(ee=ee!==null?ee.baseLanes|_:_,h!==null){for(M=w.child=h.child,W=0;M!==null;)W=W|M.lanes|M.childLanes,M=M.sibling;M=W&~ee}else M=0,w.child=null;return WU(h,w,ee,_,M)}if((_&536870912)!==0)w.memoizedState={baseLanes:0,cachePool:null},h!==null&&zk(w,ee!==null?ee.cachePool:null),ee!==null?Y5(w,ee):Ij(),Q5(w);else return M=w.lanes=536870912,WU(h,w,ee!==null?ee.baseLanes|_:_,_,M)}else ee!==null?(zk(w,ee.cachePool),Y5(w,ee),Ep(),w.memoizedState=null):(h!==null&&zk(w,null),Ij(),Ep());return ks(h,w,W,_),w.child}function Bv(h,w){return h!==null&&h.tag===22||w.stateNode!==null||(w.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),w.sibling}function WU(h,w,_,M,W){var ee=Ej();return ee=ee===null?null:{parent:ki._currentValue,pool:ee},w.memoizedState={baseLanes:_,cachePool:ee},h!==null&&zk(w,null),Ij(),Q5(w),h!==null&&Db(h,w,M,!0),w.childLanes=W,null}function Jk(h,w){return w=t_({mode:w.mode,children:w.children},h.mode),w.ref=h.ref,h.child=w,w.return=h,w}function KU(h,w,_){return Df(w,h.child,null,_),h=Jk(w,w.pendingProps),h.flags|=2,cl(w),w.memoizedState=null,h}function lue(h,w,_){var M=w.pendingProps,W=(w.flags&128)!==0;if(w.flags&=-129,h===null){if(Cr){if(M.mode==="hidden")return h=Jk(w,M),w.lanes=536870912,Bv(null,h);if(Bj(w),(h=Pn)?(h=sq(h,Kl),h=h!==null&&h.data==="&"?h:null,h!==null&&(w.memoizedState={dehydrated:h,treeContext:_p!==null?{id:Dd,overflow:Fd}:null,retryLane:536870912,hydrationErrors:null},_=M5(h),_.return=w,w.child=_,ws=w,Pn=null)):h=null,h===null)throw Cp(w);return w.lanes=536870912,null}return Jk(w,M)}var ee=h.memoizedState;if(ee!==null){var Se=ee.dehydrated;if(Bj(w),W)if(w.flags&256)w.flags&=-257,w=KU(h,w,_);else if(w.memoizedState!==null)w.child=h.child,w.flags|=128,w=null;else throw Error(n(558));else if(Pi||Db(h,w,_,!1),W=(_&h.childLanes)!==0,Pi||W){if(M=hn,M!==null&&(Se=gt(M,_),Se!==0&&Se!==ee.retryLane))throw ee.retryLane=Se,Pf(h,Se),Io(M,h,Se),oM;d_(),w=KU(h,w,_)}else h=ee.treeContext,Pn=Ql(Se.nextSibling),ws=w,Cr=!0,Pp=null,Kl=!1,h!==null&&F5(w,h),w=Jk(w,M),w.flags|=4096;return w}return h=Ou(h.child,{mode:M.mode,children:M.children}),h.ref=w.ref,w.child=h,h.return=w,h}function e_(h,w){var _=w.ref;if(_===null)h!==null&&h.ref!==null&&(w.flags|=4194816);else{if(typeof _!="function"&&typeof _!="object")throw Error(n(284));(h===null||h.ref!==_)&&(w.flags|=4194816)}}function lM(h,w,_,M,W){return Af(w),_=Hj(h,w,_,M,void 0,W),M=qj(),h!==null&&!Pi?(Gj(h,w,W),$u(h,w,W)):(Cr&&M&&kj(w),w.flags|=1,ks(h,w,_,W),w.child)}function YU(h,w,_,M,W,ee){return Af(w),w.updateQueue=null,_=Z5(w,M,_,W),X5(h),M=qj(),h!==null&&!Pi?(Gj(h,w,ee),$u(h,w,ee)):(Cr&&M&&kj(w),w.flags|=1,ks(h,w,_,ee),w.child)}function QU(h,w,_,M,W){if(Af(w),w.stateNode===null){var ee=Ab,Se=_.contextType;typeof Se=="object"&&Se!==null&&(ee=Ss(Se)),ee=new _(M,ee),w.memoizedState=ee.state!==null&&ee.state!==void 0?ee.state:null,ee.updater=iM,w.stateNode=ee,ee._reactInternals=w,ee=w.stateNode,ee.props=M,ee.state=w.memoizedState,ee.refs={},Fj(w),Se=_.contextType,ee.context=typeof Se=="object"&&Se!==null?Ss(Se):Ab,ee.state=w.memoizedState,Se=_.getDerivedStateFromProps,typeof Se=="function"&&(nM(w,_,Se,M),ee.state=w.memoizedState),typeof _.getDerivedStateFromProps=="function"||typeof ee.getSnapshotBeforeUpdate=="function"||typeof ee.UNSAFE_componentWillMount!="function"&&typeof ee.componentWillMount!="function"||(Se=ee.state,typeof ee.componentWillMount=="function"&&ee.componentWillMount(),typeof ee.UNSAFE_componentWillMount=="function"&&ee.UNSAFE_componentWillMount(),Se!==ee.state&&iM.enqueueReplaceState(ee,ee.state,null),Lv(w,M,ee,W),Fv(),ee.state=w.memoizedState),typeof ee.componentDidMount=="function"&&(w.flags|=4194308),M=!0}else if(h===null){ee=w.stateNode;var He=w.memoizedProps,pt=Lf(_,He);ee.props=pt;var Et=ee.context,qt=_.contextType;Se=Ab,typeof qt=="object"&&qt!==null&&(Se=Ss(qt));var Wt=_.getDerivedStateFromProps;qt=typeof Wt=="function"||typeof ee.getSnapshotBeforeUpdate=="function",He=w.pendingProps!==He,qt||typeof ee.UNSAFE_componentWillReceiveProps!="function"&&typeof ee.componentWillReceiveProps!="function"||(He||Et!==Se)&&RU(w,ee,M,Se),Tp=!1;var Lt=w.memoizedState;ee.state=Lt,Lv(w,M,ee,W),Fv(),Et=w.memoizedState,He||Lt!==Et||Tp?(typeof Wt=="function"&&(nM(w,_,Wt,M),Et=w.memoizedState),(pt=Tp||LU(w,_,pt,M,Lt,Et,Se))?(qt||typeof ee.UNSAFE_componentWillMount!="function"&&typeof ee.componentWillMount!="function"||(typeof ee.componentWillMount=="function"&&ee.componentWillMount(),typeof ee.UNSAFE_componentWillMount=="function"&&ee.UNSAFE_componentWillMount()),typeof ee.componentDidMount=="function"&&(w.flags|=4194308)):(typeof ee.componentDidMount=="function"&&(w.flags|=4194308),w.memoizedProps=M,w.memoizedState=Et),ee.props=M,ee.state=Et,ee.context=Se,M=pt):(typeof ee.componentDidMount=="function"&&(w.flags|=4194308),M=!1)}else{ee=w.stateNode,Lj(h,w),Se=w.memoizedProps,qt=Lf(_,Se),ee.props=qt,Wt=w.pendingProps,Lt=ee.context,Et=_.contextType,pt=Ab,typeof Et=="object"&&Et!==null&&(pt=Ss(Et)),He=_.getDerivedStateFromProps,(Et=typeof He=="function"||typeof ee.getSnapshotBeforeUpdate=="function")||typeof ee.UNSAFE_componentWillReceiveProps!="function"&&typeof ee.componentWillReceiveProps!="function"||(Se!==Wt||Lt!==pt)&&RU(w,ee,M,pt),Tp=!1,Lt=w.memoizedState,ee.state=Lt,Lv(w,M,ee,W),Fv();var Bt=w.memoizedState;Se!==Wt||Lt!==Bt||Tp||h!==null&&h.dependencies!==null&&Lk(h.dependencies)?(typeof He=="function"&&(nM(w,_,He,M),Bt=w.memoizedState),(qt=Tp||LU(w,_,qt,M,Lt,Bt,pt)||h!==null&&h.dependencies!==null&&Lk(h.dependencies))?(Et||typeof ee.UNSAFE_componentWillUpdate!="function"&&typeof ee.componentWillUpdate!="function"||(typeof ee.componentWillUpdate=="function"&&ee.componentWillUpdate(M,Bt,pt),typeof ee.UNSAFE_componentWillUpdate=="function"&&ee.UNSAFE_componentWillUpdate(M,Bt,pt)),typeof ee.componentDidUpdate=="function"&&(w.flags|=4),typeof ee.getSnapshotBeforeUpdate=="function"&&(w.flags|=1024)):(typeof ee.componentDidUpdate!="function"||Se===h.memoizedProps&&Lt===h.memoizedState||(w.flags|=4),typeof ee.getSnapshotBeforeUpdate!="function"||Se===h.memoizedProps&&Lt===h.memoizedState||(w.flags|=1024),w.memoizedProps=M,w.memoizedState=Bt),ee.props=M,ee.state=Bt,ee.context=pt,M=qt):(typeof ee.componentDidUpdate!="function"||Se===h.memoizedProps&&Lt===h.memoizedState||(w.flags|=4),typeof ee.getSnapshotBeforeUpdate!="function"||Se===h.memoizedProps&&Lt===h.memoizedState||(w.flags|=1024),M=!1)}return ee=M,e_(h,w),M=(w.flags&128)!==0,ee||M?(ee=w.stateNode,_=M&&typeof _.getDerivedStateFromError!="function"?null:ee.render(),w.flags|=1,h!==null&&M?(w.child=Df(w,h.child,null,W),w.child=Df(w,null,_,W)):ks(h,w,_,W),w.memoizedState=ee.state,h=w.child):h=$u(h,w,W),h}function XU(h,w,_,M){return Nf(),w.flags|=256,ks(h,w,_,M),w.child}var cM={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function dM(h){return{baseLanes:h,cachePool:B5()}}function uM(h,w,_){return h=h!==null?h.childLanes&~_:0,w&&(h|=ul),h}function ZU(h,w,_){var M=w.pendingProps,W=!1,ee=(w.flags&128)!==0,Se;if((Se=ee)||(Se=h!==null&&h.memoizedState===null?!1:(pi.current&2)!==0),Se&&(W=!0,w.flags&=-129),Se=(w.flags&32)!==0,w.flags&=-33,h===null){if(Cr){if(W?Mp(w):Ep(),(h=Pn)?(h=sq(h,Kl),h=h!==null&&h.data!=="&"?h:null,h!==null&&(w.memoizedState={dehydrated:h,treeContext:_p!==null?{id:Dd,overflow:Fd}:null,retryLane:536870912,hydrationErrors:null},_=M5(h),_.return=w,w.child=_,ws=w,Pn=null)):h=null,h===null)throw Cp(w);return WM(h)?w.lanes=32:w.lanes=536870912,null}var He=M.children;return M=M.fallback,W?(Ep(),W=w.mode,He=t_({mode:"hidden",children:He},W),M=Cf(M,W,_,null),He.return=w,M.return=w,He.sibling=M,w.child=He,M=w.child,M.memoizedState=dM(_),M.childLanes=uM(h,Se,_),w.memoizedState=cM,Bv(null,M)):(Mp(w),mM(w,He))}var pt=h.memoizedState;if(pt!==null&&(He=pt.dehydrated,He!==null)){if(ee)w.flags&256?(Mp(w),w.flags&=-257,w=pM(h,w,_)):w.memoizedState!==null?(Ep(),w.child=h.child,w.flags|=128,w=null):(Ep(),He=M.fallback,W=w.mode,M=t_({mode:"visible",children:M.children},W),He=Cf(He,W,_,null),He.flags|=2,M.return=w,He.return=w,M.sibling=He,w.child=M,Df(w,h.child,null,_),M=w.child,M.memoizedState=dM(_),M.childLanes=uM(h,Se,_),w.memoizedState=cM,w=Bv(null,M));else if(Mp(w),WM(He)){if(Se=He.nextSibling&&He.nextSibling.dataset,Se)var Et=Se.dgst;Se=Et,M=Error(n(419)),M.stack="",M.digest=Se,Tv({value:M,source:null,stack:null}),w=pM(h,w,_)}else if(Pi||Db(h,w,_,!1),Se=(_&h.childLanes)!==0,Pi||Se){if(Se=hn,Se!==null&&(M=gt(Se,_),M!==0&&M!==pt.retryLane))throw pt.retryLane=M,Pf(h,M),Io(Se,h,M),oM;VM(He)||d_(),w=pM(h,w,_)}else VM(He)?(w.flags|=192,w.child=h.child,w=null):(h=pt.treeContext,Pn=Ql(He.nextSibling),ws=w,Cr=!0,Pp=null,Kl=!1,h!==null&&F5(w,h),w=mM(w,M.children),w.flags|=4096);return w}return W?(Ep(),He=M.fallback,W=w.mode,pt=h.child,Et=pt.sibling,M=Ou(pt,{mode:"hidden",children:M.children}),M.subtreeFlags=pt.subtreeFlags&65011712,Et!==null?He=Ou(Et,He):(He=Cf(He,W,_,null),He.flags|=2),He.return=w,M.return=w,M.sibling=He,w.child=M,Bv(null,M),M=w.child,He=h.child.memoizedState,He===null?He=dM(_):(W=He.cachePool,W!==null?(pt=ki._currentValue,W=W.parent!==pt?{parent:pt,pool:pt}:W):W=B5(),He={baseLanes:He.baseLanes|_,cachePool:W}),M.memoizedState=He,M.childLanes=uM(h,Se,_),w.memoizedState=cM,Bv(h.child,M)):(Mp(w),_=h.child,h=_.sibling,_=Ou(_,{mode:"visible",children:M.children}),_.return=w,_.sibling=null,h!==null&&(Se=w.deletions,Se===null?(w.deletions=[h],w.flags|=16):Se.push(h)),w.child=_,w.memoizedState=null,_)}function mM(h,w){return w=t_({mode:"visible",children:w},h.mode),w.return=h,h.child=w}function t_(h,w){return h=ol(22,h,null,w),h.lanes=0,h}function pM(h,w,_){return Df(w,h.child,null,_),h=mM(w,w.pendingProps.children),h.flags|=2,w.memoizedState=null,h}function JU(h,w,_){h.lanes|=w;var M=h.alternate;M!==null&&(M.lanes|=w),Tj(h.return,w,_)}function hM(h,w,_,M,W,ee){var Se=h.memoizedState;Se===null?h.memoizedState={isBackwards:w,rendering:null,renderingStartTime:0,last:M,tail:_,tailMode:W,treeForkCount:ee}:(Se.isBackwards=w,Se.rendering=null,Se.renderingStartTime=0,Se.last=M,Se.tail=_,Se.tailMode=W,Se.treeForkCount=ee)}function eH(h,w,_){var M=w.pendingProps,W=M.revealOrder,ee=M.tail;M=M.children;var Se=pi.current,He=(Se&2)!==0;if(He?(Se=Se&1|2,w.flags|=128):Se&=1,ue(pi,Se),ks(h,w,M,_),M=Cr?Nv:0,!He&&h!==null&&(h.flags&128)!==0)e:for(h=w.child;h!==null;){if(h.tag===13)h.memoizedState!==null&&JU(h,_,w);else if(h.tag===19)JU(h,_,w);else if(h.child!==null){h.child.return=h,h=h.child;continue}if(h===w)break e;for(;h.sibling===null;){if(h.return===null||h.return===w)break e;h=h.return}h.sibling.return=h.return,h=h.sibling}switch(W){case"forwards":for(_=w.child,W=null;_!==null;)h=_.alternate,h!==null&&qk(h)===null&&(W=_),_=_.sibling;_=W,_===null?(W=w.child,w.child=null):(W=_.sibling,_.sibling=null),hM(w,!1,W,_,ee,M);break;case"backwards":case"unstable_legacy-backwards":for(_=null,W=w.child,w.child=null;W!==null;){if(h=W.alternate,h!==null&&qk(h)===null){w.child=W;break}h=W.sibling,W.sibling=_,_=W,W=h}hM(w,!0,_,null,ee,M);break;case"together":hM(w,!1,null,null,void 0,M);break;default:w.memoizedState=null}return w.child}function $u(h,w,_){if(h!==null&&(w.dependencies=h.dependencies),Lp|=w.lanes,(_&w.childLanes)===0)if(h!==null){if(Db(h,w,_,!1),(_&w.childLanes)===0)return null}else return null;if(h!==null&&w.child!==h.child)throw Error(n(153));if(w.child!==null){for(h=w.child,_=Ou(h,h.pendingProps),w.child=_,_.return=w;h.sibling!==null;)h=h.sibling,_=_.sibling=Ou(h,h.pendingProps),_.return=w;_.sibling=null}return w.child}function fM(h,w){return(h.lanes&w)!==0?!0:(h=h.dependencies,!!(h!==null&&Lk(h)))}function cue(h,w,_){switch(w.tag){case 3:A(w,w.stateNode.containerInfo),Np(w,ki,h.memoizedState.cache),Nf();break;case 27:case 5:U(w);break;case 4:A(w,w.stateNode.containerInfo);break;case 10:Np(w,w.type,w.memoizedProps.value);break;case 31:if(w.memoizedState!==null)return w.flags|=128,Bj(w),null;break;case 13:var M=w.memoizedState;if(M!==null)return M.dehydrated!==null?(Mp(w),w.flags|=128,null):(_&w.child.childLanes)!==0?ZU(h,w,_):(Mp(w),h=$u(h,w,_),h!==null?h.sibling:null);Mp(w);break;case 19:var W=(h.flags&128)!==0;if(M=(_&w.childLanes)!==0,M||(Db(h,w,_,!1),M=(_&w.childLanes)!==0),W){if(M)return eH(h,w,_);w.flags|=128}if(W=w.memoizedState,W!==null&&(W.rendering=null,W.tail=null,W.lastEffect=null),ue(pi,pi.current),M)break;return null;case 22:return w.lanes=0,VU(h,w,_,w.pendingProps);case 24:Np(w,ki,h.memoizedState.cache)}return $u(h,w,_)}function tH(h,w,_){if(h!==null)if(h.memoizedProps!==w.pendingProps)Pi=!0;else{if(!fM(h,_)&&(w.flags&128)===0)return Pi=!1,cue(h,w,_);Pi=(h.flags&131072)!==0}else Pi=!1,Cr&&(w.flags&1048576)!==0&&D5(w,Nv,w.index);switch(w.lanes=0,w.tag){case 16:e:{var M=w.pendingProps;if(h=Mf(w.elementType),w.type=h,typeof h=="function")vj(h)?(M=Lf(h,M),w.tag=1,w=QU(null,w,h,M,_)):(w.tag=0,w=lM(null,w,h,M,_));else{if(h!=null){var W=h.$$typeof;if(W===C){w.tag=11,w=qU(null,w,h,M,_);break e}else if(W===j){w.tag=14,w=GU(null,w,h,M,_);break e}}throw w=R(h)||h,Error(n(306,w,""))}}return w;case 0:return lM(h,w,w.type,w.pendingProps,_);case 1:return M=w.type,W=Lf(M,w.pendingProps),QU(h,w,M,W,_);case 3:e:{if(A(w,w.stateNode.containerInfo),h===null)throw Error(n(387));M=w.pendingProps;var ee=w.memoizedState;W=ee.element,Lj(h,w),Lv(w,M,null,_);var Se=w.memoizedState;if(M=Se.cache,Np(w,ki,M),M!==ee.cache&&Aj(w,[ki],_,!0),Fv(),M=Se.element,ee.isDehydrated)if(ee={element:M,isDehydrated:!1,cache:Se.cache},w.updateQueue.baseState=ee,w.memoizedState=ee,w.flags&256){w=XU(h,w,M,_);break e}else if(M!==W){W=$l(Error(n(424)),w),Tv(W),w=XU(h,w,M,_);break e}else for(h=w.stateNode.containerInfo,h.nodeType===9?h=h.body:h=h.nodeName==="HTML"?h.ownerDocument.body:h,Pn=Ql(h.firstChild),ws=w,Cr=!0,Pp=null,Kl=!0,_=V5(w,null,M,_),w.child=_;_;)_.flags=_.flags&-3|4096,_=_.sibling;else{if(Nf(),M===W){w=$u(h,w,_);break e}ks(h,w,M,_)}w=w.child}return w;case 26:return e_(h,w),h===null?(_=mq(w.type,null,w.pendingProps,null))?w.memoizedState=_:Cr||(_=w.type,h=w.pendingProps,M=b_(G.current).createElement(_),M[vt]=w,M[Pt]=h,_s(M,_,h),nt(M),w.stateNode=M):w.memoizedState=mq(w.type,h.memoizedProps,w.pendingProps,h.memoizedState),null;case 27:return U(w),h===null&&Cr&&(M=w.stateNode=cq(w.type,w.pendingProps,G.current),ws=w,Kl=!0,W=Pn,Bp(w.type)?(KM=W,Pn=Ql(M.firstChild)):Pn=W),ks(h,w,w.pendingProps.children,_),e_(h,w),h===null&&(w.flags|=4194304),w.child;case 5:return h===null&&Cr&&((W=M=Pn)&&(M=Oue(M,w.type,w.pendingProps,Kl),M!==null?(w.stateNode=M,ws=w,Pn=Ql(M.firstChild),Kl=!1,W=!0):W=!1),W||Cp(w)),U(w),W=w.type,ee=w.pendingProps,Se=h!==null?h.memoizedProps:null,M=ee.children,qM(W,ee)?M=null:Se!==null&&qM(W,Se)&&(w.flags|=32),w.memoizedState!==null&&(W=Hj(h,w,eue,null,null,_),t0._currentValue=W),e_(h,w),ks(h,w,M,_),w.child;case 6:return h===null&&Cr&&((h=_=Pn)&&(_=Bue(_,w.pendingProps,Kl),_!==null?(w.stateNode=_,ws=w,Pn=null,h=!0):h=!1),h||Cp(w)),null;case 13:return ZU(h,w,_);case 4:return A(w,w.stateNode.containerInfo),M=w.pendingProps,h===null?w.child=Df(w,null,M,_):ks(h,w,M,_),w.child;case 11:return qU(h,w,w.type,w.pendingProps,_);case 7:return ks(h,w,w.pendingProps,_),w.child;case 8:return ks(h,w,w.pendingProps.children,_),w.child;case 12:return ks(h,w,w.pendingProps.children,_),w.child;case 10:return M=w.pendingProps,Np(w,w.type,M.value),ks(h,w,M.children,_),w.child;case 9:return W=w.type._context,M=w.pendingProps.children,Af(w),W=Ss(W),M=M(W),w.flags|=1,ks(h,w,M,_),w.child;case 14:return GU(h,w,w.type,w.pendingProps,_);case 15:return $U(h,w,w.type,w.pendingProps,_);case 19:return eH(h,w,_);case 31:return lue(h,w,_);case 22:return VU(h,w,_,w.pendingProps);case 24:return Af(w),M=Ss(ki),h===null?(W=Ej(),W===null&&(W=hn,ee=jj(),W.pooledCache=ee,ee.refCount++,ee!==null&&(W.pooledCacheLanes|=_),W=ee),w.memoizedState={parent:M,cache:W},Fj(w),Np(w,ki,W)):((h.lanes&_)!==0&&(Lj(h,w),Lv(w,null,null,_),Fv()),W=h.memoizedState,ee=w.memoizedState,W.parent!==M?(W={parent:M,cache:M},w.memoizedState=W,w.lanes===0&&(w.memoizedState=w.updateQueue.baseState=W),Np(w,ki,M)):(M=ee.cache,Np(w,ki,M),M!==W.cache&&Aj(w,[ki],_,!0))),ks(h,w,w.pendingProps.children,_),w.child;case 29:throw w.pendingProps}throw Error(n(156,w.tag))}function Vu(h){h.flags|=4}function gM(h,w,_,M,W){if((w=(h.mode&32)!==0)&&(w=!1),w){if(h.flags|=16777216,(W&335544128)===W)if(h.stateNode.complete)h.flags|=8192;else if(TH())h.flags|=8192;else throw Ef=Ok,Dj}else h.flags&=-16777217}function aH(h,w){if(w.type!=="stylesheet"||(w.state.loading&4)!==0)h.flags&=-16777217;else if(h.flags|=16777216,!bq(w))if(TH())h.flags|=8192;else throw Ef=Ok,Dj}function a_(h,w){w!==null&&(h.flags|=4),h.flags&16384&&(w=h.tag!==22?We():536870912,h.lanes|=w,$b|=w)}function Uv(h,w){if(!Cr)switch(h.tailMode){case"hidden":w=h.tail;for(var _=null;w!==null;)w.alternate!==null&&(_=w),w=w.sibling;_===null?h.tail=null:_.sibling=null;break;case"collapsed":_=h.tail;for(var M=null;_!==null;)_.alternate!==null&&(M=_),_=_.sibling;M===null?w||h.tail===null?h.tail=null:h.tail.sibling=null:M.sibling=null}}function Cn(h){var w=h.alternate!==null&&h.alternate.child===h.child,_=0,M=0;if(w)for(var W=h.child;W!==null;)_|=W.lanes|W.childLanes,M|=W.subtreeFlags&65011712,M|=W.flags&65011712,W.return=h,W=W.sibling;else for(W=h.child;W!==null;)_|=W.lanes|W.childLanes,M|=W.subtreeFlags,M|=W.flags,W.return=h,W=W.sibling;return h.subtreeFlags|=M,h.childLanes=_,w}function due(h,w,_){var M=w.pendingProps;switch(_j(w),w.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Cn(w),null;case 1:return Cn(w),null;case 3:return _=w.stateNode,M=null,h!==null&&(M=h.memoizedState.cache),w.memoizedState.cache!==M&&(w.flags|=2048),Hu(ki),F(),_.pendingContext&&(_.context=_.pendingContext,_.pendingContext=null),(h===null||h.child===null)&&(Eb(w)?Vu(w):h===null||h.memoizedState.isDehydrated&&(w.flags&256)===0||(w.flags|=1024,Cj())),Cn(w),null;case 26:var W=w.type,ee=w.memoizedState;return h===null?(Vu(w),ee!==null?(Cn(w),aH(w,ee)):(Cn(w),gM(w,W,null,M,_))):ee?ee!==h.memoizedState?(Vu(w),Cn(w),aH(w,ee)):(Cn(w),w.flags&=-16777217):(h=h.memoizedProps,h!==M&&Vu(w),Cn(w),gM(w,W,h,M,_)),null;case 27:if(V(w),_=G.current,W=w.type,h!==null&&w.stateNode!=null)h.memoizedProps!==M&&Vu(w);else{if(!M){if(w.stateNode===null)throw Error(n(166));return Cn(w),null}h=me.current,Eb(w)?L5(w):(h=cq(W,M,_),w.stateNode=h,Vu(w))}return Cn(w),null;case 5:if(V(w),W=w.type,h!==null&&w.stateNode!=null)h.memoizedProps!==M&&Vu(w);else{if(!M){if(w.stateNode===null)throw Error(n(166));return Cn(w),null}if(ee=me.current,Eb(w))L5(w);else{var Se=b_(G.current);switch(ee){case 1:ee=Se.createElementNS("http://www.w3.org/2000/svg",W);break;case 2:ee=Se.createElementNS("http://www.w3.org/1998/Math/MathML",W);break;default:switch(W){case"svg":ee=Se.createElementNS("http://www.w3.org/2000/svg",W);break;case"math":ee=Se.createElementNS("http://www.w3.org/1998/Math/MathML",W);break;case"script":ee=Se.createElement("div"),ee.innerHTML=" +