diff --git a/CHANGELOG.md b/CHANGELOG.md index dc5f84b5d..95d18a0f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,9 @@ All notable changes to Bambuddy will be documented in this file. - **Queue items + Print modal now show the build plate type, per-plate accurate (#1281, reported by @CMW-ISS)** — Reporter on a multi-printer farm with 40+-plate runs needed to walk to the printer with the right physical plate; the archive card had recently grown a bed-type badge, but the queue and the scheduling modal didn't. They were having to open the source 3MF in the slicer to look up which plate each queued / scheduled job needs. **Backend**: new `extract_bed_type_from_3mf(file_path, plate_id)` helper in `utils/threemf_tools.py`, alongside the existing `extract_filament_usage_from_3mf` shape — reads `Metadata/slice_info.config`, finds the `` with the matching `index`, returns its `curr_bed_type`. When `plate_id` is None it returns the first plate's value (matches the archive-level capture convention). `PrintQueueItemResponse` gains a `bed_type: str | None` field; `_enrich_response` populates it from `archive.bed_type` / `library_file.file_metadata["bed_type"]` as the file-level default, then overrides per-plate via the new helper when `item.plate_id` is set. This matters because `archive.bed_type` is captured at ingest as the FIRST plate's value only (see `services/archive.py:235`) — a 40-plate 3MF mixing PEI + Engineering returns "PEI" for every plate at the archive level, even though the user's plate 17 actually needs Engineering. The per-plate override re-reads the 3MF and returns the truth. **`/archives/{id}/plates`** (and the library-file equivalent) now include `bed_type` in each plate object so the PrintModal's plate selector can render the badge inline. **Frontend**: queue card meta row gains a bed badge after filament weight — uses the existing `getBedTypeInfo(bed_type)` helper from `utils/bedType.ts` (the same one the archive card uses, so all 11 canonical bed labels + icons are covered including the BambuStudio / OrcaSlicer spelling drift). PrintModal's per-plate `PlateSelector` shows the bed badge under each plate's filament line; the modal header carries a bed badge for the selected (or sole) plate, surfaced before the user hits Schedule. `PlateInfo` + `PlateMetadata` types both get an optional `bed_type` field. No new i18n keys needed — `getBedTypeInfo` returns the canonical English plate name as the human label, matching the archive card's existing convention. **Tests**: 8 new unit cases in `test_threemf_tools.py::TestExtractBedTypeFrom3mf` pin the helper (single-plate, multi-plate per-plate, no-plate-id defaults to first, unknown-plate-id → None, plate-without-bed-type → None (no fall-through to another plate's value), missing slice_info, invalid file, whitespace trim). Full backend suite green (3848/3848); frontend build clean; ESLint clean; vitest on touched pages 81/81; i18n parity 5092 leaves × 11 locales green. +### Added +- **Print Log page: per-row delete (#1687 part 1, reported by @IndividualGhost1905)** — Reporter noted that the existing "Also remove this print from Quick Stats" toggle on archive delete is one-shot: if you tick "keep stats" at delete time, there was no later way to drop the row from /stats; and rows that aren't tied to an archive (errors, aborts, manual entries) had no delete affordance at all. **Fix:** every row in the Archives → Print Log table now has a trash icon next to the filament cell, gated on `archives:delete_own` (own rows) or `archives:delete_all` (any row), matching the archive-delete permission shape. Click → confirm modal → row is gone, and because /archives/stats aggregates over `PrintLogEntry` the filament / time / cost contribution drops out of Quick Stats in the same response cycle. The matching archive (if any) is untouched — the log row is a sibling, not a child. **Backend:** new `DELETE /print-log/{entry_id}` mirrors `delete_archive`'s ownership flow via `require_ownership_permission(ARCHIVES_DELETE_ALL, ARCHIVES_DELETE_OWN)`; owners can drop their own rows, admins can drop any row, missing IDs return 404 rather than 200-silently. **Frontend:** new `deletePrintLogEntry` API helper, per-row mutation that invalidates both `print-log` and `archives-stats` query keys so the totals re-render without a manual refresh. **i18n:** 4 new keys (`deleteEntryTitle`, `deleteEntryConfirm`, `entryDeleted`, `entryDeleteFailed`) translated across all 11 locales (de / en / es / fr / it / ja / ko / pt-BR / tr / zh-CN / zh-TW). **Tests:** 3 backend integration cases — delete drops the row from /stats while keeping the linked archive listed, missing ID returns 404, delete-one does not touch siblings (regression guard against an accidental `delete(PrintLogEntry)` without a `where`). Frontend ArchivesPage / PrintLogModal vitests stay green (31 / 31). i18n parity green (5099 leaves × 11 locales). Issue #1687 also asks for per-row tagging (already covered by `EditArchiveModal`'s tags field) and per-row filament-usage-history edits (deferred — see the issue thread for the reasoning). + ### Fixed - **Profile editor filament type dropdown now lists PLA-CF and the other Bambu CF / GF / specialty materials (#1686, reported by @Bgabor997)** — Creating or editing a filament preset on the Profiles page (BL Cloud, Orca Cloud, and Local Profiles all open the same shared editor) only offered 11 base materials (PLA, ABS, PETG, TPU, PA, PA-CF, PET-CF, PC, ASA, PVA, HIPS). Reporter on P1S wanted to tag a custom preset as PLA-CF — the dropdown source had no entry, so the saved preset's `filament_type` was wrong and the printer received the wrong material code at dispatch. **Root cause:** `backend/app/data/filament_fields.json` (served by `GET /cloud/fields/filament` and consumed by `ProfilesPage` via `getCloudFields`) shipped a curated subset that pre-dated Bambu's CF/GF lineup expansion. Other surfaces in the codebase already named the canonical list (`utils/filament_ids.py` `GENERIC_FILAMENT_IDS`, `spool-form/utils.ts` MATERIALS, the Bambu filament-id catalog in `cloud.py`), so the gap was specifically in the editor's allowed-values JSON. **Fix:** expanded the `filament_type` select to 25 BambuStudio-aligned options grouped by family — PLA (+ CF/GF/AERO), PETG (+ CF), ABS (+ GF), ASA (+ CF/GF), PC, PCTG, PA family (+ CF/PAHT-CF/PA6-CF/PA6-GF), PET-CF, TPU, PPS family (+ CF/GF for X1E), PVA, HIPS. No frontend, no i18n (material codes are universal). K-profiles editor unaffected — it picks `filament_id`, not `filament_type`. **Tests:** 15 unit cases in `test_filament_fields_options.py` pin every newly-added variant (PLA-CF, PLA-GF, PLA-AERO, PETG-CF, ABS-GF, ASA-CF, ASA-GF, PCTG, PAHT-CF, PA6-CF, PA6-GF, PPS, PPS-CF, PPS-GF) plus the baseline-must-still-be-present guard so a future curation pass can't silently drop them. diff --git a/backend/app/api/routes/print_log.py b/backend/app/api/routes/print_log.py index e2e681f2e..7d1fc9428 100644 --- a/backend/app/api/routes/print_log.py +++ b/backend/app/api/routes/print_log.py @@ -6,7 +6,11 @@ from fastapi.responses import FileResponse from sqlalchemy import delete, func, select from sqlalchemy.ext.asyncio import AsyncSession -from backend.app.core.auth import RequireCameraStreamTokenIfAuthEnabled, RequirePermissionIfAuthEnabled +from backend.app.core.auth import ( + RequireCameraStreamTokenIfAuthEnabled, + RequirePermissionIfAuthEnabled, + require_ownership_permission, +) from backend.app.core.config import settings from backend.app.core.database import get_db from backend.app.core.permissions import Permission @@ -137,3 +141,39 @@ async def clear_print_log( logger.info("Print log cleared: %d entries deleted", deleted) return {"deleted": deleted} + + +@router.delete("/{entry_id}") +async def delete_print_log_entry( + entry_id: int, + db: AsyncSession = Depends(get_db), + auth_result: tuple[User | None, bool] = Depends( + require_ownership_permission( + Permission.ARCHIVES_DELETE_ALL, + Permission.ARCHIVES_DELETE_OWN, + ) + ), +): + """Delete a single print-log entry (#1687). + + Removes the row entirely. Because /archives/stats aggregates over + PrintLogEntry, the deleted row's filament / cost / duration / count + contributions drop out of the totals in the same response cycle. + The linked archive (if any) is untouched — the FK on the archive row + is from PrintLogEntry, not the other way around. + """ + user, can_modify_all = auth_result + + entry = await db.get(PrintLogEntry, entry_id) + if not entry: + raise HTTPException(404, "Print log entry not found") + + if not can_modify_all: + if entry.created_by_id is None or (user is not None and entry.created_by_id != user.id): + raise HTTPException(403, "You can only delete your own print log entries") + + await db.delete(entry) + await db.commit() + + logger.info("Print log entry %d deleted", entry_id) + return {"status": "deleted", "id": entry_id} diff --git a/backend/tests/integration/test_archives_api.py b/backend/tests/integration/test_archives_api.py index f60a6c998..00db4301a 100644 --- a/backend/tests/integration/test_archives_api.py +++ b/backend/tests/integration/test_archives_api.py @@ -534,6 +534,78 @@ class TestArchivesAPI: assert "successful_prints" in result +class TestPrintLogEntryDelete: + """#1687: per-row delete on the Print Log page. + + Pin the route's three contracts: (1) deleting a row drops its filament + / cost / count contribution from /archives/stats in the same response + cycle; (2) the matching archive (if any) is untouched; (3) missing IDs + return 404 rather than 200-silently. + """ + + @pytest.mark.asyncio + @pytest.mark.integration + async def test_delete_print_log_entry_drops_from_stats( + self, async_client: AsyncClient, archive_factory, printer_factory, db_session + ): + from sqlalchemy import select + + from backend.app.models.print_log import PrintLogEntry + + printer = await printer_factory() + keep = await archive_factory(printer.id, status="completed", filament_used_grams=50.0) + drop = await archive_factory(printer.id, status="completed", filament_used_grams=125.0) + + drop_run = ( + await db_session.execute(select(PrintLogEntry).where(PrintLogEntry.archive_id == drop.id)) + ).scalar_one() + + resp = await async_client.delete(f"/api/v1/print-log/{drop_run.id}") + assert resp.status_code == 200 + assert resp.json()["status"] == "deleted" + assert resp.json()["id"] == drop_run.id + + # The linked archive survives — the row was a stats row, not the archive. + listing = (await async_client.get("/api/v1/archives/")).json() + assert {a["id"] for a in listing} == {keep.id, drop.id} + + # /stats no longer counts the dropped run's filament contribution. + stats = (await async_client.get("/api/v1/archives/stats")).json() + assert stats["total_prints"] == 1 + assert stats["total_filament_grams"] == 50.0 + + @pytest.mark.asyncio + @pytest.mark.integration + async def test_delete_print_log_entry_404_when_missing(self, async_client: AsyncClient): + resp = await async_client.delete("/api/v1/print-log/999999") + assert resp.status_code == 404 + + @pytest.mark.asyncio + @pytest.mark.integration + async def test_delete_print_log_entry_does_not_clear_others( + self, async_client: AsyncClient, archive_factory, printer_factory, db_session + ): + """Deleting one row must not touch siblings — guard against an accidental + ``delete(PrintLogEntry)`` without a ``where`` clause (cf. clear_print_log + which intentionally drops everything).""" + from sqlalchemy import select + + from backend.app.models.print_log import PrintLogEntry + + printer = await printer_factory() + a = await archive_factory(printer.id, status="completed", filament_used_grams=10.0) + b = await archive_factory(printer.id, status="completed", filament_used_grams=20.0) + c = await archive_factory(printer.id, status="completed", filament_used_grams=30.0) + + runs = {r.archive_id: r for r in (await db_session.execute(select(PrintLogEntry))).scalars().all()} + + resp = await async_client.delete(f"/api/v1/print-log/{runs[b.id].id}") + assert resp.status_code == 200 + + survivors = (await db_session.execute(select(PrintLogEntry.archive_id))).scalars().all() + assert set(survivors) == {a.id, c.id} + + class TestArchivesSlimAPI: """Integration tests for /api/v1/archives/slim endpoint.""" diff --git a/frontend/src/api/client.ts b/frontend/src/api/client.ts index ee3d03e6c..d4983c452 100644 --- a/frontend/src/api/client.ts +++ b/frontend/src/api/client.ts @@ -4364,6 +4364,8 @@ export const api = { getPrintLogThumbnail: (id: number) => withStreamToken(`${API_BASE}/print-log/${id}/thumbnail`), clearPrintLog: () => request<{ deleted: number }>('/print-log/', { method: 'DELETE' }), + deletePrintLogEntry: (id: number) => + request<{ status: string; id: number }>(`/print-log/${id}`, { method: 'DELETE' }), // Settings getSettings: () => request('/settings/'), diff --git a/frontend/src/i18n/locales/de.ts b/frontend/src/i18n/locales/de.ts index a452fd06c..cb6def2e7 100644 --- a/frontend/src/i18n/locales/de.ts +++ b/frontend/src/i18n/locales/de.ts @@ -926,6 +926,10 @@ export default { clearLogButton: 'Alle löschen', cleared: '{{count}} Protokolleinträge gelöscht', clearFailed: 'Druckprotokoll konnte nicht gelöscht werden', + deleteEntryTitle: 'Druckprotokoll-Eintrag löschen', + deleteEntryConfirm: 'Dieser Eintrag wird aus dem Protokoll entfernt und sein Filament-, Zeit- und Kostenbeitrag verschwindet aus den Schnellstatistiken. Das zugehörige Archiv (falls vorhanden) ist nicht betroffen. Diese Aktion kann nicht rückgängig gemacht werden.', + entryDeleted: 'Druckprotokoll-Eintrag gelöscht', + entryDeleteFailed: 'Druckprotokoll-Eintrag konnte nicht gelöscht werden', }, }, diff --git a/frontend/src/i18n/locales/en.ts b/frontend/src/i18n/locales/en.ts index 67d81811a..e4584cd4b 100644 --- a/frontend/src/i18n/locales/en.ts +++ b/frontend/src/i18n/locales/en.ts @@ -926,6 +926,10 @@ export default { clearLogButton: 'Clear All', cleared: '{{count}} log entries cleared', clearFailed: 'Failed to clear print log', + deleteEntryTitle: 'Delete print log entry', + deleteEntryConfirm: 'This entry will be removed from the log and its filament, time, and cost contributions will drop out of Quick Stats. The matching archive (if any) is not affected. This action cannot be undone.', + entryDeleted: 'Print log entry deleted', + entryDeleteFailed: 'Failed to delete print log entry', }, }, diff --git a/frontend/src/i18n/locales/es.ts b/frontend/src/i18n/locales/es.ts index fbd1f51d4..4b10f90f3 100644 --- a/frontend/src/i18n/locales/es.ts +++ b/frontend/src/i18n/locales/es.ts @@ -926,6 +926,10 @@ export default { clearLogButton: 'Borrar todo', cleared: '{{count}} entradas del registro borradas', clearFailed: 'Error al borrar el registro de impresión', + deleteEntryTitle: 'Eliminar entrada del registro de impresión', + deleteEntryConfirm: 'Esta entrada se eliminará del registro y sus contribuciones de filamento, tiempo y costo desaparecerán de las estadísticas rápidas. El archivo correspondiente (si lo hay) no se ve afectado. Esta acción no se puede deshacer.', + entryDeleted: 'Entrada del registro de impresión eliminada', + entryDeleteFailed: 'Error al eliminar la entrada del registro de impresión', }, }, diff --git a/frontend/src/i18n/locales/fr.ts b/frontend/src/i18n/locales/fr.ts index c8b700870..c40ccd140 100644 --- a/frontend/src/i18n/locales/fr.ts +++ b/frontend/src/i18n/locales/fr.ts @@ -926,6 +926,10 @@ export default { clearLogButton: 'Tout effacer', cleared: '{{count}} entrées de journal effacées', clearFailed: 'Échec de l\'effacement du journal d\'impression', + deleteEntryTitle: 'Supprimer l\'entrée du journal d\'impression', + deleteEntryConfirm: 'Cette entrée sera retirée du journal et ses contributions en filament, temps et coût disparaîtront des statistiques rapides. L\'archive correspondante (le cas échéant) n\'est pas affectée. Cette action est irréversible.', + entryDeleted: 'Entrée du journal d\'impression supprimée', + entryDeleteFailed: 'Échec de la suppression de l\'entrée du journal d\'impression', }, }, diff --git a/frontend/src/i18n/locales/it.ts b/frontend/src/i18n/locales/it.ts index b960d2ff7..31e6d8497 100644 --- a/frontend/src/i18n/locales/it.ts +++ b/frontend/src/i18n/locales/it.ts @@ -926,6 +926,10 @@ export default { clearLogButton: 'Cancella tutto', cleared: '{{count}} voci di registro cancellate', clearFailed: 'Impossibile cancellare il registro stampe', + deleteEntryTitle: 'Elimina voce del registro stampe', + deleteEntryConfirm: 'Questa voce verrà rimossa dal registro e i suoi contributi di filamento, tempo e costo verranno scartati dalle statistiche rapide. L\'archivio corrispondente (se presente) non è interessato. Questa azione non può essere annullata.', + entryDeleted: 'Voce del registro stampe eliminata', + entryDeleteFailed: 'Impossibile eliminare la voce del registro stampe', }, }, diff --git a/frontend/src/i18n/locales/ja.ts b/frontend/src/i18n/locales/ja.ts index b2d9b227c..77fa85f34 100644 --- a/frontend/src/i18n/locales/ja.ts +++ b/frontend/src/i18n/locales/ja.ts @@ -925,6 +925,10 @@ export default { clearLogButton: 'すべてクリア', cleared: '{{count}}件のログエントリを削除しました', clearFailed: '印刷ログの削除に失敗しました', + deleteEntryTitle: '印刷ログのエントリを削除', + deleteEntryConfirm: 'このエントリはログから削除され、フィラメント、時間、コストの寄与はクイック統計から除外されます。対応するアーカイブ(ある場合)は影響を受けません。この操作は取り消せません。', + entryDeleted: '印刷ログのエントリを削除しました', + entryDeleteFailed: '印刷ログのエントリを削除できませんでした', }, }, diff --git a/frontend/src/i18n/locales/ko.ts b/frontend/src/i18n/locales/ko.ts index 265398366..44c893338 100644 --- a/frontend/src/i18n/locales/ko.ts +++ b/frontend/src/i18n/locales/ko.ts @@ -861,7 +861,11 @@ export default { clearLogConfirm: '모든 인쇄 로그 항목이 영구적으로 삭제됩니다. 아카이브와 대기열 항목은 영향받지 않습니다. 이 작업은 취소할 수 없습니다. 계속하시겠습니까?', clearLogButton: '모두 지우기', cleared: '{{count}}개 로그 항목이 지워졌습니다', - clearFailed: '인쇄 로그 지우기 실패' + clearFailed: '인쇄 로그 지우기 실패', + deleteEntryTitle: '인쇄 로그 항목 삭제', + deleteEntryConfirm: '이 항목이 로그에서 삭제되며 필라멘트, 시간 및 비용 기여도가 빠른 통계에서 제외됩니다. 해당 아카이브(있는 경우)는 영향을 받지 않습니다. 이 작업은 취소할 수 없습니다.', + entryDeleted: '인쇄 로그 항목이 삭제되었습니다', + entryDeleteFailed: '인쇄 로그 항목 삭제 실패' }, runLog: { title: '인쇄 기록', diff --git a/frontend/src/i18n/locales/pt-BR.ts b/frontend/src/i18n/locales/pt-BR.ts index 65b827345..d832617ae 100644 --- a/frontend/src/i18n/locales/pt-BR.ts +++ b/frontend/src/i18n/locales/pt-BR.ts @@ -926,6 +926,10 @@ export default { clearLogButton: 'Limpar Tudo', cleared: '{{count}} entradas do registro de impressão limpas', clearFailed: 'Falha ao limpar o registro de impressão', + deleteEntryTitle: 'Excluir entrada do registro de impressão', + deleteEntryConfirm: 'Esta entrada será removida do registro e suas contribuições de filamento, tempo e custo desaparecerão das estatísticas rápidas. O arquivo correspondente (se houver) não é afetado. Esta ação não pode ser desfeita.', + entryDeleted: 'Entrada do registro de impressão excluída', + entryDeleteFailed: 'Falha ao excluir entrada do registro de impressão', }, }, diff --git a/frontend/src/i18n/locales/tr.ts b/frontend/src/i18n/locales/tr.ts index 3ac1c21dc..74b9b2df4 100644 --- a/frontend/src/i18n/locales/tr.ts +++ b/frontend/src/i18n/locales/tr.ts @@ -926,6 +926,10 @@ export default { clearLogButton: 'Hepsini Temizle', cleared: '{{count}} günlük kaydı temizlendi', clearFailed: 'Baskı günlüğü temizlenemedi', + deleteEntryTitle: 'Baskı günlüğü girişini sil', + deleteEntryConfirm: 'Bu giriş günlükten kaldırılacak ve filament, süre ve maliyet katkıları Hızlı İstatistikler\'den çıkarılacak. İlgili arşiv (varsa) etkilenmez. Bu işlem geri alınamaz.', + entryDeleted: 'Baskı günlüğü girişi silindi', + entryDeleteFailed: 'Baskı günlüğü girişi silinemedi', }, }, diff --git a/frontend/src/i18n/locales/zh-CN.ts b/frontend/src/i18n/locales/zh-CN.ts index b86106400..f87b3279f 100644 --- a/frontend/src/i18n/locales/zh-CN.ts +++ b/frontend/src/i18n/locales/zh-CN.ts @@ -926,6 +926,10 @@ export default { clearLogButton: '全部清除', cleared: '已清除 {{count}} 条日志', clearFailed: '清除打印日志失败', + deleteEntryTitle: '删除打印日志条目', + deleteEntryConfirm: '此条目将从日志中删除,其耗材、时间和成本贡献也将从快速统计中移除。对应的归档(如果有)不受影响。此操作无法撤销。', + entryDeleted: '已删除打印日志条目', + entryDeleteFailed: '删除打印日志条目失败', }, }, diff --git a/frontend/src/i18n/locales/zh-TW.ts b/frontend/src/i18n/locales/zh-TW.ts index 79b10c789..1464f9c9c 100644 --- a/frontend/src/i18n/locales/zh-TW.ts +++ b/frontend/src/i18n/locales/zh-TW.ts @@ -926,6 +926,10 @@ export default { clearLogButton: '全部清除', cleared: '已清除 {{count}} 條日誌', clearFailed: '清除列印日誌失敗', + deleteEntryTitle: '刪除列印日誌條目', + deleteEntryConfirm: '此條目將從日誌中刪除,其耗材、時間與成本貢獻也將從快速統計中移除。對應的歸檔(如有)不受影響。此操作無法復原。', + entryDeleted: '已刪除列印日誌條目', + entryDeleteFailed: '刪除列印日誌條目失敗', }, }, diff --git a/frontend/src/pages/ArchivesPage.tsx b/frontend/src/pages/ArchivesPage.tsx index 5461c1127..663e674da 100644 --- a/frontend/src/pages/ArchivesPage.tsx +++ b/frontend/src/pages/ArchivesPage.tsx @@ -2611,6 +2611,7 @@ export function ArchivesPage() { return saved ? Number(saved) : 0; }); const [showClearLogConfirm, setShowClearLogConfirm] = useState(false); + const [pendingDeleteEntryId, setPendingDeleteEntryId] = useState(null); const [logPageSize, setLogPageSize] = useState(() => { const saved = localStorage.getItem('logPageSize'); return saved ? Number(saved) : 25; @@ -2723,6 +2724,18 @@ export function ArchivesPage() { }, }); + const deleteLogEntryMutation = useMutation({ + mutationFn: (id: number) => api.deletePrintLogEntry(id), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: ['print-log'] }); + queryClient.invalidateQueries({ queryKey: ['archives-stats'] }); + showToast(t('archives.log.entryDeleted')); + }, + onError: () => { + showToast(t('archives.log.entryDeleteFailed'), 'error'); + }, + }); + // Persist all filters to localStorage useEffect(() => { if (filterPrinter !== null) { @@ -3749,6 +3762,7 @@ export function ArchivesPage() { {t('archives.log.status')} {t('archives.log.duration')} {t('archives.log.filament')} + @@ -3802,6 +3816,24 @@ export function ArchivesPage() { + + + ))} @@ -3925,6 +3957,21 @@ export function ArchivesPage() { onCancel={() => setShowClearLogConfirm(false)} /> )} + + {/* Per-row Print Log entry delete confirmation (#1687) */} + {pendingDeleteEntryId !== null && ( + { + deleteLogEntryMutation.mutate(pendingDeleteEntryId); + setPendingDeleteEntryId(null); + }} + onCancel={() => setPendingDeleteEntryId(null)} + /> + )} ); } diff --git a/static/assets/index-fm48nbe7.js b/static/assets/index-Ba6CVgCu.js similarity index 75% rename from static/assets/index-fm48nbe7.js rename to static/assets/index-Ba6CVgCu.js index 4c0a874e1..f3286e932 100644 --- a/static/assets/index-fm48nbe7.js +++ b/static/assets/index-Ba6CVgCu.js @@ -1,51 +1,51 @@ -function ume(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 E_=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Lc(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var sE={exports:{}},i0={};var Dq;function mme(){if(Dq)return i0;Dq=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 Fq;function pme(){return Fq||(Fq=1,sE.exports=mme()),sE.exports}var r=pme(),oE={exports:{}},Xa={};var Lq;function hme(){if(Lq)return Xa;Lq=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(Y){return Y===null||typeof Y!="object"?null:(Y=p&&Y[p]||Y["@@iterator"],typeof Y=="function"?Y:null)}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},v=Object.assign,b={};function x(Y,ne,me){this.props=Y,this.context=ne,this.refs=b,this.updater=me||g}x.prototype.isReactComponent={},x.prototype.setState=function(Y,ne){if(typeof Y!="object"&&typeof Y!="function"&&Y!=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,Y,ne,"setState")},x.prototype.forceUpdate=function(Y){this.updater.enqueueForceUpdate(this,Y,"forceUpdate")};function S(){}S.prototype=x.prototype;function k(Y,ne,me){this.props=Y,this.context=ne,this.refs=b,this.updater=me||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(Y,ne,me){var pe=me.ref;return{$$typeof:t,type:Y,key:ne,ref:pe!==void 0?pe:null,props:me}}function E(Y,ne){return P(Y.type,ne,Y.props)}function z(Y){return typeof Y=="object"&&Y!==null&&Y.$$typeof===t}function I(Y){var ne={"=":"=0",":":"=2"};return"$"+Y.replace(/[=:]/g,function(me){return ne[me]})}var O=/\/+/g;function R(Y,ne){return typeof Y=="object"&&Y!==null&&Y.key!=null?I(""+Y.key):ne.toString(36)}function K(Y){switch(Y.status){case"fulfilled":return Y.value;case"rejected":throw Y.reason;default:switch(typeof Y.status=="string"?Y.then(T,T):(Y.status="pending",Y.then(function(ne){Y.status==="pending"&&(Y.status="fulfilled",Y.value=ne)},function(ne){Y.status==="pending"&&(Y.status="rejected",Y.reason=ne)})),Y.status){case"fulfilled":return Y.value;case"rejected":throw Y.reason}}throw Y}function Z(Y,ne,me,pe,xe){var V=typeof Y;(V==="undefined"||V==="boolean")&&(Y=null);var Q=!1;if(Y===null)Q=!0;else switch(V){case"bigint":case"string":case"number":Q=!0;break;case"object":switch(Y.$$typeof){case t:case e:Q=!0;break;case u:return Q=Y._init,Z(Q(Y._payload),ne,me,pe,xe)}}if(Q)return xe=xe(Y),Q=pe===""?"."+R(Y,0):pe,N(xe)?(me="",Q!=null&&(me=Q.replace(O,"$&/")+"/"),Z(xe,ne,me,"",function(U){return U})):xe!=null&&(z(xe)&&(xe=E(xe,me+(xe.key==null||Y&&Y.key===xe.key?"":(""+xe.key).replace(O,"$&/")+"/")+Q)),ne.push(xe)),1;Q=0;var A=pe===""?".":pe+":";if(N(Y))for(var F=0;F>>1,oe=Z[de];if(0>>1;dei(me,ce))pei(xe,me)?(Z[de]=xe,Z[pe]=ce,de=pe):(Z[de]=me,Z[ne]=ce,de=ne);else if(pei(xe,ce))Z[de]=xe,Z[pe]=ce,de=pe;else break e}}return X}function i(Z,X){var ce=Z.sortIndex-X.sortIndex;return ce!==0?ce:Z.id-X.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(Z){for(var X=a(d);X!==null;){if(X.callback===null)n(d);else if(X.startTime<=Z)n(d),X.sortIndex=X.expirationTime,e(c,X);else break;X=a(d)}}function N(Z){if(v=!1,C(Z),!g)if(a(c)!==null)g=!0,T||(T=!0,I());else{var X=a(d);X!==null&&K(N,X.startTime-Z)}}var T=!1,j=-1,D=5,P=-1;function E(){return b?!0:!(t.unstable_now()-PZ&&E());){var de=m.callback;if(typeof de=="function"){m.callback=null,p=m.priorityLevel;var oe=de(m.expirationTime<=Z);if(Z=t.unstable_now(),typeof oe=="function"){m.callback=oe,C(Z),X=!0;break t}m===a(c)&&n(c),C(Z)}else n(c);m=a(c)}if(m!==null)X=!0;else{var Y=a(d);Y!==null&&K(N,Y.startTime-Z),X=!1}}break e}finally{m=null,p=ce,f=!1}X=void 0}}finally{X?I():T=!1}}}var I;if(typeof k=="function")I=function(){k(z)};else if(typeof MessageChannel<"u"){var O=new MessageChannel,R=O.port2;O.port1.onmessage=z,I=function(){R.postMessage(null)}}else I=function(){x(z,0)};function K(Z,X){j=x(function(){Z(t.unstable_now())},X)}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(Z){Z.callback=null},t.unstable_forceFrameRate=function(Z){0>Z||125de?(Z.sortIndex=ce,e(d,Z),a(c)===null&&Z===a(d)&&(v?(S(j),j=-1):v=!0,K(N,ce-de))):(Z.sortIndex=oe,e(c,Z),g||f||(g=!0,T||(T=!0,I()))),Z},t.unstable_shouldYield=E,t.unstable_wrapCallback=function(Z){var X=p;return function(){var ce=p;p=X;try{return Z.apply(this,arguments)}finally{p=ce}}}})(dE)),dE}var Iq;function bme(){return Iq||(Iq=1,cE.exports=gme()),cE.exports}var uE={exports:{}},qs={};var Oq;function xme(){if(Oq)return qs;Oq=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(),uE.exports=xme(),uE.exports}var Uq;function yme(){if(Uq)return s0;Uq=1;var t=bme(),e=ub(),a=lZ();function n(h){var w="https://react.dev/errors/"+h;if(1oe||(h.current=de[oe],de[oe]=null,oe--)}function me(h,w){oe++,de[oe]=h.current,h.current=w}var pe=Y(null),xe=Y(null),V=Y(null),Q=Y(null);function A(h,w){switch(me(V,w),me(xe,h),me(pe,null),w.nodeType){case 9:case 11:h=(h=w.documentElement)&&(h=h.namespaceURI)?aq(h):0;break;default:if(h=w.tagName,w=w.namespaceURI)w=aq(w),h=rq(w,h);else switch(h){case"svg":h=1;break;case"math":h=2;break;default:h=0}}ne(pe),me(pe,h)}function F(){ne(pe),ne(xe),ne(V)}function U(h){h.memoizedState!==null&&me(Q,h);var w=pe.current,_=rq(w,h.type);w!==_&&(me(xe,h),me(pe,_))}function $(h){xe.current===h&&(ne(pe),ne(xe)),Q.current===h&&(ne(Q),t0._currentValue=ce)}var H,le;function B(h){if(H===void 0)try{throw Error()}catch(_){var w=_.stack.trim().match(/\n( *(at )?)/);H=w&&w[1]||"",le=-1<_.stack.indexOf(` +function ume(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 E_=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Lc(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var sE={exports:{}},i0={};var Dq;function mme(){if(Dq)return i0;Dq=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 Fq;function pme(){return Fq||(Fq=1,sE.exports=mme()),sE.exports}var r=pme(),oE={exports:{}},Xa={};var Lq;function hme(){if(Lq)return Xa;Lq=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(Y){return Y===null||typeof Y!="object"?null:(Y=p&&Y[p]||Y["@@iterator"],typeof Y=="function"?Y:null)}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},v=Object.assign,b={};function x(Y,ne,me){this.props=Y,this.context=ne,this.refs=b,this.updater=me||g}x.prototype.isReactComponent={},x.prototype.setState=function(Y,ne){if(typeof Y!="object"&&typeof Y!="function"&&Y!=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,Y,ne,"setState")},x.prototype.forceUpdate=function(Y){this.updater.enqueueForceUpdate(this,Y,"forceUpdate")};function S(){}S.prototype=x.prototype;function k(Y,ne,me){this.props=Y,this.context=ne,this.refs=b,this.updater=me||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(Y,ne,me){var pe=me.ref;return{$$typeof:t,type:Y,key:ne,ref:pe!==void 0?pe:null,props:me}}function E(Y,ne){return P(Y.type,ne,Y.props)}function z(Y){return typeof Y=="object"&&Y!==null&&Y.$$typeof===t}function I(Y){var ne={"=":"=0",":":"=2"};return"$"+Y.replace(/[=:]/g,function(me){return ne[me]})}var O=/\/+/g;function R(Y,ne){return typeof Y=="object"&&Y!==null&&Y.key!=null?I(""+Y.key):ne.toString(36)}function K(Y){switch(Y.status){case"fulfilled":return Y.value;case"rejected":throw Y.reason;default:switch(typeof Y.status=="string"?Y.then(T,T):(Y.status="pending",Y.then(function(ne){Y.status==="pending"&&(Y.status="fulfilled",Y.value=ne)},function(ne){Y.status==="pending"&&(Y.status="rejected",Y.reason=ne)})),Y.status){case"fulfilled":return Y.value;case"rejected":throw Y.reason}}throw Y}function Z(Y,ne,me,pe,xe){var V=typeof Y;(V==="undefined"||V==="boolean")&&(Y=null);var Q=!1;if(Y===null)Q=!0;else switch(V){case"bigint":case"string":case"number":Q=!0;break;case"object":switch(Y.$$typeof){case t:case e:Q=!0;break;case u:return Q=Y._init,Z(Q(Y._payload),ne,me,pe,xe)}}if(Q)return xe=xe(Y),Q=pe===""?"."+R(Y,0):pe,N(xe)?(me="",Q!=null&&(me=Q.replace(O,"$&/")+"/"),Z(xe,ne,me,"",function(U){return U})):xe!=null&&(z(xe)&&(xe=E(xe,me+(xe.key==null||Y&&Y.key===xe.key?"":(""+xe.key).replace(O,"$&/")+"/")+Q)),ne.push(xe)),1;Q=0;var A=pe===""?".":pe+":";if(N(Y))for(var F=0;F>>1,oe=Z[de];if(0>>1;dei(me,ce))pei(xe,me)?(Z[de]=xe,Z[pe]=ce,de=pe):(Z[de]=me,Z[ne]=ce,de=ne);else if(pei(xe,ce))Z[de]=xe,Z[pe]=ce,de=pe;else break e}}return X}function i(Z,X){var ce=Z.sortIndex-X.sortIndex;return ce!==0?ce:Z.id-X.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(Z){for(var X=a(d);X!==null;){if(X.callback===null)n(d);else if(X.startTime<=Z)n(d),X.sortIndex=X.expirationTime,e(c,X);else break;X=a(d)}}function N(Z){if(v=!1,C(Z),!g)if(a(c)!==null)g=!0,T||(T=!0,I());else{var X=a(d);X!==null&&K(N,X.startTime-Z)}}var T=!1,j=-1,D=5,P=-1;function E(){return b?!0:!(t.unstable_now()-PZ&&E());){var de=m.callback;if(typeof de=="function"){m.callback=null,p=m.priorityLevel;var oe=de(m.expirationTime<=Z);if(Z=t.unstable_now(),typeof oe=="function"){m.callback=oe,C(Z),X=!0;break t}m===a(c)&&n(c),C(Z)}else n(c);m=a(c)}if(m!==null)X=!0;else{var Y=a(d);Y!==null&&K(N,Y.startTime-Z),X=!1}}break e}finally{m=null,p=ce,f=!1}X=void 0}}finally{X?I():T=!1}}}var I;if(typeof k=="function")I=function(){k(z)};else if(typeof MessageChannel<"u"){var O=new MessageChannel,R=O.port2;O.port1.onmessage=z,I=function(){R.postMessage(null)}}else I=function(){x(z,0)};function K(Z,X){j=x(function(){Z(t.unstable_now())},X)}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(Z){Z.callback=null},t.unstable_forceFrameRate=function(Z){0>Z||125de?(Z.sortIndex=ce,e(d,Z),a(c)===null&&Z===a(d)&&(v?(S(j),j=-1):v=!0,K(N,ce-de))):(Z.sortIndex=oe,e(c,Z),g||f||(g=!0,T||(T=!0,I()))),Z},t.unstable_shouldYield=E,t.unstable_wrapCallback=function(Z){var X=p;return function(){var ce=p;p=X;try{return Z.apply(this,arguments)}finally{p=ce}}}})(dE)),dE}var Iq;function bme(){return Iq||(Iq=1,cE.exports=gme()),cE.exports}var uE={exports:{}},qs={};var Oq;function xme(){if(Oq)return qs;Oq=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(),uE.exports=xme(),uE.exports}var Uq;function yme(){if(Uq)return s0;Uq=1;var t=bme(),e=ub(),a=lZ();function n(h){var w="https://react.dev/errors/"+h;if(1oe||(h.current=de[oe],de[oe]=null,oe--)}function me(h,w){oe++,de[oe]=h.current,h.current=w}var pe=Y(null),xe=Y(null),V=Y(null),Q=Y(null);function A(h,w){switch(me(V,w),me(xe,h),me(pe,null),w.nodeType){case 9:case 11:h=(h=w.documentElement)&&(h=h.namespaceURI)?aq(h):0;break;default:if(h=w.tagName,w=w.namespaceURI)w=aq(w),h=rq(w,h);else switch(h){case"svg":h=1;break;case"math":h=2;break;default:h=0}}ne(pe),me(pe,h)}function F(){ne(pe),ne(xe),ne(V)}function U(h){h.memoizedState!==null&&me(Q,h);var w=pe.current,_=rq(w,h.type);w!==_&&(me(xe,h),me(pe,_))}function $(h){xe.current===h&&(ne(pe),ne(xe)),Q.current===h&&(ne(Q),t0._currentValue=ce)}var H,le;function B(h){if(H===void 0)try{throw Error()}catch(_){var w=_.stack.trim().match(/\n( *(at )?)/);H=w&&w[1]||"",le=-1<_.stack.indexOf(` at`)?" ()":-1<_.stack.indexOf("@")?"@unknown:0:0":""}return` -`+H+h+le}var q=!1;function J(h,w){if(!h||q)return"";q=!0;var _=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var M={DetermineComponentFrameRoot:function(){try{if(w){var $t=function(){throw Error()};if(Object.defineProperty($t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct($t,[])}catch(zt){var Dt=zt}Reflect.construct(h,[],$t)}else{try{$t.call()}catch(zt){Dt=zt}h.call($t.prototype)}}else{try{throw Error()}catch(zt){Dt=zt}($t=h())&&typeof $t.catch=="function"&&$t.catch(function(){})}}catch(zt){if(zt&&Dt&&typeof zt.stack=="string")return[zt.stack,Dt.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 te=M.DetermineComponentFrameRoot(),ke=te[0],qe=te[1];if(ke&&qe){var mt=ke.split(` +`+H+h+le}var q=!1;function J(h,w){if(!h||q)return"";q=!0;var _=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var M={DetermineComponentFrameRoot:function(){try{if(w){var Kt=function(){throw Error()};if(Object.defineProperty(Kt.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(Kt,[])}catch(It){var Dt=It}Reflect.construct(h,[],Kt)}else{try{Kt.call()}catch(It){Dt=It}h.call(Kt.prototype)}}else{try{throw Error()}catch(It){Dt=It}(Kt=h())&&typeof Kt.catch=="function"&&Kt.catch(function(){})}}catch(It){if(It&&Dt&&typeof It.stack=="string")return[It.stack,Dt.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 te=M.DetermineComponentFrameRoot(),Se=te[0],qe=te[1];if(Se&&qe){var mt=Se.split(` `),Et=qe.split(` -`);for(W=M=0;MW||mt[M]!==Et[W]){var Bt=` -`+mt[M].replace(" at new "," at ");return h.displayName&&Bt.includes("")&&(Bt=Bt.replace("",h.displayName)),Bt}while(1<=M&&0<=W);break}}}finally{q=!1,Error.prepareStackTrace=_}return(_=h?h.displayName||h.name:"")?B(_):""}function ee(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 J(h.type,!1);case 11:return J(h.type.render,!1);case 1:return J(h.type,!0);case 31:return B("Activity");default:return""}}function ae(h){try{var w="",_=null;do w+=ee(h,_),_=h,h=h.return;while(h);return w}catch(M){return` +`);for(W=M=0;MW||mt[M]!==Et[W]){var Ut=` +`+mt[M].replace(" at new "," at ");return h.displayName&&Ut.includes("")&&(Ut=Ut.replace("",h.displayName)),Ut}while(1<=M&&0<=W);break}}}finally{q=!1,Error.prepareStackTrace=_}return(_=h?h.displayName||h.name:"")?B(_):""}function ee(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 J(h.type,!1);case 11:return J(h.type.render,!1);case 1:return J(h.type,!0);case 31:return B("Activity");default:return""}}function ae(h){try{var w="",_=null;do w+=ee(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,ue=t.unstable_cancelCallback,fe=t.unstable_shouldYield,G=t.unstable_requestPaint,L=t.unstable_now,re=t.unstable_getCurrentPriorityLevel,ge=t.unstable_ImmediatePriority,be=t.unstable_UserBlockingPriority,we=t.unstable_NormalPriority,De=t.unstable_LowPriority,Me=t.unstable_IdlePriority,Te=t.log,Ue=t.unstable_setDisableYieldValue,Ne=null,Ie=null;function Re(h){if(typeof Te=="function"&&Ue(h),Ie&&typeof Ie.setStrictMode=="function")try{Ie.setStrictMode(Ne,h)}catch{}}var He=Math.clz32?Math.clz32:Oe,ze=Math.log,nt=Math.LN2;function Oe(h){return h>>>=0,h===0?32:31-(ze(h)/nt|0)|0}var tt=256,Ee=262144,Ye=4194304;function Ve(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 je(h,w,_){var M=h.pendingLanes;if(M===0)return 0;var W=0,te=h.suspendedLanes,ke=h.pingedLanes;h=h.warmLanes;var qe=M&134217727;return qe!==0?(M=qe&~te,M!==0?W=Ve(M):(ke&=qe,ke!==0?W=Ve(ke):_||(_=qe&~h,_!==0&&(W=Ve(_))))):(qe=M&~te,qe!==0?W=Ve(qe):ke!==0?W=Ve(ke):_||(_=M&~h,_!==0&&(W=Ve(_)))),W===0?0:w!==0&&w!==W&&(w&te)===0&&(te=W&-W,_=w&-w,te>=_||te===32&&(_&4194048)!==0)?w:W}function Be(h,w){return(h.pendingLanes&~(h.suspendedLanes&~h.pingedLanes)&w)===0}function Xe(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 Ge(){var h=Ye;return Ye<<=1,(Ye&62914560)===0&&(Ye=4194304),h}function Fe(h){for(var w=[],_=0;31>_;_++)w.push(h);return w}function at(h,w){h.pendingLanes|=w,w!==268435456&&(h.suspendedLanes=0,h.pingedLanes=0,h.warmLanes=0)}function Je(h,w,_,M,W,te){var ke=h.pendingLanes;h.pendingLanes=_,h.suspendedLanes=0,h.pingedLanes=0,h.warmLanes=0,h.expiredLanes&=_,h.entangledLanes&=_,h.errorRecoveryDisabledLanes&=_,h.shellSuspendCounter=0;var qe=h.entanglements,mt=h.expirationTimes,Et=h.hiddenUpdates;for(_=ke&~_;0<_;){var Bt=31-He(_),$t=1<"u")return null;try{return h.activeElement||h.body}catch{return h.body}}var br=/[\n"\\]/g;function Ta(h){return h.replace(br,function(w){return"\\"+w.charCodeAt(0).toString(16)+" "})}function qa(h,w,_,M,W,te,ke,qe){h.name="",ke!=null&&typeof ke!="function"&&typeof ke!="symbol"&&typeof ke!="boolean"?h.type=ke:h.removeAttribute("type"),w!=null?ke==="number"?(w===0&&h.value===""||h.value!=w)&&(h.value=""+Yt(w)):h.value!==""+Yt(w)&&(h.value=""+Yt(w)):ke!=="submit"&&ke!=="reset"||h.removeAttribute("value"),w!=null?$r(h,ke,Yt(w)):_!=null?$r(h,ke,Yt(_)):M!=null&&h.removeAttribute("value"),W==null&&te!=null&&(h.defaultChecked=!!te),W!=null&&(h.checked=W&&typeof W!="function"&&typeof W!="symbol"),qe!=null&&typeof qe!="function"&&typeof qe!="symbol"&&typeof qe!="boolean"?h.name=""+Yt(qe):h.removeAttribute("name")}function za(h,w,_,M,W,te,ke,qe){if(te!=null&&typeof te!="function"&&typeof te!="symbol"&&typeof te!="boolean"&&(h.type=te),w!=null||_!=null){if(!(te!=="submit"&&te!=="reset"||w!=null)){ea(h);return}_=_!=null?""+Yt(_):"",w=w!=null?""+Yt(w):_,qe||w===h.value||(h.value=w),h.defaultValue=w}M=M??W,M=typeof M!="function"&&typeof M!="symbol"&&!!M,h.checked=qe?h.checked:!!M,h.defaultChecked=!!M,ke!=null&&typeof ke!="function"&&typeof ke!="symbol"&&typeof ke!="boolean"&&(h.name=ke),ea(h)}function $r(h,w,_){w==="number"&&Oa(h.ownerDocument)===h||h.defaultValue===""+_||(h.defaultValue=""+_)}function Dr(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(er)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 ci=null,Du=null,wi=null;function Sf(){if(wi)return wi;var h,w=Du,_=w.length,M,W="value"in ci?ci.value:ci.textContent,te=W.length;for(h=0;h<_&&w[h]===W[h];h++);var ke=_-h;for(M=1;M<=ke&&w[_-M]===W[te-M];M++);return wi=W.slice(h,1=ui),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 Rt(h){return h=h.detail,typeof h=="object"&&"data"in h?h.data:null}var da=!1;function Aa(h,w){switch(h){case"compositionend":return Rt(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 Va(h,w){if(da)return h==="compositionend"||!ol&&ye(h,w)?(h=Sf(),wi=Du=ci=null,da=!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=Oa(h.document);w instanceof h.HTMLIFrameElement;){try{var _=typeof w.contentWindow.location.href=="string"}catch{_=!1}if(_)h=w.contentWindow;else break;w=Oa(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=er&&"documentMode"in document&&11>=document.documentMode,pi=null,xr=null,Lr=null,Qn=!1;function kp(h,w,_){var M=_.window===_?_.document:_.nodeType===9?_:_.ownerDocument;Qn||pi==null||pi!==Oa(M)||(M=pi,"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}),Lr&&ws(Lr,M)||(Lr=M,M=b_(xr,"onSelect"),0>=ke,W-=ke,Dd=1<<32-He(w)+W|_<ar?(Cr=Na,Na=null):Cr=Na.sibling;var zr=Dt(kt,Na,Mt[ar],qt);if(zr===null){Na===null&&(Na=Cr);break}h&&Na&&zr.alternate===null&&w(kt,Na),gt=te(zr,gt,ar),Rr===null?Fa=zr:Rr.sibling=zr,Rr=zr,Na=Cr}if(ar===Mt.length)return _(kt,Na),Tr&&Uu(kt,ar),Fa;if(Na===null){for(;arar?(Cr=Na,Na=null):Cr=Na.sibling;var Gp=Dt(kt,Na,zr.value,qt);if(Gp===null){Na===null&&(Na=Cr);break}h&&Na&&Gp.alternate===null&&w(kt,Na),gt=te(Gp,gt,ar),Rr===null?Fa=Gp:Rr.sibling=Gp,Rr=Gp,Na=Cr}if(zr.done)return _(kt,Na),Tr&&Uu(kt,ar),Fa;if(Na===null){for(;!zr.done;ar++,zr=Mt.next())zr=$t(kt,zr.value,qt),zr!==null&&(gt=te(zr,gt,ar),Rr===null?Fa=zr:Rr.sibling=zr,Rr=zr);return Tr&&Uu(kt,ar),Fa}for(Na=M(Na);!zr.done;ar++,zr=Mt.next())zr=zt(Na,kt,ar,zr.value,qt),zr!==null&&(h&&zr.alternate!==null&&Na.delete(zr.key===null?ar:zr.key),gt=te(zr,gt,ar),Rr===null?Fa=zr:Rr.sibling=zr,Rr=zr);return h&&Na.forEach(function(dme){return w(kt,dme)}),Tr&&Uu(kt,ar),Fa}function nn(kt,gt,Mt,qt){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 Fa=Mt.key;gt!==null;){if(gt.key===Fa){if(Fa=Mt.type,Fa===v){if(gt.tag===7){_(kt,gt.sibling),qt=W(gt,Mt.props.children),qt.return=kt,kt=qt;break e}}else if(gt.elementType===Fa||typeof Fa=="object"&&Fa!==null&&Fa.$$typeof===D&&Ef(Fa)===gt.type){_(kt,gt.sibling),qt=W(gt,Mt.props),Ev(qt,Mt),qt.return=kt,kt=qt;break e}_(kt,gt);break}else w(kt,gt);gt=gt.sibling}Mt.type===v?(qt=Nf(Mt.props.children,kt.mode,qt,Mt.key),qt.return=kt,kt=qt):(qt=Fk(Mt.type,Mt.key,Mt.props,null,kt.mode,qt),Ev(qt,Mt),qt.return=kt,kt=qt)}return ke(kt);case g:e:{for(Fa=Mt.key;gt!==null;){if(gt.key===Fa)if(gt.tag===4&>.stateNode.containerInfo===Mt.containerInfo&>.stateNode.implementation===Mt.implementation){_(kt,gt.sibling),qt=W(gt,Mt.children||[]),qt.return=kt,kt=qt;break e}else{_(kt,gt);break}else w(kt,gt);gt=gt.sibling}qt=_j(Mt,kt.mode,qt),qt.return=kt,kt=qt}return ke(kt);case D:return Mt=Ef(Mt),nn(kt,gt,Mt,qt)}if(K(Mt))return ka(kt,gt,Mt,qt);if(I(Mt)){if(Fa=I(Mt),typeof Fa!="function")throw Error(n(150));return Mt=Fa.call(Mt),Ba(kt,gt,Mt,qt)}if(typeof Mt.then=="function")return nn(kt,gt,Uk(Mt),qt);if(Mt.$$typeof===k)return nn(kt,gt,zk(kt,Mt),qt);Hk(kt,Mt)}return typeof Mt=="string"&&Mt!==""||typeof Mt=="number"||typeof Mt=="bigint"?(Mt=""+Mt,gt!==null&>.tag===6?(_(kt,gt.sibling),qt=W(gt,Mt),qt.return=kt,kt=qt):(_(kt,gt),qt=kj(Mt,kt.mode,qt),qt.return=kt,kt=qt),ke(kt)):_(kt,gt)}return function(kt,gt,Mt,qt){try{Mv=0;var Fa=nn(kt,gt,Mt,qt);return zb=null,Fa}catch(Na){if(Na===Rb||Na===Ok)throw Na;var Rr=ll(29,Na,null,kt.mode);return Rr.lanes=qt,Rr.return=kt,Rr}}}var Ff=W5(!0),K5=W5(!1),Tp=!1;function Rj(h){h.updateQueue={baseState:h.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function zj(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,(Hr&2)!==0){var W=M.pending;return W===null?w.next=w:(w.next=W.next,W.next=w),M.pending=w,w=Dk(h),M5(h,null,_),w}return Ek(h,M,w,_),Dk(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=_,Vt(h,_)}}function Ij(h,w){var _=h.updateQueue,M=h.alternate;if(M!==null&&(M=M.updateQueue,_===M)){var W=null,te=null;if(_=_.firstBaseUpdate,_!==null){do{var ke={lane:_.lane,tag:_.tag,payload:_.payload,callback:null,next:null};te===null?W=te=ke:te=te.next=ke,_=_.next}while(_!==null);te===null?W=te=w:te=te.next=w}else W=te=w;_={baseState:M.baseState,firstBaseUpdate:W,lastBaseUpdate:te,shared:M.shared,callbacks:M.callbacks},h.updateQueue=_;return}h=_.lastBaseUpdate,h===null?_.firstBaseUpdate=w:h.next=w,_.lastBaseUpdate=w}var Oj=!1;function Fv(){if(Oj){var h=Lb;if(h!==null)throw h}}function Lv(h,w,_,M){Oj=!1;var W=h.updateQueue;Tp=!1;var te=W.firstBaseUpdate,ke=W.lastBaseUpdate,qe=W.shared.pending;if(qe!==null){W.shared.pending=null;var mt=qe,Et=mt.next;mt.next=null,ke===null?te=Et:ke.next=Et,ke=mt;var Bt=h.alternate;Bt!==null&&(Bt=Bt.updateQueue,qe=Bt.lastBaseUpdate,qe!==ke&&(qe===null?Bt.firstBaseUpdate=Et:qe.next=Et,Bt.lastBaseUpdate=mt))}if(te!==null){var $t=W.baseState;ke=0,Bt=Et=mt=null,qe=te;do{var Dt=qe.lane&-536870913,zt=Dt!==qe.lane;if(zt?(Pr&Dt)===Dt:(M&Dt)===Dt){Dt!==0&&Dt===Fb&&(Oj=!0),Bt!==null&&(Bt=Bt.next={lane:0,tag:qe.tag,payload:qe.payload,callback:null,next:null});e:{var ka=h,Ba=qe;Dt=w;var nn=_;switch(Ba.tag){case 1:if(ka=Ba.payload,typeof ka=="function"){$t=ka.call(nn,$t,Dt);break e}$t=ka;break e;case 3:ka.flags=ka.flags&-65537|128;case 0:if(ka=Ba.payload,Dt=typeof ka=="function"?ka.call(nn,$t,Dt):ka,Dt==null)break e;$t=m({},$t,Dt);break e;case 2:Tp=!0}}Dt=qe.callback,Dt!==null&&(h.flags|=64,zt&&(h.flags|=8192),zt=W.callbacks,zt===null?W.callbacks=[Dt]:zt.push(Dt))}else zt={lane:Dt,tag:qe.tag,payload:qe.payload,callback:qe.callback,next:null},Bt===null?(Et=Bt=zt,mt=$t):Bt=Bt.next=zt,ke|=Dt;if(qe=qe.next,qe===null){if(qe=W.shared.pending,qe===null)break;zt=qe,qe=zt.next,zt.next=null,W.lastBaseUpdate=zt,W.shared.pending=null}}while(!0);Bt===null&&(mt=$t),W.baseState=mt,W.firstBaseUpdate=Et,W.lastBaseUpdate=Bt,te===null&&(W.shared.lanes=0),Lp|=ke,h.lanes=ke,h.memoizedState=$t}}function Y5(h,w){if(typeof h!="function")throw Error(n(191,h));h.call(w)}function Q5(h,w){var _=h.callbacks;if(_!==null)for(h.callbacks=null,h=0;h<_.length;h++)Y5(_[h],w)}var Ib=Y(null),qk=Y(0);function X5(h,w){h=Zu,me(qk,h),me(Ib,w),Zu=h|w.baseLanes}function Bj(){me(qk,Zu),me(Ib,Ib.current)}function Uj(){Zu=qk.current,ne(Ib),ne(qk)}var cl=Y(null),Ql=null;function Mp(h){var w=h.alternate;me(hi,hi.current&1),me(cl,h),Ql===null&&(w===null||Ib.current!==null||w.memoizedState!==null)&&(Ql=h)}function Hj(h){me(hi,hi.current),me(cl,h),Ql===null&&(Ql=h)}function Z5(h){h.tag===22?(me(hi,hi.current),me(cl,h),Ql===null&&(Ql=h)):Ep()}function Ep(){me(hi,hi.current),me(cl,cl.current)}function dl(h){ne(cl),Ql===h&&(Ql=null),ne(hi)}var hi=Y(0);function Vk(h){for(var w=h;w!==null;){if(w.tag===13){var _=w.memoizedState;if(_!==null&&(_=_.dehydrated,_===null||KM(_)||YM(_)))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 Vu=0,tr=null,an=null,_i=null,Gk=!1,Ob=!1,Lf=!1,$k=0,Rv=0,Bb=null,eue=0;function Xn(){throw Error(n(321))}function qj(h,w){if(w===null)return!1;for(var _=0;_te?te:8;var ke=Z.T,qe={};Z.T=qe,nM(h,!1,w,_);try{var mt=W(),Et=Z.S;if(Et!==null&&Et(qe,mt),mt!==null&&typeof mt=="object"&&typeof mt.then=="function"){var Bt=Jde(mt,M);Iv(h,w,Bt,pl(h))}else Iv(h,w,M,pl(h))}catch($t){Iv(h,w,{then:function(){},status:"rejected",reason:$t},pl())}finally{X.p=te,ke!==null&&qe.types!==null&&(ke.types=qe.types),Z.T=ke}}function iue(){}function aM(h,w,_,M){if(h.tag!==5)throw Error(n(476));var W=TU(h).queue;NU(h,W,w,ce,_===null?iue:function(){return AU(h),_(M)})}function TU(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 AU(h){var w=TU(h);w.next===null&&(w=h.alternate.memoizedState),Iv(h,w.next.queue,{},pl())}function rM(){return ks(t0)}function jU(){return fi().memoizedState}function MU(){return fi().memoizedState}function sue(h){for(var w=h.return;w!==null;){switch(w.tag){case 24:case 3:var _=pl();h=Ap(_);var M=jp(w,h,_);M!==null&&(Io(M,w,_),Dv(M,w,_)),w={cache:Ej()},h.payload=w;return}w=w.return}}function oue(h,w,_){var M=pl();_={lane:M,revertLane:0,gesture:null,action:_,hasEagerState:!1,eagerState:null,next:null},Zk(h)?DU(w,_):(_=wj(h,w,_,M),_!==null&&(Io(_,h,M),FU(_,w,M)))}function EU(h,w,_){var M=pl();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(Zk(h))DU(w,W);else{var te=h.alternate;if(h.lanes===0&&(te===null||te.lanes===0)&&(te=w.lastRenderedReducer,te!==null))try{var ke=w.lastRenderedState,qe=te(ke,_);if(W.hasEagerState=!0,W.eagerState=qe,Dn(qe,ke))return Ek(h,w,W,0),gn===null&&Mk(),!1}catch{}if(_=wj(h,w,W,M),_!==null)return Io(_,h,M),FU(_,w,M),!0}return!1}function nM(h,w,_,M){if(M={lane:2,revertLane:RM(),gesture:null,action:M,hasEagerState:!1,eagerState:null,next:null},Zk(h)){if(w)throw Error(n(479))}else w=wj(h,_,M,2),w!==null&&Io(w,h,2)}function Zk(h){var w=h.alternate;return h===tr||w!==null&&w===tr}function DU(h,w){Ob=Gk=!0;var _=h.pending;_===null?w.next=w:(w.next=_.next,_.next=w),h.pending=w}function FU(h,w,_){if((_&4194048)!==0){var M=w.lanes;M&=h.pendingLanes,_|=M,w.lanes=_,Vt(h,_)}}var Ov={readContext:ks,use:Kk,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 LU={readContext:ks,use:Kk,useCallback:function(h,w){return mo().memoizedState=[h,w===void 0?null:w],h},useContext:ks,useEffect:xU,useImperativeHandle:function(h,w,_){_=_!=null?_.concat([h]):null,Qk(4194308,4,SU.bind(null,w,h),_)},useLayoutEffect:function(h,w){return Qk(4194308,4,h,w)},useInsertionEffect:function(h,w){Qk(4,2,h,w)},useMemo:function(h,w){var _=mo();w=w===void 0?null:w;var M=h();if(Lf){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(Lf){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=oue.bind(null,tr,h),[M.memoizedState,h]},useRef:function(h){var w=mo();return h={current:h},w.memoizedState=h},useState:function(h){h=Xj(h);var w=h.queue,_=EU.bind(null,tr,w);return w.dispatch=_,[h.memoizedState,_]},useDebugValue:eM,useDeferredValue:function(h,w){var _=mo();return tM(_,h,w)},useTransition:function(){var h=Xj(!1);return h=NU.bind(null,tr,h.queue,!0,!1),mo().memoizedState=h,[!1,h]},useSyncExternalStore:function(h,w,_){var M=tr,W=mo();if(Tr){if(_===void 0)throw Error(n(407));_=_()}else{if(_=w(),gn===null)throw Error(n(349));(Pr&127)!==0||aU(M,w,_)}W.memoizedState=_;var te={value:_,getSnapshot:w};return W.queue=te,xU(nU.bind(null,M,te,h),[h]),M.flags|=2048,Ub(9,{destroy:void 0},rU.bind(null,M,te,_,w),null),_},useId:function(){var h=mo(),w=gn.identifierPrefix;if(Tr){var _=Fd,M=Dd;_=(M&~(1<<32-He(M)-1)).toString(32)+_,w="_"+w+"R_"+_,_=$k++,0<_&&(w+="H"+_.toString(32)),w+="_"}else _=eue++,w="_"+w+"r_"+_.toString(32)+"_";return h.memoizedState=w},useHostTransitionStatus:rM,useFormState:pU,useActionState:pU,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=nM.bind(null,tr,!0,_),_.dispatch=w,[h,w]},useMemoCache:Kj,useCacheRefresh:function(){return mo().memoizedState=sue.bind(null,tr)},useEffectEvent:function(h){var w=mo(),_={impl:h};return w.memoizedState=_,function(){if((Hr&2)!==0)throw Error(n(440));return _.impl.apply(void 0,arguments)}}},iM={readContext:ks,use:Kk,useCallback:_U,useContext:ks,useEffect:Jj,useImperativeHandle:kU,useInsertionEffect:vU,useLayoutEffect:wU,useMemo:PU,useReducer:Yk,useRef:bU,useState:function(){return Yk(Gu)},useDebugValue:eM,useDeferredValue:function(h,w){var _=fi();return CU(_,an.memoizedState,h,w)},useTransition:function(){var h=Yk(Gu)[0],w=fi().memoizedState;return[typeof h=="boolean"?h:zv(h),w]},useSyncExternalStore:tU,useId:jU,useHostTransitionStatus:rM,useFormState:hU,useActionState:hU,useOptimistic:function(h,w){var _=fi();return oU(_,an,h,w)},useMemoCache:Kj,useCacheRefresh:MU};iM.useEffectEvent=yU;var RU={readContext:ks,use:Kk,useCallback:_U,useContext:ks,useEffect:Jj,useImperativeHandle:kU,useInsertionEffect:vU,useLayoutEffect:wU,useMemo:PU,useReducer:Qj,useRef:bU,useState:function(){return Qj(Gu)},useDebugValue:eM,useDeferredValue:function(h,w){var _=fi();return an===null?tM(_,h,w):CU(_,an.memoizedState,h,w)},useTransition:function(){var h=Qj(Gu)[0],w=fi().memoizedState;return[typeof h=="boolean"?h:zv(h),w]},useSyncExternalStore:tU,useId:jU,useHostTransitionStatus:rM,useFormState:gU,useActionState:gU,useOptimistic:function(h,w){var _=fi();return an!==null?oU(_,an,h,w):(_.baseState=h,[h,_.queue.dispatch])},useMemoCache:Kj,useCacheRefresh:MU};RU.useEffectEvent=yU;function sM(h,w,_,M){w=h.memoizedState,_=_(M,w),_=_==null?w:m({},w,_),h.memoizedState=_,h.lanes===0&&(h.updateQueue.baseState=_)}var oM={enqueueSetState:function(h,w,_){h=h._reactInternals;var M=pl(),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=pl(),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 _=pl(),M=Ap(_);M.tag=2,w!=null&&(M.callback=w),w=jp(h,M,_),w!==null&&(Io(w,h,_),Dv(w,h,_))}};function zU(h,w,_,M,W,te,ke){return h=h.stateNode,typeof h.shouldComponentUpdate=="function"?h.shouldComponentUpdate(M,te,ke):w.prototype&&w.prototype.isPureReactComponent?!ws(_,M)||!ws(W,te):!0}function IU(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&&oM.enqueueReplaceState(w,w.state,null)}function Rf(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 OU(h){jk(h)}function BU(h){console.error(h)}function UU(h){jk(h)}function Jk(h,w){try{var _=h.onUncaughtError;_(w.value,{componentStack:w.stack})}catch(M){setTimeout(function(){throw M})}}function HU(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 lM(h,w,_){return _=Ap(_),_.tag=3,_.payload={element:null},_.callback=function(){Jk(h,w)},_}function qU(h){return h=Ap(h),h.tag=3,h}function VU(h,w,_,M){var W=_.type.getDerivedStateFromError;if(typeof W=="function"){var te=M.value;h.payload=function(){return W(te)},h.callback=function(){HU(w,_,M)}}var ke=_.stateNode;ke!==null&&typeof ke.componentDidCatch=="function"&&(h.callback=function(){HU(w,_,M),typeof W!="function"&&(Rp===null?Rp=new Set([this]):Rp.add(this));var qe=M.stack;this.componentDidCatch(M.value,{componentStack:qe!==null?qe:""})})}function lue(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),_=cl.current,_!==null){switch(_.tag){case 31:case 13:return Ql===null?u_():_.alternate===null&&Zn===0&&(Zn=3),_.flags&=-257,_.flags|=65536,_.lanes=W,M===Bk?_.flags|=16384:(w=_.updateQueue,w===null?_.updateQueue=new Set([M]):w.add(M),DM(h,M,W)),!1;case 22:return _.flags|=65536,M===Bk?_.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)),DM(h,M,W)),!1}throw Error(n(435,_.tag))}return DM(h,M,W),u_(),!1}if(Tr)return w=cl.current,w!==null?((w.flags&65536)===0&&(w.flags|=256),w.flags|=65536,w.lanes=W,M!==Nj&&(h=Error(n(422),{cause:M}),Tv($l(h,_)))):(M!==Nj&&(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=lM(h.stateNode,M,W),Ij(h,W),Zn!==4&&(Zn=2)),!1;var te=Error(n(520),{cause:M});if(te=$l(te,_),Wv===null?Wv=[te]:Wv.push(te),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=lM(_.stateNode,M,h),Ij(_,h),!1;case 1:if(w=_.type,te=_.stateNode,(_.flags&128)===0&&(typeof w.getDerivedStateFromError=="function"||te!==null&&typeof te.componentDidCatch=="function"&&(Rp===null||!Rp.has(te))))return _.flags|=65536,W&=-W,_.lanes|=W,W=qU(W),VU(W,h,_,M),Ij(_,W),!1}_=_.return}while(_!==null);return!1}var cM=Error(n(461)),Pi=!1;function _s(h,w,_,M){w.child=h===null?K5(w,null,_,M):Ff(w,h.child,_,M)}function GU(h,w,_,M,W){_=_.render;var te=w.ref;if("ref"in M){var ke={};for(var qe in M)qe!=="ref"&&(ke[qe]=M[qe])}else ke=M;return jf(w),M=Vj(h,w,_,ke,te,W),qe=Gj(),h!==null&&!Pi?($j(h,w,W),$u(h,w,W)):(Tr&&qe&&Pj(w),w.flags|=1,_s(h,w,M,W),w.child)}function $U(h,w,_,M,W){if(h===null){var te=_.type;return typeof te=="function"&&!Sj(te)&&te.defaultProps===void 0&&_.compare===null?(w.tag=15,w.type=te,WU(h,w,te,M,W)):(h=Fk(_.type,null,M,w,w.mode,W),h.ref=w.ref,h.return=w,w.child=h)}if(te=h.child,!bM(h,W)){var ke=te.memoizedProps;if(_=_.compare,_=_!==null?_:ws,_(ke,M)&&h.ref===w.ref)return $u(h,w,W)}return w.flags|=1,h=Bu(te,M),h.ref=w.ref,h.return=w,w.child=h}function WU(h,w,_,M,W){if(h!==null){var te=h.memoizedProps;if(ws(te,M)&&h.ref===w.ref)if(Pi=!1,w.pendingProps=M=te,bM(h,W))(h.flags&131072)!==0&&(Pi=!0);else return w.lanes=h.lanes,$u(h,w,W)}return dM(h,w,_,M,W)}function KU(h,w,_,M){var W=M.children,te=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(te=te!==null?te.baseLanes|_:_,h!==null){for(M=w.child=h.child,W=0;M!==null;)W=W|M.lanes|M.childLanes,M=M.sibling;M=W&~te}else M=0,w.child=null;return YU(h,w,te,_,M)}if((_&536870912)!==0)w.memoizedState={baseLanes:0,cachePool:null},h!==null&&Ik(w,te!==null?te.cachePool:null),te!==null?X5(w,te):Bj(),Z5(w);else return M=w.lanes=536870912,YU(h,w,te!==null?te.baseLanes|_:_,_,M)}else te!==null?(Ik(w,te.cachePool),X5(w,te),Ep(),w.memoizedState=null):(h!==null&&Ik(w,null),Bj(),Ep());return _s(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 YU(h,w,_,M,W){var te=Fj();return te=te===null?null:{parent:ki._currentValue,pool:te},w.memoizedState={baseLanes:_,cachePool:te},h!==null&&Ik(w,null),Bj(),Z5(w),h!==null&&Db(h,w,M,!0),w.childLanes=W,null}function e_(h,w){return w=a_({mode:w.mode,children:w.children},h.mode),w.ref=h.ref,h.child=w,w.return=h,w}function QU(h,w,_){return Ff(w,h.child,null,_),h=e_(w,w.pendingProps),h.flags|=2,dl(w),w.memoizedState=null,h}function cue(h,w,_){var M=w.pendingProps,W=(w.flags&128)!==0;if(w.flags&=-129,h===null){if(Tr){if(M.mode==="hidden")return h=e_(w,M),w.lanes=536870912,Bv(null,h);if(Hj(w),(h=Cn)?(h=lq(h,Yl),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},_=D5(h),_.return=w,w.child=_,Ss=w,Cn=null)):h=null,h===null)throw Cp(w);return w.lanes=536870912,null}return e_(w,M)}var te=h.memoizedState;if(te!==null){var ke=te.dehydrated;if(Hj(w),W)if(w.flags&256)w.flags&=-257,w=QU(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=gn,M!==null&&(ke=ht(M,_),ke!==0&&ke!==te.retryLane))throw te.retryLane=ke,Cf(h,ke),Io(M,h,ke),cM;u_(),w=QU(h,w,_)}else h=te.treeContext,Cn=Xl(ke.nextSibling),Ss=w,Tr=!0,Pp=null,Yl=!1,h!==null&&R5(w,h),w=e_(w,M),w.flags|=4096;return w}return h=Bu(h.child,{mode:M.mode,children:M.children}),h.ref=w.ref,w.child=h,h.return=w,h}function t_(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 dM(h,w,_,M,W){return jf(w),_=Vj(h,w,_,M,void 0,W),M=Gj(),h!==null&&!Pi?($j(h,w,W),$u(h,w,W)):(Tr&&M&&Pj(w),w.flags|=1,_s(h,w,_,W),w.child)}function XU(h,w,_,M,W,te){return jf(w),w.updateQueue=null,_=eU(w,M,_,W),J5(h),M=Gj(),h!==null&&!Pi?($j(h,w,te),$u(h,w,te)):(Tr&&M&&Pj(w),w.flags|=1,_s(h,w,_,te),w.child)}function ZU(h,w,_,M,W){if(jf(w),w.stateNode===null){var te=Ab,ke=_.contextType;typeof ke=="object"&&ke!==null&&(te=ks(ke)),te=new _(M,te),w.memoizedState=te.state!==null&&te.state!==void 0?te.state:null,te.updater=oM,w.stateNode=te,te._reactInternals=w,te=w.stateNode,te.props=M,te.state=w.memoizedState,te.refs={},Rj(w),ke=_.contextType,te.context=typeof ke=="object"&&ke!==null?ks(ke):Ab,te.state=w.memoizedState,ke=_.getDerivedStateFromProps,typeof ke=="function"&&(sM(w,_,ke,M),te.state=w.memoizedState),typeof _.getDerivedStateFromProps=="function"||typeof te.getSnapshotBeforeUpdate=="function"||typeof te.UNSAFE_componentWillMount!="function"&&typeof te.componentWillMount!="function"||(ke=te.state,typeof te.componentWillMount=="function"&&te.componentWillMount(),typeof te.UNSAFE_componentWillMount=="function"&&te.UNSAFE_componentWillMount(),ke!==te.state&&oM.enqueueReplaceState(te,te.state,null),Lv(w,M,te,W),Fv(),te.state=w.memoizedState),typeof te.componentDidMount=="function"&&(w.flags|=4194308),M=!0}else if(h===null){te=w.stateNode;var qe=w.memoizedProps,mt=Rf(_,qe);te.props=mt;var Et=te.context,Bt=_.contextType;ke=Ab,typeof Bt=="object"&&Bt!==null&&(ke=ks(Bt));var $t=_.getDerivedStateFromProps;Bt=typeof $t=="function"||typeof te.getSnapshotBeforeUpdate=="function",qe=w.pendingProps!==qe,Bt||typeof te.UNSAFE_componentWillReceiveProps!="function"&&typeof te.componentWillReceiveProps!="function"||(qe||Et!==ke)&&IU(w,te,M,ke),Tp=!1;var Dt=w.memoizedState;te.state=Dt,Lv(w,M,te,W),Fv(),Et=w.memoizedState,qe||Dt!==Et||Tp?(typeof $t=="function"&&(sM(w,_,$t,M),Et=w.memoizedState),(mt=Tp||zU(w,_,mt,M,Dt,Et,ke))?(Bt||typeof te.UNSAFE_componentWillMount!="function"&&typeof te.componentWillMount!="function"||(typeof te.componentWillMount=="function"&&te.componentWillMount(),typeof te.UNSAFE_componentWillMount=="function"&&te.UNSAFE_componentWillMount()),typeof te.componentDidMount=="function"&&(w.flags|=4194308)):(typeof te.componentDidMount=="function"&&(w.flags|=4194308),w.memoizedProps=M,w.memoizedState=Et),te.props=M,te.state=Et,te.context=ke,M=mt):(typeof te.componentDidMount=="function"&&(w.flags|=4194308),M=!1)}else{te=w.stateNode,zj(h,w),ke=w.memoizedProps,Bt=Rf(_,ke),te.props=Bt,$t=w.pendingProps,Dt=te.context,Et=_.contextType,mt=Ab,typeof Et=="object"&&Et!==null&&(mt=ks(Et)),qe=_.getDerivedStateFromProps,(Et=typeof qe=="function"||typeof te.getSnapshotBeforeUpdate=="function")||typeof te.UNSAFE_componentWillReceiveProps!="function"&&typeof te.componentWillReceiveProps!="function"||(ke!==$t||Dt!==mt)&&IU(w,te,M,mt),Tp=!1,Dt=w.memoizedState,te.state=Dt,Lv(w,M,te,W),Fv();var zt=w.memoizedState;ke!==$t||Dt!==zt||Tp||h!==null&&h.dependencies!==null&&Rk(h.dependencies)?(typeof qe=="function"&&(sM(w,_,qe,M),zt=w.memoizedState),(Bt=Tp||zU(w,_,Bt,M,Dt,zt,mt)||h!==null&&h.dependencies!==null&&Rk(h.dependencies))?(Et||typeof te.UNSAFE_componentWillUpdate!="function"&&typeof te.componentWillUpdate!="function"||(typeof te.componentWillUpdate=="function"&&te.componentWillUpdate(M,zt,mt),typeof te.UNSAFE_componentWillUpdate=="function"&&te.UNSAFE_componentWillUpdate(M,zt,mt)),typeof te.componentDidUpdate=="function"&&(w.flags|=4),typeof te.getSnapshotBeforeUpdate=="function"&&(w.flags|=1024)):(typeof te.componentDidUpdate!="function"||ke===h.memoizedProps&&Dt===h.memoizedState||(w.flags|=4),typeof te.getSnapshotBeforeUpdate!="function"||ke===h.memoizedProps&&Dt===h.memoizedState||(w.flags|=1024),w.memoizedProps=M,w.memoizedState=zt),te.props=M,te.state=zt,te.context=mt,M=Bt):(typeof te.componentDidUpdate!="function"||ke===h.memoizedProps&&Dt===h.memoizedState||(w.flags|=4),typeof te.getSnapshotBeforeUpdate!="function"||ke===h.memoizedProps&&Dt===h.memoizedState||(w.flags|=1024),M=!1)}return te=M,t_(h,w),M=(w.flags&128)!==0,te||M?(te=w.stateNode,_=M&&typeof _.getDerivedStateFromError!="function"?null:te.render(),w.flags|=1,h!==null&&M?(w.child=Ff(w,h.child,null,W),w.child=Ff(w,null,_,W)):_s(h,w,_,W),w.memoizedState=te.state,h=w.child):h=$u(h,w,W),h}function JU(h,w,_,M){return Tf(),w.flags|=256,_s(h,w,_,M),w.child}var uM={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function mM(h){return{baseLanes:h,cachePool:H5()}}function pM(h,w,_){return h=h!==null?h.childLanes&~_:0,w&&(h|=ml),h}function eH(h,w,_){var M=w.pendingProps,W=!1,te=(w.flags&128)!==0,ke;if((ke=te)||(ke=h!==null&&h.memoizedState===null?!1:(hi.current&2)!==0),ke&&(W=!0,w.flags&=-129),ke=(w.flags&32)!==0,w.flags&=-33,h===null){if(Tr){if(W?Mp(w):Ep(),(h=Cn)?(h=lq(h,Yl),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},_=D5(h),_.return=w,w.child=_,Ss=w,Cn=null)):h=null,h===null)throw Cp(w);return YM(h)?w.lanes=32:w.lanes=536870912,null}var qe=M.children;return M=M.fallback,W?(Ep(),W=w.mode,qe=a_({mode:"hidden",children:qe},W),M=Nf(M,W,_,null),qe.return=w,M.return=w,qe.sibling=M,w.child=qe,M=w.child,M.memoizedState=mM(_),M.childLanes=pM(h,ke,_),w.memoizedState=uM,Bv(null,M)):(Mp(w),hM(w,qe))}var mt=h.memoizedState;if(mt!==null&&(qe=mt.dehydrated,qe!==null)){if(te)w.flags&256?(Mp(w),w.flags&=-257,w=fM(h,w,_)):w.memoizedState!==null?(Ep(),w.child=h.child,w.flags|=128,w=null):(Ep(),qe=M.fallback,W=w.mode,M=a_({mode:"visible",children:M.children},W),qe=Nf(qe,W,_,null),qe.flags|=2,M.return=w,qe.return=w,M.sibling=qe,w.child=M,Ff(w,h.child,null,_),M=w.child,M.memoizedState=mM(_),M.childLanes=pM(h,ke,_),w.memoizedState=uM,w=Bv(null,M));else if(Mp(w),YM(qe)){if(ke=qe.nextSibling&&qe.nextSibling.dataset,ke)var Et=ke.dgst;ke=Et,M=Error(n(419)),M.stack="",M.digest=ke,Tv({value:M,source:null,stack:null}),w=fM(h,w,_)}else if(Pi||Db(h,w,_,!1),ke=(_&h.childLanes)!==0,Pi||ke){if(ke=gn,ke!==null&&(M=ht(ke,_),M!==0&&M!==mt.retryLane))throw mt.retryLane=M,Cf(h,M),Io(ke,h,M),cM;KM(qe)||u_(),w=fM(h,w,_)}else KM(qe)?(w.flags|=192,w.child=h.child,w=null):(h=mt.treeContext,Cn=Xl(qe.nextSibling),Ss=w,Tr=!0,Pp=null,Yl=!1,h!==null&&R5(w,h),w=hM(w,M.children),w.flags|=4096);return w}return W?(Ep(),qe=M.fallback,W=w.mode,mt=h.child,Et=mt.sibling,M=Bu(mt,{mode:"hidden",children:M.children}),M.subtreeFlags=mt.subtreeFlags&65011712,Et!==null?qe=Bu(Et,qe):(qe=Nf(qe,W,_,null),qe.flags|=2),qe.return=w,M.return=w,M.sibling=qe,w.child=M,Bv(null,M),M=w.child,qe=h.child.memoizedState,qe===null?qe=mM(_):(W=qe.cachePool,W!==null?(mt=ki._currentValue,W=W.parent!==mt?{parent:mt,pool:mt}:W):W=H5(),qe={baseLanes:qe.baseLanes|_,cachePool:W}),M.memoizedState=qe,M.childLanes=pM(h,ke,_),w.memoizedState=uM,Bv(h.child,M)):(Mp(w),_=h.child,h=_.sibling,_=Bu(_,{mode:"visible",children:M.children}),_.return=w,_.sibling=null,h!==null&&(ke=w.deletions,ke===null?(w.deletions=[h],w.flags|=16):ke.push(h)),w.child=_,w.memoizedState=null,_)}function hM(h,w){return w=a_({mode:"visible",children:w},h.mode),w.return=h,h.child=w}function a_(h,w){return h=ll(22,h,null,w),h.lanes=0,h}function fM(h,w,_){return Ff(w,h.child,null,_),h=hM(w,w.pendingProps.children),h.flags|=2,w.memoizedState=null,h}function tH(h,w,_){h.lanes|=w;var M=h.alternate;M!==null&&(M.lanes|=w),jj(h.return,w,_)}function gM(h,w,_,M,W,te){var ke=h.memoizedState;ke===null?h.memoizedState={isBackwards:w,rendering:null,renderingStartTime:0,last:M,tail:_,tailMode:W,treeForkCount:te}:(ke.isBackwards=w,ke.rendering=null,ke.renderingStartTime=0,ke.last=M,ke.tail=_,ke.tailMode=W,ke.treeForkCount=te)}function aH(h,w,_){var M=w.pendingProps,W=M.revealOrder,te=M.tail;M=M.children;var ke=hi.current,qe=(ke&2)!==0;if(qe?(ke=ke&1|2,w.flags|=128):ke&=1,me(hi,ke),_s(h,w,M,_),M=Tr?Nv:0,!qe&&h!==null&&(h.flags&128)!==0)e:for(h=w.child;h!==null;){if(h.tag===13)h.memoizedState!==null&&tH(h,_,w);else if(h.tag===19)tH(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&&Vk(h)===null&&(W=_),_=_.sibling;_=W,_===null?(W=w.child,w.child=null):(W=_.sibling,_.sibling=null),gM(w,!1,W,_,te,M);break;case"backwards":case"unstable_legacy-backwards":for(_=null,W=w.child,w.child=null;W!==null;){if(h=W.alternate,h!==null&&Vk(h)===null){w.child=W;break}h=W.sibling,W.sibling=_,_=W,W=h}gM(w,!0,_,null,te,M);break;case"together":gM(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,_=Bu(h,h.pendingProps),w.child=_,_.return=w;h.sibling!==null;)h=h.sibling,_=_.sibling=Bu(h,h.pendingProps),_.return=w;_.sibling=null}return w.child}function bM(h,w){return(h.lanes&w)!==0?!0:(h=h.dependencies,!!(h!==null&&Rk(h)))}function due(h,w,_){switch(w.tag){case 3:A(w,w.stateNode.containerInfo),Np(w,ki,h.memoizedState.cache),Tf();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,Hj(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?eH(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 aH(h,w,_);w.flags|=128}if(W=w.memoizedState,W!==null&&(W.rendering=null,W.tail=null,W.lastEffect=null),me(hi,hi.current),M)break;return null;case 22:return w.lanes=0,KU(h,w,_,w.pendingProps);case 24:Np(w,ki,h.memoizedState.cache)}return $u(h,w,_)}function rH(h,w,_){if(h!==null)if(h.memoizedProps!==w.pendingProps)Pi=!0;else{if(!bM(h,_)&&(w.flags&128)===0)return Pi=!1,due(h,w,_);Pi=(h.flags&131072)!==0}else Pi=!1,Tr&&(w.flags&1048576)!==0&&L5(w,Nv,w.index);switch(w.lanes=0,w.tag){case 16:e:{var M=w.pendingProps;if(h=Ef(w.elementType),w.type=h,typeof h=="function")Sj(h)?(M=Rf(h,M),w.tag=1,w=ZU(null,w,h,M,_)):(w.tag=0,w=dM(null,w,h,M,_));else{if(h!=null){var W=h.$$typeof;if(W===C){w.tag=11,w=GU(null,w,h,M,_);break e}else if(W===j){w.tag=14,w=$U(null,w,h,M,_);break e}}throw w=R(h)||h,Error(n(306,w,""))}}return w;case 0:return dM(h,w,w.type,w.pendingProps,_);case 1:return M=w.type,W=Rf(M,w.pendingProps),ZU(h,w,M,W,_);case 3:e:{if(A(w,w.stateNode.containerInfo),h===null)throw Error(n(387));M=w.pendingProps;var te=w.memoizedState;W=te.element,zj(h,w),Lv(w,M,null,_);var ke=w.memoizedState;if(M=ke.cache,Np(w,ki,M),M!==te.cache&&Mj(w,[ki],_,!0),Fv(),M=ke.element,te.isDehydrated)if(te={element:M,isDehydrated:!1,cache:ke.cache},w.updateQueue.baseState=te,w.memoizedState=te,w.flags&256){w=JU(h,w,M,_);break e}else if(M!==W){W=$l(Error(n(424)),w),Tv(W),w=JU(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,Cn=Xl(h.firstChild),Ss=w,Tr=!0,Pp=null,Yl=!0,_=K5(w,null,M,_),w.child=_;_;)_.flags=_.flags&-3|4096,_=_.sibling;else{if(Tf(),M===W){w=$u(h,w,_);break e}_s(h,w,M,_)}w=w.child}return w;case 26:return t_(h,w),h===null?(_=hq(w.type,null,w.pendingProps,null))?w.memoizedState=_:Tr||(_=w.type,h=w.pendingProps,M=x_(V.current).createElement(_),M[vt]=w,M[Nt]=h,Ps(M,_,h),et(M),w.stateNode=M):w.memoizedState=hq(w.type,h.memoizedProps,w.pendingProps,h.memoizedState),null;case 27:return U(w),h===null&&Tr&&(M=w.stateNode=uq(w.type,w.pendingProps,V.current),Ss=w,Yl=!0,W=Cn,Bp(w.type)?(QM=W,Cn=Xl(M.firstChild)):Cn=W),_s(h,w,w.pendingProps.children,_),t_(h,w),h===null&&(w.flags|=4194304),w.child;case 5:return h===null&&Tr&&((W=M=Cn)&&(M=Bue(M,w.type,w.pendingProps,Yl),M!==null?(w.stateNode=M,Ss=w,Cn=Xl(M.firstChild),Yl=!1,W=!0):W=!1),W||Cp(w)),U(w),W=w.type,te=w.pendingProps,ke=h!==null?h.memoizedProps:null,M=te.children,GM(W,te)?M=null:ke!==null&&GM(W,ke)&&(w.flags|=32),w.memoizedState!==null&&(W=Vj(h,w,tue,null,null,_),t0._currentValue=W),t_(h,w),_s(h,w,M,_),w.child;case 6:return h===null&&Tr&&((h=_=Cn)&&(_=Uue(_,w.pendingProps,Yl),_!==null?(w.stateNode=_,Ss=w,Cn=null,h=!0):h=!1),h||Cp(w)),null;case 13:return eH(h,w,_);case 4:return A(w,w.stateNode.containerInfo),M=w.pendingProps,h===null?w.child=Ff(w,null,M,_):_s(h,w,M,_),w.child;case 11:return GU(h,w,w.type,w.pendingProps,_);case 7:return _s(h,w,w.pendingProps,_),w.child;case 8:return _s(h,w,w.pendingProps.children,_),w.child;case 12:return _s(h,w,w.pendingProps.children,_),w.child;case 10:return M=w.pendingProps,Np(w,w.type,M.value),_s(h,w,M.children,_),w.child;case 9:return W=w.type._context,M=w.pendingProps.children,jf(w),W=ks(W),M=M(W),w.flags|=1,_s(h,w,M,_),w.child;case 14:return $U(h,w,w.type,w.pendingProps,_);case 15:return WU(h,w,w.type,w.pendingProps,_);case 19:return aH(h,w,_);case 31:return cue(h,w,_);case 22:return KU(h,w,_,w.pendingProps);case 24:return jf(w),M=ks(ki),h===null?(W=Fj(),W===null&&(W=gn,te=Ej(),W.pooledCache=te,te.refCount++,te!==null&&(W.pooledCacheLanes|=_),W=te),w.memoizedState={parent:M,cache:W},Rj(w),Np(w,ki,W)):((h.lanes&_)!==0&&(zj(h,w),Lv(w,null,null,_),Fv()),W=h.memoizedState,te=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=te.cache,Np(w,ki,M),M!==W.cache&&Mj(w,[ki],_,!0))),_s(h,w,w.pendingProps.children,_),w.child;case 29:throw w.pendingProps}throw Error(n(156,w.tag))}function Wu(h){h.flags|=4}function xM(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(jH())h.flags|=8192;else throw Df=Bk,Lj}else h.flags&=-16777217}function nH(h,w){if(w.type!=="stylesheet"||(w.state.loading&4)!==0)h.flags&=-16777217;else if(h.flags|=16777216,!yq(w))if(jH())h.flags|=8192;else throw Df=Bk,Lj}function r_(h,w){w!==null&&(h.flags|=4),h.flags&16384&&(w=h.tag!==22?Ge():536870912,h.lanes|=w,Gb|=w)}function Uv(h,w){if(!Tr)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 Nn(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 uue(h,w,_){var M=w.pendingProps;switch(Cj(w),w.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Nn(w),null;case 1:return Nn(w),null;case 3:return _=w.stateNode,M=null,h!==null&&(M=h.memoizedState.cache),w.memoizedState.cache!==M&&(w.flags|=2048),qu(ki),F(),_.pendingContext&&(_.context=_.pendingContext,_.pendingContext=null),(h===null||h.child===null)&&(Eb(w)?Wu(w):h===null||h.memoizedState.isDehydrated&&(w.flags&256)===0||(w.flags|=1024,Tj())),Nn(w),null;case 26:var W=w.type,te=w.memoizedState;return h===null?(Wu(w),te!==null?(Nn(w),nH(w,te)):(Nn(w),xM(w,W,null,M,_))):te?te!==h.memoizedState?(Wu(w),Nn(w),nH(w,te)):(Nn(w),w.flags&=-16777217):(h=h.memoizedProps,h!==M&&Wu(w),Nn(w),xM(w,W,h,M,_)),null;case 27:if($(w),_=V.current,W=w.type,h!==null&&w.stateNode!=null)h.memoizedProps!==M&&Wu(w);else{if(!M){if(w.stateNode===null)throw Error(n(166));return Nn(w),null}h=pe.current,Eb(w)?z5(w):(h=uq(W,M,_),w.stateNode=h,Wu(w))}return Nn(w),null;case 5:if($(w),W=w.type,h!==null&&w.stateNode!=null)h.memoizedProps!==M&&Wu(w);else{if(!M){if(w.stateNode===null)throw Error(n(166));return Nn(w),null}if(te=pe.current,Eb(w))z5(w);else{var ke=x_(V.current);switch(te){case 1:te=ke.createElementNS("http://www.w3.org/2000/svg",W);break;case 2:te=ke.createElementNS("http://www.w3.org/1998/Math/MathML",W);break;default:switch(W){case"svg":te=ke.createElementNS("http://www.w3.org/2000/svg",W);break;case"math":te=ke.createElementNS("http://www.w3.org/1998/Math/MathML",W);break;case"script":te=ke.createElement("div"),te.innerHTML=" - + +