From 3a5b9e150c6537d178895f06adb3e446933caf39 Mon Sep 17 00:00:00 2001
From: Dineth Hettiarachchi
Date: Sun, 25 Oct 2026 17:14:19 +0530
Subject: [PATCH 1/3] feat: Phase 7 web visualizer (partial): presets,
schedule, tile values, NAIVE P matrix
/app runs the WASM engine in the browser: start, step, back, run to end, reset. Shows the tile
schedule (FLASH and NAIVE), the current tile's values, HBM bytes, tile and K/V counters,
controller state, the dequantized output with its deviation from float attention, and for NAIVE
the probability matrix read back from HBM.
Shared with the golden model: presets (generated presets.ts), quantization (quantize.ts checked
against golden values), tile order (checked against tile counts in the fixtures). Engine harness
gains the tile-state and probability readouts (32-bit values; BigInt avoided).
Not yet built from the Phase 7 list: MatrixEditor, SramPanel, HbmMeter, FLASH heatmap, Playwright
smoke test. See docs/ARCHITECTURE.md section 12.
---
CONTEXT.md | 12 +-
README.md | 2 +-
docs/ARCHITECTURE.md | 24 +
docs/PLAN.md | 2 +-
sim/golden/export_fixtures.py | 15 +-
sim/golden/export_web_data.py | 86 +
sim/golden/test_golden.py | 10 +
wasm/fixtures/flash_overlap_causal.json | 2 +-
wasm/fixtures/flash_seq.json | 2 +-
wasm/fixtures/naive_causal.json | 2 +-
wasm/fixtures/quantize_cases.json | 1 +
wasm/harness/bindings.cpp | 21 +-
wasm/harness/harness.cpp | 76 +
wasm/harness/harness.h | 18 +
wasm/test.mjs | 21 +-
web/eslint.config.js | 8 +
web/package.json | 7 +-
web/pnpm-lock.yaml | 7041 +++++++++--------------
web/src/components/Visualizer.tsx | 389 ++
web/src/lib/engine.ts | 21 +
web/src/lib/presets.ts | 1832 ++++++
web/src/lib/quantize.test.ts | 42 +
web/src/lib/quantize.ts | 46 +
web/src/lib/reference.ts | 32 +
web/src/lib/schedule.test.ts | 48 +
web/src/lib/schedule.ts | 37 +
web/src/lib/state-schema.ts | 58 +
web/src/pages/app.astro | 17 +
web/vitest.config.ts | 11 +
29 files changed, 5395 insertions(+), 4488 deletions(-)
create mode 100644 sim/golden/export_web_data.py
create mode 100644 wasm/fixtures/quantize_cases.json
create mode 100644 web/src/components/Visualizer.tsx
create mode 100644 web/src/lib/engine.ts
create mode 100644 web/src/lib/presets.ts
create mode 100644 web/src/lib/quantize.test.ts
create mode 100644 web/src/lib/quantize.ts
create mode 100644 web/src/lib/reference.ts
create mode 100644 web/src/lib/schedule.test.ts
create mode 100644 web/src/lib/schedule.ts
create mode 100644 web/src/lib/state-schema.ts
create mode 100644 web/src/pages/app.astro
create mode 100644 web/vitest.config.ts
diff --git a/CONTEXT.md b/CONTEXT.md
index 28ab821..3c8715e 100644
--- a/CONTEXT.md
+++ b/CONTEXT.md
@@ -33,7 +33,17 @@ On a fresh machine delete the symlinks and run `.tools/setup.sh` and `.tools/ems
pass; perf baseline in `sim/perf_baseline.json` (re-record with `PERF_RECORD=1 COCOTB_TEST_FILTER=perf_grid bash sim/run_e2e.sh`).
- Phase 6 (WASM harness): DONE. `wasm/build.sh` builds `web/public/tiny_attn.{mjs,wasm}` (81 KB gzipped); `node wasm/test.mjs`
checks three golden fixtures on interleaved instances, exactly. JS API in `docs/STATE_SCHEMA.md`.
-- Next: Phase 7 (web UI). First: wide-signal access so the per-clock state carries per-PE values and softmax lanes.
+- Phase 7 (web visualizer `/app`): PARTIAL. Built: presets and quantization shared with the golden model, schedule, tile values,
+ bytes, NAIVE probability matrix. Browser-checked on the production build. Missing from the plan: MatrixEditor, SramPanel,
+ HbmMeter, FLASH heatmap, Playwright smoke test (see ARCHITECTURE §12).
+- Next: finish the Phase 7 list, then Phase 8 (L1, L2, L4).
+
+## Gotchas found in Phase 7
+- `wasm/fixtures/` holds engine runs and `quantize_cases.json`; the Node test must skip the quantization file (it did not for
+ a while and aborted in configure with no useful message).
+- Embind gives 64-bit integers to JavaScript as BigInt, which breaks JSON comparison. Tile values are 32-bit for that reason.
+- The tile core's debug S/Z/P registers are only written by FLASH. NAIVE views must not show them.
+- `astro dev` hung without output in this environment; `astro build` + `astro preview` works for browser checks.
## Gotchas found in Phase 5
- The NAIVE tile operations reuse the online-softmax unit: OP_NM uses its m path, OP_NP uses its P and l path with alpha = 1
diff --git a/README.md b/README.md
index bb2902f..276fb0c 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@ Fourth project in the series after [tiny-gpu](https://github.com/deaneeth/tiny-g
[tiny-tpu](https://github.com/deaneeth/tiny-tpu) and tiny-cpu. Same rule as the others: nothing on screen is
faked; every value comes from a `dbg_*` port on the compiled RTL.
-**Status:** Phases 0-6 done: the engine (FLASH, NAIVE, K/V overlap) is bit-exact against the golden model and compiled to WebAssembly (81 KB gzipped), with a Node test over golden fixtures. Next is the web UI. See [`docs/PLAN.md`](docs/PLAN.md) for the roadmap.
+**Status:** Phases 0-6 done, Phase 7 partly done: the engine (FLASH, NAIVE, K/V overlap) is bit-exact against the golden model, compiled to WebAssembly, and shown clock by clock in a browser visualizer at `/app`. Still open in Phase 7: matrix editor, SRAM panel, Playwright smoke test. See [`docs/PLAN.md`](docs/PLAN.md) for the roadmap.
## Quick start
diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md
index 656149c..bf3b60e 100644
--- a/docs/ARCHITECTURE.md
+++ b/docs/ARCHITECTURE.md
@@ -355,3 +355,27 @@ masking. A fresh instance reproduces the run, so no state leaks between instance
Deviation from the plan: the per-clock state exported to JavaScript is a subset (controller state, counters, byte counts).
Per-PE values, softmax lanes and SRAM tiles need wide-signal access and are the first item of Phase 7.
+
+## 12. Phase 7: web visualizer (as built)
+
+`/app` (`web/src/pages/app.astro`) runs the WASM engine in the browser and shows it clock by clock.
+
+- **Presets** (`sim/golden/presets.py` → `web/src/lib/presets.ts`, generated): six attention patterns with token labels.
+ Their Q/K/V are quantized in the browser by `web/src/lib/quantize.ts`, a mirror of `fixed.quantize`. Both are checked
+ against golden values in `pytest` (freshness) and `vitest` (values).
+- **Controls**: schedule (FLASH / NAIVE), causal, overlap (FLASH), `cfg_qrows`, HBM latency. Start, Step, Back (rebuilds
+ the run from reset and advances N−1 clocks), Run to end, Reset.
+- **Views**: the tile schedule (FLASH: row groups × K/V tiles, with the causal mask; NAIVE: pass-1 Z tiles), the current
+ tile's S, Z, P, m, l, α and O (FLASH; NAIVE shows m, l and O only, since its S/Z/P never enter the tile core), HBM bytes,
+ tile count, K/V loads, and controller state names (`FLASH_STATES` / `NAIVE_STATES`, matching the enums in the RTL).
+- **Result**: the dequantized O, its maximum deviation from float attention (`web/src/lib/reference.ts`), and for NAIVE the
+ probability matrix read back from HBM, with token labels.
+
+Checks: `node wasm/test.mjs` (engine vs golden), `pnpm test` (quantization and tile order against the fixtures),
+`pnpm typecheck`, `pnpm lint`, `pnpm build`. The browser run (built site, `astro preview`) showed no console errors; the
+FLASH run and the NAIVE run both finished with max deviation 0.0049 on the toy preset; the phone width has no horizontal scroll.
+
+Not yet built from the Phase 7 list in `docs/PLAN.md`: `MatrixEditor` (edit Q/K/V in the page; presets only for now),
+`SramPanel` (staging buffer contents), an `HbmMeter` bar, a FLASH attention heatmap (only NAIVE shows P), and the Playwright
+smoke test. The dev-server path also needs a fix (`astro dev` hung without output in this environment); `astro build` +
+`astro preview` works. The light/dark theme and 375 px checks are done for layout only; the theme check is not.
diff --git a/docs/PLAN.md b/docs/PLAN.md
index ffabe8d..d4cd595 100644
--- a/docs/PLAN.md
+++ b/docs/PLAN.md
@@ -447,7 +447,7 @@ The estimates assume one person part-time, at tiny-cpu's pace.
- `harness.cpp`, `bindings.cpp`, `build.sh`, `STATE_SCHEMA.md`, `test.mjs` with golden fixtures.
- **Exit:** `wasm.yml` is green; the size budget is met; two instances run independently in Node.
-### Phase 7: Core UI + L3 Schedule (2 weeks)
+### Phase 7: Core UI + L3 Schedule (2 weeks) — PARTIAL (visualizer built; see ARCHITECTURE §12 for what remains)
- `useTinyAttn`, `Controls`, `MatrixEditor`, presets, `quantize.ts`, `AttentionHeatmap`, `SramPanel`,
`HbmMeter`, and **L3 Schedule first**.
- **Exit:** pick a preset, step forward and back, and watch tiles, buffers and bytes update; the Playwright smoke test passes.
diff --git a/sim/golden/export_fixtures.py b/sim/golden/export_fixtures.py
index eed5513..41307fc 100644
--- a/sim/golden/export_fixtures.py
+++ b/sim/golden/export_fixtures.py
@@ -48,9 +48,22 @@ def build_fixture(c):
qz = case_inputs(c["seed"], c["n"])
naive = c["mode"] == "NAIVE"
qblock = 4 if naive else c["qrows"]
- res = fixed.naive(qz, c["n"], c["causal"]) if naive else fixed.flash(qz, c["n"], c["causal"], qblock=qblock)
+ res = (fixed.naive(qz, c["n"], c["causal"]) if naive
+ else fixed.flash(qz, c["n"], c["causal"], qblock=qblock, trace=True))
t = traffic(c["n"], c["causal"], c["mode"], qblock=qblock)
+ extra = {}
+ if naive:
+ extra["probs"] = res.probs.reshape(-1).astype(int).tolist()
+ else:
+ # the last tile the engine computes: largest kj, then largest group index
+ last = max(res.trace, key=lambda e: (e["kj"], e["qi"]))
+ extra["lastTile"] = dict(
+ qi=last["qi"], kj=last["kj"],
+ m=[int(x) for x in last["m"]], l=[int(x) for x in last["l"]],
+ alpha=[int(x) for x in last["alpha"]], o=last["O"].reshape(-1).astype(int).tolist(),
+ )
return dict(
+ **extra,
name=c["name"],
mode=c["mode"],
n=c["n"],
diff --git a/sim/golden/export_web_data.py b/sim/golden/export_web_data.py
new file mode 100644
index 0000000..2ccf118
--- /dev/null
+++ b/sim/golden/export_web_data.py
@@ -0,0 +1,86 @@
+"""Export data the web app and its tests share with the golden model.
+
+- web/src/lib/presets.ts: the attention presets (presets.py), float Q/K/V with labels.
+- wasm/fixtures/quantize_cases.json: float inputs and the quantized values and cfg_scale that fixed.quantize produces.
+ python sim/golden/export_web_data.py
+"""
+
+import json
+from pathlib import Path
+
+import numpy as np
+
+import fixed
+import presets
+from export_fixtures import ROOT
+
+WEB_PRESETS = ROOT / "web" / "src" / "lib" / "presets.ts"
+QUANT_CASES = ROOT / "wasm" / "fixtures" / "quantize_cases.json"
+
+
+def r(x):
+ return round(float(x), 6)
+
+
+def preset_entries():
+ out = []
+ for make in presets.ALL:
+ p = make()
+ out.append(dict(
+ name=p["name"],
+ labels=list(p["labels"]),
+ causal=bool(p["causal"]),
+ q=[[r(x) for x in row] for row in p["q"]],
+ k=[[r(x) for x in row] for row in p["k"]],
+ v=[[r(x) for x in row] for row in p["v"]],
+ ))
+ return out
+
+
+def presets_ts(entries):
+ body = json.dumps(entries, indent=1)
+ return ("// GENERATED by sim/golden/export_web_data.py from sim/golden/presets.py. Do not edit.\n"
+ "export interface Preset {\n"
+ " name: string;\n"
+ " labels: string[];\n"
+ " causal: boolean;\n"
+ " q: number[][];\n"
+ " k: number[][];\n"
+ " v: number[][];\n"
+ "}\n\n"
+ f"export const PRESETS: Preset[] = {body};\n")
+
+
+def quant_cases():
+ rng = np.random.default_rng(61)
+ cases = []
+ for amp in (0.5, 2.5, 3.5):
+ n = 8
+ qf, kf, vf = (np.round(rng.normal(0, amp, (n, 4)), 6) for _ in range(3)) # what the web app will see
+ z = fixed.quantize(qf, kf, vf)
+ cases.append(dict(
+ q=[[r(x) for x in row] for row in qf],
+ k=[[r(x) for x in row] for row in kf],
+ v=[[r(x) for x in row] for row in vf],
+ expQ=z.q.reshape(-1).tolist(),
+ expK=z.k.reshape(-1).tolist(),
+ expV=z.v.reshape(-1).tolist(),
+ expCfgScale=int(z.cfg_scale),
+ ))
+ # an all-zero tensor: scale falls back to 1.0
+ z0 = np.zeros((4, 4))
+ z = fixed.quantize(z0, z0, z0)
+ cases.append(dict(q=z0.tolist(), k=z0.tolist(), v=z0.tolist(),
+ expQ=z.q.reshape(-1).tolist(), expK=z.k.reshape(-1).tolist(),
+ expV=z.v.reshape(-1).tolist(), expCfgScale=int(z.cfg_scale)))
+ return cases
+
+
+def main():
+ WEB_PRESETS.write_text(presets_ts(preset_entries()))
+ QUANT_CASES.write_text(json.dumps(quant_cases()) + "\n")
+ print(f"wrote {WEB_PRESETS.name} ({len(presets.ALL)} presets) and {QUANT_CASES.name}")
+
+
+if __name__ == "__main__":
+ main()
diff --git a/sim/golden/test_golden.py b/sim/golden/test_golden.py
index 456dde0..9fcb5bd 100644
--- a/sim/golden/test_golden.py
+++ b/sim/golden/test_golden.py
@@ -267,3 +267,13 @@ def test_wasm_fixtures_fresh():
for c in ef.CASES:
path = ef.OUT / f"{c['name']}.json"
assert path.read_text() == ef.fixture_text(c), f"{path.name} is stale: run sim/golden/export_fixtures.py"
+
+
+def test_web_data_fresh():
+ """web/src/lib/presets.ts and wasm/fixtures/quantize_cases.json must match the generator."""
+ import json
+
+ import export_web_data as ewd
+
+ assert ewd.WEB_PRESETS.read_text() == ewd.presets_ts(ewd.preset_entries()), "presets.ts is stale"
+ assert ewd.QUANT_CASES.read_text() == json.dumps(ewd.quant_cases()) + "\n", "quantize_cases.json is stale"
diff --git a/wasm/fixtures/flash_overlap_causal.json b/wasm/fixtures/flash_overlap_causal.json
index d0c9228..abcdf8f 100644
--- a/wasm/fixtures/flash_overlap_causal.json
+++ b/wasm/fixtures/flash_overlap_causal.json
@@ -1 +1 @@
-{"name": "flash_overlap_causal", "mode": "FLASH", "n": 16, "causal": true, "qrows": 4, "overlap": true, "latency": 10, "cfgScale": 1780, "q": [-87, -67, -68, -18, -116, -9, -48, 45, 48, 70, 38, -3, 43, 75, -33, 31, -2, 72, -42, -15, 18, 13, -82, 18, -6, -12, -8, 11, -91, 78, -43, -112, -4, 73, -26, 78, 78, -43, -123, -62, 59, -41, -76, -67, 0, -1, 44, 49, -47, -8, -57, 4, -58, -60, 106, 2, 32, 127, 39, -6, 3, -37, 55, -17], "k": [94, -18, -19, -22, 33, 10, 73, -29, 15, 103, -13, 28, 83, 29, -34, -109, 127, 23, 67, -25, 97, 28, 3, -48, 20, -26, -12, -86, -26, 8, -66, 4, 35, -16, -33, -33, 50, -81, -16, -22, 8, -4, -59, 108, 9, -71, -47, 5, 33, -71, 38, -73, -42, 45, 90, -4, -16, 67, -57, 15, 12, 54, 16, -14], "v": [25, -45, 33, -27, -37, -15, 2, 29, -9, 30, 39, -4, -40, 37, 11, -85, -40, 6, -55, -27, -69, 16, 10, 7, 58, -14, -12, 81, -52, 29, -53, 10, 85, 11, -31, 96, -22, -8, 12, -54, 45, 65, 31, 13, -6, 36, -127, -5, 10, -80, 17, -5, -1, 4, 23, 18, -42, -5, -7, 2, -24, 39, 53, 61], "out": [6400, -11519, 8447, -6912, -8216, -4448, 1140, 6290, -2766, 6817, 9326, -464, -2304, 7680, 9983, -1024, -2687, 7766, 9637, -2026, -2846, 3410, 7471, -7763, 1010, -2319, 3089, 1805, -8336, 8409, 2015, -17765, -2304, 7680, 9983, -1024, -10111, 9309, 2860, -21645, -10061, 9296, 2816, -21507, 2772, 9415, 2634, 2012, -8948, 8810, -11825, 2467, -253, 418, 5807, 4474, -2477, 7514, 9419, -1137, 675, -16832, 3075, -612], "hbmRdBytes": 384, "hbmWrBytes": 128, "tiles": 10, "kvLoads": 10, "cycles": 611}
+{"lastTile": {"qi": 3, "kj": 3, "m": [2145, 4027, 5599, 2632], "l": [5190, 4240, 4208, 5076], "alpha": [32768, 262, 32768, 3848], "o": [-181411, 178605, -239739, 50020, -4191, 6931, 96179, 74110, -40720, 123520, 154832, -18688, 13393, -333752, 60969, -12130]}, "name": "flash_overlap_causal", "mode": "FLASH", "n": 16, "causal": true, "qrows": 4, "overlap": true, "latency": 10, "cfgScale": 1780, "q": [-87, -67, -68, -18, -116, -9, -48, 45, 48, 70, 38, -3, 43, 75, -33, 31, -2, 72, -42, -15, 18, 13, -82, 18, -6, -12, -8, 11, -91, 78, -43, -112, -4, 73, -26, 78, 78, -43, -123, -62, 59, -41, -76, -67, 0, -1, 44, 49, -47, -8, -57, 4, -58, -60, 106, 2, 32, 127, 39, -6, 3, -37, 55, -17], "k": [94, -18, -19, -22, 33, 10, 73, -29, 15, 103, -13, 28, 83, 29, -34, -109, 127, 23, 67, -25, 97, 28, 3, -48, 20, -26, -12, -86, -26, 8, -66, 4, 35, -16, -33, -33, 50, -81, -16, -22, 8, -4, -59, 108, 9, -71, -47, 5, 33, -71, 38, -73, -42, 45, 90, -4, -16, 67, -57, 15, 12, 54, 16, -14], "v": [25, -45, 33, -27, -37, -15, 2, 29, -9, 30, 39, -4, -40, 37, 11, -85, -40, 6, -55, -27, -69, 16, 10, 7, 58, -14, -12, 81, -52, 29, -53, 10, 85, 11, -31, 96, -22, -8, 12, -54, 45, 65, 31, 13, -6, 36, -127, -5, 10, -80, 17, -5, -1, 4, 23, 18, -42, -5, -7, 2, -24, 39, 53, 61], "out": [6400, -11519, 8447, -6912, -8216, -4448, 1140, 6290, -2766, 6817, 9326, -464, -2304, 7680, 9983, -1024, -2687, 7766, 9637, -2026, -2846, 3410, 7471, -7763, 1010, -2319, 3089, 1805, -8336, 8409, 2015, -17765, -2304, 7680, 9983, -1024, -10111, 9309, 2860, -21645, -10061, 9296, 2816, -21507, 2772, 9415, 2634, 2012, -8948, 8810, -11825, 2467, -253, 418, 5807, 4474, -2477, 7514, 9419, -1137, 675, -16832, 3075, -612], "hbmRdBytes": 384, "hbmWrBytes": 128, "tiles": 10, "kvLoads": 10, "cycles": 611}
diff --git a/wasm/fixtures/flash_seq.json b/wasm/fixtures/flash_seq.json
index d9d36bc..f2497b2 100644
--- a/wasm/fixtures/flash_seq.json
+++ b/wasm/fixtures/flash_seq.json
@@ -1 +1 @@
-{"name": "flash_seq", "mode": "FLASH", "n": 16, "causal": false, "qrows": 8, "overlap": false, "latency": 10, "cfgScale": 1656, "q": [0, 15, -14, -45, -23, -50, 3, 68, -25, -31, 25, 18, 5, -47, -1, 35, -68, -23, -96, -65, -93, -12, -64, 14, 8, -9, -127, -27, -2, 6, -77, -24, -49, -41, 54, -41, -2, 45, -29, -6, 6, 3, -62, 4, 69, -78, 43, 6, -32, 101, 38, -61, 4, 29, -10, 34, -3, 34, 73, -34, 10, -23, 6, -60], "k": [-33, -11, 51, 65, -75, -45, 37, -113, -26, -6, 71, 39, -19, -21, -14, 86, -24, -17, 20, -7, -11, -63, -1, -25, 66, 37, -1, 38, -19, 60, 0, 33, -73, 20, -96, -115, -17, -51, 9, 127, -47, -35, 12, 28, -10, -12, 40, 29, -58, -4, 2, -60, 15, -49, 55, 11, 5, -33, -7, -113, -64, 21, -120, 48], "v": [-126, 55, -61, 56, 9, -111, 90, 104, -5, -20, -12, -70, 79, -39, -4, -57, -45, -92, 91, -11, 70, 1, -50, -24, -40, 1, -27, -22, -99, -58, 119, -48, -76, 24, 101, -105, -15, -46, -127, 53, -2, 5, -54, 33, -39, -10, -80, -88, 96, -37, 21, -2, -32, -37, 45, -22, -11, 2, 85, 49, 28, -41, -100, 68], "out": [-16809, 4267, 25180, -21357, -3681, -11710, -32198, 13316, -6644, -5700, -17150, 5840, -3052, -11228, -30137, 11818, -19455, 6144, 25854, -26878, 6177, -9878, -23686, 15760, -14265, 2900, 15824, -18245, -17001, 4610, 21112, -22797, 2304, -28414, 23039, 26622, -8871, -1900, 5151, -7939, 4955, -9115, -21290, 13686, -7432, -9175, 9662, -5171, -14326, -57, 24554, -17481, -3808, -8679, -9204, 2405, 1231, -22508, 17578, 17145, -1175, -11168, 22263, 16684], "hbmRdBytes": 320, "hbmWrBytes": 128, "tiles": 16, "kvLoads": 8, "cycles": 749}
+{"lastTile": {"qi": 3, "kj": 3, "m": [3122, 1287, 2117, 3051], "l": [5266, 14053, 5504, 7523], "alpha": [32768, 21190, 32768, 24659], "o": [-294693, -1180, 505089, -359594, -209018, -476412, -505232, 132034, 26464, -483936, 377952, 368640, -34519, -328177, 654227, 490286]}, "name": "flash_seq", "mode": "FLASH", "n": 16, "causal": false, "qrows": 8, "overlap": false, "latency": 10, "cfgScale": 1656, "q": [0, 15, -14, -45, -23, -50, 3, 68, -25, -31, 25, 18, 5, -47, -1, 35, -68, -23, -96, -65, -93, -12, -64, 14, 8, -9, -127, -27, -2, 6, -77, -24, -49, -41, 54, -41, -2, 45, -29, -6, 6, 3, -62, 4, 69, -78, 43, 6, -32, 101, 38, -61, 4, 29, -10, 34, -3, 34, 73, -34, 10, -23, 6, -60], "k": [-33, -11, 51, 65, -75, -45, 37, -113, -26, -6, 71, 39, -19, -21, -14, 86, -24, -17, 20, -7, -11, -63, -1, -25, 66, 37, -1, 38, -19, 60, 0, 33, -73, 20, -96, -115, -17, -51, 9, 127, -47, -35, 12, 28, -10, -12, 40, 29, -58, -4, 2, -60, 15, -49, 55, 11, 5, -33, -7, -113, -64, 21, -120, 48], "v": [-126, 55, -61, 56, 9, -111, 90, 104, -5, -20, -12, -70, 79, -39, -4, -57, -45, -92, 91, -11, 70, 1, -50, -24, -40, 1, -27, -22, -99, -58, 119, -48, -76, 24, 101, -105, -15, -46, -127, 53, -2, 5, -54, 33, -39, -10, -80, -88, 96, -37, 21, -2, -32, -37, 45, -22, -11, 2, 85, 49, 28, -41, -100, 68], "out": [-16809, 4267, 25180, -21357, -3681, -11710, -32198, 13316, -6644, -5700, -17150, 5840, -3052, -11228, -30137, 11818, -19455, 6144, 25854, -26878, 6177, -9878, -23686, 15760, -14265, 2900, 15824, -18245, -17001, 4610, 21112, -22797, 2304, -28414, 23039, 26622, -8871, -1900, 5151, -7939, 4955, -9115, -21290, 13686, -7432, -9175, 9662, -5171, -14326, -57, 24554, -17481, -3808, -8679, -9204, 2405, 1231, -22508, 17578, 17145, -1175, -11168, 22263, 16684], "hbmRdBytes": 320, "hbmWrBytes": 128, "tiles": 16, "kvLoads": 8, "cycles": 749}
diff --git a/wasm/fixtures/naive_causal.json b/wasm/fixtures/naive_causal.json
index ebcdc23..1f65e40 100644
--- a/wasm/fixtures/naive_causal.json
+++ b/wasm/fixtures/naive_causal.json
@@ -1 +1 @@
-{"name": "naive_causal", "mode": "NAIVE", "n": 16, "causal": true, "qrows": 4, "overlap": false, "latency": 10, "cfgScale": 1754, "q": [-40, 12, -83, 33, 58, -23, 22, 13, -20, -43, -102, 71, -2, 127, 42, 14, -33, 70, -25, 79, -20, 9, -77, 118, -5, -19, 41, -45, 39, -59, 27, -53, -92, -30, -74, 28, 1, 26, 5, -18, 1, 53, -9, -38, -49, -11, -38, 95, -59, -54, -15, 33, -13, -48, -41, -18, 49, -49, -5, -31, 16, 20, -74, 120], "k": [10, -27, -48, -14, 2, 32, 0, 26, -86, -40, -54, 9, 25, -78, -9, 39, 49, -60, 30, 18, -23, 105, -60, -15, 24, 13, -9, 74, 77, 49, 54, -3, -62, 117, -51, 119, -7, 12, -9, 51, -27, 99, 29, 9, -31, 15, 0, 102, 50, -83, 82, -127, 82, -101, 0, 43, 0, -59, 66, -95, -78, 74, -46, 13], "v": [36, -5, 12, 5, 10, 53, 42, 14, 41, -24, -34, -45, 35, 72, 4, -88, -23, 21, 13, 4, 44, 41, -60, 19, -33, 10, 55, 82, 31, -23, -16, 24, -44, -3, 27, 41, -13, 16, 61, 14, -77, 10, 11, -19, 2, -66, 56, 19, -24, 11, 6, -39, -119, -127, 90, -50, -13, 25, -16, 53, -42, 25, -93, 32], "out": [9215, -1280, 3072, 1280, 6355, 5102, 6373, 2270, 10491, -6125, -8658, -11470, 2560, 13567, 10751, 3584, 3188, 12008, 9212, 2389, 10301, -3593, -8188, -10745, -3058, 5700, 2834, -1029, -4296, 6241, 3029, -871, 10327, -6102, -8583, -11349, 8381, 6241, -9540, 5392, 8534, 9667, -13660, 4068, -11127, -955, 6998, 10430, 10369, -6079, -8365, -11416, 7007, -5315, -4396, -10996, -7559, 759, 2776, -10063, -11263, -768, 6912, 10495], "hbmRdBytes": 1344, "hbmWrBytes": 768, "tiles": 10, "kvLoads": 10, "cycles": 1807}
+{"probs": [256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 6, 256, 14, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 7, 11, 23, 256, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 24, 256, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 5, 18, 2, 0, 2, 256, 4, 80, 23, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, 2, 1, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 3, 0, 0, 0, 0, 0, 0, 256, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 35, 0, 256, 25, 2, 0, 0, 0, 0, 0, 0, 0, 10, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0], "name": "naive_causal", "mode": "NAIVE", "n": 16, "causal": true, "qrows": 4, "overlap": false, "latency": 10, "cfgScale": 1754, "q": [-40, 12, -83, 33, 58, -23, 22, 13, -20, -43, -102, 71, -2, 127, 42, 14, -33, 70, -25, 79, -20, 9, -77, 118, -5, -19, 41, -45, 39, -59, 27, -53, -92, -30, -74, 28, 1, 26, 5, -18, 1, 53, -9, -38, -49, -11, -38, 95, -59, -54, -15, 33, -13, -48, -41, -18, 49, -49, -5, -31, 16, 20, -74, 120], "k": [10, -27, -48, -14, 2, 32, 0, 26, -86, -40, -54, 9, 25, -78, -9, 39, 49, -60, 30, 18, -23, 105, -60, -15, 24, 13, -9, 74, 77, 49, 54, -3, -62, 117, -51, 119, -7, 12, -9, 51, -27, 99, 29, 9, -31, 15, 0, 102, 50, -83, 82, -127, 82, -101, 0, 43, 0, -59, 66, -95, -78, 74, -46, 13], "v": [36, -5, 12, 5, 10, 53, 42, 14, 41, -24, -34, -45, 35, 72, 4, -88, -23, 21, 13, 4, 44, 41, -60, 19, -33, 10, 55, 82, 31, -23, -16, 24, -44, -3, 27, 41, -13, 16, 61, 14, -77, 10, 11, -19, 2, -66, 56, 19, -24, 11, 6, -39, -119, -127, 90, -50, -13, 25, -16, 53, -42, 25, -93, 32], "out": [9215, -1280, 3072, 1280, 6355, 5102, 6373, 2270, 10491, -6125, -8658, -11470, 2560, 13567, 10751, 3584, 3188, 12008, 9212, 2389, 10301, -3593, -8188, -10745, -3058, 5700, 2834, -1029, -4296, 6241, 3029, -871, 10327, -6102, -8583, -11349, 8381, 6241, -9540, 5392, 8534, 9667, -13660, 4068, -11127, -955, 6998, 10430, 10369, -6079, -8365, -11416, 7007, -5315, -4396, -10996, -7559, 759, 2776, -10063, -11263, -768, 6912, 10495], "hbmRdBytes": 1344, "hbmWrBytes": 768, "tiles": 10, "kvLoads": 10, "cycles": 1807}
diff --git a/wasm/fixtures/quantize_cases.json b/wasm/fixtures/quantize_cases.json
new file mode 100644
index 0000000..c32be73
--- /dev/null
+++ b/wasm/fixtures/quantize_cases.json
@@ -0,0 +1 @@
+[{"q": [[-0.283382, -0.528287, 0.53104, -0.564676], [-0.889703, 0.327478, 0.420626, -0.474555], [-0.282665, 1.389864, -0.508719, -0.252895], [0.589378, 0.372703, 0.805902, 0.408878], [-0.20384, 0.05922, -0.275064, 0.402878], [0.254178, -0.615399, 0.242264, -0.409669], [0.036095, -0.19051, 0.141526, -1.297803], [0.222198, -0.711613, 0.586022, -0.591239]], "k": [[-0.258982, -0.355042, 0.128625, 0.529619], [0.106616, -0.011143, 0.082325, -0.05232], [0.02737, -0.368699, -0.067171, 0.736028], [0.558802, -0.852443, -0.105564, 0.102639], [-0.260723, -0.325666, -0.019627, 0.507788], [0.541794, 0.03095, 0.429302, -0.0391], [0.206953, -0.094943, -0.756294, -0.331443], [0.199616, 0.5957, 0.178161, 1.051879]], "v": [[0.476465, 0.039031, -0.209254, 1.151797], [-0.098492, -0.550443, 0.21203, -0.268006], [0.314327, -0.766253, 0.466236, 0.506388], [-0.17127, -0.478641, 0.076218, 0.594245], [-0.291272, -0.085652, 0.59421, 0.310303], [-0.054603, 0.180169, 0.098134, -0.202423], [-0.067431, -1.331788, 0.065146, 0.446861], [0.341614, -0.213461, 0.842527, 0.691142]], "expQ": [-26, -48, 49, -52, -81, 30, 38, -43, -26, 127, -46, -23, 54, 34, 74, 37, -19, 5, -25, 37, 23, -56, 22, -37, 3, -17, 13, -119, 20, -65, 54, -54], "expK": [-31, -43, 16, 64, 13, -1, 10, -6, 3, -45, -8, 89, 67, -103, -13, 12, -31, -39, -2, 61, 65, 4, 52, -5, 25, -11, -91, -40, 24, 72, 22, 127], "expV": [45, 4, -20, 110, -9, -52, 20, -26, 30, -73, 44, 48, -16, -46, 7, 57, -28, -8, 57, 30, -5, 17, 9, -19, -6, -127, 6, 43, 33, -20, 80, 66], "expCfgScale": 69}, {"q": [[-2.056649, -0.047359, -1.087408, -2.058658], [2.635656, 2.575381, -1.680271, -0.355153], [1.053427, -0.748836, 2.462101, 0.883379], [0.908495, -3.783927, 3.045371, -5.659234], [-0.171903, 2.771732, 0.252231, -1.968889], [-1.11108, -3.155553, 3.103468, 1.046743], [-2.311308, 4.502568, -1.358009, 0.971165], [-4.611653, -0.167566, 1.59568, 0.278147]], "k": [[-2.017265, 2.628403, -2.703924, 3.408485], [-0.447122, -0.185045, 0.9227, 1.047163], [5.001091, 0.471143, -3.899314, 0.892074], [-2.428529, -1.16533, -1.134585, 0.242654], [3.057073, 0.200078, -1.107099, -2.129778], [-2.024844, -1.193911, 0.503258, 0.244857], [1.939474, -5.398214, 1.842933, 1.644157], [-5.854755, 2.803383, -0.021981, -3.603847]], "v": [[0.753819, -3.074964, -0.545236, 1.386018], [2.750589, 2.512518, -0.515279, -5.521], [-1.764904, 0.666069, 1.882274, 0.297612], [-2.724376, -1.014148, -2.807792, -0.178616], [-4.60532, -0.278917, 1.914031, -2.833585], [2.81099, -6.281983, 1.545965, -3.122019], [-0.886001, 0.693789, 1.555868, -4.551788], [0.499527, -4.512649, 0.27532, -0.785656]], "expQ": [-46, -1, -24, -46, 59, 58, -38, -8, 24, -17, 55, 20, 20, -85, 68, -127, -4, 62, 6, -44, -25, -71, 70, 23, -52, 101, -30, 22, -103, -4, 36, 6], "expK": [-44, 57, -59, 74, -10, -4, 20, 23, 108, 10, -85, 19, -53, -25, -25, 5, 66, 4, -24, -46, -44, -26, 11, 5, 42, -117, 40, 36, -127, 61, 0, -78], "expV": [15, -62, -11, 28, 56, 51, -10, -112, -36, 13, 38, 6, -55, -21, -57, -4, -93, -6, 39, -57, 57, -127, 31, -63, -18, 14, 31, -92, 10, -91, 6, -16], "expCfgScale": 1554}, {"q": [[1.090317, -3.757014, -1.257445, -4.259259], [-0.036944, 2.527921, 1.884185, -0.814758], [3.849769, 1.765065, 4.220668, 1.235085], [-1.128191, 1.639744, 4.001473, -0.788424], [1.151847, -2.82357, 3.65268, -2.313873], [-6.787784, 2.926778, -4.843418, 4.69381], [-2.395345, -4.592776, -3.52801, 2.174838], [-1.916329, 2.350211, -3.749646, 3.002868]], "k": [[0.424498, 0.345275, 11.758277, -4.716368], [2.853894, -5.588018, -1.450848, -3.865635], [-2.124826, 0.144249, -4.452726, 1.965483], [-3.283827, 2.954054, -2.400268, -0.7326], [0.025563, -0.712493, 3.481012, 10.565833], [-0.01839, -2.119482, 0.12094, 1.528964], [-1.852631, 9.120015, -3.914529, 1.159727], [-4.36861, 3.065346, 5.542812, -1.732951]], "v": [[0.862498, -2.300643, 5.553393, 2.245425], [0.211326, -0.640342, 2.949191, -1.857825], [0.490078, -5.515286, -0.225703, 1.858454], [-3.827547, 2.874842, -3.689508, -3.254598], [-2.313559, 1.837163, -0.178773, 4.774336], [-9.932058, -1.376386, 4.984517, -2.513448], [5.241198, -0.875534, 9.56697, -7.537974], [4.61322, 5.550102, 4.514831, -5.322662]], "expQ": [20, -70, -24, -80, -1, 47, 35, -15, 72, 33, 79, 23, -21, 31, 75, -15, 22, -53, 68, -43, -127, 55, -91, 88, -45, -86, -66, 41, -36, 44, -70, 56], "expK": [5, 4, 127, -51, 31, -60, -16, -42, -23, 2, -48, 21, -35, 32, -26, -8, 0, -8, 38, 114, 0, -23, 1, 17, -20, 99, -42, 13, -47, 33, 60, -19], "expV": [11, -29, 71, 29, 3, -8, 38, -24, 6, -71, -3, 24, -49, 37, -47, -42, -30, 23, -2, 61, -127, -18, 64, -32, 67, -11, 122, -96, 59, 71, 58, -68], "expCfgScale": 3743}, {"q": [[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]], "k": [[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]], "v": [[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]], "expQ": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "expK": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "expV": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "expCfgScale": 756388}]
diff --git a/wasm/harness/bindings.cpp b/wasm/harness/bindings.cpp
index 13044a6..356ad27 100644
--- a/wasm/harness/bindings.cpp
+++ b/wasm/harness/bindings.cpp
@@ -12,6 +12,20 @@ using namespace emscripten;
namespace {
std::vector toI32(const val& arr) { return vecFromJSArray(arr); }
+val tileToJs(const TileState& t) {
+ val o = val::object();
+ o.set("curGrp", t.curGrp);
+ o.set("srow", t.srow);
+ o.set("s", val::array(t.s.begin(), t.s.end()));
+ o.set("z", val::array(t.z.begin(), t.z.end()));
+ o.set("p", val::array(t.p.begin(), t.p.end()));
+ o.set("alpha", val::array(t.alpha.begin(), t.alpha.end()));
+ o.set("m", val::array(t.m.begin(), t.m.end()));
+ o.set("l", val::array(t.l.begin(), t.l.end()));
+ o.set("o", val::array(t.o.begin(), t.o.end()));
+ return o;
+}
+
val snapshotToJs(const Snapshot& s) {
val o = val::object();
o.set("cycle", s.cycle);
@@ -50,5 +64,10 @@ EMSCRIPTEN_BINDINGS(tiny_attn) {
return val::array(words.begin(), words.end());
}))
.function("snapshot", optional_override([](TinyAttnSim& self) { return snapshotToJs(self.snapshot()); }))
- .function("isDone", &TinyAttnSim::isDone);
+ .function("isDone", &TinyAttnSim::isDone)
+ .function("getTile", optional_override([](TinyAttnSim& self) { return tileToJs(self.getTile()); }))
+ .function("readProbabilities", optional_override([](TinyAttnSim& self) {
+ auto p = self.readProbabilities();
+ return val::array(p.begin(), p.end());
+ }));
}
diff --git a/wasm/harness/harness.cpp b/wasm/harness/harness.cpp
index 0e04126..c5892a1 100644
--- a/wasm/harness/harness.cpp
+++ b/wasm/harness/harness.cpp
@@ -2,6 +2,31 @@
#include
+namespace {
+// Bit extraction from Verilator's word storage (wide ports are arrays of 32-bit words).
+template
+const uint32_t* wordsOf(const W& w) {
+ return &w[0];
+}
+inline const uint32_t* wordsOf(const uint64_t& v, uint32_t* tmp) {
+ tmp[0] = static_cast(v);
+ tmp[1] = static_cast(v >> 32);
+ return tmp;
+}
+uint64_t bitsAt(const uint32_t* words, int lsb, int width) {
+ uint64_t v = 0;
+ for (int b = 0; b < width; ++b) {
+ int bit = lsb + b;
+ if ((words[bit >> 5] >> (bit & 31)) & 1u) v |= 1ull << b;
+ }
+ return v;
+}
+int64_t signExtend(uint64_t v, int width) {
+ if (width < 64 && ((v >> (width - 1)) & 1u)) return static_cast(v) - (1ll << width);
+ return static_cast(v);
+}
+} // namespace
+
namespace {
// HBM layout (rtl/tiny_attn_pkg.sv)
constexpr uint32_t Q_BASE = 0, K_BASE = 32, V_BASE = 64, O_BASE = 96;
@@ -59,6 +84,7 @@ void TinyAttnSim::configure(int n, int qrows, bool causal, int mode, bool overla
if (scale >= (1u << 24)) throw std::invalid_argument("scale must fit 24 bits");
n_ = n;
qrows_ = qrows;
+ causal_ = causal;
top_->cfg_nb = static_cast(n / 4);
top_->cfg_gg = static_cast(qrows / 4);
top_->cfg_causal = causal ? 1 : 0;
@@ -153,3 +179,53 @@ std::vector TinyAttnSim::readHbm(int addr, int len) {
}
return words;
}
+
+TileState TinyAttnSim::getTile() const {
+ TileState t;
+ t.curGrp = top_->dbg_cur_grp;
+ t.srow = top_->dbg_srow;
+ uint32_t tmp[2];
+ const uint32_t* sw = wordsOf(top_->dbg_s_tile);
+ const uint32_t* zw = wordsOf(top_->dbg_z_tile);
+ const uint32_t* pw = wordsOf(top_->dbg_p_tile);
+ const uint32_t* aw = wordsOf(top_->dbg_alpha, tmp);
+ uint32_t tmp2[2];
+ const uint32_t* mw = wordsOf(top_->dbg_m, tmp2);
+ const uint32_t* lw = wordsOf(top_->dbg_l);
+ const uint32_t* ow = wordsOf(top_->dbg_o);
+ for (int i = 0; i < 16; ++i) {
+ t.s.push_back(static_cast(signExtend(bitsAt(sw, i * 17, 17), 17)));
+ t.z.push_back(static_cast(signExtend(bitsAt(zw, i * 16, 16), 16)));
+ t.p.push_back(static_cast(static_cast(bitsAt(pw, i * 9, 9))));
+ t.o.push_back(static_cast(signExtend(bitsAt(ow, i * 26, 26), 26)));
+ }
+ for (int i = 0; i < 4; ++i) {
+ t.alpha.push_back(static_cast(static_cast(bitsAt(aw, i * 16, 16))));
+ t.m.push_back(static_cast(signExtend(bitsAt(mw, i * 16, 16), 16)));
+ t.l.push_back(static_cast(static_cast(bitsAt(lw, i * 18, 18))));
+ }
+ return t;
+}
+
+std::vector TinyAttnSim::readProbabilities() {
+ const int nb = n_ / 4;
+ std::vector p(static_cast(n_) * n_, 0);
+ for (int qi = 0; qi < nb; ++qi) {
+ for (int kj = 0; kj < nb; ++kj) {
+ // Z tile at 256 + 64*qi + 8*kj, P tile at 768 + ...: 8 words, two 16-bit lanes per word
+ const int base = 768 + 64 * qi + 8 * kj;
+ if (causal_ && kj > qi) continue; // never computed: stays zero
+ for (int r = 0; r < 4; ++r) {
+ for (int c = 0; c < 4; ++c) {
+ int word = base + 2 * r + c / 2;
+ top_->o_rd_addr = word;
+ evalComb();
+ uint32_t w = top_->o_rd_word;
+ int32_t v = static_cast((w >> (16 * (c % 2))) & 0xFFFFu);
+ p[static_cast(qi * 4 + r) * n_ + kj * 4 + c] = v;
+ }
+ }
+ }
+ }
+ return p;
+}
diff --git a/wasm/harness/harness.h b/wasm/harness/harness.h
index fba0d6a..cd4a7c7 100644
--- a/wasm/harness/harness.h
+++ b/wasm/harness/harness.h
@@ -23,6 +23,20 @@ struct Snapshot {
uint32_t kvLoads;
};
+// Tile-core state of the most recent tile (see attn_tile.sv dbg_* ports). S, Z, P, m, l, alpha and O are for the
+// group of that tile: 4 rows (S/Z/P: 4 x 4 lanes, O: 4 x 4 columns). Values are signed or unsigned as in the RTL.
+struct TileState {
+ int curGrp;
+ int srow;
+ std::vector s; // 16, S_W = 17 bit signed
+ std::vector z; // 16, Q8.8 signed
+ std::vector p; // 16, UQ1.8 (0..256)
+ std::vector alpha; // 4, UQ1.15
+ std::vector m; // 4, Q8.8 signed
+ std::vector l; // 4, 18 bit unsigned
+ std::vector o; // 16, 26 bit signed
+};
+
class TinyAttnSim {
public:
TinyAttnSim();
@@ -47,6 +61,9 @@ class TinyAttnSim {
std::vector readHbm(int addr, int len);
Snapshot snapshot() const;
bool isDone() const;
+ TileState getTile() const;
+ // P tiles written by a NAIVE run (HBM words 768..): n x n probabilities (UQ1.8), row-major. Requires n known.
+ std::vector readProbabilities();
private:
void clockEdge();
@@ -56,5 +73,6 @@ class TinyAttnSim {
Vtiny_attn_top* top_;
int n_ = 4;
int qrows_ = 4;
+ bool causal_ = false;
uint32_t cycle_ = 0;
};
diff --git a/wasm/test.mjs b/wasm/test.mjs
index 289135a..a1e7459 100644
--- a/wasm/test.mjs
+++ b/wasm/test.mjs
@@ -11,8 +11,9 @@ const root = join(dirname(fileURLToPath(import.meta.url)), "..");
const { default: createTinyAttn } = await import(join(root, "web/public/tiny_attn.mjs"));
const mod = await createTinyAttn();
+// engine runs only; quantize_cases.json holds quantization references for the web tests
const fixtures = readdirSync(join(root, "wasm/fixtures"))
- .filter((f) => f.endsWith(".json"))
+ .filter((f) => f.endsWith(".json") && !f.startsWith("quantize_"))
.sort()
.map((f) => JSON.parse(readFileSync(join(root, "wasm/fixtures", f), "utf8")));
@@ -58,6 +59,24 @@ for (const { fx, sim, last, finished } of sims) {
check(last.tiles === fx.tiles, `tiles ${last.tiles} != ${fx.tiles}`);
check(last.kvLoads === fx.kvLoads, `K/V loads ${last.kvLoads} != ${fx.kvLoads}`);
check(last.cycles === fx.cycles, `busy cycles ${last.cycles} != ${fx.cycles}`);
+ if (fx.lastTile) {
+ // tile state of the last computed tile, against the golden trace entry for that tile
+ const t = sim.getTile();
+ const G = fx.qrows / 4;
+ const lt = fx.lastTile;
+ check(t.curGrp === lt.qi - Math.floor(lt.qi / G) * G, `tile group ${t.curGrp}`);
+ check(JSON.stringify(t.m) === JSON.stringify(lt.m), `tile m ${t.m} != ${lt.m}`);
+ check(JSON.stringify(t.l) === JSON.stringify(lt.l), `tile l ${t.l} != ${lt.l}`);
+ check(JSON.stringify(t.alpha) === JSON.stringify(lt.alpha), `tile alpha ${t.alpha} != ${lt.alpha}`);
+ check(JSON.stringify(t.o) === JSON.stringify(lt.o), "tile O differs from golden");
+ console.log(` last tile (qi=${lt.qi}, kj=${lt.kj}) state checked`);
+ }
+ if (fx.probs) {
+ const probs = Array.from(sim.readProbabilities());
+ const badP = probs.findIndex((v, i) => v !== fx.probs[i]);
+ check(badP < 0, `probability ${badP} differs: expected ${fx.probs[badP]}, got ${probs[badP]}`);
+ console.log(` probabilities (${fx.n}x${fx.n}) checked`);
+ }
console.log(` cycles ${last.cycles} read ${last.hbmRdBytes} B write ${last.hbmWrBytes} B tiles ${last.tiles}`);
sim.delete();
}
diff --git a/web/eslint.config.js b/web/eslint.config.js
index 647ded7..3ed0649 100644
--- a/web/eslint.config.js
+++ b/web/eslint.config.js
@@ -39,6 +39,14 @@ export default [
react: { version: "detect" },
},
},
+ {
+ files: ["**/*.test.ts"],
+ languageOptions: {
+ globals: {
+ ...globals.node,
+ },
+ },
+ },
{
files: ["scripts/**/*.mjs", "scripts/**/*.js"],
languageOptions: {
diff --git a/web/package.json b/web/package.json
index 3ec04a7..58086dd 100644
--- a/web/package.json
+++ b/web/package.json
@@ -8,7 +8,8 @@
"preview": "astro preview",
"lint": "eslint .",
"typecheck": "astro check && tsc --noEmit",
- "format": "prettier --write ."
+ "format": "prettier --write .",
+ "test": "vitest run"
},
"dependencies": {
"@astrojs/react": "^4.4.2",
@@ -24,6 +25,7 @@
"devDependencies": {
"@astrojs/check": "^0.9.4",
"@eslint/js": "^9.13.0",
+ "@types/node": "^22.20.5",
"@types/react": "^18.3.12",
"@types/react-dom": "^18.3.1",
"@typescript-eslint/eslint-plugin": "^8.12.2",
@@ -34,6 +36,7 @@
"globals": "^17.6.0",
"prettier": "^3.3.3",
"prettier-plugin-tailwindcss": "^0.6.8",
- "typescript": "^5.6.3"
+ "typescript": "^5.6.3",
+ "vitest": "^3.2.7"
}
}
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index 8128631..d01436f 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -1,24 +1,25 @@
-lockfileVersion: "9.0"
+lockfileVersion: '9.0'
settings:
autoInstallPeers: true
excludeLinksFromLockfile: false
importers:
+
.:
dependencies:
- "@astrojs/react":
+ '@astrojs/react':
specifier: ^4.4.2
- version: 4.4.2(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(jiti@2.7.0)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@7.2.0)(yaml@2.9.1)
- "@fontsource-variable/inter":
+ version: 4.4.2(@types/node@22.20.5)(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(jiti@2.7.0)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@7.2.0)(yaml@2.9.1)
+ '@fontsource-variable/inter':
specifier: ^5.0.0
version: 5.3.0
- "@tailwindcss/vite":
+ '@tailwindcss/vite':
specifier: ^4.0.0
- version: 4.3.3(vite@6.4.5(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.1))
+ version: 4.3.3(vite@6.4.5(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.1))
astro:
specifier: ^5.0.0
- version: 5.18.2(jiti@2.7.0)(lightningcss@1.32.0)(rollup@4.65.0)(supports-color@7.2.0)(typescript@5.9.3)(yaml@2.9.1)
+ version: 5.18.2(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)(rollup@4.65.0)(supports-color@7.2.0)(typescript@5.9.3)(yaml@2.9.1)
clsx:
specifier: ^2.1.1
version: 2.1.1
@@ -35,22 +36,25 @@ importers:
specifier: ^4.0.0
version: 4.3.3
devDependencies:
- "@astrojs/check":
+ '@astrojs/check':
specifier: ^0.9.4
version: 0.9.12(@emnapi/runtime@1.11.3)(prettier@3.9.10)(typescript@5.9.3)
- "@eslint/js":
+ '@eslint/js':
specifier: ^9.13.0
version: 9.39.5
- "@types/react":
+ '@types/node':
+ specifier: ^22.20.5
+ version: 22.20.5
+ '@types/react':
specifier: ^18.3.12
version: 18.3.31
- "@types/react-dom":
+ '@types/react-dom':
specifier: ^18.3.1
version: 18.3.7(@types/react@18.3.31)
- "@typescript-eslint/eslint-plugin":
+ '@typescript-eslint/eslint-plugin':
specifier: ^8.12.2
version: 8.72.0(@typescript-eslint/parser@8.72.0(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3)
- "@typescript-eslint/parser":
+ '@typescript-eslint/parser':
specifier: ^8.12.2
version: 8.72.0(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3)
eslint:
@@ -74,1855 +78,1213 @@ importers:
typescript:
specifier: ^5.6.3
version: 5.9.3
+ vitest:
+ specifier: ^3.2.7
+ version: 3.2.7(@types/debug@4.1.13)(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)(supports-color@7.2.0)(yaml@2.9.1)
packages:
- "@astrojs/astro2tsx@0.1.3":
- resolution:
- {
- integrity: sha512-GMDC7Eo0myBUA/QLBl0u+OcegJ8LiBhccmNZR34KmprQNP8gQUJlWlOOZWUsxNA2rNS6GuPYcGDyLoPnjmn4/Q==,
- }
- engines: { node: ^20.19.0 || >=22.12.0 }
-
- "@astrojs/check@0.9.12":
- resolution:
- {
- integrity: sha512-hazpqxIfZWj2VhyPyR0pOEQ/IhFDM/2nIApL96zMXABdD8NrUKYDmhxTy7h+drTDl9MQG/Sd1ET/4amadVJUUA==,
- }
+
+ '@astrojs/astro2tsx@0.1.3':
+ resolution: {integrity: sha512-GMDC7Eo0myBUA/QLBl0u+OcegJ8LiBhccmNZR34KmprQNP8gQUJlWlOOZWUsxNA2rNS6GuPYcGDyLoPnjmn4/Q==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+
+ '@astrojs/check@0.9.12':
+ resolution: {integrity: sha512-hazpqxIfZWj2VhyPyR0pOEQ/IhFDM/2nIApL96zMXABdD8NrUKYDmhxTy7h+drTDl9MQG/Sd1ET/4amadVJUUA==}
hasBin: true
peerDependencies:
typescript: ^5.0.0 || ^6.0.0
- "@astrojs/compiler@2.13.1":
- resolution:
- {
- integrity: sha512-f3FN83d2G/v32ipNClRKgYv30onQlMZX1vCeZMjPsMMPl1mDpmbl0+N5BYo4S/ofzqJyS5hvwacEo0CCVDn/Qg==,
- }
-
- "@astrojs/internal-helpers@0.7.6":
- resolution:
- {
- integrity: sha512-GOle7smBWKfMSP8osUIGOlB5kaHdQLV3foCsf+5Q9Wsuu+C6Fs3Ez/ttXmhjZ1HkSgsogcM1RXSjjOVieHq16Q==,
- }
-
- "@astrojs/language-server@2.17.3":
- resolution:
- {
- integrity: sha512-QIAFu1e/4quJMTPdmBOm+ZPXc5NDGZE4/YQjgR3EgjhGLl/tdidaWJDr5WmO2lesVc+BW1qN/xNBURmuePDG2A==,
- }
+ '@astrojs/compiler@2.13.1':
+ resolution: {integrity: sha512-f3FN83d2G/v32ipNClRKgYv30onQlMZX1vCeZMjPsMMPl1mDpmbl0+N5BYo4S/ofzqJyS5hvwacEo0CCVDn/Qg==}
+
+ '@astrojs/internal-helpers@0.7.6':
+ resolution: {integrity: sha512-GOle7smBWKfMSP8osUIGOlB5kaHdQLV3foCsf+5Q9Wsuu+C6Fs3Ez/ttXmhjZ1HkSgsogcM1RXSjjOVieHq16Q==}
+
+ '@astrojs/language-server@2.17.3':
+ resolution: {integrity: sha512-QIAFu1e/4quJMTPdmBOm+ZPXc5NDGZE4/YQjgR3EgjhGLl/tdidaWJDr5WmO2lesVc+BW1qN/xNBURmuePDG2A==}
hasBin: true
peerDependencies:
prettier: ^3.0.0
- prettier-plugin-astro: ">=0.11.0"
+ prettier-plugin-astro: '>=0.11.0'
peerDependenciesMeta:
prettier:
optional: true
prettier-plugin-astro:
optional: true
- "@astrojs/markdown-remark@6.3.11":
- resolution:
- {
- integrity: sha512-hcaxX/5aC6lQgHeGh1i+aauvSwIT6cfyFjKWvExYSxUhZZBBdvCliOtu06gbQyhbe0pGJNoNmqNlQZ5zYUuIyQ==,
- }
-
- "@astrojs/prism@3.3.0":
- resolution:
- {
- integrity: sha512-q8VwfU/fDZNoDOf+r7jUnMC2//H2l0TuQ6FkGJL8vD8nw/q5KiL3DS1KKBI3QhI9UQhpJ5dc7AtqfbXWuOgLCQ==,
- }
- engines: { node: 18.20.8 || ^20.3.0 || >=22.0.0 }
-
- "@astrojs/react@4.4.2":
- resolution:
- {
- integrity: sha512-1tl95bpGfuaDMDn8O3x/5Dxii1HPvzjvpL2YTuqOOrQehs60I2DKiDgh1jrKc7G8lv+LQT5H15V6QONQ+9waeQ==,
- }
- engines: { node: 18.20.8 || ^20.3.0 || >=22.0.0 }
+ '@astrojs/markdown-remark@6.3.11':
+ resolution: {integrity: sha512-hcaxX/5aC6lQgHeGh1i+aauvSwIT6cfyFjKWvExYSxUhZZBBdvCliOtu06gbQyhbe0pGJNoNmqNlQZ5zYUuIyQ==}
+
+ '@astrojs/prism@3.3.0':
+ resolution: {integrity: sha512-q8VwfU/fDZNoDOf+r7jUnMC2//H2l0TuQ6FkGJL8vD8nw/q5KiL3DS1KKBI3QhI9UQhpJ5dc7AtqfbXWuOgLCQ==}
+ engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0}
+
+ '@astrojs/react@4.4.2':
+ resolution: {integrity: sha512-1tl95bpGfuaDMDn8O3x/5Dxii1HPvzjvpL2YTuqOOrQehs60I2DKiDgh1jrKc7G8lv+LQT5H15V6QONQ+9waeQ==}
+ engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0}
peerDependencies:
- "@types/react": ^17.0.50 || ^18.0.21 || ^19.0.0
- "@types/react-dom": ^17.0.17 || ^18.0.6 || ^19.0.0
+ '@types/react': ^17.0.50 || ^18.0.21 || ^19.0.0
+ '@types/react-dom': ^17.0.17 || ^18.0.6 || ^19.0.0
react: ^17.0.2 || ^18.0.0 || ^19.0.0
react-dom: ^17.0.2 || ^18.0.0 || ^19.0.0
- "@astrojs/telemetry@3.3.0":
- resolution:
- {
- integrity: sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ==,
- }
- engines: { node: 18.20.8 || ^20.3.0 || >=22.0.0 }
-
- "@astrojs/yaml2ts@0.2.4":
- resolution:
- {
- integrity: sha512-8oddpOae35pJsXPQXhTkM0ypfKPskVsh2bCxRtbf7e+/Epw2nReakFYpLKjZMEr75CsoF203PMnCocpfz0s69A==,
- }
-
- "@babel/code-frame@7.29.7":
- resolution:
- {
- integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==,
- }
- engines: { node: ">=6.9.0" }
-
- "@babel/compat-data@7.29.7":
- resolution:
- {
- integrity: sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==,
- }
- engines: { node: ">=6.9.0" }
-
- "@babel/core@7.29.7":
- resolution:
- {
- integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==,
- }
- engines: { node: ">=6.9.0" }
-
- "@babel/generator@7.29.8":
- resolution:
- {
- integrity: sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==,
- }
- engines: { node: ">=6.9.0" }
-
- "@babel/helper-compilation-targets@7.29.7":
- resolution:
- {
- integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==,
- }
- engines: { node: ">=6.9.0" }
-
- "@babel/helper-globals@7.29.7":
- resolution:
- {
- integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==,
- }
- engines: { node: ">=6.9.0" }
-
- "@babel/helper-module-imports@7.29.7":
- resolution:
- {
- integrity: sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==,
- }
- engines: { node: ">=6.9.0" }
-
- "@babel/helper-module-transforms@7.29.7":
- resolution:
- {
- integrity: sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==,
- }
- engines: { node: ">=6.9.0" }
+ '@astrojs/telemetry@3.3.0':
+ resolution: {integrity: sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ==}
+ engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0}
+
+ '@astrojs/yaml2ts@0.2.4':
+ resolution: {integrity: sha512-8oddpOae35pJsXPQXhTkM0ypfKPskVsh2bCxRtbf7e+/Epw2nReakFYpLKjZMEr75CsoF203PMnCocpfz0s69A==}
+
+ '@babel/code-frame@7.29.7':
+ resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/compat-data@7.29.7':
+ resolution: {integrity: sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/core@7.29.7':
+ resolution: {integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/generator@7.29.8':
+ resolution: {integrity: sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-compilation-targets@7.29.7':
+ resolution: {integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-globals@7.29.7':
+ resolution: {integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-module-imports@7.29.7':
+ resolution: {integrity: sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-module-transforms@7.29.7':
+ resolution: {integrity: sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==}
+ engines: {node: '>=6.9.0'}
peerDependencies:
- "@babel/core": ^7.0.0
-
- "@babel/helper-plugin-utils@7.29.7":
- resolution:
- {
- integrity: sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==,
- }
- engines: { node: ">=6.9.0" }
-
- "@babel/helper-string-parser@7.29.7":
- resolution:
- {
- integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==,
- }
- engines: { node: ">=6.9.0" }
-
- "@babel/helper-validator-identifier@7.29.7":
- resolution:
- {
- integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==,
- }
- engines: { node: ">=6.9.0" }
-
- "@babel/helper-validator-option@7.29.7":
- resolution:
- {
- integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==,
- }
- engines: { node: ">=6.9.0" }
-
- "@babel/helpers@7.29.10":
- resolution:
- {
- integrity: sha512-EMCx3AGZ3WfAl6ht7AyQoPm2Lh+BGYEMdc4Q6Hf7uSCDOZFuLq44qNwL+iaim8VlyYhRAo4X43+weadK8ZB4Yg==,
- }
- engines: { node: ">=6.9.0" }
-
- "@babel/parser@7.29.9":
- resolution:
- {
- integrity: sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA==,
- }
- engines: { node: ">=6.0.0" }
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-plugin-utils@7.29.7':
+ resolution: {integrity: sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-string-parser@7.29.7':
+ resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-validator-identifier@7.29.7':
+ resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-validator-option@7.29.7':
+ resolution: {integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helpers@7.29.10':
+ resolution: {integrity: sha512-EMCx3AGZ3WfAl6ht7AyQoPm2Lh+BGYEMdc4Q6Hf7uSCDOZFuLq44qNwL+iaim8VlyYhRAo4X43+weadK8ZB4Yg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/parser@7.29.9':
+ resolution: {integrity: sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA==}
+ engines: {node: '>=6.0.0'}
hasBin: true
- "@babel/plugin-transform-react-jsx-self@7.29.7":
- resolution:
- {
- integrity: sha512-TL0hMc9xzy86VD31nUiwzd5otRAcyEPcsegCxolO0PvcXuH1v0kECe/UIznYFihpkvU5wg/jk4v0TTEFfm53fw==,
- }
- engines: { node: ">=6.9.0" }
+ '@babel/plugin-transform-react-jsx-self@7.29.7':
+ resolution: {integrity: sha512-TL0hMc9xzy86VD31nUiwzd5otRAcyEPcsegCxolO0PvcXuH1v0kECe/UIznYFihpkvU5wg/jk4v0TTEFfm53fw==}
+ engines: {node: '>=6.9.0'}
peerDependencies:
- "@babel/core": ^7.0.0-0
-
- "@babel/plugin-transform-react-jsx-source@7.29.7":
- resolution:
- {
- integrity: sha512-06IyK09H3wi4cGbhDBwp5gUGo0IKtnYa8tyTiephirPCK6fbobVGiXMMI5zLQ4aKEYP3wZ3ArU44o+8KMrSG/Q==,
- }
- engines: { node: ">=6.9.0" }
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-react-jsx-source@7.29.7':
+ resolution: {integrity: sha512-06IyK09H3wi4cGbhDBwp5gUGo0IKtnYa8tyTiephirPCK6fbobVGiXMMI5zLQ4aKEYP3wZ3ArU44o+8KMrSG/Q==}
+ engines: {node: '>=6.9.0'}
peerDependencies:
- "@babel/core": ^7.0.0-0
-
- "@babel/template@7.29.7":
- resolution:
- {
- integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==,
- }
- engines: { node: ">=6.9.0" }
-
- "@babel/traverse@7.29.10":
- resolution:
- {
- integrity: sha512-B3lYAs2nkKskbgQ1nfy8Ma9ao9Q1rntTAQHrzzyDuj+TSO+X3le6PfWwqDvodsb+OumE10eMFfuMCTQSQ5iuIQ==,
- }
- engines: { node: ">=6.9.0" }
-
- "@babel/types@7.29.8":
- resolution:
- {
- integrity: sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==,
- }
- engines: { node: ">=6.9.0" }
-
- "@capsizecss/unpack@4.0.1":
- resolution:
- {
- integrity: sha512-CuNiSqg7+e1cO/GjffyMOm5Tt2jUF9CWHHnvQ/UkqvtkGfHdgwEC0wpmq7fkN3gxwpRnrAN0WzO3vREKmNolMQ==,
- }
- engines: { node: ">=18" }
-
- "@emmetio/abbreviation@2.3.3":
- resolution:
- {
- integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==,
- }
-
- "@emmetio/css-abbreviation@2.1.8":
- resolution:
- {
- integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==,
- }
-
- "@emmetio/css-parser@0.4.1":
- resolution:
- {
- integrity: sha512-2bC6m0MV/voF4CTZiAbG5MWKbq5EBmDPKu9Sb7s7nVcEzNQlrZP6mFFFlIaISM8X6514H9shWMme1fCm8cWAfQ==,
- }
-
- "@emmetio/html-matcher@1.3.0":
- resolution:
- {
- integrity: sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==,
- }
-
- "@emmetio/scanner@1.0.4":
- resolution:
- {
- integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==,
- }
-
- "@emmetio/stream-reader-utils@0.1.0":
- resolution:
- {
- integrity: sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==,
- }
-
- "@emmetio/stream-reader@2.2.0":
- resolution:
- {
- integrity: sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==,
- }
-
- "@emnapi/core@1.11.3":
- resolution:
- {
- integrity: sha512-zLpS5asjEb7lq8jYLq37N6XKaE41DIexlY1rF/z4/tIl3wo13Sqm28fRyfIsKZD+NZ8mM5RoKkpW/rBcuoSZSg==,
- }
-
- "@emnapi/runtime@1.11.3":
- resolution:
- {
- integrity: sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==,
- }
-
- "@emnapi/wasi-threads@1.2.3":
- resolution:
- {
- integrity: sha512-ELEBe8PsLvvJ6QMr0zLt8ffvOHW/dc1m3CEzNMg7aJUv3bMaoDtw2TXyDAwkYBuroxxuHEwhRTLJSe5sya547g==,
- }
-
- "@esbuild/aix-ppc64@0.25.12":
- resolution:
- {
- integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==,
- }
- engines: { node: ">=18" }
+ '@babel/core': ^7.0.0-0
+
+ '@babel/template@7.29.7':
+ resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/traverse@7.29.10':
+ resolution: {integrity: sha512-B3lYAs2nkKskbgQ1nfy8Ma9ao9Q1rntTAQHrzzyDuj+TSO+X3le6PfWwqDvodsb+OumE10eMFfuMCTQSQ5iuIQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/types@7.29.8':
+ resolution: {integrity: sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==}
+ engines: {node: '>=6.9.0'}
+
+ '@capsizecss/unpack@4.0.1':
+ resolution: {integrity: sha512-CuNiSqg7+e1cO/GjffyMOm5Tt2jUF9CWHHnvQ/UkqvtkGfHdgwEC0wpmq7fkN3gxwpRnrAN0WzO3vREKmNolMQ==}
+ engines: {node: '>=18'}
+
+ '@emmetio/abbreviation@2.3.3':
+ resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==}
+
+ '@emmetio/css-abbreviation@2.1.8':
+ resolution: {integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==}
+
+ '@emmetio/css-parser@0.4.1':
+ resolution: {integrity: sha512-2bC6m0MV/voF4CTZiAbG5MWKbq5EBmDPKu9Sb7s7nVcEzNQlrZP6mFFFlIaISM8X6514H9shWMme1fCm8cWAfQ==}
+
+ '@emmetio/html-matcher@1.3.0':
+ resolution: {integrity: sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==}
+
+ '@emmetio/scanner@1.0.4':
+ resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==}
+
+ '@emmetio/stream-reader-utils@0.1.0':
+ resolution: {integrity: sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==}
+
+ '@emmetio/stream-reader@2.2.0':
+ resolution: {integrity: sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==}
+
+ '@emnapi/core@1.11.3':
+ resolution: {integrity: sha512-zLpS5asjEb7lq8jYLq37N6XKaE41DIexlY1rF/z4/tIl3wo13Sqm28fRyfIsKZD+NZ8mM5RoKkpW/rBcuoSZSg==}
+
+ '@emnapi/runtime@1.11.3':
+ resolution: {integrity: sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==}
+
+ '@emnapi/wasi-threads@1.2.3':
+ resolution: {integrity: sha512-ELEBe8PsLvvJ6QMr0zLt8ffvOHW/dc1m3CEzNMg7aJUv3bMaoDtw2TXyDAwkYBuroxxuHEwhRTLJSe5sya547g==}
+
+ '@esbuild/aix-ppc64@0.25.12':
+ resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==}
+ engines: {node: '>=18'}
cpu: [ppc64]
os: [aix]
- "@esbuild/aix-ppc64@0.27.7":
- resolution:
- {
- integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==,
- }
- engines: { node: ">=18" }
+ '@esbuild/aix-ppc64@0.27.7':
+ resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==}
+ engines: {node: '>=18'}
cpu: [ppc64]
os: [aix]
- "@esbuild/android-arm64@0.25.12":
- resolution:
- {
- integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==,
- }
- engines: { node: ">=18" }
+ '@esbuild/android-arm64@0.25.12':
+ resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==}
+ engines: {node: '>=18'}
cpu: [arm64]
os: [android]
- "@esbuild/android-arm64@0.27.7":
- resolution:
- {
- integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==,
- }
- engines: { node: ">=18" }
+ '@esbuild/android-arm64@0.27.7':
+ resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==}
+ engines: {node: '>=18'}
cpu: [arm64]
os: [android]
- "@esbuild/android-arm@0.25.12":
- resolution:
- {
- integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==,
- }
- engines: { node: ">=18" }
+ '@esbuild/android-arm@0.25.12':
+ resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==}
+ engines: {node: '>=18'}
cpu: [arm]
os: [android]
- "@esbuild/android-arm@0.27.7":
- resolution:
- {
- integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==,
- }
- engines: { node: ">=18" }
+ '@esbuild/android-arm@0.27.7':
+ resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==}
+ engines: {node: '>=18'}
cpu: [arm]
os: [android]
- "@esbuild/android-x64@0.25.12":
- resolution:
- {
- integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==,
- }
- engines: { node: ">=18" }
+ '@esbuild/android-x64@0.25.12':
+ resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [android]
- "@esbuild/android-x64@0.27.7":
- resolution:
- {
- integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==,
- }
- engines: { node: ">=18" }
+ '@esbuild/android-x64@0.27.7':
+ resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [android]
- "@esbuild/darwin-arm64@0.25.12":
- resolution:
- {
- integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==,
- }
- engines: { node: ">=18" }
+ '@esbuild/darwin-arm64@0.25.12':
+ resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==}
+ engines: {node: '>=18'}
cpu: [arm64]
os: [darwin]
- "@esbuild/darwin-arm64@0.27.7":
- resolution:
- {
- integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==,
- }
- engines: { node: ">=18" }
+ '@esbuild/darwin-arm64@0.27.7':
+ resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==}
+ engines: {node: '>=18'}
cpu: [arm64]
os: [darwin]
- "@esbuild/darwin-x64@0.25.12":
- resolution:
- {
- integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==,
- }
- engines: { node: ">=18" }
+ '@esbuild/darwin-x64@0.25.12':
+ resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [darwin]
- "@esbuild/darwin-x64@0.27.7":
- resolution:
- {
- integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==,
- }
- engines: { node: ">=18" }
+ '@esbuild/darwin-x64@0.27.7':
+ resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [darwin]
- "@esbuild/freebsd-arm64@0.25.12":
- resolution:
- {
- integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==,
- }
- engines: { node: ">=18" }
+ '@esbuild/freebsd-arm64@0.25.12':
+ resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==}
+ engines: {node: '>=18'}
cpu: [arm64]
os: [freebsd]
- "@esbuild/freebsd-arm64@0.27.7":
- resolution:
- {
- integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==,
- }
- engines: { node: ">=18" }
+ '@esbuild/freebsd-arm64@0.27.7':
+ resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==}
+ engines: {node: '>=18'}
cpu: [arm64]
os: [freebsd]
- "@esbuild/freebsd-x64@0.25.12":
- resolution:
- {
- integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==,
- }
- engines: { node: ">=18" }
+ '@esbuild/freebsd-x64@0.25.12':
+ resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [freebsd]
- "@esbuild/freebsd-x64@0.27.7":
- resolution:
- {
- integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==,
- }
- engines: { node: ">=18" }
+ '@esbuild/freebsd-x64@0.27.7':
+ resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [freebsd]
- "@esbuild/linux-arm64@0.25.12":
- resolution:
- {
- integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==,
- }
- engines: { node: ">=18" }
+ '@esbuild/linux-arm64@0.25.12':
+ resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==}
+ engines: {node: '>=18'}
cpu: [arm64]
os: [linux]
- "@esbuild/linux-arm64@0.27.7":
- resolution:
- {
- integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==,
- }
- engines: { node: ">=18" }
+ '@esbuild/linux-arm64@0.27.7':
+ resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==}
+ engines: {node: '>=18'}
cpu: [arm64]
os: [linux]
- "@esbuild/linux-arm@0.25.12":
- resolution:
- {
- integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==,
- }
- engines: { node: ">=18" }
+ '@esbuild/linux-arm@0.25.12':
+ resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==}
+ engines: {node: '>=18'}
cpu: [arm]
os: [linux]
- "@esbuild/linux-arm@0.27.7":
- resolution:
- {
- integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==,
- }
- engines: { node: ">=18" }
+ '@esbuild/linux-arm@0.27.7':
+ resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==}
+ engines: {node: '>=18'}
cpu: [arm]
os: [linux]
- "@esbuild/linux-ia32@0.25.12":
- resolution:
- {
- integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==,
- }
- engines: { node: ">=18" }
+ '@esbuild/linux-ia32@0.25.12':
+ resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==}
+ engines: {node: '>=18'}
cpu: [ia32]
os: [linux]
- "@esbuild/linux-ia32@0.27.7":
- resolution:
- {
- integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==,
- }
- engines: { node: ">=18" }
+ '@esbuild/linux-ia32@0.27.7':
+ resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==}
+ engines: {node: '>=18'}
cpu: [ia32]
os: [linux]
- "@esbuild/linux-loong64@0.25.12":
- resolution:
- {
- integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==,
- }
- engines: { node: ">=18" }
+ '@esbuild/linux-loong64@0.25.12':
+ resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==}
+ engines: {node: '>=18'}
cpu: [loong64]
os: [linux]
- "@esbuild/linux-loong64@0.27.7":
- resolution:
- {
- integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==,
- }
- engines: { node: ">=18" }
+ '@esbuild/linux-loong64@0.27.7':
+ resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==}
+ engines: {node: '>=18'}
cpu: [loong64]
os: [linux]
- "@esbuild/linux-mips64el@0.25.12":
- resolution:
- {
- integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==,
- }
- engines: { node: ">=18" }
+ '@esbuild/linux-mips64el@0.25.12':
+ resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==}
+ engines: {node: '>=18'}
cpu: [mips64el]
os: [linux]
- "@esbuild/linux-mips64el@0.27.7":
- resolution:
- {
- integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==,
- }
- engines: { node: ">=18" }
+ '@esbuild/linux-mips64el@0.27.7':
+ resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==}
+ engines: {node: '>=18'}
cpu: [mips64el]
os: [linux]
- "@esbuild/linux-ppc64@0.25.12":
- resolution:
- {
- integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==,
- }
- engines: { node: ">=18" }
+ '@esbuild/linux-ppc64@0.25.12':
+ resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==}
+ engines: {node: '>=18'}
cpu: [ppc64]
os: [linux]
- "@esbuild/linux-ppc64@0.27.7":
- resolution:
- {
- integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==,
- }
- engines: { node: ">=18" }
+ '@esbuild/linux-ppc64@0.27.7':
+ resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==}
+ engines: {node: '>=18'}
cpu: [ppc64]
os: [linux]
- "@esbuild/linux-riscv64@0.25.12":
- resolution:
- {
- integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==,
- }
- engines: { node: ">=18" }
+ '@esbuild/linux-riscv64@0.25.12':
+ resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==}
+ engines: {node: '>=18'}
cpu: [riscv64]
os: [linux]
- "@esbuild/linux-riscv64@0.27.7":
- resolution:
- {
- integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==,
- }
- engines: { node: ">=18" }
+ '@esbuild/linux-riscv64@0.27.7':
+ resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==}
+ engines: {node: '>=18'}
cpu: [riscv64]
os: [linux]
- "@esbuild/linux-s390x@0.25.12":
- resolution:
- {
- integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==,
- }
- engines: { node: ">=18" }
+ '@esbuild/linux-s390x@0.25.12':
+ resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==}
+ engines: {node: '>=18'}
cpu: [s390x]
os: [linux]
- "@esbuild/linux-s390x@0.27.7":
- resolution:
- {
- integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==,
- }
- engines: { node: ">=18" }
+ '@esbuild/linux-s390x@0.27.7':
+ resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==}
+ engines: {node: '>=18'}
cpu: [s390x]
os: [linux]
- "@esbuild/linux-x64@0.25.12":
- resolution:
- {
- integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==,
- }
- engines: { node: ">=18" }
+ '@esbuild/linux-x64@0.25.12':
+ resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [linux]
- "@esbuild/linux-x64@0.27.7":
- resolution:
- {
- integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==,
- }
- engines: { node: ">=18" }
+ '@esbuild/linux-x64@0.27.7':
+ resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [linux]
- "@esbuild/netbsd-arm64@0.25.12":
- resolution:
- {
- integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==,
- }
- engines: { node: ">=18" }
+ '@esbuild/netbsd-arm64@0.25.12':
+ resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==}
+ engines: {node: '>=18'}
cpu: [arm64]
os: [netbsd]
- "@esbuild/netbsd-arm64@0.27.7":
- resolution:
- {
- integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==,
- }
- engines: { node: ">=18" }
+ '@esbuild/netbsd-arm64@0.27.7':
+ resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==}
+ engines: {node: '>=18'}
cpu: [arm64]
os: [netbsd]
- "@esbuild/netbsd-x64@0.25.12":
- resolution:
- {
- integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==,
- }
- engines: { node: ">=18" }
+ '@esbuild/netbsd-x64@0.25.12':
+ resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [netbsd]
- "@esbuild/netbsd-x64@0.27.7":
- resolution:
- {
- integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==,
- }
- engines: { node: ">=18" }
+ '@esbuild/netbsd-x64@0.27.7':
+ resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [netbsd]
- "@esbuild/openbsd-arm64@0.25.12":
- resolution:
- {
- integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==,
- }
- engines: { node: ">=18" }
+ '@esbuild/openbsd-arm64@0.25.12':
+ resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==}
+ engines: {node: '>=18'}
cpu: [arm64]
os: [openbsd]
- "@esbuild/openbsd-arm64@0.27.7":
- resolution:
- {
- integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==,
- }
- engines: { node: ">=18" }
+ '@esbuild/openbsd-arm64@0.27.7':
+ resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==}
+ engines: {node: '>=18'}
cpu: [arm64]
os: [openbsd]
- "@esbuild/openbsd-x64@0.25.12":
- resolution:
- {
- integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==,
- }
- engines: { node: ">=18" }
+ '@esbuild/openbsd-x64@0.25.12':
+ resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [openbsd]
- "@esbuild/openbsd-x64@0.27.7":
- resolution:
- {
- integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==,
- }
- engines: { node: ">=18" }
+ '@esbuild/openbsd-x64@0.27.7':
+ resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [openbsd]
- "@esbuild/openharmony-arm64@0.25.12":
- resolution:
- {
- integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==,
- }
- engines: { node: ">=18" }
+ '@esbuild/openharmony-arm64@0.25.12':
+ resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==}
+ engines: {node: '>=18'}
cpu: [arm64]
os: [openharmony]
- "@esbuild/openharmony-arm64@0.27.7":
- resolution:
- {
- integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==,
- }
- engines: { node: ">=18" }
+ '@esbuild/openharmony-arm64@0.27.7':
+ resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==}
+ engines: {node: '>=18'}
cpu: [arm64]
os: [openharmony]
- "@esbuild/sunos-x64@0.25.12":
- resolution:
- {
- integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==,
- }
- engines: { node: ">=18" }
+ '@esbuild/sunos-x64@0.25.12':
+ resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [sunos]
- "@esbuild/sunos-x64@0.27.7":
- resolution:
- {
- integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==,
- }
- engines: { node: ">=18" }
+ '@esbuild/sunos-x64@0.27.7':
+ resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [sunos]
- "@esbuild/win32-arm64@0.25.12":
- resolution:
- {
- integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==,
- }
- engines: { node: ">=18" }
+ '@esbuild/win32-arm64@0.25.12':
+ resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==}
+ engines: {node: '>=18'}
cpu: [arm64]
os: [win32]
- "@esbuild/win32-arm64@0.27.7":
- resolution:
- {
- integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==,
- }
- engines: { node: ">=18" }
+ '@esbuild/win32-arm64@0.27.7':
+ resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==}
+ engines: {node: '>=18'}
cpu: [arm64]
os: [win32]
- "@esbuild/win32-ia32@0.25.12":
- resolution:
- {
- integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==,
- }
- engines: { node: ">=18" }
+ '@esbuild/win32-ia32@0.25.12':
+ resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==}
+ engines: {node: '>=18'}
cpu: [ia32]
os: [win32]
- "@esbuild/win32-ia32@0.27.7":
- resolution:
- {
- integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==,
- }
- engines: { node: ">=18" }
+ '@esbuild/win32-ia32@0.27.7':
+ resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==}
+ engines: {node: '>=18'}
cpu: [ia32]
os: [win32]
- "@esbuild/win32-x64@0.25.12":
- resolution:
- {
- integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==,
- }
- engines: { node: ">=18" }
+ '@esbuild/win32-x64@0.25.12':
+ resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [win32]
- "@esbuild/win32-x64@0.27.7":
- resolution:
- {
- integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==,
- }
- engines: { node: ">=18" }
+ '@esbuild/win32-x64@0.27.7':
+ resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [win32]
- "@eslint-community/eslint-utils@4.10.1":
- resolution:
- {
- integrity: sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==,
- }
- engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
+ '@eslint-community/eslint-utils@4.10.1':
+ resolution: {integrity: sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
- "@eslint-community/regexpp@4.12.2":
- resolution:
- {
- integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==,
- }
- engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 }
-
- "@eslint/config-array@0.21.2":
- resolution:
- {
- integrity: sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==,
- }
- engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
-
- "@eslint/config-helpers@0.4.2":
- resolution:
- {
- integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==,
- }
- engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
-
- "@eslint/core@0.17.0":
- resolution:
- {
- integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==,
- }
- engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
-
- "@eslint/eslintrc@3.3.7":
- resolution:
- {
- integrity: sha512-F42g89Qd5oAWtp0k0nnSrjziAKza7w8SVT4mStc18LZMaRb4J1HQAHLCalEtDCxrTuksx7NU9qsmeLwpOfPqWw==,
- }
- engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
-
- "@eslint/js@9.39.5":
- resolution:
- {
- integrity: sha512-QywQuszQh77pIXCsq998c8hbhSTI/azTty1Z6N53dmAudKHhy573j3yvRLsX2BSp8YpLtoCEG8E9DJe+8zUh4A==,
- }
- engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
-
- "@eslint/object-schema@2.1.7":
- resolution:
- {
- integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==,
- }
- engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
-
- "@eslint/plugin-kit@0.4.1":
- resolution:
- {
- integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==,
- }
- engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
-
- "@fontsource-variable/inter@5.3.0":
- resolution:
- {
- integrity: sha512-OupL48va4JNofb97w6NYeF9S7W/kHNKM0Er8Dem5nqi4jeOLrVJDoE8tZEpnMJmtkvNbB1EIPPwHcdkF6b1oUA==,
- }
-
- "@humanfs/core@0.19.2":
- resolution:
- {
- integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==,
- }
- engines: { node: ">=18.18.0" }
-
- "@humanfs/node@0.16.8":
- resolution:
- {
- integrity: sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==,
- }
- engines: { node: ">=18.18.0" }
-
- "@humanfs/types@0.15.0":
- resolution:
- {
- integrity: sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==,
- }
- engines: { node: ">=18.18.0" }
-
- "@humanwhocodes/module-importer@1.0.1":
- resolution:
- {
- integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==,
- }
- engines: { node: ">=12.22" }
-
- "@humanwhocodes/retry@0.4.3":
- resolution:
- {
- integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==,
- }
- engines: { node: ">=18.18" }
-
- "@img/colour@1.1.0":
- resolution:
- {
- integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==,
- }
- engines: { node: ">=18" }
-
- "@img/sharp-darwin-arm64@0.34.5":
- resolution:
- {
- integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==,
- }
- engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ '@eslint-community/regexpp@4.12.2':
+ resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+
+ '@eslint/config-array@0.21.2':
+ resolution: {integrity: sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/config-helpers@0.4.2':
+ resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/core@0.17.0':
+ resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/eslintrc@3.3.7':
+ resolution: {integrity: sha512-F42g89Qd5oAWtp0k0nnSrjziAKza7w8SVT4mStc18LZMaRb4J1HQAHLCalEtDCxrTuksx7NU9qsmeLwpOfPqWw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/js@9.39.5':
+ resolution: {integrity: sha512-QywQuszQh77pIXCsq998c8hbhSTI/azTty1Z6N53dmAudKHhy573j3yvRLsX2BSp8YpLtoCEG8E9DJe+8zUh4A==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/object-schema@2.1.7':
+ resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/plugin-kit@0.4.1':
+ resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@fontsource-variable/inter@5.3.0':
+ resolution: {integrity: sha512-OupL48va4JNofb97w6NYeF9S7W/kHNKM0Er8Dem5nqi4jeOLrVJDoE8tZEpnMJmtkvNbB1EIPPwHcdkF6b1oUA==}
+
+ '@humanfs/core@0.19.2':
+ resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==}
+ engines: {node: '>=18.18.0'}
+
+ '@humanfs/node@0.16.8':
+ resolution: {integrity: sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==}
+ engines: {node: '>=18.18.0'}
+
+ '@humanfs/types@0.15.0':
+ resolution: {integrity: sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==}
+ engines: {node: '>=18.18.0'}
+
+ '@humanwhocodes/module-importer@1.0.1':
+ resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
+ engines: {node: '>=12.22'}
+
+ '@humanwhocodes/retry@0.4.3':
+ resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
+ engines: {node: '>=18.18'}
+
+ '@img/colour@1.1.0':
+ resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==}
+ engines: {node: '>=18'}
+
+ '@img/sharp-darwin-arm64@0.34.5':
+ resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm64]
os: [darwin]
- "@img/sharp-darwin-x64@0.34.5":
- resolution:
- {
- integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==,
- }
- engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ '@img/sharp-darwin-x64@0.34.5':
+ resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64]
os: [darwin]
- "@img/sharp-libvips-darwin-arm64@1.2.4":
- resolution:
- {
- integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==,
- }
+ '@img/sharp-libvips-darwin-arm64@1.2.4':
+ resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==}
cpu: [arm64]
os: [darwin]
- "@img/sharp-libvips-darwin-x64@1.2.4":
- resolution:
- {
- integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==,
- }
+ '@img/sharp-libvips-darwin-x64@1.2.4':
+ resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==}
cpu: [x64]
os: [darwin]
- "@img/sharp-libvips-linux-arm64@1.2.4":
- resolution:
- {
- integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==,
- }
+ '@img/sharp-libvips-linux-arm64@1.2.4':
+ resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==}
cpu: [arm64]
os: [linux]
libc: [glibc]
- "@img/sharp-libvips-linux-arm@1.2.4":
- resolution:
- {
- integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==,
- }
+ '@img/sharp-libvips-linux-arm@1.2.4':
+ resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==}
cpu: [arm]
os: [linux]
libc: [glibc]
- "@img/sharp-libvips-linux-ppc64@1.2.4":
- resolution:
- {
- integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==,
- }
+ '@img/sharp-libvips-linux-ppc64@1.2.4':
+ resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==}
cpu: [ppc64]
os: [linux]
libc: [glibc]
- "@img/sharp-libvips-linux-riscv64@1.2.4":
- resolution:
- {
- integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==,
- }
+ '@img/sharp-libvips-linux-riscv64@1.2.4':
+ resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==}
cpu: [riscv64]
os: [linux]
libc: [glibc]
- "@img/sharp-libvips-linux-s390x@1.2.4":
- resolution:
- {
- integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==,
- }
+ '@img/sharp-libvips-linux-s390x@1.2.4':
+ resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==}
cpu: [s390x]
os: [linux]
libc: [glibc]
- "@img/sharp-libvips-linux-x64@1.2.4":
- resolution:
- {
- integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==,
- }
+ '@img/sharp-libvips-linux-x64@1.2.4':
+ resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==}
cpu: [x64]
os: [linux]
libc: [glibc]
- "@img/sharp-libvips-linuxmusl-arm64@1.2.4":
- resolution:
- {
- integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==,
- }
+ '@img/sharp-libvips-linuxmusl-arm64@1.2.4':
+ resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==}
cpu: [arm64]
os: [linux]
libc: [musl]
- "@img/sharp-libvips-linuxmusl-x64@1.2.4":
- resolution:
- {
- integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==,
- }
+ '@img/sharp-libvips-linuxmusl-x64@1.2.4':
+ resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==}
cpu: [x64]
os: [linux]
libc: [musl]
- "@img/sharp-linux-arm64@0.34.5":
- resolution:
- {
- integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==,
- }
- engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ '@img/sharp-linux-arm64@0.34.5':
+ resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm64]
os: [linux]
libc: [glibc]
- "@img/sharp-linux-arm@0.34.5":
- resolution:
- {
- integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==,
- }
- engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ '@img/sharp-linux-arm@0.34.5':
+ resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm]
os: [linux]
libc: [glibc]
- "@img/sharp-linux-ppc64@0.34.5":
- resolution:
- {
- integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==,
- }
- engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ '@img/sharp-linux-ppc64@0.34.5':
+ resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [ppc64]
os: [linux]
libc: [glibc]
- "@img/sharp-linux-riscv64@0.34.5":
- resolution:
- {
- integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==,
- }
- engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ '@img/sharp-linux-riscv64@0.34.5':
+ resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [riscv64]
os: [linux]
libc: [glibc]
- "@img/sharp-linux-s390x@0.34.5":
- resolution:
- {
- integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==,
- }
- engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ '@img/sharp-linux-s390x@0.34.5':
+ resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [s390x]
os: [linux]
libc: [glibc]
- "@img/sharp-linux-x64@0.34.5":
- resolution:
- {
- integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==,
- }
- engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ '@img/sharp-linux-x64@0.34.5':
+ resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64]
os: [linux]
libc: [glibc]
- "@img/sharp-linuxmusl-arm64@0.34.5":
- resolution:
- {
- integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==,
- }
- engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ '@img/sharp-linuxmusl-arm64@0.34.5':
+ resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm64]
os: [linux]
libc: [musl]
- "@img/sharp-linuxmusl-x64@0.34.5":
- resolution:
- {
- integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==,
- }
- engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ '@img/sharp-linuxmusl-x64@0.34.5':
+ resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64]
os: [linux]
libc: [musl]
- "@img/sharp-wasm32@0.34.5":
- resolution:
- {
- integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==,
- }
- engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ '@img/sharp-wasm32@0.34.5':
+ resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [wasm32]
- "@img/sharp-win32-arm64@0.34.5":
- resolution:
- {
- integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==,
- }
- engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ '@img/sharp-win32-arm64@0.34.5':
+ resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm64]
os: [win32]
- "@img/sharp-win32-ia32@0.34.5":
- resolution:
- {
- integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==,
- }
- engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ '@img/sharp-win32-ia32@0.34.5':
+ resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [ia32]
os: [win32]
- "@img/sharp-win32-x64@0.34.5":
- resolution:
- {
- integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==,
- }
- engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ '@img/sharp-win32-x64@0.34.5':
+ resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64]
os: [win32]
- "@jridgewell/gen-mapping@0.3.13":
- resolution:
- {
- integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==,
- }
-
- "@jridgewell/remapping@2.3.5":
- resolution:
- {
- integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==,
- }
-
- "@jridgewell/resolve-uri@3.1.2":
- resolution:
- {
- integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==,
- }
- engines: { node: ">=6.0.0" }
-
- "@jridgewell/sourcemap-codec@1.6.0":
- resolution:
- {
- integrity: sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==,
- }
-
- "@jridgewell/trace-mapping@0.3.31":
- resolution:
- {
- integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==,
- }
-
- "@napi-rs/lzma-linux-x64-gnu@1.5.1":
- resolution:
- {
- integrity: sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ==,
- }
- engines: { node: ^22.20 || ^24.12 || >=25 }
+ '@jridgewell/gen-mapping@0.3.13':
+ resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
+
+ '@jridgewell/remapping@2.3.5':
+ resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==}
+
+ '@jridgewell/resolve-uri@3.1.2':
+ resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
+ engines: {node: '>=6.0.0'}
+
+ '@jridgewell/sourcemap-codec@1.6.0':
+ resolution: {integrity: sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==}
+
+ '@jridgewell/trace-mapping@0.3.31':
+ resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
+
+ '@napi-rs/lzma-linux-x64-gnu@1.5.1':
+ resolution: {integrity: sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ==}
+ engines: {node: ^22.20 || ^24.12 || >=25}
cpu: [x64]
os: [linux]
libc: [glibc]
- "@napi-rs/wasm-runtime@1.2.4":
- resolution:
- {
- integrity: sha512-AJxoUD2/15ESHbvpcyjU274nsAPLuOtPHCk0vKJM5pj//Fg/B1FXNWjPnXTT9PymCYYiHo4zPj0ZomXBKhoy7g==,
- }
- engines: { node: ^20.19.0 || ^22.13.0 || >=23.5.0 }
+ '@napi-rs/wasm-runtime@1.2.4':
+ resolution: {integrity: sha512-AJxoUD2/15ESHbvpcyjU274nsAPLuOtPHCk0vKJM5pj//Fg/B1FXNWjPnXTT9PymCYYiHo4zPj0ZomXBKhoy7g==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=23.5.0}
peerDependencies:
- "@emnapi/core": ^1.7.1 || ^2.0.0-alpha.4
- "@emnapi/runtime": ^1.7.1 || ^2.0.0-alpha.4
-
- "@oslojs/encoding@1.1.0":
- resolution:
- {
- integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==,
- }
-
- "@rolldown/pluginutils@1.0.0-beta.27":
- resolution:
- {
- integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==,
- }
-
- "@rollup/pluginutils@5.5.1":
- resolution:
- {
- integrity: sha512-P9ZvnfouRu4MSC+ilERaw6FmZs8zqKhpHxEs4aGDGWQAMzQGXnhvCSvoNwokfNvdt7t3Y5Y4p6gStQgezeIqug==,
- }
- engines: { node: ">=14.0.0" }
+ '@emnapi/core': ^1.7.1 || ^2.0.0-alpha.4
+ '@emnapi/runtime': ^1.7.1 || ^2.0.0-alpha.4
+
+ '@oslojs/encoding@1.1.0':
+ resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==}
+
+ '@rolldown/pluginutils@1.0.0-beta.27':
+ resolution: {integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==}
+
+ '@rollup/pluginutils@5.5.1':
+ resolution: {integrity: sha512-P9ZvnfouRu4MSC+ilERaw6FmZs8zqKhpHxEs4aGDGWQAMzQGXnhvCSvoNwokfNvdt7t3Y5Y4p6gStQgezeIqug==}
+ engines: {node: '>=14.0.0'}
peerDependencies:
rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
peerDependenciesMeta:
rollup:
optional: true
- "@rollup/rollup-android-arm-eabi@4.65.0":
- resolution:
- {
- integrity: sha512-t2AnVba25baFdq7gczzS13JyVcdubLVbFX1X04mxrggDrTQPUXNv3XM0k9H1hr5tqvg7AVvtQ720QHAj0iYqhg==,
- }
+ '@rollup/rollup-android-arm-eabi@4.65.0':
+ resolution: {integrity: sha512-t2AnVba25baFdq7gczzS13JyVcdubLVbFX1X04mxrggDrTQPUXNv3XM0k9H1hr5tqvg7AVvtQ720QHAj0iYqhg==}
cpu: [arm]
os: [android]
- "@rollup/rollup-android-arm64@4.65.0":
- resolution:
- {
- integrity: sha512-dNONUaEwPGhl/nuO2KV8VABWlcjYyU6KtZGN8dQv5OS5JU7JSCxPijVNKXbRJd0iuTzTiJ4TjPt/4bbvDRNiMQ==,
- }
+ '@rollup/rollup-android-arm64@4.65.0':
+ resolution: {integrity: sha512-dNONUaEwPGhl/nuO2KV8VABWlcjYyU6KtZGN8dQv5OS5JU7JSCxPijVNKXbRJd0iuTzTiJ4TjPt/4bbvDRNiMQ==}
cpu: [arm64]
os: [android]
- "@rollup/rollup-darwin-arm64@4.65.0":
- resolution:
- {
- integrity: sha512-zWQqUH+9zavr2Bxuzfpuv2SIF3X31cr58TvSQC9o1GhpOvkqRwr60GkZdQcudyT/BEgdpdSafjgd2I13MbTL7g==,
- }
+ '@rollup/rollup-darwin-arm64@4.65.0':
+ resolution: {integrity: sha512-zWQqUH+9zavr2Bxuzfpuv2SIF3X31cr58TvSQC9o1GhpOvkqRwr60GkZdQcudyT/BEgdpdSafjgd2I13MbTL7g==}
cpu: [arm64]
os: [darwin]
- "@rollup/rollup-darwin-x64@4.65.0":
- resolution:
- {
- integrity: sha512-RQYreBFWtO4//hIuOaZkYUnF/lPU4lz35dveDimDshWCJvVisVtJ/shmT9bkXK8wFJY+FJF89X6F3Cq1qI3LCw==,
- }
+ '@rollup/rollup-darwin-x64@4.65.0':
+ resolution: {integrity: sha512-RQYreBFWtO4//hIuOaZkYUnF/lPU4lz35dveDimDshWCJvVisVtJ/shmT9bkXK8wFJY+FJF89X6F3Cq1qI3LCw==}
cpu: [x64]
os: [darwin]
- "@rollup/rollup-freebsd-arm64@4.65.0":
- resolution:
- {
- integrity: sha512-A0NfMj6Cuh/9BE5k3awJKv6HoxFVXIcLAb6SZqAMoxUHPA1ZNNK4RsGuUPD/vL7nEAm9LG+ZzXWWTrnC0XtkpA==,
- }
+ '@rollup/rollup-freebsd-arm64@4.65.0':
+ resolution: {integrity: sha512-A0NfMj6Cuh/9BE5k3awJKv6HoxFVXIcLAb6SZqAMoxUHPA1ZNNK4RsGuUPD/vL7nEAm9LG+ZzXWWTrnC0XtkpA==}
cpu: [arm64]
os: [freebsd]
- "@rollup/rollup-freebsd-x64@4.65.0":
- resolution:
- {
- integrity: sha512-BI6/H7q3aP0I7S7GOrjyxTjgEJlSnovXE38+bdxBpuKN6z+d//uF+T+VQ3Q7ltJL/71p17ufartARX9Ja5gOGQ==,
- }
+ '@rollup/rollup-freebsd-x64@4.65.0':
+ resolution: {integrity: sha512-BI6/H7q3aP0I7S7GOrjyxTjgEJlSnovXE38+bdxBpuKN6z+d//uF+T+VQ3Q7ltJL/71p17ufartARX9Ja5gOGQ==}
cpu: [x64]
os: [freebsd]
- "@rollup/rollup-linux-arm-gnueabihf@4.65.0":
- resolution:
- {
- integrity: sha512-W1vUprf09RWaVWnsFP1vlUkEWJzTZlpObOEAYZXt9Fq0UVAOYEkeGr7wBX7McKqqIQskXdBnpiOMgwPujordgA==,
- }
+ '@rollup/rollup-linux-arm-gnueabihf@4.65.0':
+ resolution: {integrity: sha512-W1vUprf09RWaVWnsFP1vlUkEWJzTZlpObOEAYZXt9Fq0UVAOYEkeGr7wBX7McKqqIQskXdBnpiOMgwPujordgA==}
cpu: [arm]
os: [linux]
libc: [glibc]
- "@rollup/rollup-linux-arm-musleabihf@4.65.0":
- resolution:
- {
- integrity: sha512-s8QTcZWgrl9haFzEGIqyE5BWyo89pFDGLMBFZ752WYxk8DJwNU/O1X6pZgPw829d9/sm6CCHyrMP3aurt76p1Q==,
- }
+ '@rollup/rollup-linux-arm-musleabihf@4.65.0':
+ resolution: {integrity: sha512-s8QTcZWgrl9haFzEGIqyE5BWyo89pFDGLMBFZ752WYxk8DJwNU/O1X6pZgPw829d9/sm6CCHyrMP3aurt76p1Q==}
cpu: [arm]
os: [linux]
libc: [musl]
- "@rollup/rollup-linux-arm64-gnu@4.65.0":
- resolution:
- {
- integrity: sha512-ke1f6dLRzkqveyjjF2fkEwQYZvxHtNNwjegY8nJrwcO0Bdqr8CzFO/pKE0Bns13cx0qz2Ba2Y0Hs3dSwMdnHxA==,
- }
+ '@rollup/rollup-linux-arm64-gnu@4.65.0':
+ resolution: {integrity: sha512-ke1f6dLRzkqveyjjF2fkEwQYZvxHtNNwjegY8nJrwcO0Bdqr8CzFO/pKE0Bns13cx0qz2Ba2Y0Hs3dSwMdnHxA==}
cpu: [arm64]
os: [linux]
libc: [glibc]
- "@rollup/rollup-linux-arm64-musl@4.65.0":
- resolution:
- {
- integrity: sha512-926SMeUcy4y18Rz/w2aJiUKOnyAnm6czg72bXkQEaeemsll+Wr0hnsjb2BGRpHvWgwAMYy5ACJCotbvfLCfj0A==,
- }
+ '@rollup/rollup-linux-arm64-musl@4.65.0':
+ resolution: {integrity: sha512-926SMeUcy4y18Rz/w2aJiUKOnyAnm6czg72bXkQEaeemsll+Wr0hnsjb2BGRpHvWgwAMYy5ACJCotbvfLCfj0A==}
cpu: [arm64]
os: [linux]
libc: [musl]
- "@rollup/rollup-linux-loong64-gnu@4.65.0":
- resolution:
- {
- integrity: sha512-6T7JNRP1hc4hqF2dUsEoVLOt9K8tmODoCLldtQRYnrddGGQY8Gqe2pM/qMMUo7EMowpP7oa2N95k0/8sYK/ipw==,
- }
+ '@rollup/rollup-linux-loong64-gnu@4.65.0':
+ resolution: {integrity: sha512-6T7JNRP1hc4hqF2dUsEoVLOt9K8tmODoCLldtQRYnrddGGQY8Gqe2pM/qMMUo7EMowpP7oa2N95k0/8sYK/ipw==}
cpu: [loong64]
os: [linux]
libc: [glibc]
- "@rollup/rollup-linux-loong64-musl@4.65.0":
- resolution:
- {
- integrity: sha512-SImGFl1Je5kpyAgOCPONVT7h6ASV8mAUwGRjY7eZvVjPg//PfHOXgI+P241RF/+HqsA4PP3qD527ysWFKNQyhQ==,
- }
+ '@rollup/rollup-linux-loong64-musl@4.65.0':
+ resolution: {integrity: sha512-SImGFl1Je5kpyAgOCPONVT7h6ASV8mAUwGRjY7eZvVjPg//PfHOXgI+P241RF/+HqsA4PP3qD527ysWFKNQyhQ==}
cpu: [loong64]
os: [linux]
libc: [musl]
- "@rollup/rollup-linux-ppc64-gnu@4.65.0":
- resolution:
- {
- integrity: sha512-XeDTbmPF1Yu5asfXGPrMkWoxTDhgryQbmw5Q1+R582O51VNCk23J6f2pDrsAp5YkneBVBwtExx6ZGOb9D2aQ6A==,
- }
+ '@rollup/rollup-linux-ppc64-gnu@4.65.0':
+ resolution: {integrity: sha512-XeDTbmPF1Yu5asfXGPrMkWoxTDhgryQbmw5Q1+R582O51VNCk23J6f2pDrsAp5YkneBVBwtExx6ZGOb9D2aQ6A==}
cpu: [ppc64]
os: [linux]
libc: [glibc]
- "@rollup/rollup-linux-ppc64-musl@4.65.0":
- resolution:
- {
- integrity: sha512-VS55JUI/1nsljmV/jfqNkLZXFw8uMO8nNlfoHmSevNf6fO3neuhyDvx9dv3c/Ytt8r/431SL8Qax1dpYvOMZTg==,
- }
+ '@rollup/rollup-linux-ppc64-musl@4.65.0':
+ resolution: {integrity: sha512-VS55JUI/1nsljmV/jfqNkLZXFw8uMO8nNlfoHmSevNf6fO3neuhyDvx9dv3c/Ytt8r/431SL8Qax1dpYvOMZTg==}
cpu: [ppc64]
os: [linux]
libc: [musl]
- "@rollup/rollup-linux-riscv64-gnu@4.65.0":
- resolution:
- {
- integrity: sha512-Vblw84TbX7RS4la1Y4+yQ7aore/oSyaNtFbppuBr5Vs/4LfBeXKq9dIfoExw6zOvRERqd2rRAjnZRaMhH/0x5w==,
- }
+ '@rollup/rollup-linux-riscv64-gnu@4.65.0':
+ resolution: {integrity: sha512-Vblw84TbX7RS4la1Y4+yQ7aore/oSyaNtFbppuBr5Vs/4LfBeXKq9dIfoExw6zOvRERqd2rRAjnZRaMhH/0x5w==}
cpu: [riscv64]
os: [linux]
libc: [glibc]
- "@rollup/rollup-linux-riscv64-musl@4.65.0":
- resolution:
- {
- integrity: sha512-7+gHjtONvKgwR9InTKFaLq53f6YzBJkgeMRBENdWTsQr+spahGqQm8HF5aXpq8i4JaRrOqYyv6Zn1WltDTxaZQ==,
- }
+ '@rollup/rollup-linux-riscv64-musl@4.65.0':
+ resolution: {integrity: sha512-7+gHjtONvKgwR9InTKFaLq53f6YzBJkgeMRBENdWTsQr+spahGqQm8HF5aXpq8i4JaRrOqYyv6Zn1WltDTxaZQ==}
cpu: [riscv64]
os: [linux]
libc: [musl]
- "@rollup/rollup-linux-s390x-gnu@4.65.0":
- resolution:
- {
- integrity: sha512-KvNDC0J6s4vVHhtJ6KrDXU0Er0au/hmRIBq/+1maCV8TseGupeKizq0bWcrbp2HE1T8xoknvN0Q/KZ/YF0qX3w==,
- }
+ '@rollup/rollup-linux-s390x-gnu@4.65.0':
+ resolution: {integrity: sha512-KvNDC0J6s4vVHhtJ6KrDXU0Er0au/hmRIBq/+1maCV8TseGupeKizq0bWcrbp2HE1T8xoknvN0Q/KZ/YF0qX3w==}
cpu: [s390x]
os: [linux]
libc: [glibc]
- "@rollup/rollup-linux-x64-gnu@4.65.0":
- resolution:
- {
- integrity: sha512-GExdD15WPvu/x/drELjVam7vX8EsPgvTMOa/iJL/p/4m/oOqzbb7JXZg8fXR4hlXtg/sF2zyTZ3bR0AEtEMlhQ==,
- }
+ '@rollup/rollup-linux-x64-gnu@4.65.0':
+ resolution: {integrity: sha512-GExdD15WPvu/x/drELjVam7vX8EsPgvTMOa/iJL/p/4m/oOqzbb7JXZg8fXR4hlXtg/sF2zyTZ3bR0AEtEMlhQ==}
cpu: [x64]
os: [linux]
libc: [glibc]
- "@rollup/rollup-linux-x64-musl@4.65.0":
- resolution:
- {
- integrity: sha512-8sT9PemIZfIMED4Vd4KGoOXVDj5CMSWNcGdbheRUx9TYS03yOWdT2Q0lXPyEyNBB9YTilwewIQKNIBk6Nxi0Kg==,
- }
+ '@rollup/rollup-linux-x64-musl@4.65.0':
+ resolution: {integrity: sha512-8sT9PemIZfIMED4Vd4KGoOXVDj5CMSWNcGdbheRUx9TYS03yOWdT2Q0lXPyEyNBB9YTilwewIQKNIBk6Nxi0Kg==}
cpu: [x64]
os: [linux]
libc: [musl]
- "@rollup/rollup-openbsd-x64@4.65.0":
- resolution:
- {
- integrity: sha512-pO6Ehi0jo5yE0R6PltKhJhv9mlIiyzBJk5N5NUF2OF6xtVKI+1bdXxj/rb0jGXy3hck1ELVT0QPY3tzkAm360w==,
- }
+ '@rollup/rollup-openbsd-x64@4.65.0':
+ resolution: {integrity: sha512-pO6Ehi0jo5yE0R6PltKhJhv9mlIiyzBJk5N5NUF2OF6xtVKI+1bdXxj/rb0jGXy3hck1ELVT0QPY3tzkAm360w==}
cpu: [x64]
os: [openbsd]
- "@rollup/rollup-openharmony-arm64@4.65.0":
- resolution:
- {
- integrity: sha512-vo7N3/+cjjPDYr8vtxC+qSNgWa9sDvJ7g8N8R5SWqFY4WiNH1ULcAU70SKVyHeiIZOYYwNP9pTipmhN5sl1NPw==,
- }
+ '@rollup/rollup-openharmony-arm64@4.65.0':
+ resolution: {integrity: sha512-vo7N3/+cjjPDYr8vtxC+qSNgWa9sDvJ7g8N8R5SWqFY4WiNH1ULcAU70SKVyHeiIZOYYwNP9pTipmhN5sl1NPw==}
cpu: [arm64]
os: [openharmony]
- "@rollup/rollup-win32-arm64-msvc@4.65.0":
- resolution:
- {
- integrity: sha512-ArwvgFAbjKcDM7qqotZ4OVYf+UMT9xH2YzkCzK4+AuZSDihMlz1Ekoe4INwBVXzn2mnJzuIYOcSx07iTBijGRQ==,
- }
+ '@rollup/rollup-win32-arm64-msvc@4.65.0':
+ resolution: {integrity: sha512-ArwvgFAbjKcDM7qqotZ4OVYf+UMT9xH2YzkCzK4+AuZSDihMlz1Ekoe4INwBVXzn2mnJzuIYOcSx07iTBijGRQ==}
cpu: [arm64]
os: [win32]
- "@rollup/rollup-win32-ia32-msvc@4.65.0":
- resolution:
- {
- integrity: sha512-QGMmK4/cxKE/36FoLMSHQBCyymv/eFTnsCvvsBF0rgmOvVbvX78VWZRerL3dHa77f4pM6Xcc2iGDhJ10w/svKQ==,
- }
+ '@rollup/rollup-win32-ia32-msvc@4.65.0':
+ resolution: {integrity: sha512-QGMmK4/cxKE/36FoLMSHQBCyymv/eFTnsCvvsBF0rgmOvVbvX78VWZRerL3dHa77f4pM6Xcc2iGDhJ10w/svKQ==}
cpu: [ia32]
os: [win32]
- "@rollup/rollup-win32-x64-gnu@4.65.0":
- resolution:
- {
- integrity: sha512-XfKYFWHIPs4HPODIMsGF1IKlS3H1e3WokUZIgpmn4+uNnZBlnRDDHEylNyazbQXwhMKZre68OjtRYbKqb5+j8w==,
- }
+ '@rollup/rollup-win32-x64-gnu@4.65.0':
+ resolution: {integrity: sha512-XfKYFWHIPs4HPODIMsGF1IKlS3H1e3WokUZIgpmn4+uNnZBlnRDDHEylNyazbQXwhMKZre68OjtRYbKqb5+j8w==}
cpu: [x64]
os: [win32]
- "@rollup/rollup-win32-x64-msvc@4.65.0":
- resolution:
- {
- integrity: sha512-wPWi++K4Bs1VR4XihOhfGi4IGX6Cub7FlerTf8X2v+2BtDHddgSqWCXwGD+h2yAe4/niIhNDwAltioOC+wEogQ==,
- }
+ '@rollup/rollup-win32-x64-msvc@4.65.0':
+ resolution: {integrity: sha512-wPWi++K4Bs1VR4XihOhfGi4IGX6Cub7FlerTf8X2v+2BtDHddgSqWCXwGD+h2yAe4/niIhNDwAltioOC+wEogQ==}
cpu: [x64]
os: [win32]
- "@shikijs/core@3.23.0":
- resolution:
- {
- integrity: sha512-NSWQz0riNb67xthdm5br6lAkvpDJRTgB36fxlo37ZzM2yq0PQFFzbd8psqC2XMPgCzo1fW6cVi18+ArJ44wqgA==,
- }
-
- "@shikijs/engine-javascript@3.23.0":
- resolution:
- {
- integrity: sha512-aHt9eiGFobmWR5uqJUViySI1bHMqrAgamWE1TYSUoftkAeCCAiGawPMwM+VCadylQtF4V3VNOZ5LmfItH5f3yA==,
- }
-
- "@shikijs/engine-oniguruma@3.23.0":
- resolution:
- {
- integrity: sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==,
- }
-
- "@shikijs/langs@3.23.0":
- resolution:
- {
- integrity: sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==,
- }
-
- "@shikijs/themes@3.23.0":
- resolution:
- {
- integrity: sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==,
- }
-
- "@shikijs/types@3.23.0":
- resolution:
- {
- integrity: sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==,
- }
-
- "@shikijs/vscode-textmate@10.1.0":
- resolution:
- {
- integrity: sha512-cVBuhDQjBZaNMTwBquYfPydrUP+E3hE6oYGasx8h6ZrODIM7/r+gxLDXdd66oszbrggZHEntdE6j+5gYIVyMWQ==,
- }
-
- "@tailwindcss/node@4.3.3":
- resolution:
- {
- integrity: sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg==,
- }
-
- "@tailwindcss/oxide-android-arm64@4.3.3":
- resolution:
- {
- integrity: sha512-Y85A2gmPSkl5Ve5qR86GL4HT509cFqQh1aes9p3sSkyTPwt0Pppf3GkwGe4JPACcRYjgJIEhQgM6dBClnr0NYw==,
- }
- engines: { node: ">= 20" }
+ '@shikijs/core@3.23.0':
+ resolution: {integrity: sha512-NSWQz0riNb67xthdm5br6lAkvpDJRTgB36fxlo37ZzM2yq0PQFFzbd8psqC2XMPgCzo1fW6cVi18+ArJ44wqgA==}
+
+ '@shikijs/engine-javascript@3.23.0':
+ resolution: {integrity: sha512-aHt9eiGFobmWR5uqJUViySI1bHMqrAgamWE1TYSUoftkAeCCAiGawPMwM+VCadylQtF4V3VNOZ5LmfItH5f3yA==}
+
+ '@shikijs/engine-oniguruma@3.23.0':
+ resolution: {integrity: sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==}
+
+ '@shikijs/langs@3.23.0':
+ resolution: {integrity: sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==}
+
+ '@shikijs/themes@3.23.0':
+ resolution: {integrity: sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==}
+
+ '@shikijs/types@3.23.0':
+ resolution: {integrity: sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==}
+
+ '@shikijs/vscode-textmate@10.1.0':
+ resolution: {integrity: sha512-cVBuhDQjBZaNMTwBquYfPydrUP+E3hE6oYGasx8h6ZrODIM7/r+gxLDXdd66oszbrggZHEntdE6j+5gYIVyMWQ==}
+
+ '@tailwindcss/node@4.3.3':
+ resolution: {integrity: sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg==}
+
+ '@tailwindcss/oxide-android-arm64@4.3.3':
+ resolution: {integrity: sha512-Y85A2gmPSkl5Ve5qR86GL4HT509cFqQh1aes9p3sSkyTPwt0Pppf3GkwGe4JPACcRYjgJIEhQgM6dBClnr0NYw==}
+ engines: {node: '>= 20'}
cpu: [arm64]
os: [android]
- "@tailwindcss/oxide-darwin-arm64@4.3.3":
- resolution:
- {
- integrity: sha512-BiaWatpBcERQFDlOjRDpIVXuFK5PJez5SA4JMg6VYZdBYU+qKfV/vqjcIs+IYmtitf1xYQZTwXvU/8y4lfZUGw==,
- }
- engines: { node: ">= 20" }
+ '@tailwindcss/oxide-darwin-arm64@4.3.3':
+ resolution: {integrity: sha512-BiaWatpBcERQFDlOjRDpIVXuFK5PJez5SA4JMg6VYZdBYU+qKfV/vqjcIs+IYmtitf1xYQZTwXvU/8y4lfZUGw==}
+ engines: {node: '>= 20'}
cpu: [arm64]
os: [darwin]
- "@tailwindcss/oxide-darwin-x64@4.3.3":
- resolution:
- {
- integrity: sha512-fAeUqfV5ndhxRwai8cXGzdLvul9utWOmeTkv69unv4ZXixjn61Z+p9lCWdwOwA3TYboG3BwdVuN/RDjhBRl0mw==,
- }
- engines: { node: ">= 20" }
+ '@tailwindcss/oxide-darwin-x64@4.3.3':
+ resolution: {integrity: sha512-fAeUqfV5ndhxRwai8cXGzdLvul9utWOmeTkv69unv4ZXixjn61Z+p9lCWdwOwA3TYboG3BwdVuN/RDjhBRl0mw==}
+ engines: {node: '>= 20'}
cpu: [x64]
os: [darwin]
- "@tailwindcss/oxide-freebsd-x64@4.3.3":
- resolution:
- {
- integrity: sha512-iyf5bV6+wnAlflVeEy7R25dupxTNECZN5QMI0qNT6eT+EgaGdZcKhGkr5SdoaWiLJ3spLqIY9VCeSGrwmtg4kw==,
- }
- engines: { node: ">= 20" }
+ '@tailwindcss/oxide-freebsd-x64@4.3.3':
+ resolution: {integrity: sha512-iyf5bV6+wnAlflVeEy7R25dupxTNECZN5QMI0qNT6eT+EgaGdZcKhGkr5SdoaWiLJ3spLqIY9VCeSGrwmtg4kw==}
+ engines: {node: '>= 20'}
cpu: [x64]
os: [freebsd]
- "@tailwindcss/oxide-linux-arm-gnueabihf@4.3.3":
- resolution:
- {
- integrity: sha512-aAYUprJAJQWWbRrPvtjdroZ56Md+JM8pMiopS6xGEwDfLhqj+2ver2p4nU4Mb3CRqcMmNBjo8KkUgcxhkzVQGQ==,
- }
- engines: { node: ">= 20" }
+ '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.3':
+ resolution: {integrity: sha512-aAYUprJAJQWWbRrPvtjdroZ56Md+JM8pMiopS6xGEwDfLhqj+2ver2p4nU4Mb3CRqcMmNBjo8KkUgcxhkzVQGQ==}
+ engines: {node: '>= 20'}
cpu: [arm]
os: [linux]
- "@tailwindcss/oxide-linux-arm64-gnu@4.3.3":
- resolution:
- {
- integrity: sha512-nDxldcEENOxZRzC2uu9jrutZdAAQtb+8WWDCSnWL1zvBk1+FN+x6MtDViPB5AJMfttVCUhehGWus3XBPgatM/w==,
- }
- engines: { node: ">= 20" }
+ '@tailwindcss/oxide-linux-arm64-gnu@4.3.3':
+ resolution: {integrity: sha512-nDxldcEENOxZRzC2uu9jrutZdAAQtb+8WWDCSnWL1zvBk1+FN+x6MtDViPB5AJMfttVCUhehGWus3XBPgatM/w==}
+ engines: {node: '>= 20'}
cpu: [arm64]
os: [linux]
libc: [glibc]
- "@tailwindcss/oxide-linux-arm64-musl@4.3.3":
- resolution:
- {
- integrity: sha512-Md44bD6veX/PC5iyF8cDVnw4HBIANZepRZZ7a8DQOvkfo5WUBwcp6iAuCUz23u+4SUkhJlD3eL7hNdW8ezd/kA==,
- }
- engines: { node: ">= 20" }
+ '@tailwindcss/oxide-linux-arm64-musl@4.3.3':
+ resolution: {integrity: sha512-Md44bD6veX/PC5iyF8cDVnw4HBIANZepRZZ7a8DQOvkfo5WUBwcp6iAuCUz23u+4SUkhJlD3eL7hNdW8ezd/kA==}
+ engines: {node: '>= 20'}
cpu: [arm64]
os: [linux]
libc: [musl]
- "@tailwindcss/oxide-linux-x64-gnu@4.3.3":
- resolution:
- {
- integrity: sha512-tx7us1muwOKAKWao2v/GaafFeQboE6aj88vC6ziN2NCGcRm8gWUhwjzg+YdVB1e4boAtdtma4L43onunI6NS4w==,
- }
- engines: { node: ">= 20" }
+ '@tailwindcss/oxide-linux-x64-gnu@4.3.3':
+ resolution: {integrity: sha512-tx7us1muwOKAKWao2v/GaafFeQboE6aj88vC6ziN2NCGcRm8gWUhwjzg+YdVB1e4boAtdtma4L43onunI6NS4w==}
+ engines: {node: '>= 20'}
cpu: [x64]
os: [linux]
libc: [glibc]
- "@tailwindcss/oxide-linux-x64-musl@4.3.3":
- resolution:
- {
- integrity: sha512-SJxX60smvHgasZoBy11dX6YRjXJFovwWBoedhbQPOBzgFWBHGB+TVPWB9BxzR7TTxU8FQZAI2AyiNCMzFm8Img==,
- }
- engines: { node: ">= 20" }
+ '@tailwindcss/oxide-linux-x64-musl@4.3.3':
+ resolution: {integrity: sha512-SJxX60smvHgasZoBy11dX6YRjXJFovwWBoedhbQPOBzgFWBHGB+TVPWB9BxzR7TTxU8FQZAI2AyiNCMzFm8Img==}
+ engines: {node: '>= 20'}
cpu: [x64]
os: [linux]
libc: [musl]
- "@tailwindcss/oxide-wasm32-wasi@4.3.3":
- resolution:
- {
- integrity: sha512-jx1+rPhY/5Ympkktd656HBWEBLxP7dH06losBLjjf5vgCODXvi9KhtftWcMIwTFIDqBr7cRnQkdLnAG+IOlGvQ==,
- }
- engines: { node: ">=14.0.0" }
+ '@tailwindcss/oxide-wasm32-wasi@4.3.3':
+ resolution: {integrity: sha512-jx1+rPhY/5Ympkktd656HBWEBLxP7dH06losBLjjf5vgCODXvi9KhtftWcMIwTFIDqBr7cRnQkdLnAG+IOlGvQ==}
+ engines: {node: '>=14.0.0'}
cpu: [wasm32]
bundledDependencies:
- - "@napi-rs/wasm-runtime"
- - "@emnapi/core"
- - "@emnapi/runtime"
- - "@tybys/wasm-util"
- - "@emnapi/wasi-threads"
+ - '@napi-rs/wasm-runtime'
+ - '@emnapi/core'
+ - '@emnapi/runtime'
+ - '@tybys/wasm-util'
+ - '@emnapi/wasi-threads'
- tslib
- "@tailwindcss/oxide-win32-arm64-msvc@4.3.3":
- resolution:
- {
- integrity: sha512-3rc292Ca2ceK6Ulcc/bAVnTs/3nDtoPhyEKlgPv+yQJQi/JS/AMJlqzxvlDacL1nekbrcf6bTqp/jV4qgnPxNQ==,
- }
- engines: { node: ">= 20" }
+ '@tailwindcss/oxide-win32-arm64-msvc@4.3.3':
+ resolution: {integrity: sha512-3rc292Ca2ceK6Ulcc/bAVnTs/3nDtoPhyEKlgPv+yQJQi/JS/AMJlqzxvlDacL1nekbrcf6bTqp/jV4qgnPxNQ==}
+ engines: {node: '>= 20'}
cpu: [arm64]
os: [win32]
- "@tailwindcss/oxide-win32-x64-msvc@4.3.3":
- resolution:
- {
- integrity: sha512-yJ0pwIVc/nYeGoV02WtsN8KYyLQv7kyI2wDnkezyJlGGjkd4QLwDGAwl47YpPJeuI0M0ObaXGSPjvWDPeTPggw==,
- }
- engines: { node: ">= 20" }
+ '@tailwindcss/oxide-win32-x64-msvc@4.3.3':
+ resolution: {integrity: sha512-yJ0pwIVc/nYeGoV02WtsN8KYyLQv7kyI2wDnkezyJlGGjkd4QLwDGAwl47YpPJeuI0M0ObaXGSPjvWDPeTPggw==}
+ engines: {node: '>= 20'}
cpu: [x64]
os: [win32]
- "@tailwindcss/oxide@4.3.3":
- resolution:
- {
- integrity: sha512-krXjAikiaFSPaK/FkAQT5UTx3VormQaiZ5hBFlJZ9UFQGB/rwg1MZIhHAG9smMQRTdyJxP6Qt5MwMtdyU5FWrA==,
- }
- engines: { node: ">= 20" }
-
- "@tailwindcss/vite@4.3.3":
- resolution:
- {
- integrity: sha512-yYU8cogLeSh/ms2jh8Fj7jaba/EWa7Ja6GoUqYZaraEuCI5YS6ms6ObZgjjedm+jm6XZjdNRWBpPP6Z86oOxcw==,
- }
+ '@tailwindcss/oxide@4.3.3':
+ resolution: {integrity: sha512-krXjAikiaFSPaK/FkAQT5UTx3VormQaiZ5hBFlJZ9UFQGB/rwg1MZIhHAG9smMQRTdyJxP6Qt5MwMtdyU5FWrA==}
+ engines: {node: '>= 20'}
+
+ '@tailwindcss/vite@4.3.3':
+ resolution: {integrity: sha512-yYU8cogLeSh/ms2jh8Fj7jaba/EWa7Ja6GoUqYZaraEuCI5YS6ms6ObZgjjedm+jm6XZjdNRWBpPP6Z86oOxcw==}
peerDependencies:
vite: ^5.2.0 || ^6 || ^7 || ^8
- "@tybys/wasm-util@0.10.4":
- resolution:
- {
- integrity: sha512-W3c4gRigFS0T/Ma4qIYF3GDAc5AQdHb1yL5znJT1Zv1YaD9Kitx656wBjvr19qbiosmZT8lWDM5BEMynUqX65A==,
- }
-
- "@types/babel__core@7.20.5":
- resolution:
- {
- integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==,
- }
-
- "@types/babel__generator@7.27.0":
- resolution:
- {
- integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==,
- }
-
- "@types/babel__template@7.4.4":
- resolution:
- {
- integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==,
- }
-
- "@types/babel__traverse@7.28.0":
- resolution:
- {
- integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==,
- }
-
- "@types/debug@4.1.13":
- resolution:
- {
- integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==,
- }
-
- "@types/estree@1.0.9":
- resolution:
- {
- integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==,
- }
-
- "@types/hast@3.0.5":
- resolution:
- {
- integrity: sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g==,
- }
-
- "@types/json-schema@7.0.15":
- resolution:
- {
- integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==,
- }
-
- "@types/mdast@4.0.4":
- resolution:
- {
- integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==,
- }
-
- "@types/ms@2.1.0":
- resolution:
- {
- integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==,
- }
-
- "@types/nlcst@2.0.3":
- resolution:
- {
- integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==,
- }
-
- "@types/prop-types@15.7.15":
- resolution:
- {
- integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==,
- }
-
- "@types/react-dom@18.3.7":
- resolution:
- {
- integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==,
- }
+ '@tybys/wasm-util@0.10.4':
+ resolution: {integrity: sha512-W3c4gRigFS0T/Ma4qIYF3GDAc5AQdHb1yL5znJT1Zv1YaD9Kitx656wBjvr19qbiosmZT8lWDM5BEMynUqX65A==}
+
+ '@types/babel__core@7.20.5':
+ resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
+
+ '@types/babel__generator@7.27.0':
+ resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==}
+
+ '@types/babel__template@7.4.4':
+ resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
+
+ '@types/babel__traverse@7.28.0':
+ resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==}
+
+ '@types/chai@5.2.3':
+ resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==}
+
+ '@types/debug@4.1.13':
+ resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==}
+
+ '@types/deep-eql@4.0.2':
+ resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==}
+
+ '@types/estree@1.0.9':
+ resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==}
+
+ '@types/hast@3.0.5':
+ resolution: {integrity: sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g==}
+
+ '@types/json-schema@7.0.15':
+ resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
+
+ '@types/mdast@4.0.4':
+ resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
+
+ '@types/ms@2.1.0':
+ resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
+
+ '@types/nlcst@2.0.3':
+ resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==}
+
+ '@types/node@22.20.5':
+ resolution: {integrity: sha512-U2+DNr+wSjpsTS/wZGYHq7GcwfuSmKiKvoPvK22zwTlRhU91yOniN4qRR5KhIjvif7ysw/dz/hKmfDH0Ris4aA==}
+
+ '@types/prop-types@15.7.15':
+ resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==}
+
+ '@types/react-dom@18.3.7':
+ resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==}
peerDependencies:
- "@types/react": ^18.0.0
-
- "@types/react@18.3.31":
- resolution:
- {
- integrity: sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==,
- }
-
- "@types/unist@3.0.3":
- resolution:
- {
- integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==,
- }
-
- "@typescript-eslint/eslint-plugin@8.72.0":
- resolution:
- {
- integrity: sha512-aysKgysPX9XOv/dk95UkvUDe++Q3n3dJPG9CEWT3RUccxfkPJ+Qn6nhKPDhZXU6Ofo9kgwGWwKyQCnZIXTgngg==,
- }
- engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+ '@types/react': ^18.0.0
+
+ '@types/react@18.3.31':
+ resolution: {integrity: sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==}
+
+ '@types/unist@3.0.3':
+ resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
+
+ '@typescript-eslint/eslint-plugin@8.72.0':
+ resolution: {integrity: sha512-aysKgysPX9XOv/dk95UkvUDe++Q3n3dJPG9CEWT3RUccxfkPJ+Qn6nhKPDhZXU6Ofo9kgwGWwKyQCnZIXTgngg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- "@typescript-eslint/parser": ^8.72.0
+ '@typescript-eslint/parser': ^8.72.0
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
- typescript: ">=4.8.4 <6.1.0"
-
- "@typescript-eslint/parser@8.72.0":
- resolution:
- {
- integrity: sha512-0O+x3ynciD6zuXb1CKSu165haQV6ey53DKhHHUnujP7U+XlltJG+/keT0Xhd1HXCze+IHf7Tvt39ovyepX/LNw==,
- }
- engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+ typescript: '>=4.8.4 <6.1.0'
+
+ '@typescript-eslint/parser@8.72.0':
+ resolution: {integrity: sha512-0O+x3ynciD6zuXb1CKSu165haQV6ey53DKhHHUnujP7U+XlltJG+/keT0Xhd1HXCze+IHf7Tvt39ovyepX/LNw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
- typescript: ">=4.8.4 <6.1.0"
-
- "@typescript-eslint/project-service@8.72.0":
- resolution:
- {
- integrity: sha512-bzHngBbmIgzj6TsTjVUCntGx6FFLgE7mPjpO0PzHycOaZHXqS43XnrkFIHRS16LLr/xO6FHSXG3GJFo/F4bSBQ==,
- }
- engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+ typescript: '>=4.8.4 <6.1.0'
+
+ '@typescript-eslint/project-service@8.72.0':
+ resolution: {integrity: sha512-bzHngBbmIgzj6TsTjVUCntGx6FFLgE7mPjpO0PzHycOaZHXqS43XnrkFIHRS16LLr/xO6FHSXG3GJFo/F4bSBQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- typescript: ">=4.8.4 <6.1.0"
-
- "@typescript-eslint/scope-manager@8.72.0":
- resolution:
- {
- integrity: sha512-JewPyJOYcXBSAS7PIgufscHOwZqhTGyBRiQJhhuDln66tMchxvvt7nJ90JKKIoOelmdHA3kAQbm9cEUHc4JSEA==,
- }
- engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
-
- "@typescript-eslint/tsconfig-utils@8.72.0":
- resolution:
- {
- integrity: sha512-0vbxCf7xLVPSjcOdm6eQbgViH8EDJ8xnl1laLT9yoqSz2YmcSfSg5Vdl0JUvZf6rcuJ0ZivJIuMD4edTg8obaA==,
- }
- engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+ typescript: '>=4.8.4 <6.1.0'
+
+ '@typescript-eslint/scope-manager@8.72.0':
+ resolution: {integrity: sha512-JewPyJOYcXBSAS7PIgufscHOwZqhTGyBRiQJhhuDln66tMchxvvt7nJ90JKKIoOelmdHA3kAQbm9cEUHc4JSEA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/tsconfig-utils@8.72.0':
+ resolution: {integrity: sha512-0vbxCf7xLVPSjcOdm6eQbgViH8EDJ8xnl1laLT9yoqSz2YmcSfSg5Vdl0JUvZf6rcuJ0ZivJIuMD4edTg8obaA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- typescript: ">=4.8.4 <6.1.0"
-
- "@typescript-eslint/type-utils@8.72.0":
- resolution:
- {
- integrity: sha512-gEXxmmbSTSOVTC37IYYvremOM31v+UN2W772bJxmVYPhAOPSUxtacyb7wkm1EhkYKU6KzFJsdU44DCV4to0LWw==,
- }
- engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+ typescript: '>=4.8.4 <6.1.0'
+
+ '@typescript-eslint/type-utils@8.72.0':
+ resolution: {integrity: sha512-gEXxmmbSTSOVTC37IYYvremOM31v+UN2W772bJxmVYPhAOPSUxtacyb7wkm1EhkYKU6KzFJsdU44DCV4to0LWw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
- typescript: ">=4.8.4 <6.1.0"
-
- "@typescript-eslint/types@8.72.0":
- resolution:
- {
- integrity: sha512-Adfoy59kxNEjT5E5fnyrp7GpHYuWs8ONbdohu4ez6IU46qDq8LltG90tLmkucZB2uhYL8mqBjtXqGd8yhfjXqQ==,
- }
- engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
-
- "@typescript-eslint/typescript-estree@8.72.0":
- resolution:
- {
- integrity: sha512-gwLfFgWcw15tN2KXDCJvxEOQjPn+P3j/n3eSqkZ5sX4VpW9Cosodr+tWwBZRvJT3TcKx6HnPRGZMCNAiP1Xhug==,
- }
- engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+ typescript: '>=4.8.4 <6.1.0'
+
+ '@typescript-eslint/types@8.72.0':
+ resolution: {integrity: sha512-Adfoy59kxNEjT5E5fnyrp7GpHYuWs8ONbdohu4ez6IU46qDq8LltG90tLmkucZB2uhYL8mqBjtXqGd8yhfjXqQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/typescript-estree@8.72.0':
+ resolution: {integrity: sha512-gwLfFgWcw15tN2KXDCJvxEOQjPn+P3j/n3eSqkZ5sX4VpW9Cosodr+tWwBZRvJT3TcKx6HnPRGZMCNAiP1Xhug==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- typescript: ">=4.8.4 <6.1.0"
-
- "@typescript-eslint/utils@8.72.0":
- resolution:
- {
- integrity: sha512-0up3oArJZBYnzOaEXKo8DmI43QvMZyPoFEt9LWzRJcyl/RcJjfKKPebknN1VbTgXBf3M/KggUh5uUMdURLnseg==,
- }
- engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+ typescript: '>=4.8.4 <6.1.0'
+
+ '@typescript-eslint/utils@8.72.0':
+ resolution: {integrity: sha512-0up3oArJZBYnzOaEXKo8DmI43QvMZyPoFEt9LWzRJcyl/RcJjfKKPebknN1VbTgXBf3M/KggUh5uUMdURLnseg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
- typescript: ">=4.8.4 <6.1.0"
-
- "@typescript-eslint/visitor-keys@8.72.0":
- resolution:
- {
- integrity: sha512-E2mroviasaWecDzTGiGMtuEguuLVOeRggnrIn93CJuxYJzQBHbyymlT08aVQydbBal5538o+JkBKXh2sRuCyIA==,
- }
- engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
-
- "@ungap/structured-clone@1.4.0":
- resolution:
- {
- integrity: sha512-1mEZtMKPM09vDmQt5y7YvmN2+DFTP7Tg0EWXdic8/C6VRnpb33e4ghisCIE3WZjsE2N8mf+QV1Zqh7ZFYLWInQ==,
- }
-
- "@vitejs/plugin-react@4.7.0":
- resolution:
- {
- integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==,
- }
- engines: { node: ^14.18.0 || >=16.0.0 }
+ typescript: '>=4.8.4 <6.1.0'
+
+ '@typescript-eslint/visitor-keys@8.72.0':
+ resolution: {integrity: sha512-E2mroviasaWecDzTGiGMtuEguuLVOeRggnrIn93CJuxYJzQBHbyymlT08aVQydbBal5538o+JkBKXh2sRuCyIA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@ungap/structured-clone@1.4.0':
+ resolution: {integrity: sha512-1mEZtMKPM09vDmQt5y7YvmN2+DFTP7Tg0EWXdic8/C6VRnpb33e4ghisCIE3WZjsE2N8mf+QV1Zqh7ZFYLWInQ==}
+
+ '@vitejs/plugin-react@4.7.0':
+ resolution: {integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==}
+ engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0
- "@volar/kit@2.4.30":
- resolution:
- {
- integrity: sha512-VocLtumfXnqnPQEWc9Yx7uC1uOh9gyjVNlrn2+6Zx/z9aM6yTLhPK8lSqM9Ilu81XRa48I00lcYJWLi2BLxx8Q==,
- }
+ '@vitest/expect@3.2.7':
+ resolution: {integrity: sha512-E8eBXaKibuvH2pSZErOjdVb5vF4PbKYcrnluBTYxEk1l/VhhwZg1kZQsdtjq+CsF5CFydf2Rdkz7jDHKSisi3w==}
+
+ '@vitest/mocker@3.2.7':
+ resolution: {integrity: sha512-Trr0hYO9CM3Wj6ksWHRhK9IZpIY6wTMO5u/MqXurMxT57sWBaOPEtP3Oq60ihZuh5JsiagKfz95OcxdEP6dBrA==}
+ peerDependencies:
+ msw: ^2.4.9
+ vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0
+ peerDependenciesMeta:
+ msw:
+ optional: true
+ vite:
+ optional: true
+
+ '@vitest/pretty-format@3.2.7':
+ resolution: {integrity: sha512-KUHlwqVu0sRlhCdyPdQ/wBoTfRahjUky1MubOmYw9fWfIZy1gNoHpuaaQBPAaMaVYdQYHJLurzj8ECCj5OwTqA==}
+
+ '@vitest/runner@3.2.7':
+ resolution: {integrity: sha512-sB9y4ovltoQP+WaUPwmSxO9WIg9Ig694Di5PalVPsYHklAdE027mehpWF2SQSVq+k6sFgaivbTjTJwZLSHbedA==}
+
+ '@vitest/snapshot@3.2.7':
+ resolution: {integrity: sha512-7C+MwShwtBSI5Buwoyg3s/iY1eHL9PKAf+O1wVh/TdnjXUtkoL/9YQtre90i4MtNXM6edP1wJ2zOBpfCyhIS7g==}
+
+ '@vitest/spy@3.2.7':
+ resolution: {integrity: sha512-Q2eQGI6d2L/hBtZ0qNuKcAGid68XK6cv1xsoaIma6PaJhHPoqcEJhYpXZ/5myCMqkNgtP6UKuBhbc0nHKnrkuQ==}
+
+ '@vitest/utils@3.2.7':
+ resolution: {integrity: sha512-x6BDOd7dyo3PFLY3I9/HJ25X/6OurhGXk2/B9gOZNPF7XDVjeBK4k01lQE5uvDpbuheErh91qYuE1E2OEjK3Rw==}
+
+ '@volar/kit@2.4.30':
+ resolution: {integrity: sha512-VocLtumfXnqnPQEWc9Yx7uC1uOh9gyjVNlrn2+6Zx/z9aM6yTLhPK8lSqM9Ilu81XRa48I00lcYJWLi2BLxx8Q==}
peerDependencies:
typescript: <7
- "@volar/language-core@2.4.30":
- resolution:
- {
- integrity: sha512-73fjwEV8wat6aOZ6U/y/hqtE30ocrIWECg67b0txGczOMNw+MffLmvJ5fnFfN9drVUEYZzLdaNo6VAy6G6avMw==,
- }
-
- "@volar/language-server@2.4.30":
- resolution:
- {
- integrity: sha512-tcP9fzzUBbsLIFHhgnRU4ncQjMn9G9Vax0ffkQmdCrXVEYqRroUepmyC5AVgiju5bCiLD6a55qen5iOTQHkb3g==,
- }
+ '@volar/language-core@2.4.30':
+ resolution: {integrity: sha512-73fjwEV8wat6aOZ6U/y/hqtE30ocrIWECg67b0txGczOMNw+MffLmvJ5fnFfN9drVUEYZzLdaNo6VAy6G6avMw==}
+
+ '@volar/language-server@2.4.30':
+ resolution: {integrity: sha512-tcP9fzzUBbsLIFHhgnRU4ncQjMn9G9Vax0ffkQmdCrXVEYqRroUepmyC5AVgiju5bCiLD6a55qen5iOTQHkb3g==}
peerDependencies:
typescript: <7
peerDependenciesMeta:
typescript:
optional: true
- "@volar/language-service@2.4.30":
- resolution:
- {
- integrity: sha512-w/xDsASiqC71ggCOm7sTDXDNk/l72XEptodeRC68tgZ0e5QM4hM3zAqBGC7mBctvhrpYwKfMG+t9xcUo2hEFtA==,
- }
+ '@volar/language-service@2.4.30':
+ resolution: {integrity: sha512-w/xDsASiqC71ggCOm7sTDXDNk/l72XEptodeRC68tgZ0e5QM4hM3zAqBGC7mBctvhrpYwKfMG+t9xcUo2hEFtA==}
peerDependencies:
typescript: <7
peerDependenciesMeta:
typescript:
optional: true
- "@volar/source-map@2.4.30":
- resolution:
- {
- integrity: sha512-zym1ob/KwDDyN+0jGVtxwbxJSRRnUvv5HspCtz3yEfVVdCG4/dzxJktMGPAgemqRuVs81O0o/y0q3qOUErR8kg==,
- }
-
- "@volar/typescript@2.4.30":
- resolution:
- {
- integrity: sha512-/DgA5tgYFPfrLFuSjIMXMGHk1LQv2+P8eny6+BhGNzFJELWIW7UZlc56ZLIRFhLsPpMfIFxM8/HvOPBggrjTZg==,
- }
+ '@volar/source-map@2.4.30':
+ resolution: {integrity: sha512-zym1ob/KwDDyN+0jGVtxwbxJSRRnUvv5HspCtz3yEfVVdCG4/dzxJktMGPAgemqRuVs81O0o/y0q3qOUErR8kg==}
+
+ '@volar/typescript@2.4.30':
+ resolution: {integrity: sha512-/DgA5tgYFPfrLFuSjIMXMGHk1LQv2+P8eny6+BhGNzFJELWIW7UZlc56ZLIRFhLsPpMfIFxM8/HvOPBggrjTZg==}
peerDependencies:
typescript: <7
peerDependenciesMeta:
typescript:
optional: true
- "@vscode/emmet-helper@2.11.0":
- resolution:
- {
- integrity: sha512-QLxjQR3imPZPQltfbWRnHU6JecWTF1QSWhx3GAKQpslx7y3Dp6sIIXhKjiUJ/BR9FX8PVthjr9PD6pNwOJfAzw==,
- }
+ '@vscode/emmet-helper@2.11.0':
+ resolution: {integrity: sha512-QLxjQR3imPZPQltfbWRnHU6JecWTF1QSWhx3GAKQpslx7y3Dp6sIIXhKjiUJ/BR9FX8PVthjr9PD6pNwOJfAzw==}
- "@vscode/l10n@0.0.18":
- resolution:
- {
- integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==,
- }
+ '@vscode/l10n@0.0.18':
+ resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==}
acorn-jsx@5.3.2:
- resolution:
- {
- integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==,
- }
+ resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
peerDependencies:
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
acorn@8.19.0:
- resolution:
- {
- integrity: sha512-oJlA3XiRm7Cyk6qFD2Jn8ak9B7jSy0qy00ADO3+8dpT0LSjFihQYv4C02LFCSYJV3Q37xYwwRy5m+IpIiUzqWw==,
- }
- engines: { node: ">=0.4.0" }
+ resolution: {integrity: sha512-oJlA3XiRm7Cyk6qFD2Jn8ak9B7jSy0qy00ADO3+8dpT0LSjFihQYv4C02LFCSYJV3Q37xYwwRy5m+IpIiUzqWw==}
+ engines: {node: '>=0.4.0'}
hasBin: true
ajv-draft-04@1.0.0:
- resolution:
- {
- integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==,
- }
+ resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==}
peerDependencies:
ajv: ^8.5.0
peerDependenciesMeta:
@@ -1930,925 +1292,544 @@ packages:
optional: true
ajv-i18n@4.2.0:
- resolution:
- {
- integrity: sha512-v/ei2UkCEeuKNXh8RToiFsUclmU+G57LO1Oo22OagNMENIw+Yb8eMwvHu7Vn9fmkjJyv6XclhJ8TbuigSglPkg==,
- }
+ resolution: {integrity: sha512-v/ei2UkCEeuKNXh8RToiFsUclmU+G57LO1Oo22OagNMENIw+Yb8eMwvHu7Vn9fmkjJyv6XclhJ8TbuigSglPkg==}
peerDependencies:
ajv: ^8.0.0-beta.0
ajv@6.15.0:
- resolution:
- {
- integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==,
- }
+ resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==}
ajv@8.20.0:
- resolution:
- {
- integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==,
- }
+ resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==}
ansi-align@3.0.1:
- resolution:
- {
- integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==,
- }
+ resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==}
ansi-regex@5.0.1:
- resolution:
- {
- integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==,
- }
- engines: { node: ">=8" }
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+ engines: {node: '>=8'}
ansi-regex@6.4.0:
- resolution:
- {
- integrity: sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==,
- }
- engines: { node: ">=12" }
+ resolution: {integrity: sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==}
+ engines: {node: '>=12'}
ansi-styles@4.3.0:
- resolution:
- {
- integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==,
- }
- engines: { node: ">=8" }
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+ engines: {node: '>=8'}
ansi-styles@6.2.3:
- resolution:
- {
- integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==,
- }
- engines: { node: ">=12" }
+ resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==}
+ engines: {node: '>=12'}
anymatch@3.1.3:
- resolution:
- {
- integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==,
- }
- engines: { node: ">= 8" }
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
+ engines: {node: '>= 8'}
argparse@2.0.1:
- resolution:
- {
- integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==,
- }
+ resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
aria-query@5.3.2:
- resolution:
- {
- integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==}
+ engines: {node: '>= 0.4'}
array-buffer-byte-length@1.0.2:
- resolution:
- {
- integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==}
+ engines: {node: '>= 0.4'}
array-includes@3.2.0:
- resolution:
- {
- integrity: sha512-VXY5eFRarnXcYxwBjJzPmEhH55+rmP79/+ueDhi0F+TuqfHCItagIHqxeUZrmgrOPa31QTh9H85DjX3FfJ0FTg==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-VXY5eFRarnXcYxwBjJzPmEhH55+rmP79/+ueDhi0F+TuqfHCItagIHqxeUZrmgrOPa31QTh9H85DjX3FfJ0FTg==}
+ engines: {node: '>= 0.4'}
array-iterate@2.0.1:
- resolution:
- {
- integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==,
- }
+ resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==}
array.prototype.findlast@1.2.5:
- resolution:
- {
- integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==}
+ engines: {node: '>= 0.4'}
array.prototype.flat@1.3.3:
- resolution:
- {
- integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==}
+ engines: {node: '>= 0.4'}
array.prototype.flatmap@1.3.3:
- resolution:
- {
- integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==}
+ engines: {node: '>= 0.4'}
array.prototype.tosorted@1.1.4:
- resolution:
- {
- integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==}
+ engines: {node: '>= 0.4'}
arraybuffer.prototype.slice@1.0.4:
- resolution:
- {
- integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==}
+ engines: {node: '>= 0.4'}
+
+ assertion-error@2.0.1:
+ resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
+ engines: {node: '>=12'}
astro@5.18.2:
- resolution:
- {
- integrity: sha512-TnFwLnAXty5MXKPDGuKXqK4AMBXG+FH6RUdK7Oyc3gyfNoFIthT+4eRbzOK43bdRlLaZuxgciDSjgtggZ3OtGQ==,
- }
- engines: { node: 18.20.8 || ^20.3.0 || >=22.0.0, npm: ">=9.6.5", pnpm: ">=7.1.0" }
+ resolution: {integrity: sha512-TnFwLnAXty5MXKPDGuKXqK4AMBXG+FH6RUdK7Oyc3gyfNoFIthT+4eRbzOK43bdRlLaZuxgciDSjgtggZ3OtGQ==}
+ engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'}
hasBin: true
async-function@1.0.0:
- resolution:
- {
- integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==}
+ engines: {node: '>= 0.4'}
available-typed-arrays@1.0.7:
- resolution:
- {
- integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
+ engines: {node: '>= 0.4'}
axobject-query@4.1.0:
- resolution:
- {
- integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
+ engines: {node: '>= 0.4'}
bail@2.0.2:
- resolution:
- {
- integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==,
- }
+ resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
balanced-match@1.0.2:
- resolution:
- {
- integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==,
- }
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
balanced-match@4.0.4:
- resolution:
- {
- integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==,
- }
- engines: { node: 18 || 20 || >=22 }
+ resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==}
+ engines: {node: 18 || 20 || >=22}
base-64@1.0.0:
- resolution:
- {
- integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==,
- }
+ resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==}
baseline-browser-mapping@2.11.31:
- resolution:
- {
- integrity: sha512-b0k7wXlWjpuL/Uxb/pYlpjY0ej5BjAmurtPUk3eRGuloI4yjK32m8TiKUQ81l1ptcLjKS/KH2+uqIolZti1x4Q==,
- }
- engines: { node: ">=6.0.0" }
+ resolution: {integrity: sha512-b0k7wXlWjpuL/Uxb/pYlpjY0ej5BjAmurtPUk3eRGuloI4yjK32m8TiKUQ81l1ptcLjKS/KH2+uqIolZti1x4Q==}
+ engines: {node: '>=6.0.0'}
hasBin: true
boolbase@1.0.0:
- resolution:
- {
- integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==,
- }
+ resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
boxen@8.0.1:
- resolution:
- {
- integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==,
- }
- engines: { node: ">=18" }
+ resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==}
+ engines: {node: '>=18'}
brace-expansion@1.1.21:
- resolution:
- {
- integrity: sha512-9zeA+KLZNNzglF2TPKRQEDyx6Yby7daAkuy8MiPzpXPsYDWi/DRM8jmwUDxokQjYqBpv5DgPiwD4h4ZZSy1Ujw==,
- }
+ resolution: {integrity: sha512-9zeA+KLZNNzglF2TPKRQEDyx6Yby7daAkuy8MiPzpXPsYDWi/DRM8jmwUDxokQjYqBpv5DgPiwD4h4ZZSy1Ujw==}
brace-expansion@5.0.12:
- resolution:
- {
- integrity: sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==,
- }
- engines: { node: 20 || >=22 }
+ resolution: {integrity: sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==}
+ engines: {node: 20 || >=22}
browserslist@4.29.4:
- resolution:
- {
- integrity: sha512-2TcbbiwXEq+N0kD36tykpCfyyQigUXmuwNQbnPp4Xk4PX9JOqVIKjJlIDjpH7uY6tmRGoAd+apeT1p60T8wsdA==,
- }
- engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 }
+ resolution: {integrity: sha512-2TcbbiwXEq+N0kD36tykpCfyyQigUXmuwNQbnPp4Xk4PX9JOqVIKjJlIDjpH7uY6tmRGoAd+apeT1p60T8wsdA==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
+ cac@6.7.14:
+ resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
+ engines: {node: '>=8'}
+
call-bind-apply-helpers@1.0.2:
- resolution:
- {
- integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
+ engines: {node: '>= 0.4'}
call-bind@1.0.9:
- resolution:
- {
- integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==}
+ engines: {node: '>= 0.4'}
call-bound@1.0.4:
- resolution:
- {
- integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
+ engines: {node: '>= 0.4'}
callsites@3.1.0:
- resolution:
- {
- integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==,
- }
- engines: { node: ">=6" }
+ resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
+ engines: {node: '>=6'}
camelcase@8.0.0:
- resolution:
- {
- integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==,
- }
- engines: { node: ">=16" }
+ resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==}
+ engines: {node: '>=16'}
caniuse-lite@1.0.30001819:
- resolution:
- {
- integrity: sha512-LFUqIIAwpzsIuevnKnsR9qnStBcgzPShTX61lBwN9uFkkf8o8zLiebEjbW8AYtZiF+1YKDWfdt/pWDtMuG8Xwg==,
- }
+ resolution: {integrity: sha512-LFUqIIAwpzsIuevnKnsR9qnStBcgzPShTX61lBwN9uFkkf8o8zLiebEjbW8AYtZiF+1YKDWfdt/pWDtMuG8Xwg==}
ccount@2.0.1:
- resolution:
- {
- integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==,
- }
+ resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
+
+ chai@5.3.3:
+ resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==}
+ engines: {node: '>=18'}
chalk@4.1.2:
- resolution:
- {
- integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==,
- }
- engines: { node: ">=10" }
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
+ engines: {node: '>=10'}
chalk@5.6.2:
- resolution:
- {
- integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==,
- }
- engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 }
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
character-entities-html4@2.1.0:
- resolution:
- {
- integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==,
- }
+ resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
character-entities-legacy@3.0.0:
- resolution:
- {
- integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==,
- }
+ resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
character-entities@2.0.2:
- resolution:
- {
- integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==,
- }
+ resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
+
+ check-error@2.1.3:
+ resolution: {integrity: sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==}
+ engines: {node: '>= 16'}
chokidar@5.0.0:
- resolution:
- {
- integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==,
- }
- engines: { node: ">= 20.19.0" }
+ resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==}
+ engines: {node: '>= 20.19.0'}
ci-info@4.4.0:
- resolution:
- {
- integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==,
- }
- engines: { node: ">=8" }
+ resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==}
+ engines: {node: '>=8'}
cli-boxes@3.0.0:
- resolution:
- {
- integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==,
- }
- engines: { node: ">=10" }
+ resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==}
+ engines: {node: '>=10'}
cliui@9.0.1:
- resolution:
- {
- integrity: sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==,
- }
- engines: { node: ">=20" }
+ resolution: {integrity: sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==}
+ engines: {node: '>=20'}
clsx@2.1.1:
- resolution:
- {
- integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==,
- }
- engines: { node: ">=6" }
+ resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
+ engines: {node: '>=6'}
color-convert@2.0.1:
- resolution:
- {
- integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==,
- }
- engines: { node: ">=7.0.0" }
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
color-name@1.1.4:
- resolution:
- {
- integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==,
- }
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
comma-separated-tokens@2.0.3:
- resolution:
- {
- integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==,
- }
+ resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
commander@11.1.0:
- resolution:
- {
- integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==,
- }
- engines: { node: ">=16" }
+ resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==}
+ engines: {node: '>=16'}
common-ancestor-path@1.0.1:
- resolution:
- {
- integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==,
- }
+ resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==}
concat-map@0.0.1:
- resolution:
- {
- integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==,
- }
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
convert-source-map@2.0.0:
- resolution:
- {
- integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==,
- }
+ resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
cookie-es@1.2.3:
- resolution:
- {
- integrity: sha512-lXVyvUvrNXblMqzIRrxHb57UUVmqsSWlxqt3XIjCkUP0wDAf6uicO6KMbEgYrMNtEvWgWHwe42CKxPu9MYAnWw==,
- }
+ resolution: {integrity: sha512-lXVyvUvrNXblMqzIRrxHb57UUVmqsSWlxqt3XIjCkUP0wDAf6uicO6KMbEgYrMNtEvWgWHwe42CKxPu9MYAnWw==}
cookie@1.1.1:
- resolution:
- {
- integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==,
- }
- engines: { node: ">=18" }
+ resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==}
+ engines: {node: '>=18'}
cross-spawn@7.0.6:
- resolution:
- {
- integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==,
- }
- engines: { node: ">= 8" }
+ resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
+ engines: {node: '>= 8'}
crossws@0.3.5:
- resolution:
- {
- integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==,
- }
+ resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==}
css-select@6.0.0:
- resolution:
- {
- integrity: sha512-rZZVSLle8v0+EY8QAkDWrKhpgt6SA5OtHsgBnsj6ZaLb5dmDVOWUDtQitd9ydxxvEjhewNudS6eTVU7uOyzvXw==,
- }
+ resolution: {integrity: sha512-rZZVSLle8v0+EY8QAkDWrKhpgt6SA5OtHsgBnsj6ZaLb5dmDVOWUDtQitd9ydxxvEjhewNudS6eTVU7uOyzvXw==}
css-tree@2.2.1:
- resolution:
- {
- integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==,
- }
- engines: { node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: ">=7.0.0" }
+ resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==}
+ engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
css-tree@3.2.1:
- resolution:
- {
- integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==,
- }
- engines: { node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0 }
+ resolution: {integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==}
+ engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
css-what@7.0.0:
- resolution:
- {
- integrity: sha512-wD5oz5xibMOPHzy13CyGmogB3phdvcDaB5t0W/Nr5Z2O/agcB8YwOz6e2Lsp10pNDzBoDO9nVa3RGs/2BttpHQ==,
- }
- engines: { node: ">= 6" }
+ resolution: {integrity: sha512-wD5oz5xibMOPHzy13CyGmogB3phdvcDaB5t0W/Nr5Z2O/agcB8YwOz6e2Lsp10pNDzBoDO9nVa3RGs/2BttpHQ==}
+ engines: {node: '>= 6'}
cssesc@3.0.0:
- resolution:
- {
- integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==,
- }
- engines: { node: ">=4" }
+ resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
+ engines: {node: '>=4'}
hasBin: true
csso@5.0.5:
- resolution:
- {
- integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==,
- }
- engines: { node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: ">=7.0.0" }
+ resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
+ engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
csstype@3.2.3:
- resolution:
- {
- integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==,
- }
+ resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==}
data-view-buffer@1.0.2:
- resolution:
- {
- integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==}
+ engines: {node: '>= 0.4'}
data-view-byte-length@1.0.2:
- resolution:
- {
- integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==}
+ engines: {node: '>= 0.4'}
data-view-byte-offset@1.0.1:
- resolution:
- {
- integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==}
+ engines: {node: '>= 0.4'}
debug@4.4.3:
- resolution:
- {
- integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==,
- }
- engines: { node: ">=6.0" }
+ resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
+ engines: {node: '>=6.0'}
peerDependencies:
- supports-color: "*"
+ supports-color: '*'
peerDependenciesMeta:
supports-color:
optional: true
decode-named-character-reference@1.3.0:
- resolution:
- {
- integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==,
- }
+ resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==}
+
+ deep-eql@5.0.2:
+ resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==}
+ engines: {node: '>=6'}
deep-is@0.1.4:
- resolution:
- {
- integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==,
- }
+ resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
define-data-property@1.1.4:
- resolution:
- {
- integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
+ engines: {node: '>= 0.4'}
define-properties@1.2.1:
- resolution:
- {
- integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
+ engines: {node: '>= 0.4'}
defu@6.1.7:
- resolution:
- {
- integrity: sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==,
- }
+ resolution: {integrity: sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==}
dequal@2.0.3:
- resolution:
- {
- integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==,
- }
- engines: { node: ">=6" }
+ resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
+ engines: {node: '>=6'}
destr@2.0.5:
- resolution:
- {
- integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==,
- }
+ resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==}
detect-libc@2.1.2:
- resolution:
- {
- integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==,
- }
- engines: { node: ">=8" }
+ resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
+ engines: {node: '>=8'}
deterministic-object-hash@2.0.2:
- resolution:
- {
- integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==,
- }
- engines: { node: ">=18" }
+ resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==}
+ engines: {node: '>=18'}
devalue@5.9.4:
- resolution:
- {
- integrity: sha512-sPAT4pztbu6586/hrhOnMKS17IJrvg12mXiSPSS3W5qDeN2RGgvZ0diZCm31dBbnevfVmujNO3IM2wrS4Y2Rhg==,
- }
+ resolution: {integrity: sha512-sPAT4pztbu6586/hrhOnMKS17IJrvg12mXiSPSS3W5qDeN2RGgvZ0diZCm31dBbnevfVmujNO3IM2wrS4Y2Rhg==}
devlop@1.1.0:
- resolution:
- {
- integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==,
- }
+ resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
diff@8.0.4:
- resolution:
- {
- integrity: sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==,
- }
- engines: { node: ">=0.3.1" }
+ resolution: {integrity: sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==}
+ engines: {node: '>=0.3.1'}
dlv@1.1.3:
- resolution:
- {
- integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==,
- }
+ resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
doctrine@2.1.0:
- resolution:
- {
- integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==,
- }
- engines: { node: ">=0.10.0" }
+ resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
+ engines: {node: '>=0.10.0'}
dom-serializer@2.0.0:
- resolution:
- {
- integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==,
- }
+ resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
domelementtype@2.3.0:
- resolution:
- {
- integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==,
- }
+ resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
domhandler@5.0.3:
- resolution:
- {
- integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==,
- }
- engines: { node: ">= 4" }
+ resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
+ engines: {node: '>= 4'}
domutils@3.2.2:
- resolution:
- {
- integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==,
- }
+ resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==}
dset@3.1.4:
- resolution:
- {
- integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==,
- }
- engines: { node: ">=4" }
+ resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==}
+ engines: {node: '>=4'}
dunder-proto@1.0.1:
- resolution:
- {
- integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
+ engines: {node: '>= 0.4'}
electron-to-chromium@1.5.463:
- resolution:
- {
- integrity: sha512-nVWNU6ltFjopvOdD44J4zoBkgO0M+WZiFKKFV7EjebOH9z0KNphk6bCEjplXtJofL21ARIuuwWOCsFkBVklm6w==,
- }
+ resolution: {integrity: sha512-nVWNU6ltFjopvOdD44J4zoBkgO0M+WZiFKKFV7EjebOH9z0KNphk6bCEjplXtJofL21ARIuuwWOCsFkBVklm6w==}
emmet@2.4.11:
- resolution:
- {
- integrity: sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==,
- }
+ resolution: {integrity: sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==}
emoji-regex@10.6.0:
- resolution:
- {
- integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==,
- }
+ resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==}
emoji-regex@8.0.0:
- resolution:
- {
- integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==,
- }
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
enhanced-resolve@5.26.0:
- resolution:
- {
- integrity: sha512-9vhedylFonb2YGogzUKX6+Ja72gOJbN1QHAqdrvqLwhdl/QWbKopzoUC9EbQNVsAns/bx/4uyqalrQAoy1IByw==,
- }
- engines: { node: ">=10.13.0" }
+ resolution: {integrity: sha512-9vhedylFonb2YGogzUKX6+Ja72gOJbN1QHAqdrvqLwhdl/QWbKopzoUC9EbQNVsAns/bx/4uyqalrQAoy1IByw==}
+ engines: {node: '>=10.13.0'}
entities@4.5.0:
- resolution:
- {
- integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==,
- }
- engines: { node: ">=0.12" }
+ resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
+ engines: {node: '>=0.12'}
entities@6.0.1:
- resolution:
- {
- integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==,
- }
- engines: { node: ">=0.12" }
+ resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==}
+ engines: {node: '>=0.12'}
es-abstract-get@1.0.0:
- resolution:
- {
- integrity: sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg==}
+ engines: {node: '>= 0.4'}
es-abstract@1.24.2:
- resolution:
- {
- integrity: sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==}
+ engines: {node: '>= 0.4'}
es-define-property@1.0.1:
- resolution:
- {
- integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
+ engines: {node: '>= 0.4'}
es-errors@1.3.0:
- resolution:
- {
- integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
+ engines: {node: '>= 0.4'}
es-iterator-helpers@1.4.0:
- resolution:
- {
- integrity: sha512-c/A0P0oxkACDc+cKWw8evLXK83oBKgn0qPOqCYT4x9uolpCIJAcYvJC9QYKNDRPsTeGyCrQ326jrvgZWdCdK5Q==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-c/A0P0oxkACDc+cKWw8evLXK83oBKgn0qPOqCYT4x9uolpCIJAcYvJC9QYKNDRPsTeGyCrQ326jrvgZWdCdK5Q==}
+ engines: {node: '>= 0.4'}
es-module-lexer@1.7.0:
- resolution:
- {
- integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==,
- }
+ resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==}
es-object-atoms@1.1.2:
- resolution:
- {
- integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==}
+ engines: {node: '>= 0.4'}
es-set-tostringtag@2.1.0:
- resolution:
- {
- integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
+ engines: {node: '>= 0.4'}
es-shim-unscopables@1.1.0:
- resolution:
- {
- integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==}
+ engines: {node: '>= 0.4'}
es-to-primitive@1.3.4:
- resolution:
- {
- integrity: sha512-yPDz7wqpg1/mmHLmS3tcfTfbw5f1eryXvyghYBffGdERwe+mV7ZcWzTR8LR17Kvqt3qfPurjlonmnq3MKXIOXw==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-yPDz7wqpg1/mmHLmS3tcfTfbw5f1eryXvyghYBffGdERwe+mV7ZcWzTR8LR17Kvqt3qfPurjlonmnq3MKXIOXw==}
+ engines: {node: '>= 0.4'}
esbuild@0.25.12:
- resolution:
- {
- integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==,
- }
- engines: { node: ">=18" }
+ resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==}
+ engines: {node: '>=18'}
hasBin: true
esbuild@0.27.7:
- resolution:
- {
- integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==,
- }
- engines: { node: ">=18" }
+ resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==}
+ engines: {node: '>=18'}
hasBin: true
escalade@3.2.0:
- resolution:
- {
- integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==,
- }
- engines: { node: ">=6" }
+ resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
+ engines: {node: '>=6'}
escape-string-regexp@4.0.0:
- resolution:
- {
- integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==,
- }
- engines: { node: ">=10" }
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
escape-string-regexp@5.0.0:
- resolution:
- {
- integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==,
- }
- engines: { node: ">=12" }
+ resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
+ engines: {node: '>=12'}
eslint-plugin-react-hooks@5.2.0:
- resolution:
- {
- integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==,
- }
- engines: { node: ">=10" }
+ resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==}
+ engines: {node: '>=10'}
peerDependencies:
eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0
eslint-plugin-react@7.37.5:
- resolution:
- {
- integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==,
- }
- engines: { node: ">=4" }
+ resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==}
+ engines: {node: '>=4'}
peerDependencies:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
eslint-scope@8.4.0:
- resolution:
- {
- integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==,
- }
- engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+ resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
eslint-visitor-keys@3.4.3:
- resolution:
- {
- integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==,
- }
- engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
+ resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
eslint-visitor-keys@4.2.1:
- resolution:
- {
- integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==,
- }
- engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+ resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
eslint-visitor-keys@5.0.1:
- resolution:
- {
- integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==,
- }
- engines: { node: ^20.19.0 || ^22.13.0 || >=24 }
+ resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
eslint@9.39.5:
- resolution:
- {
- integrity: sha512-DgZS62aPLXKlnxILS/AYCoRvHaZeXceIzlXPkkGGzJWSow1aEk0lbTlxUSlyjC8jcaKxAdOnTDz+o1JFSBsyjw==,
- }
- engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+ resolution: {integrity: sha512-DgZS62aPLXKlnxILS/AYCoRvHaZeXceIzlXPkkGGzJWSow1aEk0lbTlxUSlyjC8jcaKxAdOnTDz+o1JFSBsyjw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options.
hasBin: true
peerDependencies:
- jiti: "*"
+ jiti: '*'
peerDependenciesMeta:
jiti:
optional: true
espree@10.4.0:
- resolution:
- {
- integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==,
- }
- engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+ resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
esquery@1.7.0:
- resolution:
- {
- integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==,
- }
- engines: { node: ">=0.10" }
+ resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==}
+ engines: {node: '>=0.10'}
esrecurse@4.3.0:
- resolution:
- {
- integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==,
- }
- engines: { node: ">=4.0" }
+ resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
+ engines: {node: '>=4.0'}
estraverse@5.3.0:
- resolution:
- {
- integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==,
- }
- engines: { node: ">=4.0" }
+ resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
+ engines: {node: '>=4.0'}
estree-walker@2.0.2:
- resolution:
- {
- integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==,
- }
+ resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
estree-walker@3.0.3:
- resolution:
- {
- integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==,
- }
+ resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
esutils@2.0.3:
- resolution:
- {
- integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==,
- }
- engines: { node: ">=0.10.0" }
+ resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
+ engines: {node: '>=0.10.0'}
eventemitter3@5.0.4:
- resolution:
- {
- integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==,
- }
+ resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==}
+
+ expect-type@1.4.0:
+ resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==}
+ engines: {node: '>=12.0.0'}
extend@3.0.2:
- resolution:
- {
- integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==,
- }
+ resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
fast-deep-equal@3.1.3:
- resolution:
- {
- integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==,
- }
+ resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
fast-json-stable-stringify@2.1.0:
- resolution:
- {
- integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==,
- }
+ resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
fast-levenshtein@2.0.6:
- resolution:
- {
- integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==,
- }
+ resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
fast-uri@3.1.9:
- resolution:
- {
- integrity: sha512-hS/0Wt3Ya043oKXs0sIxrMpKQITXhMLIrVAKKXi4gozGC9v7YRWVnXIZzjNPTO02M9BdxLCWqK1yRXgNziVyJQ==,
- }
+ resolution: {integrity: sha512-hS/0Wt3Ya043oKXs0sIxrMpKQITXhMLIrVAKKXi4gozGC9v7YRWVnXIZzjNPTO02M9BdxLCWqK1yRXgNziVyJQ==}
fdir@6.5.0:
- resolution:
- {
- integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==,
- }
- engines: { node: ">=12.0.0" }
+ resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
+ engines: {node: '>=12.0.0'}
peerDependencies:
picomatch: ^3 || ^4
peerDependenciesMeta:
@@ -2856,1494 +1837,853 @@ packages:
optional: true
file-entry-cache@8.0.0:
- resolution:
- {
- integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==,
- }
- engines: { node: ">=16.0.0" }
+ resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
+ engines: {node: '>=16.0.0'}
find-up@5.0.0:
- resolution:
- {
- integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==,
- }
- engines: { node: ">=10" }
+ resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
+ engines: {node: '>=10'}
flat-cache@4.0.1:
- resolution:
- {
- integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==,
- }
- engines: { node: ">=16" }
+ resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
+ engines: {node: '>=16'}
flatted@3.4.4:
- resolution:
- {
- integrity: sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==,
- }
+ resolution: {integrity: sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==}
flattie@1.1.1:
- resolution:
- {
- integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==,
- }
- engines: { node: ">=8" }
+ resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==}
+ engines: {node: '>=8'}
fontace@0.4.1:
- resolution:
- {
- integrity: sha512-lDMvbAzSnHmbYMTEld5qdtvNH2/pWpICOqpean9IgC7vUbUJc3k+k5Dokp85CegamqQpFbXf0rAVkbzpyTA8aw==,
- }
+ resolution: {integrity: sha512-lDMvbAzSnHmbYMTEld5qdtvNH2/pWpICOqpean9IgC7vUbUJc3k+k5Dokp85CegamqQpFbXf0rAVkbzpyTA8aw==}
fontkitten@1.0.3:
- resolution:
- {
- integrity: sha512-Wp1zXWPVUPBmfoa3Cqc9ctaKuzKAV6uLstRqlR56kSjplf5uAce+qeyYym7F+PHbGTk+tCEdkCW6RD7DX/gBZw==,
- }
- engines: { node: ">=20" }
+ resolution: {integrity: sha512-Wp1zXWPVUPBmfoa3Cqc9ctaKuzKAV6uLstRqlR56kSjplf5uAce+qeyYym7F+PHbGTk+tCEdkCW6RD7DX/gBZw==}
+ engines: {node: '>=20'}
for-each@0.3.5:
- resolution:
- {
- integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==}
+ engines: {node: '>= 0.4'}
fsevents@2.3.3:
- resolution:
- {
- integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==,
- }
- engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 }
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
os: [darwin]
function-bind@1.1.2:
- resolution:
- {
- integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==,
- }
+ resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
function.prototype.name@1.2.0:
- resolution:
- {
- integrity: sha512-jObKIik1P2QjPHP5nz5BaOtUlfgS0fWo8IUByNXkM+o+02sJOi94em77GwJKQSJ3gfPHdgzLNrHc1uokV4P/ew==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-jObKIik1P2QjPHP5nz5BaOtUlfgS0fWo8IUByNXkM+o+02sJOi94em77GwJKQSJ3gfPHdgzLNrHc1uokV4P/ew==}
+ engines: {node: '>= 0.4'}
functions-have-names@1.2.3:
- resolution:
- {
- integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==,
- }
+ resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
generator-function@2.0.1:
- resolution:
- {
- integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==}
+ engines: {node: '>= 0.4'}
gensync@1.0.0-beta.2:
- resolution:
- {
- integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==,
- }
- engines: { node: ">=6.9.0" }
+ resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
+ engines: {node: '>=6.9.0'}
get-caller-file@2.0.5:
- resolution:
- {
- integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==,
- }
- engines: { node: 6.* || 8.* || >= 10.* }
+ resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
+ engines: {node: 6.* || 8.* || >= 10.*}
get-east-asian-width@1.7.0:
- resolution:
- {
- integrity: sha512-XjH1AECxf0giL2V1aU8vKyRR2ppRUb5c0EvT7zuJTokQ74bNo52zOtghqdWIqrhUD79fo3x0WfKZdOqxF6LG1Q==,
- }
- engines: { node: ">=18" }
+ resolution: {integrity: sha512-XjH1AECxf0giL2V1aU8vKyRR2ppRUb5c0EvT7zuJTokQ74bNo52zOtghqdWIqrhUD79fo3x0WfKZdOqxF6LG1Q==}
+ engines: {node: '>=18'}
get-intrinsic@1.3.0:
- resolution:
- {
- integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
+ engines: {node: '>= 0.4'}
get-proto@1.0.1:
- resolution:
- {
- integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
+ engines: {node: '>= 0.4'}
get-symbol-description@1.1.0:
- resolution:
- {
- integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
+ engines: {node: '>= 0.4'}
github-slugger@2.0.0:
- resolution:
- {
- integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==,
- }
+ resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==}
glob-parent@6.0.2:
- resolution:
- {
- integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==,
- }
- engines: { node: ">=10.13.0" }
+ resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
+ engines: {node: '>=10.13.0'}
globals@14.0.0:
- resolution:
- {
- integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==,
- }
- engines: { node: ">=18" }
+ resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
+ engines: {node: '>=18'}
globals@17.13.0:
- resolution:
- {
- integrity: sha512-RwMTC61u7hrG3ZJMkZQOK4JLJrKS8QtoTii63EmWvFXHqycY9FObBJQCbsLxSO8kjKhWE5kV1GC+Vb1g3RI0Zg==,
- }
- engines: { node: ">=18" }
+ resolution: {integrity: sha512-RwMTC61u7hrG3ZJMkZQOK4JLJrKS8QtoTii63EmWvFXHqycY9FObBJQCbsLxSO8kjKhWE5kV1GC+Vb1g3RI0Zg==}
+ engines: {node: '>=18'}
globalthis@1.0.4:
- resolution:
- {
- integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
+ engines: {node: '>= 0.4'}
gopd@1.2.0:
- resolution:
- {
- integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
+ engines: {node: '>= 0.4'}
graceful-fs@4.2.11:
- resolution:
- {
- integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==,
- }
+ resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
h3@1.15.11:
- resolution:
- {
- integrity: sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg==,
- }
+ resolution: {integrity: sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg==}
has-bigints@1.1.0:
- resolution:
- {
- integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==}
+ engines: {node: '>= 0.4'}
has-flag@4.0.0:
- resolution:
- {
- integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==,
- }
- engines: { node: ">=8" }
+ resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
+ engines: {node: '>=8'}
has-property-descriptors@1.0.2:
- resolution:
- {
- integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==,
- }
+ resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
has-proto@1.2.0:
- resolution:
- {
- integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==}
+ engines: {node: '>= 0.4'}
has-symbols@1.1.0:
- resolution:
- {
- integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
+ engines: {node: '>= 0.4'}
has-tostringtag@1.0.2:
- resolution:
- {
- integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
+ engines: {node: '>= 0.4'}
hasown@2.0.4:
- resolution:
- {
- integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==}
+ engines: {node: '>= 0.4'}
hast-util-from-html@2.0.3:
- resolution:
- {
- integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==,
- }
+ resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==}
hast-util-from-parse5@8.0.3:
- resolution:
- {
- integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==,
- }
+ resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==}
hast-util-is-element@3.0.0:
- resolution:
- {
- integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==,
- }
+ resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==}
hast-util-parse-selector@4.0.0:
- resolution:
- {
- integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==,
- }
+ resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==}
hast-util-raw@9.1.0:
- resolution:
- {
- integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==,
- }
+ resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==}
hast-util-to-html@9.0.5:
- resolution:
- {
- integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==,
- }
+ resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==}
hast-util-to-parse5@8.0.1:
- resolution:
- {
- integrity: sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==,
- }
+ resolution: {integrity: sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==}
hast-util-to-text@4.0.2:
- resolution:
- {
- integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==,
- }
+ resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==}
hast-util-whitespace@3.0.0:
- resolution:
- {
- integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==,
- }
+ resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
hastscript@9.0.1:
- resolution:
- {
- integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==,
- }
+ resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==}
html-escaper@3.0.3:
- resolution:
- {
- integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==,
- }
+ resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==}
html-void-elements@3.0.0:
- resolution:
- {
- integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==,
- }
+ resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
http-cache-semantics@4.3.0:
- resolution:
- {
- integrity: sha512-M5t5LlJpS1UHMjvwRQVdFHvPISGeLAxNcrWuJkeGh0KxsqCHZ1O3NXZU/8x7cD0BDcGW8kapxMKTvwlqrNkHkA==,
- }
+ resolution: {integrity: sha512-M5t5LlJpS1UHMjvwRQVdFHvPISGeLAxNcrWuJkeGh0KxsqCHZ1O3NXZU/8x7cD0BDcGW8kapxMKTvwlqrNkHkA==}
ignore@5.3.2:
- resolution:
- {
- integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==,
- }
- engines: { node: ">= 4" }
+ resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
+ engines: {node: '>= 4'}
ignore@7.0.13:
- resolution:
- {
- integrity: sha512-2E8Q6rh+1RRSq/YdaGsNfXsEZy9FVqv6BSSrkmZJP7BnaoPnRfKL+YaofPvP+5rzdk144qSm6i4+hvPgUcbV4Q==,
- }
- engines: { node: ">= 4" }
+ resolution: {integrity: sha512-2E8Q6rh+1RRSq/YdaGsNfXsEZy9FVqv6BSSrkmZJP7BnaoPnRfKL+YaofPvP+5rzdk144qSm6i4+hvPgUcbV4Q==}
+ engines: {node: '>= 4'}
import-fresh@3.3.1:
- resolution:
- {
- integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==,
- }
- engines: { node: ">=6" }
+ resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
+ engines: {node: '>=6'}
import-meta-resolve@4.2.0:
- resolution:
- {
- integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==,
- }
+ resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==}
imurmurhash@0.1.4:
- resolution:
- {
- integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==,
- }
- engines: { node: ">=0.8.19" }
+ resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
+ engines: {node: '>=0.8.19'}
internal-slot@1.1.0:
- resolution:
- {
- integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==}
+ engines: {node: '>= 0.4'}
iron-webcrypto@1.2.1:
- resolution:
- {
- integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==,
- }
+ resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==}
is-array-buffer@3.0.5:
- resolution:
- {
- integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==}
+ engines: {node: '>= 0.4'}
is-async-function@2.1.1:
- resolution:
- {
- integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==}
+ engines: {node: '>= 0.4'}
is-bigint@1.1.0:
- resolution:
- {
- integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==}
+ engines: {node: '>= 0.4'}
is-boolean-object@1.2.2:
- resolution:
- {
- integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==}
+ engines: {node: '>= 0.4'}
is-callable@1.2.7:
- resolution:
- {
- integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
+ engines: {node: '>= 0.4'}
is-core-module@2.17.0:
- resolution:
- {
- integrity: sha512-J/vG0zBCbIKOQFfufSwyXdMrsohyJIUNkrnmo6WZGzoM7tr/lsbfW5b2BvisL6zsyMzK9UxV9L6c7AoFbyXHOA==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-J/vG0zBCbIKOQFfufSwyXdMrsohyJIUNkrnmo6WZGzoM7tr/lsbfW5b2BvisL6zsyMzK9UxV9L6c7AoFbyXHOA==}
+ engines: {node: '>= 0.4'}
is-data-view@1.0.2:
- resolution:
- {
- integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==}
+ engines: {node: '>= 0.4'}
is-date-object@1.1.0:
- resolution:
- {
- integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==}
+ engines: {node: '>= 0.4'}
is-docker@3.0.0:
- resolution:
- {
- integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==,
- }
- engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 }
+ resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
hasBin: true
is-document.all@1.0.0:
- resolution:
- {
- integrity: sha512-+XSoyS05OdBbhFuELhgTCpFNHkpBOJqtsZfUFFpe5QTw+9Sjbh8zitxhQkYAo6wV7e1Vb8cAPvpCk9jGam/82g==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-+XSoyS05OdBbhFuELhgTCpFNHkpBOJqtsZfUFFpe5QTw+9Sjbh8zitxhQkYAo6wV7e1Vb8cAPvpCk9jGam/82g==}
+ engines: {node: '>= 0.4'}
is-extglob@2.1.1:
- resolution:
- {
- integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==,
- }
- engines: { node: ">=0.10.0" }
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
+ engines: {node: '>=0.10.0'}
is-finalizationregistry@1.1.1:
- resolution:
- {
- integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==}
+ engines: {node: '>= 0.4'}
is-fullwidth-code-point@3.0.0:
- resolution:
- {
- integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==,
- }
- engines: { node: ">=8" }
+ resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
+ engines: {node: '>=8'}
is-generator-function@1.1.2:
- resolution:
- {
- integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==}
+ engines: {node: '>= 0.4'}
is-glob@4.0.3:
- resolution:
- {
- integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==,
- }
- engines: { node: ">=0.10.0" }
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
is-inside-container@1.0.0:
- resolution:
- {
- integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==,
- }
- engines: { node: ">=14.16" }
+ resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
+ engines: {node: '>=14.16'}
hasBin: true
is-map@2.0.3:
- resolution:
- {
- integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
+ engines: {node: '>= 0.4'}
is-negative-zero@2.0.3:
- resolution:
- {
- integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
+ engines: {node: '>= 0.4'}
is-number-object@1.1.1:
- resolution:
- {
- integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==}
+ engines: {node: '>= 0.4'}
is-plain-obj@4.1.0:
- resolution:
- {
- integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==,
- }
- engines: { node: ">=12" }
+ resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
+ engines: {node: '>=12'}
is-regex@1.2.1:
- resolution:
- {
- integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
+ engines: {node: '>= 0.4'}
is-set@2.0.3:
- resolution:
- {
- integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
+ engines: {node: '>= 0.4'}
is-shared-array-buffer@1.0.4:
- resolution:
- {
- integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==}
+ engines: {node: '>= 0.4'}
is-string@1.1.1:
- resolution:
- {
- integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==}
+ engines: {node: '>= 0.4'}
is-symbol@1.1.1:
- resolution:
- {
- integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==}
+ engines: {node: '>= 0.4'}
is-typed-array@1.1.15:
- resolution:
- {
- integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==}
+ engines: {node: '>= 0.4'}
is-weakmap@2.0.2:
- resolution:
- {
- integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
+ engines: {node: '>= 0.4'}
is-weakref@1.1.1:
- resolution:
- {
- integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==}
+ engines: {node: '>= 0.4'}
is-weakset@2.0.4:
- resolution:
- {
- integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==}
+ engines: {node: '>= 0.4'}
is-wsl@3.1.1:
- resolution:
- {
- integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==,
- }
- engines: { node: ">=16" }
+ resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==}
+ engines: {node: '>=16'}
isarray@2.0.5:
- resolution:
- {
- integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==,
- }
+ resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
isexe@2.0.0:
- resolution:
- {
- integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==,
- }
+ resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
iterator.prototype@1.1.5:
- resolution:
- {
- integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==}
+ engines: {node: '>= 0.4'}
jiti@2.7.0:
- resolution:
- {
- integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==,
- }
+ resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==}
hasBin: true
js-tokens@4.0.0:
- resolution:
- {
- integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==,
- }
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+
+ js-tokens@9.0.1:
+ resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==}
js-yaml@4.3.2:
- resolution:
- {
- integrity: sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==,
- }
+ resolution: {integrity: sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==}
hasBin: true
jsesc@3.1.0:
- resolution:
- {
- integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==,
- }
- engines: { node: ">=6" }
+ resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
+ engines: {node: '>=6'}
hasBin: true
json-buffer@3.0.1:
- resolution:
- {
- integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==,
- }
+ resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
json-schema-traverse@0.4.1:
- resolution:
- {
- integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==,
- }
+ resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
json-schema-traverse@1.0.0:
- resolution:
- {
- integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==,
- }
+ resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
json-stable-stringify-without-jsonify@1.0.1:
- resolution:
- {
- integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==,
- }
+ resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
json5@2.2.3:
- resolution:
- {
- integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==,
- }
- engines: { node: ">=6" }
+ resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
+ engines: {node: '>=6'}
hasBin: true
jsonc-parser@2.3.1:
- resolution:
- {
- integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==,
- }
+ resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==}
jsonc-parser@3.3.1:
- resolution:
- {
- integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==,
- }
+ resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==}
jsx-ast-utils@3.3.5:
- resolution:
- {
- integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==,
- }
- engines: { node: ">=4.0" }
+ resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
+ engines: {node: '>=4.0'}
keyv@4.5.4:
- resolution:
- {
- integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==,
- }
+ resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
kleur@3.0.3:
- resolution:
- {
- integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==,
- }
- engines: { node: ">=6" }
+ resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
+ engines: {node: '>=6'}
kleur@4.1.5:
- resolution:
- {
- integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==,
- }
- engines: { node: ">=6" }
+ resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
+ engines: {node: '>=6'}
levn@0.4.1:
- resolution:
- {
- integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==,
- }
- engines: { node: ">= 0.8.0" }
+ resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
+ engines: {node: '>= 0.8.0'}
lightningcss-android-arm64@1.32.0:
- resolution:
- {
- integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==,
- }
- engines: { node: ">= 12.0.0" }
+ resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==}
+ engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [android]
lightningcss-darwin-arm64@1.32.0:
- resolution:
- {
- integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==,
- }
- engines: { node: ">= 12.0.0" }
+ resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==}
+ engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [darwin]
lightningcss-darwin-x64@1.32.0:
- resolution:
- {
- integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==,
- }
- engines: { node: ">= 12.0.0" }
+ resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==}
+ engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [darwin]
lightningcss-freebsd-x64@1.32.0:
- resolution:
- {
- integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==,
- }
- engines: { node: ">= 12.0.0" }
+ resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==}
+ engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [freebsd]
lightningcss-linux-arm-gnueabihf@1.32.0:
- resolution:
- {
- integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==,
- }
- engines: { node: ">= 12.0.0" }
+ resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==}
+ engines: {node: '>= 12.0.0'}
cpu: [arm]
os: [linux]
lightningcss-linux-arm64-gnu@1.32.0:
- resolution:
- {
- integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==,
- }
- engines: { node: ">= 12.0.0" }
+ resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==}
+ engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [linux]
libc: [glibc]
lightningcss-linux-arm64-musl@1.32.0:
- resolution:
- {
- integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==,
- }
- engines: { node: ">= 12.0.0" }
+ resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==}
+ engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [linux]
libc: [musl]
lightningcss-linux-x64-gnu@1.32.0:
- resolution:
- {
- integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==,
- }
- engines: { node: ">= 12.0.0" }
+ resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==}
+ engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [linux]
libc: [glibc]
lightningcss-linux-x64-musl@1.32.0:
- resolution:
- {
- integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==,
- }
- engines: { node: ">= 12.0.0" }
+ resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==}
+ engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [linux]
libc: [musl]
lightningcss-win32-arm64-msvc@1.32.0:
- resolution:
- {
- integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==,
- }
- engines: { node: ">= 12.0.0" }
+ resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==}
+ engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [win32]
lightningcss-win32-x64-msvc@1.32.0:
- resolution:
- {
- integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==,
- }
- engines: { node: ">= 12.0.0" }
+ resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==}
+ engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [win32]
lightningcss@1.32.0:
- resolution:
- {
- integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==,
- }
- engines: { node: ">= 12.0.0" }
+ resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==}
+ engines: {node: '>= 12.0.0'}
locate-path@6.0.0:
- resolution:
- {
- integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==,
- }
- engines: { node: ">=10" }
+ resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
+ engines: {node: '>=10'}
lodash.merge@4.6.2:
- resolution:
- {
- integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==,
- }
+ resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
longest-streak@3.1.0:
- resolution:
- {
- integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==,
- }
+ resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
loose-envify@1.4.0:
- resolution:
- {
- integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==,
- }
+ resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
hasBin: true
+ loupe@3.2.1:
+ resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==}
+
lru-cache@11.5.3:
- resolution:
- {
- integrity: sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==,
- }
- engines: { node: 20 || >=22 }
+ resolution: {integrity: sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==}
+ engines: {node: 20 || >=22}
lru-cache@5.1.1:
- resolution:
- {
- integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==,
- }
+ resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
magic-string@0.30.21:
- resolution:
- {
- integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==,
- }
+ resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
magicast@0.5.5:
- resolution:
- {
- integrity: sha512-UicdXN8zQ3JHlxVq+28afMXPr1z7WNY6+7EJnzTdQWkTAlMLF5fNCCKxJHBQwGaNGR11581EiQmQzx73+MvszA==,
- }
+ resolution: {integrity: sha512-UicdXN8zQ3JHlxVq+28afMXPr1z7WNY6+7EJnzTdQWkTAlMLF5fNCCKxJHBQwGaNGR11581EiQmQzx73+MvszA==}
markdown-table@3.0.4:
- resolution:
- {
- integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==,
- }
+ resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==}
math-intrinsics@1.1.0:
- resolution:
- {
- integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
+ engines: {node: '>= 0.4'}
mdast-util-definitions@6.0.0:
- resolution:
- {
- integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==,
- }
+ resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==}
mdast-util-find-and-replace@3.0.3:
- resolution:
- {
- integrity: sha512-xPgpDNl0/OXHsI7TlaIs22lWnH3KlpvZdXG1ET/m/YT2Hhdkx8lJV4kLphE6l9simyM4KPDFBwas08BgEob6Jw==,
- }
+ resolution: {integrity: sha512-xPgpDNl0/OXHsI7TlaIs22lWnH3KlpvZdXG1ET/m/YT2Hhdkx8lJV4kLphE6l9simyM4KPDFBwas08BgEob6Jw==}
mdast-util-from-markdown@2.1.0:
- resolution:
- {
- integrity: sha512-KRLgmPaP2H1ul2bpoJkOS+9pAcDAAj9Nu1mqLnh8NLeJG5tlvj42TH80PIGBpROWlRXLk0lDrWNuZCFy/tsB4A==,
- }
+ resolution: {integrity: sha512-KRLgmPaP2H1ul2bpoJkOS+9pAcDAAj9Nu1mqLnh8NLeJG5tlvj42TH80PIGBpROWlRXLk0lDrWNuZCFy/tsB4A==}
mdast-util-gfm-autolink-literal@2.0.1:
- resolution:
- {
- integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==,
- }
+ resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==}
mdast-util-gfm-footnote@2.1.0:
- resolution:
- {
- integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==,
- }
+ resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==}
mdast-util-gfm-strikethrough@2.0.1:
- resolution:
- {
- integrity: sha512-OuJHqvr455pwu2OaOrir7dbzqs4jlWKOtlu9L6GjcIjjQwNyw02VntQsr/Ek6/A13vgnXfUhBekWRUP1OkNivw==,
- }
+ resolution: {integrity: sha512-OuJHqvr455pwu2OaOrir7dbzqs4jlWKOtlu9L6GjcIjjQwNyw02VntQsr/Ek6/A13vgnXfUhBekWRUP1OkNivw==}
mdast-util-gfm-table@2.0.0:
- resolution:
- {
- integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==,
- }
+ resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==}
mdast-util-gfm-task-list-item@2.0.0:
- resolution:
- {
- integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==,
- }
+ resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==}
mdast-util-gfm@3.1.0:
- resolution:
- {
- integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==,
- }
+ resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==}
mdast-util-phrasing@4.1.0:
- resolution:
- {
- integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==,
- }
+ resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==}
mdast-util-to-hast@13.2.1:
- resolution:
- {
- integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==,
- }
+ resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==}
mdast-util-to-markdown@2.2.0:
- resolution:
- {
- integrity: sha512-2Jn/ADrHFFyyniBMi0bncTbJqU78K3/TEYvzvwrWWzD9MYPUa/Gm4r3nOeKFQg/PDM5BsbDYdc8ackW4NTY6NA==,
- }
+ resolution: {integrity: sha512-2Jn/ADrHFFyyniBMi0bncTbJqU78K3/TEYvzvwrWWzD9MYPUa/Gm4r3nOeKFQg/PDM5BsbDYdc8ackW4NTY6NA==}
mdast-util-to-string@4.0.0:
- resolution:
- {
- integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==,
- }
+ resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
mdn-data@2.0.28:
- resolution:
- {
- integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==,
- }
+ resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
mdn-data@2.27.1:
- resolution:
- {
- integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==,
- }
+ resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==}
micromark-core-commonmark@2.0.4:
- resolution:
- {
- integrity: sha512-wxEeE8v8XVvOrxn1TZj74qYhAtTQsSqufHVS3uNVyT1MupXxhyaHk8/9xDNPh9BmL77QNDgWTkZ3RsYHB2ry7w==,
- }
+ resolution: {integrity: sha512-wxEeE8v8XVvOrxn1TZj74qYhAtTQsSqufHVS3uNVyT1MupXxhyaHk8/9xDNPh9BmL77QNDgWTkZ3RsYHB2ry7w==}
micromark-extension-gfm-autolink-literal@2.1.0:
- resolution:
- {
- integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==,
- }
+ resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==}
micromark-extension-gfm-footnote@2.1.0:
- resolution:
- {
- integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==,
- }
+ resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==}
micromark-extension-gfm-strikethrough@2.1.0:
- resolution:
- {
- integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==,
- }
+ resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==}
micromark-extension-gfm-table@2.1.2:
- resolution:
- {
- integrity: sha512-pRzm4kDTu0MjlmBkxmS9yYhw60nncfcEwu9NNdPFSQEFXS95ZKyIIyTSHu/o3ReBUrLKYEq+7YaXCRn/bPB4MA==,
- }
+ resolution: {integrity: sha512-pRzm4kDTu0MjlmBkxmS9yYhw60nncfcEwu9NNdPFSQEFXS95ZKyIIyTSHu/o3ReBUrLKYEq+7YaXCRn/bPB4MA==}
micromark-extension-gfm-tagfilter@2.0.0:
- resolution:
- {
- integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==,
- }
+ resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==}
micromark-extension-gfm-task-list-item@2.1.0:
- resolution:
- {
- integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==,
- }
+ resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==}
micromark-extension-gfm@3.0.0:
- resolution:
- {
- integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==,
- }
+ resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==}
micromark-factory-destination@2.0.1:
- resolution:
- {
- integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==,
- }
+ resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==}
micromark-factory-label@2.0.1:
- resolution:
- {
- integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==,
- }
+ resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==}
micromark-factory-space@2.1.0:
- resolution:
- {
- integrity: sha512-fS8hnLIjnjvdQIj39Geug8wWsR0HrYZ43KShKxNfwT7t2LOHo/LbWZEzEaSOjwtjdCsjoE6syHhonEzW0zv0+Q==,
- }
+ resolution: {integrity: sha512-fS8hnLIjnjvdQIj39Geug8wWsR0HrYZ43KShKxNfwT7t2LOHo/LbWZEzEaSOjwtjdCsjoE6syHhonEzW0zv0+Q==}
micromark-factory-title@2.0.1:
- resolution:
- {
- integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==,
- }
+ resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==}
micromark-factory-whitespace@2.0.1:
- resolution:
- {
- integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==,
- }
+ resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==}
micromark-util-character@2.1.1:
- resolution:
- {
- integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==,
- }
+ resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==}
micromark-util-chunked@2.0.1:
- resolution:
- {
- integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==,
- }
+ resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==}
micromark-util-classify-character@2.0.1:
- resolution:
- {
- integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==,
- }
+ resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==}
micromark-util-combine-extensions@2.0.1:
- resolution:
- {
- integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==,
- }
+ resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==}
micromark-util-decode-numeric-character-reference@2.0.2:
- resolution:
- {
- integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==,
- }
+ resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==}
micromark-util-decode-string@2.0.1:
- resolution:
- {
- integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==,
- }
+ resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==}
micromark-util-edit-map@1.0.0:
- resolution:
- {
- integrity: sha512-Pa2ljlsEL6sVwFaYeyrOLSYbQt73JvGbPOYFq+9AElXiSnfI5Q4465RRZ1sHv7lDjDOnGRDDaqPXqClqWK/q1Q==,
- }
+ resolution: {integrity: sha512-Pa2ljlsEL6sVwFaYeyrOLSYbQt73JvGbPOYFq+9AElXiSnfI5Q4465RRZ1sHv7lDjDOnGRDDaqPXqClqWK/q1Q==}
micromark-util-encode@2.0.1:
- resolution:
- {
- integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==,
- }
+ resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==}
micromark-util-html-tag-name@2.0.1:
- resolution:
- {
- integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==,
- }
+ resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==}
micromark-util-normalize-identifier@2.0.1:
- resolution:
- {
- integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==,
- }
+ resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==}
micromark-util-resolve-all@2.0.1:
- resolution:
- {
- integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==,
- }
+ resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==}
micromark-util-sanitize-uri@2.0.1:
- resolution:
- {
- integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==,
- }
+ resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==}
micromark-util-subtokenize@2.1.0:
- resolution:
- {
- integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==,
- }
+ resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==}
micromark-util-symbol@2.0.1:
- resolution:
- {
- integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==,
- }
+ resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==}
micromark-util-types@2.0.3:
- resolution:
- {
- integrity: sha512-oxB2Ik03hI0gv+VNn9tnh1t1YEe9MDPptViAEgfdf3YQHsn0pzGTgCdlSCJXcwhqm8phaEuM7zeEu3QQzVBrPg==,
- }
+ resolution: {integrity: sha512-oxB2Ik03hI0gv+VNn9tnh1t1YEe9MDPptViAEgfdf3YQHsn0pzGTgCdlSCJXcwhqm8phaEuM7zeEu3QQzVBrPg==}
micromark@4.0.3:
- resolution:
- {
- integrity: sha512-oGYfQzHSG5dOMovQcJ3fyTmZlWAWpi0XA0sJwJs+i6OT88o1+Jtw/8z0CmdowSLxGhhFK89rQ/oXph/wN02PNw==,
- }
+ resolution: {integrity: sha512-oGYfQzHSG5dOMovQcJ3fyTmZlWAWpi0XA0sJwJs+i6OT88o1+Jtw/8z0CmdowSLxGhhFK89rQ/oXph/wN02PNw==}
minimatch@10.2.6:
- resolution:
- {
- integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==,
- }
- engines: { node: 18 || 20 || >=22 }
+ resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==}
+ engines: {node: 18 || 20 || >=22}
minimatch@3.1.5:
- resolution:
- {
- integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==,
- }
+ resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==}
mrmime@2.0.1:
- resolution:
- {
- integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==,
- }
- engines: { node: ">=10" }
+ resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==}
+ engines: {node: '>=10'}
ms@2.1.3:
- resolution:
- {
- integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==,
- }
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
muggle-string@0.4.1:
- resolution:
- {
- integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==,
- }
+ resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==}
nanoid@3.3.20:
- resolution:
- {
- integrity: sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ==,
- }
- engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 }
+ resolution: {integrity: sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
natural-compare@1.4.0:
- resolution:
- {
- integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==,
- }
+ resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
neotraverse@0.6.18:
- resolution:
- {
- integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==,
- }
- engines: { node: ">= 10" }
+ resolution: {integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==}
+ engines: {node: '>= 10'}
nlcst-to-string@4.0.0:
- resolution:
- {
- integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==,
- }
+ resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==}
node-exports-info@1.6.2:
- resolution:
- {
- integrity: sha512-kXs9Go0cah0qHVV2v389IXQLdLCeE1xfFtjOAF+iobu0OIoG1pje8At2vMHyaPMiPMnG/LWP50twML21eMcAag==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-kXs9Go0cah0qHVV2v389IXQLdLCeE1xfFtjOAF+iobu0OIoG1pje8At2vMHyaPMiPMnG/LWP50twML21eMcAag==}
+ engines: {node: '>= 0.4'}
node-fetch-native@1.6.7:
- resolution:
- {
- integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==,
- }
+ resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==}
node-mock-http@1.0.5:
- resolution:
- {
- integrity: sha512-KQyt/wLjG3TAc7DOUhpqWzgd4ERxR80JOlTK5VE5R1S12IaPVN5qkj4klBce9HPG1Njuup4Sb5bljaT34lIyjw==,
- }
+ resolution: {integrity: sha512-KQyt/wLjG3TAc7DOUhpqWzgd4ERxR80JOlTK5VE5R1S12IaPVN5qkj4klBce9HPG1Njuup4Sb5bljaT34lIyjw==}
node-releases@2.0.60:
- resolution:
- {
- integrity: sha512-OmO8+GM1JUZqXET720VrJCwkjUCXmCMQm0Z3UDDRbfNLHS4NEAvY60j5jiFv0tkKw2PNNlqOLhahVmwJIOLDIQ==,
- }
- engines: { node: ">=18" }
+ resolution: {integrity: sha512-OmO8+GM1JUZqXET720VrJCwkjUCXmCMQm0Z3UDDRbfNLHS4NEAvY60j5jiFv0tkKw2PNNlqOLhahVmwJIOLDIQ==}
+ engines: {node: '>=18'}
normalize-path@3.0.0:
- resolution:
- {
- integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==,
- }
- engines: { node: ">=0.10.0" }
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
+ engines: {node: '>=0.10.0'}
nth-check@2.1.1:
- resolution:
- {
- integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==,
- }
+ resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
object-assign@4.1.1:
- resolution:
- {
- integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==,
- }
- engines: { node: ">=0.10.0" }
+ resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
+ engines: {node: '>=0.10.0'}
object-inspect@1.13.4:
- resolution:
- {
- integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
+ engines: {node: '>= 0.4'}
object-keys@1.1.1:
- resolution:
- {
- integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
+ engines: {node: '>= 0.4'}
object.assign@4.1.7:
- resolution:
- {
- integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==}
+ engines: {node: '>= 0.4'}
object.entries@1.1.9:
- resolution:
- {
- integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==}
+ engines: {node: '>= 0.4'}
object.fromentries@2.0.8:
- resolution:
- {
- integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==}
+ engines: {node: '>= 0.4'}
object.values@1.2.1:
- resolution:
- {
- integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==}
+ engines: {node: '>= 0.4'}
ofetch@1.5.1:
- resolution:
- {
- integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==,
- }
+ resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==}
ohash@2.0.12:
- resolution:
- {
- integrity: sha512-65S/5gk9YSsaRjcyf7Nfa6h/d3E8/1gslpXfI4W7Dxn/oap8IKRuNT5VXkLQ1YFKIEg4apRY4Pj6aiwFzrDdmw==,
- }
+ resolution: {integrity: sha512-65S/5gk9YSsaRjcyf7Nfa6h/d3E8/1gslpXfI4W7Dxn/oap8IKRuNT5VXkLQ1YFKIEg4apRY4Pj6aiwFzrDdmw==}
oniguruma-parser@0.12.2:
- resolution:
- {
- integrity: sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==,
- }
+ resolution: {integrity: sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==}
oniguruma-to-es@4.3.6:
- resolution:
- {
- integrity: sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==,
- }
+ resolution: {integrity: sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==}
optionator@0.9.4:
- resolution:
- {
- integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==,
- }
- engines: { node: ">= 0.8.0" }
+ resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
+ engines: {node: '>= 0.8.0'}
own-keys@1.0.2:
- resolution:
- {
- integrity: sha512-19YVAg7T+WTrxggPukVq7DjTv6+PJ867TmhCvBsYwmbFCsZd344rq2Ld1p0wo8f8Qrrhgp82c6FJRqdXWtSEhg==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-19YVAg7T+WTrxggPukVq7DjTv6+PJ867TmhCvBsYwmbFCsZd344rq2Ld1p0wo8f8Qrrhgp82c6FJRqdXWtSEhg==}
+ engines: {node: '>= 0.4'}
p-limit@3.1.0:
- resolution:
- {
- integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==,
- }
- engines: { node: ">=10" }
+ resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
+ engines: {node: '>=10'}
p-limit@6.2.0:
- resolution:
- {
- integrity: sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==,
- }
- engines: { node: ">=18" }
+ resolution: {integrity: sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==}
+ engines: {node: '>=18'}
p-locate@5.0.0:
- resolution:
- {
- integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==,
- }
- engines: { node: ">=10" }
+ resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
+ engines: {node: '>=10'}
p-queue@8.1.1:
- resolution:
- {
- integrity: sha512-aNZ+VfjobsWryoiPnEApGGmf5WmNsCo9xu8dfaYamG5qaLP7ClhLN6NgsFe6SwJ2UbLEBK5dv9x8Mn5+RVhMWQ==,
- }
- engines: { node: ">=18" }
+ resolution: {integrity: sha512-aNZ+VfjobsWryoiPnEApGGmf5WmNsCo9xu8dfaYamG5qaLP7ClhLN6NgsFe6SwJ2UbLEBK5dv9x8Mn5+RVhMWQ==}
+ engines: {node: '>=18'}
p-timeout@6.1.4:
- resolution:
- {
- integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==,
- }
- engines: { node: ">=14.16" }
+ resolution: {integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==}
+ engines: {node: '>=14.16'}
package-manager-detector@1.9.0:
- resolution:
- {
- integrity: sha512-zAMfbta9nPA8AKkA4WdmNAT8R8s6Dk0/xwPsqNnRidMFcLo1YkLuPDTgs2f64XdzS8vbLNnoJ+uUIkgbz7oRHA==,
- }
+ resolution: {integrity: sha512-zAMfbta9nPA8AKkA4WdmNAT8R8s6Dk0/xwPsqNnRidMFcLo1YkLuPDTgs2f64XdzS8vbLNnoJ+uUIkgbz7oRHA==}
parent-module@1.0.1:
- resolution:
- {
- integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==,
- }
- engines: { node: ">=6" }
+ resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
+ engines: {node: '>=6'}
parse-latin@7.0.0:
- resolution:
- {
- integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==,
- }
+ resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==}
parse5@7.3.0:
- resolution:
- {
- integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==,
- }
+ resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==}
path-browserify@1.0.1:
- resolution:
- {
- integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==,
- }
+ resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==}
path-exists@4.0.0:
- resolution:
- {
- integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==,
- }
- engines: { node: ">=8" }
+ resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
+ engines: {node: '>=8'}
path-key@3.1.1:
- resolution:
- {
- integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==,
- }
- engines: { node: ">=8" }
+ resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
+ engines: {node: '>=8'}
path-parse@1.0.7:
- resolution:
- {
- integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==,
- }
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+
+ pathe@2.0.3:
+ resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
+
+ pathval@2.0.1:
+ resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==}
+ engines: {node: '>= 14.16'}
piccolore@0.1.3:
- resolution:
- {
- integrity: sha512-o8bTeDWjE086iwKrROaDf31K0qC/BENdm15/uH9usSC/uZjJOKb2YGiVHfLY4GhwsERiPI1jmwI2XrA7ACOxVw==,
- }
+ resolution: {integrity: sha512-o8bTeDWjE086iwKrROaDf31K0qC/BENdm15/uH9usSC/uZjJOKb2YGiVHfLY4GhwsERiPI1jmwI2XrA7ACOxVw==}
picocolors@1.1.1:
- resolution:
- {
- integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==,
- }
+ resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
picomatch@2.3.2:
- resolution:
- {
- integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==,
- }
- engines: { node: ">=8.6" }
+ resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==}
+ engines: {node: '>=8.6'}
picomatch@4.0.7:
- resolution:
- {
- integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==,
- }
- engines: { node: ">=12" }
+ resolution: {integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==}
+ engines: {node: '>=12'}
possible-typed-array-names@1.1.0:
- resolution:
- {
- integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==}
+ engines: {node: '>= 0.4'}
postcss@8.5.31:
- resolution:
- {
- integrity: sha512-YUbWYCgErwnMAVkjUnYa+KlMBzGpHwiIt/DE7f0G33AuX2LH9UcTk6KgWxd3zRU+pN3u/C+Xl3EnMLM4Hea7Sg==,
- }
- engines: { node: ^10 || ^12 || >=14 }
+ resolution: {integrity: sha512-YUbWYCgErwnMAVkjUnYa+KlMBzGpHwiIt/DE7f0G33AuX2LH9UcTk6KgWxd3zRU+pN3u/C+Xl3EnMLM4Hea7Sg==}
+ engines: {node: ^10 || ^12 || >=14}
prelude-ls@1.2.1:
- resolution:
- {
- integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==,
- }
- engines: { node: ">= 0.8.0" }
+ resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
+ engines: {node: '>= 0.8.0'}
prettier-plugin-tailwindcss@0.6.14:
- resolution:
- {
- integrity: sha512-pi2e/+ZygeIqntN+vC573BcW5Cve8zUB0SSAGxqpB4f96boZF4M3phPVoOFCeypwkpRYdi7+jQ5YJJUwrkGUAg==,
- }
- engines: { node: ">=14.21.3" }
+ resolution: {integrity: sha512-pi2e/+ZygeIqntN+vC573BcW5Cve8zUB0SSAGxqpB4f96boZF4M3phPVoOFCeypwkpRYdi7+jQ5YJJUwrkGUAg==}
+ engines: {node: '>=14.21.3'}
peerDependencies:
- "@ianvs/prettier-plugin-sort-imports": "*"
- "@prettier/plugin-hermes": "*"
- "@prettier/plugin-oxc": "*"
- "@prettier/plugin-pug": "*"
- "@shopify/prettier-plugin-liquid": "*"
- "@trivago/prettier-plugin-sort-imports": "*"
- "@zackad/prettier-plugin-twig": "*"
+ '@ianvs/prettier-plugin-sort-imports': '*'
+ '@prettier/plugin-hermes': '*'
+ '@prettier/plugin-oxc': '*'
+ '@prettier/plugin-pug': '*'
+ '@shopify/prettier-plugin-liquid': '*'
+ '@trivago/prettier-plugin-sort-imports': '*'
+ '@zackad/prettier-plugin-twig': '*'
prettier: ^3.0
- prettier-plugin-astro: "*"
- prettier-plugin-css-order: "*"
- prettier-plugin-import-sort: "*"
- prettier-plugin-jsdoc: "*"
- prettier-plugin-marko: "*"
- prettier-plugin-multiline-arrays: "*"
- prettier-plugin-organize-attributes: "*"
- prettier-plugin-organize-imports: "*"
- prettier-plugin-sort-imports: "*"
- prettier-plugin-style-order: "*"
- prettier-plugin-svelte: "*"
+ prettier-plugin-astro: '*'
+ prettier-plugin-css-order: '*'
+ prettier-plugin-import-sort: '*'
+ prettier-plugin-jsdoc: '*'
+ prettier-plugin-marko: '*'
+ prettier-plugin-multiline-arrays: '*'
+ prettier-plugin-organize-attributes: '*'
+ prettier-plugin-organize-imports: '*'
+ prettier-plugin-sort-imports: '*'
+ prettier-plugin-style-order: '*'
+ prettier-plugin-svelte: '*'
peerDependenciesMeta:
- "@ianvs/prettier-plugin-sort-imports":
+ '@ianvs/prettier-plugin-sort-imports':
optional: true
- "@prettier/plugin-hermes":
+ '@prettier/plugin-hermes':
optional: true
- "@prettier/plugin-oxc":
+ '@prettier/plugin-oxc':
optional: true
- "@prettier/plugin-pug":
+ '@prettier/plugin-pug':
optional: true
- "@shopify/prettier-plugin-liquid":
+ '@shopify/prettier-plugin-liquid':
optional: true
- "@trivago/prettier-plugin-sort-imports":
+ '@trivago/prettier-plugin-sort-imports':
optional: true
- "@zackad/prettier-plugin-twig":
+ '@zackad/prettier-plugin-twig':
optional: true
prettier-plugin-astro:
optional: true
@@ -4369,568 +2709,346 @@ packages:
optional: true
prettier@3.9.10:
- resolution:
- {
- integrity: sha512-skGHTH1Yb9QvaTC4hWnRTzEYtCpApF0UMBPz+t/0ZPzP8ihefo/btKd+QA7pUE0fEwA1SbS/NmhyEcstdXOIdA==,
- }
- engines: { node: ">=14" }
+ resolution: {integrity: sha512-skGHTH1Yb9QvaTC4hWnRTzEYtCpApF0UMBPz+t/0ZPzP8ihefo/btKd+QA7pUE0fEwA1SbS/NmhyEcstdXOIdA==}
+ engines: {node: '>=14'}
hasBin: true
prismjs@1.30.0:
- resolution:
- {
- integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==,
- }
- engines: { node: ">=6" }
+ resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==}
+ engines: {node: '>=6'}
prompts@2.4.2:
- resolution:
- {
- integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==,
- }
- engines: { node: ">= 6" }
+ resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
+ engines: {node: '>= 6'}
prop-types@15.8.1:
- resolution:
- {
- integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==,
- }
+ resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
property-information@7.2.0:
- resolution:
- {
- integrity: sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==,
- }
+ resolution: {integrity: sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==}
punycode@2.3.1:
- resolution:
- {
- integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==,
- }
- engines: { node: ">=6" }
+ resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
+ engines: {node: '>=6'}
radix3@1.1.2:
- resolution:
- {
- integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==,
- }
+ resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==}
react-dom@18.3.1:
- resolution:
- {
- integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==,
- }
+ resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==}
peerDependencies:
react: ^18.3.1
react-is@16.13.1:
- resolution:
- {
- integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==,
- }
+ resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
react-refresh@0.17.0:
- resolution:
- {
- integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==,
- }
- engines: { node: ">=0.10.0" }
+ resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==}
+ engines: {node: '>=0.10.0'}
react@18.3.1:
- resolution:
- {
- integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==,
- }
- engines: { node: ">=0.10.0" }
+ resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
+ engines: {node: '>=0.10.0'}
readdirp@5.1.1:
- resolution:
- {
- integrity: sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==,
- }
- engines: { node: ">= 20.19.0" }
+ resolution: {integrity: sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==}
+ engines: {node: '>= 20.19.0'}
reflect.getprototypeof@1.0.10:
- resolution:
- {
- integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==}
+ engines: {node: '>= 0.4'}
regex-recursion@6.0.2:
- resolution:
- {
- integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==,
- }
+ resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==}
regex-utilities@2.3.0:
- resolution:
- {
- integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==,
- }
+ resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==}
regex@6.1.0:
- resolution:
- {
- integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==,
- }
+ resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==}
regexp.prototype.flags@1.5.4:
- resolution:
- {
- integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==}
+ engines: {node: '>= 0.4'}
rehype-parse@9.0.1:
- resolution:
- {
- integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==,
- }
+ resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==}
rehype-raw@7.0.0:
- resolution:
- {
- integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==,
- }
+ resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==}
rehype-stringify@10.0.1:
- resolution:
- {
- integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==,
- }
+ resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==}
rehype@13.0.2:
- resolution:
- {
- integrity: sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==,
- }
+ resolution: {integrity: sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==}
remark-gfm@4.0.1:
- resolution:
- {
- integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==,
- }
+ resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==}
remark-parse@11.0.0:
- resolution:
- {
- integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==,
- }
+ resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==}
remark-rehype@11.1.2:
- resolution:
- {
- integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==,
- }
+ resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==}
remark-smartypants@3.0.3:
- resolution:
- {
- integrity: sha512-gCaK+ndZ0hYezlqFegHFCVh2CQemsi0Npdh1qVM9bxlUFknjkbP6VmojWhddOCrbK0PbbacmYLWfTULRiT1eWA==,
- }
- engines: { node: ">=16.0.0" }
+ resolution: {integrity: sha512-gCaK+ndZ0hYezlqFegHFCVh2CQemsi0Npdh1qVM9bxlUFknjkbP6VmojWhddOCrbK0PbbacmYLWfTULRiT1eWA==}
+ engines: {node: '>=16.0.0'}
remark-stringify@11.0.0:
- resolution:
- {
- integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==,
- }
+ resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==}
request-light@0.5.8:
- resolution:
- {
- integrity: sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg==,
- }
+ resolution: {integrity: sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg==}
request-light@0.7.0:
- resolution:
- {
- integrity: sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==,
- }
+ resolution: {integrity: sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==}
require-from-string@2.0.2:
- resolution:
- {
- integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==,
- }
- engines: { node: ">=0.10.0" }
+ resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
+ engines: {node: '>=0.10.0'}
resolve-from@4.0.0:
- resolution:
- {
- integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==,
- }
- engines: { node: ">=4" }
+ resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
+ engines: {node: '>=4'}
resolve@2.0.0-next.7:
- resolution:
- {
- integrity: sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==}
+ engines: {node: '>= 0.4'}
hasBin: true
retext-latin@4.0.0:
- resolution:
- {
- integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==,
- }
+ resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==}
retext-smartypants@6.2.0:
- resolution:
- {
- integrity: sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==,
- }
+ resolution: {integrity: sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==}
retext-stringify@4.0.0:
- resolution:
- {
- integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==,
- }
+ resolution: {integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==}
retext@9.0.0:
- resolution:
- {
- integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==,
- }
+ resolution: {integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==}
rollup@4.65.0:
- resolution:
- {
- integrity: sha512-QVCvQUTGDN6JRwi3jVGCY3H4aTHvi9rX0LyoBMkGUvdh/Z6O51CzcLz85BWZaTCDGhl6ySGqYZs+xI1jmPqGcw==,
- }
- engines: { node: ">=18.0.0", npm: ">=8.0.0" }
+ resolution: {integrity: sha512-QVCvQUTGDN6JRwi3jVGCY3H4aTHvi9rX0LyoBMkGUvdh/Z6O51CzcLz85BWZaTCDGhl6ySGqYZs+xI1jmPqGcw==}
+ engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
safe-array-concat@1.1.4:
- resolution:
- {
- integrity: sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==,
- }
- engines: { node: ">=0.4" }
+ resolution: {integrity: sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==}
+ engines: {node: '>=0.4'}
safe-push-apply@1.0.0:
- resolution:
- {
- integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==}
+ engines: {node: '>= 0.4'}
safe-regex-test@1.1.0:
- resolution:
- {
- integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==}
+ engines: {node: '>= 0.4'}
sax@1.6.1:
- resolution:
- {
- integrity: sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==,
- }
- engines: { node: ">=11.0.0" }
+ resolution: {integrity: sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==}
+ engines: {node: '>=11.0.0'}
scheduler@0.23.2:
- resolution:
- {
- integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==,
- }
+ resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
semver@6.3.1:
- resolution:
- {
- integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==,
- }
+ resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
hasBin: true
semver@7.8.5:
- resolution:
- {
- integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==,
- }
- engines: { node: ">=10" }
+ resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==}
+ engines: {node: '>=10'}
hasBin: true
set-function-length@1.2.2:
- resolution:
- {
- integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
+ engines: {node: '>= 0.4'}
set-function-name@2.0.2:
- resolution:
- {
- integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
+ engines: {node: '>= 0.4'}
set-proto@1.0.0:
- resolution:
- {
- integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==}
+ engines: {node: '>= 0.4'}
sharp@0.34.5:
- resolution:
- {
- integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==,
- }
- engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 }
+ resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
shebang-command@2.0.0:
- resolution:
- {
- integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==,
- }
- engines: { node: ">=8" }
+ resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
+ engines: {node: '>=8'}
shebang-regex@3.0.0:
- resolution:
- {
- integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==,
- }
- engines: { node: ">=8" }
+ resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
+ engines: {node: '>=8'}
shiki@3.23.0:
- resolution:
- {
- integrity: sha512-55Dj73uq9ZXL5zyeRPzHQsK7Nbyt6Y10k5s7OjuFZGMhpp4r/rsLBH0o/0fstIzX1Lep9VxefWljK/SKCzygIA==,
- }
+ resolution: {integrity: sha512-55Dj73uq9ZXL5zyeRPzHQsK7Nbyt6Y10k5s7OjuFZGMhpp4r/rsLBH0o/0fstIzX1Lep9VxefWljK/SKCzygIA==}
side-channel-list@1.0.1:
- resolution:
- {
- integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==}
+ engines: {node: '>= 0.4'}
side-channel-map@1.0.1:
- resolution:
- {
- integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==}
+ engines: {node: '>= 0.4'}
side-channel-weakmap@1.0.2:
- resolution:
- {
- integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
+ engines: {node: '>= 0.4'}
side-channel@1.1.1:
- resolution:
- {
- integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==}
+ engines: {node: '>= 0.4'}
+
+ siginfo@2.0.0:
+ resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
sisteransi@1.0.5:
- resolution:
- {
- integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==,
- }
+ resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
smol-toml@1.9.1:
- resolution:
- {
- integrity: sha512-j7WyPdf0CJoutMzMoPLF/bVXHtKZIT9Rb4eGeEbWw8X2t5oirjPgpL+OpaENZrILYaXqYwnVH+qgUwVbl+pUJQ==,
- }
- engines: { node: ">= 18" }
+ resolution: {integrity: sha512-j7WyPdf0CJoutMzMoPLF/bVXHtKZIT9Rb4eGeEbWw8X2t5oirjPgpL+OpaENZrILYaXqYwnVH+qgUwVbl+pUJQ==}
+ engines: {node: '>= 18'}
source-map-js@1.2.2:
- resolution:
- {
- integrity: sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==,
- }
- engines: { node: ">=0.10.0" }
+ resolution: {integrity: sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==}
+ engines: {node: '>=0.10.0'}
space-separated-tokens@2.0.2:
- resolution:
- {
- integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==,
- }
+ resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
+
+ stackback@0.0.2:
+ resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
+
+ std-env@3.10.0:
+ resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==}
stop-iteration-iterator@1.1.0:
- resolution:
- {
- integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==}
+ engines: {node: '>= 0.4'}
string-width@4.2.3:
- resolution:
- {
- integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==,
- }
- engines: { node: ">=8" }
+ resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
+ engines: {node: '>=8'}
string-width@7.2.0:
- resolution:
- {
- integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==,
- }
- engines: { node: ">=18" }
+ resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==}
+ engines: {node: '>=18'}
string-width@8.3.0:
- resolution:
- {
- integrity: sha512-ZbmZM0JCihQN91dWnxoipT2KOEyHqEyfRXUyjuRhW8b/xnqPDoq4gWEVApTVa9db2wN8mmoikgFBbjh71+cGeQ==,
- }
- engines: { node: ">=20" }
+ resolution: {integrity: sha512-ZbmZM0JCihQN91dWnxoipT2KOEyHqEyfRXUyjuRhW8b/xnqPDoq4gWEVApTVa9db2wN8mmoikgFBbjh71+cGeQ==}
+ engines: {node: '>=20'}
string.prototype.matchall@4.1.0:
- resolution:
- {
- integrity: sha512-tHNHTxInrYLCga9O9YGxWA3G9/nnzQw8UGAyqGx3Ar1pSTTzIuM4woFSq4SowkXCjJIwq5sIiQvEfRI9tCH1qQ==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-tHNHTxInrYLCga9O9YGxWA3G9/nnzQw8UGAyqGx3Ar1pSTTzIuM4woFSq4SowkXCjJIwq5sIiQvEfRI9tCH1qQ==}
+ engines: {node: '>= 0.4'}
string.prototype.repeat@1.0.0:
- resolution:
- {
- integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==,
- }
+ resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==}
string.prototype.trim@1.2.11:
- resolution:
- {
- integrity: sha512-PwvK7BU+CMTJGYQCTZb5RWXIML92lftJLhQz1tBzgKiqGxJaMlBAa48POXaNAC2s4y8jr3EFqrkF9+44neS46w==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-PwvK7BU+CMTJGYQCTZb5RWXIML92lftJLhQz1tBzgKiqGxJaMlBAa48POXaNAC2s4y8jr3EFqrkF9+44neS46w==}
+ engines: {node: '>= 0.4'}
string.prototype.trimend@1.0.10:
- resolution:
- {
- integrity: sha512-2+3aDAOmPTmuFwjDnmJG2ctEkQKVki7vOSqaxkv42Mowj1V6PnvuwFCRrR5lChUux1TBskPjfkeTOhqczDMxTw==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-2+3aDAOmPTmuFwjDnmJG2ctEkQKVki7vOSqaxkv42Mowj1V6PnvuwFCRrR5lChUux1TBskPjfkeTOhqczDMxTw==}
+ engines: {node: '>= 0.4'}
string.prototype.trimstart@1.0.8:
- resolution:
- {
- integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
+ engines: {node: '>= 0.4'}
stringify-entities@4.0.4:
- resolution:
- {
- integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==,
- }
+ resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==}
strip-ansi@6.0.1:
- resolution:
- {
- integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==,
- }
- engines: { node: ">=8" }
+ resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
+ engines: {node: '>=8'}
strip-ansi@7.2.0:
- resolution:
- {
- integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==,
- }
- engines: { node: ">=12" }
+ resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==}
+ engines: {node: '>=12'}
strip-json-comments@3.1.1:
- resolution:
- {
- integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==,
- }
- engines: { node: ">=8" }
+ resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
+ engines: {node: '>=8'}
+
+ strip-literal@3.1.0:
+ resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==}
supports-color@7.2.0:
- resolution:
- {
- integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==,
- }
- engines: { node: ">=8" }
+ resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
+ engines: {node: '>=8'}
supports-preserve-symlinks-flag@1.0.0:
- resolution:
- {
- integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
svgo@4.1.0:
- resolution:
- {
- integrity: sha512-bkxnTg1kSU0guhIBmibA6UUhrQmPVA1XsQLN+ylCd+UWzbnLkySOcXpyk1mrl05f+pcaCx2eHb+sp6BgMZWX+Q==,
- }
- engines: { node: ">=16" }
+ resolution: {integrity: sha512-bkxnTg1kSU0guhIBmibA6UUhrQmPVA1XsQLN+ylCd+UWzbnLkySOcXpyk1mrl05f+pcaCx2eHb+sp6BgMZWX+Q==}
+ engines: {node: '>=16'}
hasBin: true
tailwind-merge@2.6.1:
- resolution:
- {
- integrity: sha512-Oo6tHdpZsGpkKG88HJ8RR1rg/RdnEkQEfMoEk2x1XRI3F1AxeU+ijRXpiVUF4UbLfcxxRGw6TbUINKYdWVsQTQ==,
- }
+ resolution: {integrity: sha512-Oo6tHdpZsGpkKG88HJ8RR1rg/RdnEkQEfMoEk2x1XRI3F1AxeU+ijRXpiVUF4UbLfcxxRGw6TbUINKYdWVsQTQ==}
tailwindcss@4.3.3:
- resolution:
- {
- integrity: sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ==,
- }
+ resolution: {integrity: sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ==}
tapable@2.3.3:
- resolution:
- {
- integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==,
- }
- engines: { node: ">=6" }
+ resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==}
+ engines: {node: '>=6'}
tiny-inflate@1.0.3:
- resolution:
- {
- integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==,
- }
+ resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==}
+
+ tinybench@2.9.0:
+ resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
+
+ tinyexec@0.3.2:
+ resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==}
tinyexec@1.3.1:
- resolution:
- {
- integrity: sha512-GCvB3aoys96IuDFBMcTB46JOR6mdMtAToqwiW8JlWhsoh1mhHi/xn9ss/Dg7N555GiJyEt2qzoG/NHCwM6h1EA==,
- }
- engines: { node: ">=18" }
+ resolution: {integrity: sha512-GCvB3aoys96IuDFBMcTB46JOR6mdMtAToqwiW8JlWhsoh1mhHi/xn9ss/Dg7N555GiJyEt2qzoG/NHCwM6h1EA==}
+ engines: {node: '>=18'}
tinyglobby@0.2.17:
- resolution:
- {
- integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==,
- }
- engines: { node: ">=12.0.0" }
+ resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==}
+ engines: {node: '>=12.0.0'}
+
+ tinypool@1.1.1:
+ resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+
+ tinyrainbow@2.0.0:
+ resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==}
+ engines: {node: '>=14.0.0'}
+
+ tinyspy@4.0.6:
+ resolution: {integrity: sha512-u8KszXvGfU68hVcZpRHKG28T0krMuv2G5nDhiHaMLen/gIuFEgIJhaJuO69qjnXg5paSrbPMFfx3brNuN8eVSg==}
+ engines: {node: '>=14.0.0'}
trim-lines@3.0.1:
- resolution:
- {
- integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==,
- }
+ resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
trough@2.2.0:
- resolution:
- {
- integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==,
- }
+ resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==}
ts-api-utils@2.5.0:
- resolution:
- {
- integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==,
- }
- engines: { node: ">=18.12" }
+ resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==}
+ engines: {node: '>=18.12'}
peerDependencies:
- typescript: ">=4.8.4"
+ typescript: '>=4.8.4'
tsconfck@3.1.6:
- resolution:
- {
- integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==,
- }
- engines: { node: ^18 || >=20 }
+ resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==}
+ engines: {node: ^18 || >=20}
deprecated: unmaintained
hasBin: true
peerDependencies:
@@ -4940,224 +3058,146 @@ packages:
optional: true
tslib@2.8.1:
- resolution:
- {
- integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==,
- }
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
type-check@0.4.0:
- resolution:
- {
- integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==,
- }
- engines: { node: ">= 0.8.0" }
+ resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
+ engines: {node: '>= 0.8.0'}
type-fest@4.41.0:
- resolution:
- {
- integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==,
- }
- engines: { node: ">=16" }
+ resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==}
+ engines: {node: '>=16'}
typed-array-buffer@1.0.3:
- resolution:
- {
- integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==}
+ engines: {node: '>= 0.4'}
typed-array-byte-length@1.0.3:
- resolution:
- {
- integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==}
+ engines: {node: '>= 0.4'}
typed-array-byte-offset@1.0.5:
- resolution:
- {
- integrity: sha512-0FHJvLPqZ7KJzp17O13jfsAjsqazgrxBu2zEK95PmUz8lv2+GjRuxUInCr2Rk9Dms3ihN21zJ929ZO43yJ95QQ==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-0FHJvLPqZ7KJzp17O13jfsAjsqazgrxBu2zEK95PmUz8lv2+GjRuxUInCr2Rk9Dms3ihN21zJ929ZO43yJ95QQ==}
+ engines: {node: '>= 0.4'}
typed-array-length@1.0.8:
- resolution:
- {
- integrity: sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==}
+ engines: {node: '>= 0.4'}
typesafe-path@0.2.2:
- resolution:
- {
- integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==,
- }
+ resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==}
typescript-auto-import-cache@0.3.6:
- resolution:
- {
- integrity: sha512-RpuHXrknHdVdK7wv/8ug3Fr0WNsNi5l5aB8MYYuXhq2UH5lnEB1htJ1smhtD5VeCsGr2p8mUDtd83LCQDFVgjQ==,
- }
+ resolution: {integrity: sha512-RpuHXrknHdVdK7wv/8ug3Fr0WNsNi5l5aB8MYYuXhq2UH5lnEB1htJ1smhtD5VeCsGr2p8mUDtd83LCQDFVgjQ==}
typescript@5.9.3:
- resolution:
- {
- integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==,
- }
- engines: { node: ">=14.17" }
+ resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
+ engines: {node: '>=14.17'}
hasBin: true
ufo@1.6.4:
- resolution:
- {
- integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==,
- }
+ resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==}
ultrahtml@1.7.0:
- resolution:
- {
- integrity: sha512-2xRd0VHoAQE4M+vF/DvFFB7pUV0ZxTW1TLi7lHQWnF/Sb5TPeEUV/l+hxcNnGO00ZXGnR0voCMmYRKQf+rvJ2g==,
- }
+ resolution: {integrity: sha512-2xRd0VHoAQE4M+vF/DvFFB7pUV0ZxTW1TLi7lHQWnF/Sb5TPeEUV/l+hxcNnGO00ZXGnR0voCMmYRKQf+rvJ2g==}
unbox-primitive@1.1.0:
- resolution:
- {
- integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
+ engines: {node: '>= 0.4'}
uncrypto@0.1.3:
- resolution:
- {
- integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==,
- }
+ resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==}
+
+ undici-types@6.21.0:
+ resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
undici@8.12.3:
- resolution:
- {
- integrity: sha512-+fdndUTwBP86cVjihTp21hZHo7d6oj1c/47XPA3lL8mM0XHs+C4EkcjmgRsFnFk2f/UONGDy9ItBItmXsLOQHw==,
- }
- engines: { node: ">=22.19.0" }
+ resolution: {integrity: sha512-+fdndUTwBP86cVjihTp21hZHo7d6oj1c/47XPA3lL8mM0XHs+C4EkcjmgRsFnFk2f/UONGDy9ItBItmXsLOQHw==}
+ engines: {node: '>=22.19.0'}
unified@11.0.5:
- resolution:
- {
- integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==,
- }
+ resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==}
unifont@0.7.5:
- resolution:
- {
- integrity: sha512-ULe/Cs+ZIsq+dcFofNkhqielCrUJnb5mr+Yc4EBM2VlL+6OZR6+cjtI2mT1bJvRBrVncqHAbLURxmPLcCXzWMg==,
- }
+ resolution: {integrity: sha512-ULe/Cs+ZIsq+dcFofNkhqielCrUJnb5mr+Yc4EBM2VlL+6OZR6+cjtI2mT1bJvRBrVncqHAbLURxmPLcCXzWMg==}
unist-util-find-after@5.0.0:
- resolution:
- {
- integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==,
- }
+ resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==}
unist-util-is@6.0.1:
- resolution:
- {
- integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==,
- }
+ resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==}
unist-util-modify-children@4.0.0:
- resolution:
- {
- integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==,
- }
+ resolution: {integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==}
unist-util-position@5.0.0:
- resolution:
- {
- integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==,
- }
+ resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
unist-util-remove-position@5.0.0:
- resolution:
- {
- integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==,
- }
+ resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==}
unist-util-stringify-position@4.0.0:
- resolution:
- {
- integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==,
- }
+ resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
unist-util-visit-children@3.0.0:
- resolution:
- {
- integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==,
- }
+ resolution: {integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==}
unist-util-visit-parents@6.0.2:
- resolution:
- {
- integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==,
- }
+ resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==}
unist-util-visit@5.1.0:
- resolution:
- {
- integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==,
- }
+ resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==}
unstorage@1.17.6:
- resolution:
- {
- integrity: sha512-gjKtcmn/KwZuJZO9o2sc0esAQnhmTw0LviDHwevTXbJMYs0dRTp8ZEEWXHU0vTpzbN3cA0yxlTeyXssMp3zDqw==,
- }
+ resolution: {integrity: sha512-gjKtcmn/KwZuJZO9o2sc0esAQnhmTw0LviDHwevTXbJMYs0dRTp8ZEEWXHU0vTpzbN3cA0yxlTeyXssMp3zDqw==}
peerDependencies:
- "@azure/app-configuration": ^1.8.0
- "@azure/cosmos": ^4.2.0
- "@azure/data-tables": ^13.3.0
- "@azure/identity": ^4.6.0
- "@azure/keyvault-secrets": ^4.9.0
- "@azure/storage-blob": ^12.26.0
- "@capacitor/preferences": ^6 || ^7 || ^8
- "@deno/kv": ">=0.9.0"
- "@netlify/blobs": ^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0 || ^11.0.0
- "@planetscale/database": ^1.19.0
- "@upstash/redis": ^1.34.3
- "@vercel/blob": ">=0.27.1"
- "@vercel/functions": ^2.2.12 || ^3.0.0
- "@vercel/kv": ^1 || ^2 || ^3
+ '@azure/app-configuration': ^1.8.0
+ '@azure/cosmos': ^4.2.0
+ '@azure/data-tables': ^13.3.0
+ '@azure/identity': ^4.6.0
+ '@azure/keyvault-secrets': ^4.9.0
+ '@azure/storage-blob': ^12.26.0
+ '@capacitor/preferences': ^6 || ^7 || ^8
+ '@deno/kv': '>=0.9.0'
+ '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0 || ^11.0.0
+ '@planetscale/database': ^1.19.0
+ '@upstash/redis': ^1.34.3
+ '@vercel/blob': '>=0.27.1'
+ '@vercel/functions': ^2.2.12 || ^3.0.0
+ '@vercel/kv': ^1 || ^2 || ^3
aws4fetch: ^1.0.20
- db0: ">=0.2.1"
+ db0: '>=0.2.1'
idb-keyval: ^6.2.1
ioredis: ^5.4.2
uploadthing: ^7.4.4
peerDependenciesMeta:
- "@azure/app-configuration":
+ '@azure/app-configuration':
optional: true
- "@azure/cosmos":
+ '@azure/cosmos':
optional: true
- "@azure/data-tables":
+ '@azure/data-tables':
optional: true
- "@azure/identity":
+ '@azure/identity':
optional: true
- "@azure/keyvault-secrets":
+ '@azure/keyvault-secrets':
optional: true
- "@azure/storage-blob":
+ '@azure/storage-blob':
optional: true
- "@capacitor/preferences":
+ '@capacitor/preferences':
optional: true
- "@deno/kv":
+ '@deno/kv':
optional: true
- "@netlify/blobs":
+ '@netlify/blobs':
optional: true
- "@planetscale/database":
+ '@planetscale/database':
optional: true
- "@upstash/redis":
+ '@upstash/redis':
optional: true
- "@vercel/blob":
+ '@vercel/blob':
optional: true
- "@vercel/functions":
+ '@vercel/functions':
optional: true
- "@vercel/kv":
+ '@vercel/kv':
optional: true
aws4fetch:
optional: true
@@ -5171,59 +3211,46 @@ packages:
optional: true
update-browserslist-db@1.3.4:
- resolution:
- {
- integrity: sha512-t8wonIOdQyOjtPd2VktlBu6QjTVTks6v8bSi7kd0r2Vll8TK1JYDZtRRdbmCHOAMphkZgrzK+L+vXK4pyZ8t4A==,
- }
+ resolution: {integrity: sha512-t8wonIOdQyOjtPd2VktlBu6QjTVTks6v8bSi7kd0r2Vll8TK1JYDZtRRdbmCHOAMphkZgrzK+L+vXK4pyZ8t4A==}
hasBin: true
peerDependencies:
- browserslist: ">= 4.21.0"
+ browserslist: '>= 4.21.0'
uri-js@4.4.1:
- resolution:
- {
- integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==,
- }
+ resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
vfile-location@5.0.3:
- resolution:
- {
- integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==,
- }
+ resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==}
vfile-message@4.0.3:
- resolution:
- {
- integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==,
- }
+ resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==}
vfile@6.0.3:
- resolution:
- {
- integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==,
- }
+ resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
+
+ vite-node@3.2.4:
+ resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==}
+ engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
+ hasBin: true
vite@6.4.5:
- resolution:
- {
- integrity: sha512-4enwjFfi4IwtEh0w+jPzpLVOFQiPHmmzPxcHXQOyEur47o6u0jE573DmGpjA+7irXoMLYRZD5ZaFUEneS3abPg==,
- }
- engines: { node: ^18.0.0 || ^20.0.0 || >=22.0.0 }
+ resolution: {integrity: sha512-4enwjFfi4IwtEh0w+jPzpLVOFQiPHmmzPxcHXQOyEur47o6u0jE573DmGpjA+7irXoMLYRZD5ZaFUEneS3abPg==}
+ engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
hasBin: true
peerDependencies:
- "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0
- jiti: ">=1.21.0"
- less: "*"
+ '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
+ jiti: '>=1.21.0'
+ less: '*'
lightningcss: ^1.21.0
- sass: "*"
- sass-embedded: "*"
- stylus: "*"
- sugarss: "*"
+ sass: '*'
+ sass-embedded: '*'
+ stylus: '*'
+ sugarss: '*'
terser: ^5.16.0
tsx: ^4.8.1
yaml: ^2.4.2
peerDependenciesMeta:
- "@types/node":
+ '@types/node':
optional: true
jiti:
optional: true
@@ -5247,406 +3274,296 @@ packages:
optional: true
vitefu@1.1.3:
- resolution:
- {
- integrity: sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==,
- }
+ resolution: {integrity: sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==}
peerDependencies:
vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0
peerDependenciesMeta:
vite:
optional: true
+ vitest@3.2.7:
+ resolution: {integrity: sha512-KrxIJ62Fd89gfysR4WotlgZABiz2dqFPgqGzX7s+CwsqLFomRH7777ZcrOD6+WVAh7khPQP41A+BKbpcJFrdEg==}
+ engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
+ hasBin: true
+ peerDependencies:
+ '@edge-runtime/vm': '*'
+ '@types/debug': ^4.1.12
+ '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
+ '@vitest/browser': 3.2.7
+ '@vitest/ui': 3.2.7
+ happy-dom: '*'
+ jsdom: '*'
+ peerDependenciesMeta:
+ '@edge-runtime/vm':
+ optional: true
+ '@types/debug':
+ optional: true
+ '@types/node':
+ optional: true
+ '@vitest/browser':
+ optional: true
+ '@vitest/ui':
+ optional: true
+ happy-dom:
+ optional: true
+ jsdom:
+ optional: true
+
volar-service-css@0.0.71:
- resolution:
- {
- integrity: sha512-wRRFt9BpjMKCazcgOh67MSjUjiWUCAh99DyYSDIOTuxaRjEtDC7PpB0k1Y1wbJIW/pVtMUSVbpPo3UGSm0Byxw==,
- }
+ resolution: {integrity: sha512-wRRFt9BpjMKCazcgOh67MSjUjiWUCAh99DyYSDIOTuxaRjEtDC7PpB0k1Y1wbJIW/pVtMUSVbpPo3UGSm0Byxw==}
peerDependencies:
- "@volar/language-service": ~2.4.0
+ '@volar/language-service': ~2.4.0
peerDependenciesMeta:
- "@volar/language-service":
+ '@volar/language-service':
optional: true
volar-service-emmet@0.0.71:
- resolution:
- {
- integrity: sha512-zqjzt6bN95e3CUstBm0PBFAJnrfz0ZAARka87fart46/gNCLLuP3Vujy8V/J8HEziTFLnfkgIASLFYPUhonJcA==,
- }
+ resolution: {integrity: sha512-zqjzt6bN95e3CUstBm0PBFAJnrfz0ZAARka87fart46/gNCLLuP3Vujy8V/J8HEziTFLnfkgIASLFYPUhonJcA==}
peerDependencies:
- "@volar/language-service": ~2.4.0
+ '@volar/language-service': ~2.4.0
peerDependenciesMeta:
- "@volar/language-service":
+ '@volar/language-service':
optional: true
volar-service-html@0.0.71:
- resolution:
- {
- integrity: sha512-e8tHPhgQ7ooLfudAEIku+kgd9pWkq3SSz8RbnQDI1+Eb8wbenkLGHqoirLqz5ORLV6wIMr2Iv08RWBG5eOcgpw==,
- }
+ resolution: {integrity: sha512-e8tHPhgQ7ooLfudAEIku+kgd9pWkq3SSz8RbnQDI1+Eb8wbenkLGHqoirLqz5ORLV6wIMr2Iv08RWBG5eOcgpw==}
peerDependencies:
- "@volar/language-service": ~2.4.0
+ '@volar/language-service': ~2.4.0
peerDependenciesMeta:
- "@volar/language-service":
+ '@volar/language-service':
optional: true
volar-service-prettier@0.0.71:
- resolution:
- {
- integrity: sha512-Rz7JVH3qD108UCdmIEiZvOBNljMt2nLFdbN8AXcDfn7xD9F5I2aCIsDVqBbXw21PsnxG0b7MfwtNF+zPS/NKUg==,
- }
+ resolution: {integrity: sha512-Rz7JVH3qD108UCdmIEiZvOBNljMt2nLFdbN8AXcDfn7xD9F5I2aCIsDVqBbXw21PsnxG0b7MfwtNF+zPS/NKUg==}
peerDependencies:
- "@volar/language-service": ~2.4.0
+ '@volar/language-service': ~2.4.0
prettier: ^2.2 || ^3.0
peerDependenciesMeta:
- "@volar/language-service":
+ '@volar/language-service':
optional: true
prettier:
optional: true
volar-service-typescript-twoslash-queries@0.0.71:
- resolution:
- {
- integrity: sha512-9K2k72s4n7rV9s4bX0MyjbX9iBribvKZbBJKuEmTCZfeWJXs6Yh7bGpY4eoc7UufAjvpheBqwyZCOIPBvxCv0A==,
- }
+ resolution: {integrity: sha512-9K2k72s4n7rV9s4bX0MyjbX9iBribvKZbBJKuEmTCZfeWJXs6Yh7bGpY4eoc7UufAjvpheBqwyZCOIPBvxCv0A==}
peerDependencies:
- "@volar/language-service": ~2.4.0
- typescript: "*"
+ '@volar/language-service': ~2.4.0
+ typescript: '*'
peerDependenciesMeta:
- "@volar/language-service":
+ '@volar/language-service':
optional: true
typescript:
optional: true
volar-service-typescript@0.0.71:
- resolution:
- {
- integrity: sha512-yTtM/BVT6hoyEYnDtaCyAtNhdNeS/mhTTABlBOdw3NNiRBUin3IznFJpgfjer4c6RYopiPjjQjc9VFhxVl1mLw==,
- }
+ resolution: {integrity: sha512-yTtM/BVT6hoyEYnDtaCyAtNhdNeS/mhTTABlBOdw3NNiRBUin3IznFJpgfjer4c6RYopiPjjQjc9VFhxVl1mLw==}
peerDependencies:
- "@volar/language-service": ~2.4.0
- typescript: "*"
+ '@volar/language-service': ~2.4.0
+ typescript: '*'
peerDependenciesMeta:
- "@volar/language-service":
+ '@volar/language-service':
optional: true
typescript:
optional: true
volar-service-yaml@0.0.71:
- resolution:
- {
- integrity: sha512-qYGWGuVpUTnZGu5P/CR4KLK4aIR8RrcVnmfZ2eRcj9q/I8VZCoC5yy9FtEvfNvnDp4MU17yhdJcvpQPIqhJS2Q==,
- }
+ resolution: {integrity: sha512-qYGWGuVpUTnZGu5P/CR4KLK4aIR8RrcVnmfZ2eRcj9q/I8VZCoC5yy9FtEvfNvnDp4MU17yhdJcvpQPIqhJS2Q==}
peerDependencies:
- "@volar/language-service": ~2.4.0
+ '@volar/language-service': ~2.4.0
peerDependenciesMeta:
- "@volar/language-service":
+ '@volar/language-service':
optional: true
vscode-css-languageservice@6.3.10:
- resolution:
- {
- integrity: sha512-eq5N9Er3fC4vA9zd9EFhyBG90wtCCuXgRSpAndaOgXMh1Wgep5lBgRIeDgjZBW9pa+332yC9+49cZMW8jcL3MA==,
- }
+ resolution: {integrity: sha512-eq5N9Er3fC4vA9zd9EFhyBG90wtCCuXgRSpAndaOgXMh1Wgep5lBgRIeDgjZBW9pa+332yC9+49cZMW8jcL3MA==}
vscode-html-languageservice@5.6.2:
- resolution:
- {
- integrity: sha512-ulCrSnFnfQ16YzvwnYUgEbUEl/ZG7u2eV27YhvLObSHKkb8fw1Z9cgsnUwjTEeDIdJDoTDTDpxuhQwoenoLNMg==,
- }
+ resolution: {integrity: sha512-ulCrSnFnfQ16YzvwnYUgEbUEl/ZG7u2eV27YhvLObSHKkb8fw1Z9cgsnUwjTEeDIdJDoTDTDpxuhQwoenoLNMg==}
vscode-json-languageservice@4.1.8:
- resolution:
- {
- integrity: sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg==,
- }
- engines: { npm: ">=7.0.0" }
+ resolution: {integrity: sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg==}
+ engines: {npm: '>=7.0.0'}
vscode-jsonrpc@10.0.0:
- resolution:
- {
- integrity: sha512-USSfxg0vDIpTQqlQBGxF3mBARyoS8cU7LHLpbYNh6dOJt32dlskxPWB0Irrh5TllTmyf7oNLAvqDqzklbwwnpA==,
- }
- engines: { node: ">=14.17.0" }
+ resolution: {integrity: sha512-USSfxg0vDIpTQqlQBGxF3mBARyoS8cU7LHLpbYNh6dOJt32dlskxPWB0Irrh5TllTmyf7oNLAvqDqzklbwwnpA==}
+ engines: {node: '>=14.17.0'}
vscode-jsonrpc@8.2.0:
- resolution:
- {
- integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==,
- }
- engines: { node: ">=14.0.0" }
+ resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==}
+ engines: {node: '>=14.0.0'}
vscode-languageserver-protocol@3.17.5:
- resolution:
- {
- integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==,
- }
+ resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==}
vscode-languageserver-protocol@3.18.5:
- resolution:
- {
- integrity: sha512-FW4fBMzZ99N8xeob4py0l050wgCoRgTpEq5Xcsb9lM1bc29UKGR/wSV+4knaqFxssFHajy7OzNiKP/m3U1ZEuA==,
- }
+ resolution: {integrity: sha512-FW4fBMzZ99N8xeob4py0l050wgCoRgTpEq5Xcsb9lM1bc29UKGR/wSV+4knaqFxssFHajy7OzNiKP/m3U1ZEuA==}
vscode-languageserver-textdocument@1.0.16:
- resolution:
- {
- integrity: sha512-qeNEuOi9a3qkqRf7Gfez2WL2VwlBTLCNekHBGO9kxPVUp9XuY15yfTJ9jwvOwKI0I2MhUUfZq95NSp+LK1CLQg==,
- }
+ resolution: {integrity: sha512-qeNEuOi9a3qkqRf7Gfez2WL2VwlBTLCNekHBGO9kxPVUp9XuY15yfTJ9jwvOwKI0I2MhUUfZq95NSp+LK1CLQg==}
vscode-languageserver-types@3.17.5:
- resolution:
- {
- integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==,
- }
+ resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==}
vscode-languageserver-types@3.18.5:
- resolution:
- {
- integrity: sha512-kPd6+JQNz3HMJvjKlqUxERSlZHAntl/aGpsk7ImwIh0ewDKDcjgAEyVSYciPiOJD3ftbK9IrfiqUeTZLSbCizw==,
- }
+ resolution: {integrity: sha512-kPd6+JQNz3HMJvjKlqUxERSlZHAntl/aGpsk7ImwIh0ewDKDcjgAEyVSYciPiOJD3ftbK9IrfiqUeTZLSbCizw==}
vscode-languageserver@9.0.1:
- resolution:
- {
- integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==,
- }
+ resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==}
hasBin: true
vscode-nls@5.2.0:
- resolution:
- {
- integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==,
- }
+ resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==}
vscode-uri@3.2.0:
- resolution:
- {
- integrity: sha512-m2gXo3bn0G1kT9InzMf07fTbqMbGtyckj3bH5ktLO+1Ssv+yiATZ4dhwaQv9UZWxJh6E9IFGnQyjgWVDWVBDrg==,
- }
+ resolution: {integrity: sha512-m2gXo3bn0G1kT9InzMf07fTbqMbGtyckj3bH5ktLO+1Ssv+yiATZ4dhwaQv9UZWxJh6E9IFGnQyjgWVDWVBDrg==}
web-namespaces@2.0.1:
- resolution:
- {
- integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==,
- }
+ resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
which-boxed-primitive@1.1.1:
- resolution:
- {
- integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==}
+ engines: {node: '>= 0.4'}
which-builtin-type@1.2.1:
- resolution:
- {
- integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==}
+ engines: {node: '>= 0.4'}
which-collection@1.0.2:
- resolution:
- {
- integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
+ engines: {node: '>= 0.4'}
which-pm-runs@1.1.0:
- resolution:
- {
- integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==,
- }
- engines: { node: ">=4" }
+ resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==}
+ engines: {node: '>=4'}
which-typed-array@1.1.24:
- resolution:
- {
- integrity: sha512-wk4Mf4pR5mRP7eYuuTBCIQ9d0ud2Fv2jRLQpfgnRjbOxAFHmjKFValgTpitVKzJJS8ajnYQV2Du1SZ8j6b/EUQ==,
- }
- engines: { node: ">= 0.4" }
+ resolution: {integrity: sha512-wk4Mf4pR5mRP7eYuuTBCIQ9d0ud2Fv2jRLQpfgnRjbOxAFHmjKFValgTpitVKzJJS8ajnYQV2Du1SZ8j6b/EUQ==}
+ engines: {node: '>= 0.4'}
which@2.0.2:
- resolution:
- {
- integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==,
- }
- engines: { node: ">= 8" }
+ resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
+ engines: {node: '>= 8'}
+ hasBin: true
+
+ why-is-node-running@2.3.0:
+ resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==}
+ engines: {node: '>=8'}
hasBin: true
widest-line@5.0.0:
- resolution:
- {
- integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==,
- }
- engines: { node: ">=18" }
+ resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==}
+ engines: {node: '>=18'}
word-wrap@1.2.5:
- resolution:
- {
- integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==,
- }
- engines: { node: ">=0.10.0" }
+ resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
+ engines: {node: '>=0.10.0'}
wrap-ansi@9.0.2:
- resolution:
- {
- integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==,
- }
- engines: { node: ">=18" }
+ resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==}
+ engines: {node: '>=18'}
xxhash-wasm@1.1.0:
- resolution:
- {
- integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==,
- }
+ resolution: {integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==}
y18n@5.0.8:
- resolution:
- {
- integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==,
- }
- engines: { node: ">=10" }
+ resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
+ engines: {node: '>=10'}
yallist@3.1.1:
- resolution:
- {
- integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==,
- }
+ resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
yaml-language-server@1.23.0:
- resolution:
- {
- integrity: sha512-3qVyCOexLCWw06PQa5kRPwvMWMZ/eZeCRWUvgD6a0OkqL/4iCnxy2WumbWifa937Uo5xhyWJ0uxlU39ljhNh7A==,
- }
+ resolution: {integrity: sha512-3qVyCOexLCWw06PQa5kRPwvMWMZ/eZeCRWUvgD6a0OkqL/4iCnxy2WumbWifa937Uo5xhyWJ0uxlU39ljhNh7A==}
hasBin: true
yaml@2.8.3:
- resolution:
- {
- integrity: sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==,
- }
- engines: { node: ">= 14.6" }
+ resolution: {integrity: sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==}
+ engines: {node: '>= 14.6'}
hasBin: true
yaml@2.9.1:
- resolution:
- {
- integrity: sha512-3NxN8+78OdzbT7C/WjGsyfPAtJaN3FNDsWxv7Y7mcDsT/oOmgW8BpyQQFFBnvZE3j9Y2Sdz1ULFLezL7Eb2yFw==,
- }
- engines: { node: ">= 14.6" }
+ resolution: {integrity: sha512-3NxN8+78OdzbT7C/WjGsyfPAtJaN3FNDsWxv7Y7mcDsT/oOmgW8BpyQQFFBnvZE3j9Y2Sdz1ULFLezL7Eb2yFw==}
+ engines: {node: '>= 14.6'}
hasBin: true
yargs-parser@21.1.1:
- resolution:
- {
- integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==,
- }
- engines: { node: ">=12" }
+ resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
+ engines: {node: '>=12'}
yargs-parser@22.0.0:
- resolution:
- {
- integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==,
- }
- engines: { node: ^20.19.0 || ^22.12.0 || >=23 }
+ resolution: {integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==}
+ engines: {node: ^20.19.0 || ^22.12.0 || >=23}
yargs@18.2.0:
- resolution:
- {
- integrity: sha512-9OpKOLeaoNFecEp7P6iYbzze/5CqWoH7N3SMs/6y1XF4nMvFMspEGZzJ6uFi9MmQwXhyzqYoSEKO3tvA3Z/o2w==,
- }
- engines: { node: ^20.19.0 || ^22.12.0 || >=23 }
+ resolution: {integrity: sha512-9OpKOLeaoNFecEp7P6iYbzze/5CqWoH7N3SMs/6y1XF4nMvFMspEGZzJ6uFi9MmQwXhyzqYoSEKO3tvA3Z/o2w==}
+ engines: {node: ^20.19.0 || ^22.12.0 || >=23}
yocto-queue@0.1.0:
- resolution:
- {
- integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==,
- }
- engines: { node: ">=10" }
+ resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
+ engines: {node: '>=10'}
yocto-queue@1.2.2:
- resolution:
- {
- integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==,
- }
- engines: { node: ">=12.20" }
+ resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==}
+ engines: {node: '>=12.20'}
yocto-spinner@0.2.3:
- resolution:
- {
- integrity: sha512-sqBChb33loEnkoXte1bLg45bEBsOP9N1kzQh5JZNKj/0rik4zAPTNSAVPj3uQAdc6slYJ0Ksc403G2XgxsJQFQ==,
- }
- engines: { node: ">=18.19" }
+ resolution: {integrity: sha512-sqBChb33loEnkoXte1bLg45bEBsOP9N1kzQh5JZNKj/0rik4zAPTNSAVPj3uQAdc6slYJ0Ksc403G2XgxsJQFQ==}
+ engines: {node: '>=18.19'}
yoctocolors@2.2.0:
- resolution:
- {
- integrity: sha512-xYqdZFUK/VYazNl/oCDYN+3WloWQwMfZxBoiNt6qNyk+xfOdi598muWE42rNZFp1kNOiqW936q5RhUdnpqElSg==,
- }
- engines: { node: ">=18" }
+ resolution: {integrity: sha512-xYqdZFUK/VYazNl/oCDYN+3WloWQwMfZxBoiNt6qNyk+xfOdi598muWE42rNZFp1kNOiqW936q5RhUdnpqElSg==}
+ engines: {node: '>=18'}
zod-to-json-schema@3.25.2:
- resolution:
- {
- integrity: sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==,
- }
+ resolution: {integrity: sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==}
peerDependencies:
zod: ^3.25.28 || ^4
zod-to-ts@1.2.0:
- resolution:
- {
- integrity: sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==,
- }
+ resolution: {integrity: sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==}
peerDependencies:
typescript: ^4.9.4 || ^5.0.2
zod: ^3
zod@3.25.76:
- resolution:
- {
- integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==,
- }
+ resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==}
zwitch@2.0.4:
- resolution:
- {
- integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==,
- }
+ resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
snapshots:
- "@astrojs/astro2tsx@0.1.3(@emnapi/runtime@1.11.3)":
+
+ '@astrojs/astro2tsx@0.1.3(@emnapi/runtime@1.11.3)':
dependencies:
- "@emnapi/core": 1.11.3
- "@napi-rs/wasm-runtime": 1.2.4(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)
+ '@emnapi/core': 1.11.3
+ '@napi-rs/wasm-runtime': 1.2.4(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)
transitivePeerDependencies:
- - "@emnapi/runtime"
+ - '@emnapi/runtime'
- "@astrojs/check@0.9.12(@emnapi/runtime@1.11.3)(prettier@3.9.10)(typescript@5.9.3)":
+ '@astrojs/check@0.9.12(@emnapi/runtime@1.11.3)(prettier@3.9.10)(typescript@5.9.3)':
dependencies:
- "@astrojs/language-server": 2.17.3(@emnapi/runtime@1.11.3)(prettier@3.9.10)(typescript@5.9.3)
+ '@astrojs/language-server': 2.17.3(@emnapi/runtime@1.11.3)(prettier@3.9.10)(typescript@5.9.3)
chokidar: 5.0.0
kleur: 4.1.5
typescript: 5.9.3
yargs: 18.2.0
transitivePeerDependencies:
- - "@emnapi/runtime"
+ - '@emnapi/runtime'
- prettier
- prettier-plugin-astro
- "@astrojs/compiler@2.13.1": {}
+ '@astrojs/compiler@2.13.1': {}
- "@astrojs/internal-helpers@0.7.6": {}
+ '@astrojs/internal-helpers@0.7.6': {}
- "@astrojs/language-server@2.17.3(@emnapi/runtime@1.11.3)(prettier@3.9.10)(typescript@5.9.3)":
+ '@astrojs/language-server@2.17.3(@emnapi/runtime@1.11.3)(prettier@3.9.10)(typescript@5.9.3)':
dependencies:
- "@astrojs/astro2tsx": 0.1.3(@emnapi/runtime@1.11.3)
- "@astrojs/yaml2ts": 0.2.4
- "@volar/kit": 2.4.30(typescript@5.9.3)
- "@volar/language-core": 2.4.30
- "@volar/language-server": 2.4.30(typescript@5.9.3)
- "@volar/language-service": 2.4.30(typescript@5.9.3)
+ '@astrojs/astro2tsx': 0.1.3(@emnapi/runtime@1.11.3)
+ '@astrojs/yaml2ts': 0.2.4
+ '@volar/kit': 2.4.30(typescript@5.9.3)
+ '@volar/language-core': 2.4.30
+ '@volar/language-server': 2.4.30(typescript@5.9.3)
+ '@volar/language-service': 2.4.30(typescript@5.9.3)
muggle-string: 0.4.1
tinyglobby: 0.2.17
volar-service-css: 0.0.71(@volar/language-service@2.4.30(typescript@5.9.3))
@@ -5661,13 +3578,13 @@ snapshots:
optionalDependencies:
prettier: 3.9.10
transitivePeerDependencies:
- - "@emnapi/runtime"
+ - '@emnapi/runtime'
- typescript
- "@astrojs/markdown-remark@6.3.11(supports-color@7.2.0)":
+ '@astrojs/markdown-remark@6.3.11(supports-color@7.2.0)':
dependencies:
- "@astrojs/internal-helpers": 0.7.6
- "@astrojs/prism": 3.3.0
+ '@astrojs/internal-helpers': 0.7.6
+ '@astrojs/prism': 3.3.0
github-slugger: 2.0.0
hast-util-from-html: 2.0.3
hast-util-to-text: 4.0.2
@@ -5690,21 +3607,21 @@ snapshots:
transitivePeerDependencies:
- supports-color
- "@astrojs/prism@3.3.0":
+ '@astrojs/prism@3.3.0':
dependencies:
prismjs: 1.30.0
- "@astrojs/react@4.4.2(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(jiti@2.7.0)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@7.2.0)(yaml@2.9.1)":
+ '@astrojs/react@4.4.2(@types/node@22.20.5)(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(jiti@2.7.0)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@7.2.0)(yaml@2.9.1)':
dependencies:
- "@types/react": 18.3.31
- "@types/react-dom": 18.3.7(@types/react@18.3.31)
- "@vitejs/plugin-react": 4.7.0(supports-color@7.2.0)(vite@6.4.5(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.1))
+ '@types/react': 18.3.31
+ '@types/react-dom': 18.3.7(@types/react@18.3.31)
+ '@vitejs/plugin-react': 4.7.0(supports-color@7.2.0)(vite@6.4.5(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.1))
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
ultrahtml: 1.7.0
- vite: 6.4.5(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.1)
+ vite: 6.4.5(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.1)
transitivePeerDependencies:
- - "@types/node"
+ - '@types/node'
- jiti
- less
- lightningcss
@@ -5717,7 +3634,7 @@ snapshots:
- tsx
- yaml
- "@astrojs/telemetry@3.3.0(supports-color@7.2.0)":
+ '@astrojs/telemetry@3.3.0(supports-color@7.2.0)':
dependencies:
ci-info: 4.4.0
debug: 4.4.3(supports-color@7.2.0)
@@ -5729,30 +3646,30 @@ snapshots:
transitivePeerDependencies:
- supports-color
- "@astrojs/yaml2ts@0.2.4":
+ '@astrojs/yaml2ts@0.2.4':
dependencies:
yaml: 2.9.1
- "@babel/code-frame@7.29.7":
+ '@babel/code-frame@7.29.7':
dependencies:
- "@babel/helper-validator-identifier": 7.29.7
+ '@babel/helper-validator-identifier': 7.29.7
js-tokens: 4.0.0
picocolors: 1.1.1
- "@babel/compat-data@7.29.7": {}
+ '@babel/compat-data@7.29.7': {}
- "@babel/core@7.29.7(supports-color@7.2.0)":
+ '@babel/core@7.29.7(supports-color@7.2.0)':
dependencies:
- "@babel/code-frame": 7.29.7
- "@babel/generator": 7.29.8
- "@babel/helper-compilation-targets": 7.29.7
- "@babel/helper-module-transforms": 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@7.2.0)
- "@babel/helpers": 7.29.10
- "@babel/parser": 7.29.9
- "@babel/template": 7.29.7
- "@babel/traverse": 7.29.10(supports-color@7.2.0)
- "@babel/types": 7.29.8
- "@jridgewell/remapping": 2.3.5
+ '@babel/code-frame': 7.29.7
+ '@babel/generator': 7.29.8
+ '@babel/helper-compilation-targets': 7.29.7
+ '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@7.2.0)
+ '@babel/helpers': 7.29.10
+ '@babel/parser': 7.29.9
+ '@babel/template': 7.29.7
+ '@babel/traverse': 7.29.10(supports-color@7.2.0)
+ '@babel/types': 7.29.8
+ '@jridgewell/remapping': 2.3.5
convert-source-map: 2.0.0
debug: 4.4.3(supports-color@7.2.0)
gensync: 1.0.0-beta.2
@@ -5761,310 +3678,310 @@ snapshots:
transitivePeerDependencies:
- supports-color
- "@babel/generator@7.29.8":
+ '@babel/generator@7.29.8':
dependencies:
- "@babel/parser": 7.29.9
- "@babel/types": 7.29.8
- "@jridgewell/gen-mapping": 0.3.13
- "@jridgewell/trace-mapping": 0.3.31
+ '@babel/parser': 7.29.9
+ '@babel/types': 7.29.8
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
jsesc: 3.1.0
- "@babel/helper-compilation-targets@7.29.7":
+ '@babel/helper-compilation-targets@7.29.7':
dependencies:
- "@babel/compat-data": 7.29.7
- "@babel/helper-validator-option": 7.29.7
+ '@babel/compat-data': 7.29.7
+ '@babel/helper-validator-option': 7.29.7
browserslist: 4.29.4
lru-cache: 5.1.1
semver: 6.3.1
- "@babel/helper-globals@7.29.7": {}
+ '@babel/helper-globals@7.29.7': {}
- "@babel/helper-module-imports@7.29.7(supports-color@7.2.0)":
+ '@babel/helper-module-imports@7.29.7(supports-color@7.2.0)':
dependencies:
- "@babel/traverse": 7.29.10(supports-color@7.2.0)
- "@babel/types": 7.29.8
+ '@babel/traverse': 7.29.10(supports-color@7.2.0)
+ '@babel/types': 7.29.8
transitivePeerDependencies:
- supports-color
- "@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@7.2.0)":
+ '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))(supports-color@7.2.0)':
dependencies:
- "@babel/core": 7.29.7(supports-color@7.2.0)
- "@babel/helper-module-imports": 7.29.7(supports-color@7.2.0)
- "@babel/helper-validator-identifier": 7.29.7
- "@babel/traverse": 7.29.10(supports-color@7.2.0)
+ '@babel/core': 7.29.7(supports-color@7.2.0)
+ '@babel/helper-module-imports': 7.29.7(supports-color@7.2.0)
+ '@babel/helper-validator-identifier': 7.29.7
+ '@babel/traverse': 7.29.10(supports-color@7.2.0)
transitivePeerDependencies:
- supports-color
- "@babel/helper-plugin-utils@7.29.7": {}
+ '@babel/helper-plugin-utils@7.29.7': {}
- "@babel/helper-string-parser@7.29.7": {}
+ '@babel/helper-string-parser@7.29.7': {}
- "@babel/helper-validator-identifier@7.29.7": {}
+ '@babel/helper-validator-identifier@7.29.7': {}
- "@babel/helper-validator-option@7.29.7": {}
+ '@babel/helper-validator-option@7.29.7': {}
- "@babel/helpers@7.29.10":
+ '@babel/helpers@7.29.10':
dependencies:
- "@babel/template": 7.29.7
- "@babel/types": 7.29.8
+ '@babel/template': 7.29.7
+ '@babel/types': 7.29.8
- "@babel/parser@7.29.9":
+ '@babel/parser@7.29.9':
dependencies:
- "@babel/types": 7.29.8
+ '@babel/types': 7.29.8
- "@babel/plugin-transform-react-jsx-self@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))":
+ '@babel/plugin-transform-react-jsx-self@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))':
dependencies:
- "@babel/core": 7.29.7(supports-color@7.2.0)
- "@babel/helper-plugin-utils": 7.29.7
+ '@babel/core': 7.29.7(supports-color@7.2.0)
+ '@babel/helper-plugin-utils': 7.29.7
- "@babel/plugin-transform-react-jsx-source@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))":
+ '@babel/plugin-transform-react-jsx-source@7.29.7(@babel/core@7.29.7(supports-color@7.2.0))':
dependencies:
- "@babel/core": 7.29.7(supports-color@7.2.0)
- "@babel/helper-plugin-utils": 7.29.7
+ '@babel/core': 7.29.7(supports-color@7.2.0)
+ '@babel/helper-plugin-utils': 7.29.7
- "@babel/template@7.29.7":
+ '@babel/template@7.29.7':
dependencies:
- "@babel/code-frame": 7.29.7
- "@babel/parser": 7.29.9
- "@babel/types": 7.29.8
+ '@babel/code-frame': 7.29.7
+ '@babel/parser': 7.29.9
+ '@babel/types': 7.29.8
- "@babel/traverse@7.29.10(supports-color@7.2.0)":
+ '@babel/traverse@7.29.10(supports-color@7.2.0)':
dependencies:
- "@babel/code-frame": 7.29.7
- "@babel/generator": 7.29.8
- "@babel/helper-globals": 7.29.7
- "@babel/parser": 7.29.9
- "@babel/template": 7.29.7
- "@babel/types": 7.29.8
+ '@babel/code-frame': 7.29.7
+ '@babel/generator': 7.29.8
+ '@babel/helper-globals': 7.29.7
+ '@babel/parser': 7.29.9
+ '@babel/template': 7.29.7
+ '@babel/types': 7.29.8
debug: 4.4.3(supports-color@7.2.0)
transitivePeerDependencies:
- supports-color
- "@babel/types@7.29.8":
+ '@babel/types@7.29.8':
dependencies:
- "@babel/helper-string-parser": 7.29.7
- "@babel/helper-validator-identifier": 7.29.7
+ '@babel/helper-string-parser': 7.29.7
+ '@babel/helper-validator-identifier': 7.29.7
- "@capsizecss/unpack@4.0.1":
+ '@capsizecss/unpack@4.0.1':
dependencies:
fontkitten: 1.0.3
- "@emmetio/abbreviation@2.3.3":
+ '@emmetio/abbreviation@2.3.3':
dependencies:
- "@emmetio/scanner": 1.0.4
+ '@emmetio/scanner': 1.0.4
- "@emmetio/css-abbreviation@2.1.8":
+ '@emmetio/css-abbreviation@2.1.8':
dependencies:
- "@emmetio/scanner": 1.0.4
+ '@emmetio/scanner': 1.0.4
- "@emmetio/css-parser@0.4.1":
+ '@emmetio/css-parser@0.4.1':
dependencies:
- "@emmetio/stream-reader": 2.2.0
- "@emmetio/stream-reader-utils": 0.1.0
+ '@emmetio/stream-reader': 2.2.0
+ '@emmetio/stream-reader-utils': 0.1.0
- "@emmetio/html-matcher@1.3.0":
+ '@emmetio/html-matcher@1.3.0':
dependencies:
- "@emmetio/scanner": 1.0.4
+ '@emmetio/scanner': 1.0.4
- "@emmetio/scanner@1.0.4": {}
+ '@emmetio/scanner@1.0.4': {}
- "@emmetio/stream-reader-utils@0.1.0": {}
+ '@emmetio/stream-reader-utils@0.1.0': {}
- "@emmetio/stream-reader@2.2.0": {}
+ '@emmetio/stream-reader@2.2.0': {}
- "@emnapi/core@1.11.3":
+ '@emnapi/core@1.11.3':
dependencies:
- "@emnapi/wasi-threads": 1.2.3
+ '@emnapi/wasi-threads': 1.2.3
tslib: 2.8.1
- "@emnapi/runtime@1.11.3":
+ '@emnapi/runtime@1.11.3':
dependencies:
tslib: 2.8.1
- "@emnapi/wasi-threads@1.2.3":
+ '@emnapi/wasi-threads@1.2.3':
dependencies:
tslib: 2.8.1
- "@esbuild/aix-ppc64@0.25.12":
+ '@esbuild/aix-ppc64@0.25.12':
optional: true
- "@esbuild/aix-ppc64@0.27.7":
+ '@esbuild/aix-ppc64@0.27.7':
optional: true
- "@esbuild/android-arm64@0.25.12":
+ '@esbuild/android-arm64@0.25.12':
optional: true
- "@esbuild/android-arm64@0.27.7":
+ '@esbuild/android-arm64@0.27.7':
optional: true
- "@esbuild/android-arm@0.25.12":
+ '@esbuild/android-arm@0.25.12':
optional: true
- "@esbuild/android-arm@0.27.7":
+ '@esbuild/android-arm@0.27.7':
optional: true
- "@esbuild/android-x64@0.25.12":
+ '@esbuild/android-x64@0.25.12':
optional: true
- "@esbuild/android-x64@0.27.7":
+ '@esbuild/android-x64@0.27.7':
optional: true
- "@esbuild/darwin-arm64@0.25.12":
+ '@esbuild/darwin-arm64@0.25.12':
optional: true
- "@esbuild/darwin-arm64@0.27.7":
+ '@esbuild/darwin-arm64@0.27.7':
optional: true
- "@esbuild/darwin-x64@0.25.12":
+ '@esbuild/darwin-x64@0.25.12':
optional: true
- "@esbuild/darwin-x64@0.27.7":
+ '@esbuild/darwin-x64@0.27.7':
optional: true
- "@esbuild/freebsd-arm64@0.25.12":
+ '@esbuild/freebsd-arm64@0.25.12':
optional: true
- "@esbuild/freebsd-arm64@0.27.7":
+ '@esbuild/freebsd-arm64@0.27.7':
optional: true
- "@esbuild/freebsd-x64@0.25.12":
+ '@esbuild/freebsd-x64@0.25.12':
optional: true
- "@esbuild/freebsd-x64@0.27.7":
+ '@esbuild/freebsd-x64@0.27.7':
optional: true
- "@esbuild/linux-arm64@0.25.12":
+ '@esbuild/linux-arm64@0.25.12':
optional: true
- "@esbuild/linux-arm64@0.27.7":
+ '@esbuild/linux-arm64@0.27.7':
optional: true
- "@esbuild/linux-arm@0.25.12":
+ '@esbuild/linux-arm@0.25.12':
optional: true
- "@esbuild/linux-arm@0.27.7":
+ '@esbuild/linux-arm@0.27.7':
optional: true
- "@esbuild/linux-ia32@0.25.12":
+ '@esbuild/linux-ia32@0.25.12':
optional: true
- "@esbuild/linux-ia32@0.27.7":
+ '@esbuild/linux-ia32@0.27.7':
optional: true
- "@esbuild/linux-loong64@0.25.12":
+ '@esbuild/linux-loong64@0.25.12':
optional: true
- "@esbuild/linux-loong64@0.27.7":
+ '@esbuild/linux-loong64@0.27.7':
optional: true
- "@esbuild/linux-mips64el@0.25.12":
+ '@esbuild/linux-mips64el@0.25.12':
optional: true
- "@esbuild/linux-mips64el@0.27.7":
+ '@esbuild/linux-mips64el@0.27.7':
optional: true
- "@esbuild/linux-ppc64@0.25.12":
+ '@esbuild/linux-ppc64@0.25.12':
optional: true
- "@esbuild/linux-ppc64@0.27.7":
+ '@esbuild/linux-ppc64@0.27.7':
optional: true
- "@esbuild/linux-riscv64@0.25.12":
+ '@esbuild/linux-riscv64@0.25.12':
optional: true
- "@esbuild/linux-riscv64@0.27.7":
+ '@esbuild/linux-riscv64@0.27.7':
optional: true
- "@esbuild/linux-s390x@0.25.12":
+ '@esbuild/linux-s390x@0.25.12':
optional: true
- "@esbuild/linux-s390x@0.27.7":
+ '@esbuild/linux-s390x@0.27.7':
optional: true
- "@esbuild/linux-x64@0.25.12":
+ '@esbuild/linux-x64@0.25.12':
optional: true
- "@esbuild/linux-x64@0.27.7":
+ '@esbuild/linux-x64@0.27.7':
optional: true
- "@esbuild/netbsd-arm64@0.25.12":
+ '@esbuild/netbsd-arm64@0.25.12':
optional: true
- "@esbuild/netbsd-arm64@0.27.7":
+ '@esbuild/netbsd-arm64@0.27.7':
optional: true
- "@esbuild/netbsd-x64@0.25.12":
+ '@esbuild/netbsd-x64@0.25.12':
optional: true
- "@esbuild/netbsd-x64@0.27.7":
+ '@esbuild/netbsd-x64@0.27.7':
optional: true
- "@esbuild/openbsd-arm64@0.25.12":
+ '@esbuild/openbsd-arm64@0.25.12':
optional: true
- "@esbuild/openbsd-arm64@0.27.7":
+ '@esbuild/openbsd-arm64@0.27.7':
optional: true
- "@esbuild/openbsd-x64@0.25.12":
+ '@esbuild/openbsd-x64@0.25.12':
optional: true
- "@esbuild/openbsd-x64@0.27.7":
+ '@esbuild/openbsd-x64@0.27.7':
optional: true
- "@esbuild/openharmony-arm64@0.25.12":
+ '@esbuild/openharmony-arm64@0.25.12':
optional: true
- "@esbuild/openharmony-arm64@0.27.7":
+ '@esbuild/openharmony-arm64@0.27.7':
optional: true
- "@esbuild/sunos-x64@0.25.12":
+ '@esbuild/sunos-x64@0.25.12':
optional: true
- "@esbuild/sunos-x64@0.27.7":
+ '@esbuild/sunos-x64@0.27.7':
optional: true
- "@esbuild/win32-arm64@0.25.12":
+ '@esbuild/win32-arm64@0.25.12':
optional: true
- "@esbuild/win32-arm64@0.27.7":
+ '@esbuild/win32-arm64@0.27.7':
optional: true
- "@esbuild/win32-ia32@0.25.12":
+ '@esbuild/win32-ia32@0.25.12':
optional: true
- "@esbuild/win32-ia32@0.27.7":
+ '@esbuild/win32-ia32@0.27.7':
optional: true
- "@esbuild/win32-x64@0.25.12":
+ '@esbuild/win32-x64@0.25.12':
optional: true
- "@esbuild/win32-x64@0.27.7":
+ '@esbuild/win32-x64@0.27.7':
optional: true
- "@eslint-community/eslint-utils@4.10.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))":
+ '@eslint-community/eslint-utils@4.10.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))':
dependencies:
eslint: 9.39.5(jiti@2.7.0)(supports-color@7.2.0)
eslint-visitor-keys: 3.4.3
- "@eslint-community/regexpp@4.12.2": {}
+ '@eslint-community/regexpp@4.12.2': {}
- "@eslint/config-array@0.21.2(supports-color@7.2.0)":
+ '@eslint/config-array@0.21.2(supports-color@7.2.0)':
dependencies:
- "@eslint/object-schema": 2.1.7
+ '@eslint/object-schema': 2.1.7
debug: 4.4.3(supports-color@7.2.0)
minimatch: 3.1.5
transitivePeerDependencies:
- supports-color
- "@eslint/config-helpers@0.4.2":
+ '@eslint/config-helpers@0.4.2':
dependencies:
- "@eslint/core": 0.17.0
+ '@eslint/core': 0.17.0
- "@eslint/core@0.17.0":
+ '@eslint/core@0.17.0':
dependencies:
- "@types/json-schema": 7.0.15
+ '@types/json-schema': 7.0.15
- "@eslint/eslintrc@3.3.7(supports-color@7.2.0)":
+ '@eslint/eslintrc@3.3.7(supports-color@7.2.0)':
dependencies:
ajv: 6.15.0
debug: 4.4.3(supports-color@7.2.0)
@@ -6078,281 +3995,281 @@ snapshots:
transitivePeerDependencies:
- supports-color
- "@eslint/js@9.39.5": {}
+ '@eslint/js@9.39.5': {}
- "@eslint/object-schema@2.1.7": {}
+ '@eslint/object-schema@2.1.7': {}
- "@eslint/plugin-kit@0.4.1":
+ '@eslint/plugin-kit@0.4.1':
dependencies:
- "@eslint/core": 0.17.0
+ '@eslint/core': 0.17.0
levn: 0.4.1
- "@fontsource-variable/inter@5.3.0": {}
+ '@fontsource-variable/inter@5.3.0': {}
- "@humanfs/core@0.19.2":
+ '@humanfs/core@0.19.2':
dependencies:
- "@humanfs/types": 0.15.0
+ '@humanfs/types': 0.15.0
- "@humanfs/node@0.16.8":
+ '@humanfs/node@0.16.8':
dependencies:
- "@humanfs/core": 0.19.2
- "@humanfs/types": 0.15.0
- "@humanwhocodes/retry": 0.4.3
+ '@humanfs/core': 0.19.2
+ '@humanfs/types': 0.15.0
+ '@humanwhocodes/retry': 0.4.3
- "@humanfs/types@0.15.0": {}
+ '@humanfs/types@0.15.0': {}
- "@humanwhocodes/module-importer@1.0.1": {}
+ '@humanwhocodes/module-importer@1.0.1': {}
- "@humanwhocodes/retry@0.4.3": {}
+ '@humanwhocodes/retry@0.4.3': {}
- "@img/colour@1.1.0":
+ '@img/colour@1.1.0':
optional: true
- "@img/sharp-darwin-arm64@0.34.5":
+ '@img/sharp-darwin-arm64@0.34.5':
optionalDependencies:
- "@img/sharp-libvips-darwin-arm64": 1.2.4
+ '@img/sharp-libvips-darwin-arm64': 1.2.4
optional: true
- "@img/sharp-darwin-x64@0.34.5":
+ '@img/sharp-darwin-x64@0.34.5':
optionalDependencies:
- "@img/sharp-libvips-darwin-x64": 1.2.4
+ '@img/sharp-libvips-darwin-x64': 1.2.4
optional: true
- "@img/sharp-libvips-darwin-arm64@1.2.4":
+ '@img/sharp-libvips-darwin-arm64@1.2.4':
optional: true
- "@img/sharp-libvips-darwin-x64@1.2.4":
+ '@img/sharp-libvips-darwin-x64@1.2.4':
optional: true
- "@img/sharp-libvips-linux-arm64@1.2.4":
+ '@img/sharp-libvips-linux-arm64@1.2.4':
optional: true
- "@img/sharp-libvips-linux-arm@1.2.4":
+ '@img/sharp-libvips-linux-arm@1.2.4':
optional: true
- "@img/sharp-libvips-linux-ppc64@1.2.4":
+ '@img/sharp-libvips-linux-ppc64@1.2.4':
optional: true
- "@img/sharp-libvips-linux-riscv64@1.2.4":
+ '@img/sharp-libvips-linux-riscv64@1.2.4':
optional: true
- "@img/sharp-libvips-linux-s390x@1.2.4":
+ '@img/sharp-libvips-linux-s390x@1.2.4':
optional: true
- "@img/sharp-libvips-linux-x64@1.2.4":
+ '@img/sharp-libvips-linux-x64@1.2.4':
optional: true
- "@img/sharp-libvips-linuxmusl-arm64@1.2.4":
+ '@img/sharp-libvips-linuxmusl-arm64@1.2.4':
optional: true
- "@img/sharp-libvips-linuxmusl-x64@1.2.4":
+ '@img/sharp-libvips-linuxmusl-x64@1.2.4':
optional: true
- "@img/sharp-linux-arm64@0.34.5":
+ '@img/sharp-linux-arm64@0.34.5':
optionalDependencies:
- "@img/sharp-libvips-linux-arm64": 1.2.4
+ '@img/sharp-libvips-linux-arm64': 1.2.4
optional: true
- "@img/sharp-linux-arm@0.34.5":
+ '@img/sharp-linux-arm@0.34.5':
optionalDependencies:
- "@img/sharp-libvips-linux-arm": 1.2.4
+ '@img/sharp-libvips-linux-arm': 1.2.4
optional: true
- "@img/sharp-linux-ppc64@0.34.5":
+ '@img/sharp-linux-ppc64@0.34.5':
optionalDependencies:
- "@img/sharp-libvips-linux-ppc64": 1.2.4
+ '@img/sharp-libvips-linux-ppc64': 1.2.4
optional: true
- "@img/sharp-linux-riscv64@0.34.5":
+ '@img/sharp-linux-riscv64@0.34.5':
optionalDependencies:
- "@img/sharp-libvips-linux-riscv64": 1.2.4
+ '@img/sharp-libvips-linux-riscv64': 1.2.4
optional: true
- "@img/sharp-linux-s390x@0.34.5":
+ '@img/sharp-linux-s390x@0.34.5':
optionalDependencies:
- "@img/sharp-libvips-linux-s390x": 1.2.4
+ '@img/sharp-libvips-linux-s390x': 1.2.4
optional: true
- "@img/sharp-linux-x64@0.34.5":
+ '@img/sharp-linux-x64@0.34.5':
optionalDependencies:
- "@img/sharp-libvips-linux-x64": 1.2.4
+ '@img/sharp-libvips-linux-x64': 1.2.4
optional: true
- "@img/sharp-linuxmusl-arm64@0.34.5":
+ '@img/sharp-linuxmusl-arm64@0.34.5':
optionalDependencies:
- "@img/sharp-libvips-linuxmusl-arm64": 1.2.4
+ '@img/sharp-libvips-linuxmusl-arm64': 1.2.4
optional: true
- "@img/sharp-linuxmusl-x64@0.34.5":
+ '@img/sharp-linuxmusl-x64@0.34.5':
optionalDependencies:
- "@img/sharp-libvips-linuxmusl-x64": 1.2.4
+ '@img/sharp-libvips-linuxmusl-x64': 1.2.4
optional: true
- "@img/sharp-wasm32@0.34.5":
+ '@img/sharp-wasm32@0.34.5':
dependencies:
- "@emnapi/runtime": 1.11.3
+ '@emnapi/runtime': 1.11.3
optional: true
- "@img/sharp-win32-arm64@0.34.5":
+ '@img/sharp-win32-arm64@0.34.5':
optional: true
- "@img/sharp-win32-ia32@0.34.5":
+ '@img/sharp-win32-ia32@0.34.5':
optional: true
- "@img/sharp-win32-x64@0.34.5":
+ '@img/sharp-win32-x64@0.34.5':
optional: true
- "@jridgewell/gen-mapping@0.3.13":
+ '@jridgewell/gen-mapping@0.3.13':
dependencies:
- "@jridgewell/sourcemap-codec": 1.6.0
- "@jridgewell/trace-mapping": 0.3.31
+ '@jridgewell/sourcemap-codec': 1.6.0
+ '@jridgewell/trace-mapping': 0.3.31
- "@jridgewell/remapping@2.3.5":
+ '@jridgewell/remapping@2.3.5':
dependencies:
- "@jridgewell/gen-mapping": 0.3.13
- "@jridgewell/trace-mapping": 0.3.31
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
- "@jridgewell/resolve-uri@3.1.2": {}
+ '@jridgewell/resolve-uri@3.1.2': {}
- "@jridgewell/sourcemap-codec@1.6.0": {}
+ '@jridgewell/sourcemap-codec@1.6.0': {}
- "@jridgewell/trace-mapping@0.3.31":
+ '@jridgewell/trace-mapping@0.3.31':
dependencies:
- "@jridgewell/resolve-uri": 3.1.2
- "@jridgewell/sourcemap-codec": 1.6.0
+ '@jridgewell/resolve-uri': 3.1.2
+ '@jridgewell/sourcemap-codec': 1.6.0
- "@napi-rs/lzma-linux-x64-gnu@1.5.1":
+ '@napi-rs/lzma-linux-x64-gnu@1.5.1':
optional: true
- "@napi-rs/wasm-runtime@1.2.4(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)":
+ '@napi-rs/wasm-runtime@1.2.4(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)':
dependencies:
- "@emnapi/core": 1.11.3
- "@emnapi/runtime": 1.11.3
- "@tybys/wasm-util": 0.10.4
+ '@emnapi/core': 1.11.3
+ '@emnapi/runtime': 1.11.3
+ '@tybys/wasm-util': 0.10.4
- "@oslojs/encoding@1.1.0": {}
+ '@oslojs/encoding@1.1.0': {}
- "@rolldown/pluginutils@1.0.0-beta.27": {}
+ '@rolldown/pluginutils@1.0.0-beta.27': {}
- "@rollup/pluginutils@5.5.1(rollup@4.65.0)":
+ '@rollup/pluginutils@5.5.1(rollup@4.65.0)':
dependencies:
- "@types/estree": 1.0.9
+ '@types/estree': 1.0.9
estree-walker: 2.0.2
picomatch: 4.0.7
optionalDependencies:
rollup: 4.65.0
- "@rollup/rollup-android-arm-eabi@4.65.0":
+ '@rollup/rollup-android-arm-eabi@4.65.0':
optional: true
- "@rollup/rollup-android-arm64@4.65.0":
+ '@rollup/rollup-android-arm64@4.65.0':
optional: true
- "@rollup/rollup-darwin-arm64@4.65.0":
+ '@rollup/rollup-darwin-arm64@4.65.0':
optional: true
- "@rollup/rollup-darwin-x64@4.65.0":
+ '@rollup/rollup-darwin-x64@4.65.0':
optional: true
- "@rollup/rollup-freebsd-arm64@4.65.0":
+ '@rollup/rollup-freebsd-arm64@4.65.0':
optional: true
- "@rollup/rollup-freebsd-x64@4.65.0":
+ '@rollup/rollup-freebsd-x64@4.65.0':
optional: true
- "@rollup/rollup-linux-arm-gnueabihf@4.65.0":
+ '@rollup/rollup-linux-arm-gnueabihf@4.65.0':
optional: true
- "@rollup/rollup-linux-arm-musleabihf@4.65.0":
+ '@rollup/rollup-linux-arm-musleabihf@4.65.0':
optional: true
- "@rollup/rollup-linux-arm64-gnu@4.65.0":
+ '@rollup/rollup-linux-arm64-gnu@4.65.0':
optional: true
- "@rollup/rollup-linux-arm64-musl@4.65.0":
+ '@rollup/rollup-linux-arm64-musl@4.65.0':
optional: true
- "@rollup/rollup-linux-loong64-gnu@4.65.0":
+ '@rollup/rollup-linux-loong64-gnu@4.65.0':
optional: true
- "@rollup/rollup-linux-loong64-musl@4.65.0":
+ '@rollup/rollup-linux-loong64-musl@4.65.0':
optional: true
- "@rollup/rollup-linux-ppc64-gnu@4.65.0":
+ '@rollup/rollup-linux-ppc64-gnu@4.65.0':
optional: true
- "@rollup/rollup-linux-ppc64-musl@4.65.0":
+ '@rollup/rollup-linux-ppc64-musl@4.65.0':
optional: true
- "@rollup/rollup-linux-riscv64-gnu@4.65.0":
+ '@rollup/rollup-linux-riscv64-gnu@4.65.0':
optional: true
- "@rollup/rollup-linux-riscv64-musl@4.65.0":
+ '@rollup/rollup-linux-riscv64-musl@4.65.0':
optional: true
- "@rollup/rollup-linux-s390x-gnu@4.65.0":
+ '@rollup/rollup-linux-s390x-gnu@4.65.0':
optional: true
- "@rollup/rollup-linux-x64-gnu@4.65.0":
+ '@rollup/rollup-linux-x64-gnu@4.65.0':
optional: true
- "@rollup/rollup-linux-x64-musl@4.65.0":
+ '@rollup/rollup-linux-x64-musl@4.65.0':
optional: true
- "@rollup/rollup-openbsd-x64@4.65.0":
+ '@rollup/rollup-openbsd-x64@4.65.0':
optional: true
- "@rollup/rollup-openharmony-arm64@4.65.0":
+ '@rollup/rollup-openharmony-arm64@4.65.0':
optional: true
- "@rollup/rollup-win32-arm64-msvc@4.65.0":
+ '@rollup/rollup-win32-arm64-msvc@4.65.0':
optional: true
- "@rollup/rollup-win32-ia32-msvc@4.65.0":
+ '@rollup/rollup-win32-ia32-msvc@4.65.0':
optional: true
- "@rollup/rollup-win32-x64-gnu@4.65.0":
+ '@rollup/rollup-win32-x64-gnu@4.65.0':
optional: true
- "@rollup/rollup-win32-x64-msvc@4.65.0":
+ '@rollup/rollup-win32-x64-msvc@4.65.0':
optional: true
- "@shikijs/core@3.23.0":
+ '@shikijs/core@3.23.0':
dependencies:
- "@shikijs/types": 3.23.0
- "@shikijs/vscode-textmate": 10.1.0
- "@types/hast": 3.0.5
+ '@shikijs/types': 3.23.0
+ '@shikijs/vscode-textmate': 10.1.0
+ '@types/hast': 3.0.5
hast-util-to-html: 9.0.5
- "@shikijs/engine-javascript@3.23.0":
+ '@shikijs/engine-javascript@3.23.0':
dependencies:
- "@shikijs/types": 3.23.0
- "@shikijs/vscode-textmate": 10.1.0
+ '@shikijs/types': 3.23.0
+ '@shikijs/vscode-textmate': 10.1.0
oniguruma-to-es: 4.3.6
- "@shikijs/engine-oniguruma@3.23.0":
+ '@shikijs/engine-oniguruma@3.23.0':
dependencies:
- "@shikijs/types": 3.23.0
- "@shikijs/vscode-textmate": 10.1.0
+ '@shikijs/types': 3.23.0
+ '@shikijs/vscode-textmate': 10.1.0
- "@shikijs/langs@3.23.0":
+ '@shikijs/langs@3.23.0':
dependencies:
- "@shikijs/types": 3.23.0
+ '@shikijs/types': 3.23.0
- "@shikijs/themes@3.23.0":
+ '@shikijs/themes@3.23.0':
dependencies:
- "@shikijs/types": 3.23.0
+ '@shikijs/types': 3.23.0
- "@shikijs/types@3.23.0":
+ '@shikijs/types@3.23.0':
dependencies:
- "@shikijs/vscode-textmate": 10.1.0
- "@types/hast": 3.0.5
+ '@shikijs/vscode-textmate': 10.1.0
+ '@types/hast': 3.0.5
- "@shikijs/vscode-textmate@10.1.0": {}
+ '@shikijs/vscode-textmate@10.1.0': {}
- "@tailwindcss/node@4.3.3":
+ '@tailwindcss/node@4.3.3':
dependencies:
- "@jridgewell/remapping": 2.3.5
+ '@jridgewell/remapping': 2.3.5
enhanced-resolve: 5.26.0
jiti: 2.7.0
lightningcss: 1.32.0
@@ -6360,132 +4277,143 @@ snapshots:
source-map-js: 1.2.2
tailwindcss: 4.3.3
- "@tailwindcss/oxide-android-arm64@4.3.3":
+ '@tailwindcss/oxide-android-arm64@4.3.3':
optional: true
- "@tailwindcss/oxide-darwin-arm64@4.3.3":
+ '@tailwindcss/oxide-darwin-arm64@4.3.3':
optional: true
- "@tailwindcss/oxide-darwin-x64@4.3.3":
+ '@tailwindcss/oxide-darwin-x64@4.3.3':
optional: true
- "@tailwindcss/oxide-freebsd-x64@4.3.3":
+ '@tailwindcss/oxide-freebsd-x64@4.3.3':
optional: true
- "@tailwindcss/oxide-linux-arm-gnueabihf@4.3.3":
+ '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.3':
optional: true
- "@tailwindcss/oxide-linux-arm64-gnu@4.3.3":
+ '@tailwindcss/oxide-linux-arm64-gnu@4.3.3':
optional: true
- "@tailwindcss/oxide-linux-arm64-musl@4.3.3":
+ '@tailwindcss/oxide-linux-arm64-musl@4.3.3':
optional: true
- "@tailwindcss/oxide-linux-x64-gnu@4.3.3":
+ '@tailwindcss/oxide-linux-x64-gnu@4.3.3':
optional: true
- "@tailwindcss/oxide-linux-x64-musl@4.3.3":
+ '@tailwindcss/oxide-linux-x64-musl@4.3.3':
optional: true
- "@tailwindcss/oxide-wasm32-wasi@4.3.3":
+ '@tailwindcss/oxide-wasm32-wasi@4.3.3':
optional: true
- "@tailwindcss/oxide-win32-arm64-msvc@4.3.3":
+ '@tailwindcss/oxide-win32-arm64-msvc@4.3.3':
optional: true
- "@tailwindcss/oxide-win32-x64-msvc@4.3.3":
+ '@tailwindcss/oxide-win32-x64-msvc@4.3.3':
optional: true
- "@tailwindcss/oxide@4.3.3":
+ '@tailwindcss/oxide@4.3.3':
optionalDependencies:
- "@tailwindcss/oxide-android-arm64": 4.3.3
- "@tailwindcss/oxide-darwin-arm64": 4.3.3
- "@tailwindcss/oxide-darwin-x64": 4.3.3
- "@tailwindcss/oxide-freebsd-x64": 4.3.3
- "@tailwindcss/oxide-linux-arm-gnueabihf": 4.3.3
- "@tailwindcss/oxide-linux-arm64-gnu": 4.3.3
- "@tailwindcss/oxide-linux-arm64-musl": 4.3.3
- "@tailwindcss/oxide-linux-x64-gnu": 4.3.3
- "@tailwindcss/oxide-linux-x64-musl": 4.3.3
- "@tailwindcss/oxide-wasm32-wasi": 4.3.3
- "@tailwindcss/oxide-win32-arm64-msvc": 4.3.3
- "@tailwindcss/oxide-win32-x64-msvc": 4.3.3
-
- "@tailwindcss/vite@4.3.3(vite@6.4.5(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.1))":
- dependencies:
- "@tailwindcss/node": 4.3.3
- "@tailwindcss/oxide": 4.3.3
+ '@tailwindcss/oxide-android-arm64': 4.3.3
+ '@tailwindcss/oxide-darwin-arm64': 4.3.3
+ '@tailwindcss/oxide-darwin-x64': 4.3.3
+ '@tailwindcss/oxide-freebsd-x64': 4.3.3
+ '@tailwindcss/oxide-linux-arm-gnueabihf': 4.3.3
+ '@tailwindcss/oxide-linux-arm64-gnu': 4.3.3
+ '@tailwindcss/oxide-linux-arm64-musl': 4.3.3
+ '@tailwindcss/oxide-linux-x64-gnu': 4.3.3
+ '@tailwindcss/oxide-linux-x64-musl': 4.3.3
+ '@tailwindcss/oxide-wasm32-wasi': 4.3.3
+ '@tailwindcss/oxide-win32-arm64-msvc': 4.3.3
+ '@tailwindcss/oxide-win32-x64-msvc': 4.3.3
+
+ '@tailwindcss/vite@4.3.3(vite@6.4.5(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.1))':
+ dependencies:
+ '@tailwindcss/node': 4.3.3
+ '@tailwindcss/oxide': 4.3.3
tailwindcss: 4.3.3
- vite: 6.4.5(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.1)
+ vite: 6.4.5(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.1)
- "@tybys/wasm-util@0.10.4":
+ '@tybys/wasm-util@0.10.4':
dependencies:
tslib: 2.8.1
- "@types/babel__core@7.20.5":
+ '@types/babel__core@7.20.5':
+ dependencies:
+ '@babel/parser': 7.29.9
+ '@babel/types': 7.29.8
+ '@types/babel__generator': 7.27.0
+ '@types/babel__template': 7.4.4
+ '@types/babel__traverse': 7.28.0
+
+ '@types/babel__generator@7.27.0':
dependencies:
- "@babel/parser": 7.29.9
- "@babel/types": 7.29.8
- "@types/babel__generator": 7.27.0
- "@types/babel__template": 7.4.4
- "@types/babel__traverse": 7.28.0
+ '@babel/types': 7.29.8
- "@types/babel__generator@7.27.0":
+ '@types/babel__template@7.4.4':
dependencies:
- "@babel/types": 7.29.8
+ '@babel/parser': 7.29.9
+ '@babel/types': 7.29.8
- "@types/babel__template@7.4.4":
+ '@types/babel__traverse@7.28.0':
dependencies:
- "@babel/parser": 7.29.9
- "@babel/types": 7.29.8
+ '@babel/types': 7.29.8
- "@types/babel__traverse@7.28.0":
+ '@types/chai@5.2.3':
dependencies:
- "@babel/types": 7.29.8
+ '@types/deep-eql': 4.0.2
+ assertion-error: 2.0.1
- "@types/debug@4.1.13":
+ '@types/debug@4.1.13':
dependencies:
- "@types/ms": 2.1.0
+ '@types/ms': 2.1.0
- "@types/estree@1.0.9": {}
+ '@types/deep-eql@4.0.2': {}
- "@types/hast@3.0.5":
+ '@types/estree@1.0.9': {}
+
+ '@types/hast@3.0.5':
dependencies:
- "@types/unist": 3.0.3
+ '@types/unist': 3.0.3
- "@types/json-schema@7.0.15": {}
+ '@types/json-schema@7.0.15': {}
- "@types/mdast@4.0.4":
+ '@types/mdast@4.0.4':
dependencies:
- "@types/unist": 3.0.3
+ '@types/unist': 3.0.3
+
+ '@types/ms@2.1.0': {}
- "@types/ms@2.1.0": {}
+ '@types/nlcst@2.0.3':
+ dependencies:
+ '@types/unist': 3.0.3
- "@types/nlcst@2.0.3":
+ '@types/node@22.20.5':
dependencies:
- "@types/unist": 3.0.3
+ undici-types: 6.21.0
- "@types/prop-types@15.7.15": {}
+ '@types/prop-types@15.7.15': {}
- "@types/react-dom@18.3.7(@types/react@18.3.31)":
+ '@types/react-dom@18.3.7(@types/react@18.3.31)':
dependencies:
- "@types/react": 18.3.31
+ '@types/react': 18.3.31
- "@types/react@18.3.31":
+ '@types/react@18.3.31':
dependencies:
- "@types/prop-types": 15.7.15
+ '@types/prop-types': 15.7.15
csstype: 3.2.3
- "@types/unist@3.0.3": {}
+ '@types/unist@3.0.3': {}
- "@typescript-eslint/eslint-plugin@8.72.0(@typescript-eslint/parser@8.72.0(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3)":
+ '@typescript-eslint/eslint-plugin@8.72.0(@typescript-eslint/parser@8.72.0(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3)':
dependencies:
- "@eslint-community/regexpp": 4.12.2
- "@typescript-eslint/parser": 8.72.0(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3)
- "@typescript-eslint/scope-manager": 8.72.0
- "@typescript-eslint/type-utils": 8.72.0(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3)
- "@typescript-eslint/utils": 8.72.0(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3)
- "@typescript-eslint/visitor-keys": 8.72.0
+ '@eslint-community/regexpp': 4.12.2
+ '@typescript-eslint/parser': 8.72.0(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3)
+ '@typescript-eslint/scope-manager': 8.72.0
+ '@typescript-eslint/type-utils': 8.72.0(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.72.0(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3)
+ '@typescript-eslint/visitor-keys': 8.72.0
eslint: 9.39.5(jiti@2.7.0)(supports-color@7.2.0)
ignore: 7.0.13
natural-compare: 1.4.0
@@ -6494,41 +4422,41 @@ snapshots:
transitivePeerDependencies:
- supports-color
- "@typescript-eslint/parser@8.72.0(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3)":
+ '@typescript-eslint/parser@8.72.0(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3)':
dependencies:
- "@typescript-eslint/scope-manager": 8.72.0
- "@typescript-eslint/types": 8.72.0
- "@typescript-eslint/typescript-estree": 8.72.0(supports-color@7.2.0)(typescript@5.9.3)
- "@typescript-eslint/visitor-keys": 8.72.0
+ '@typescript-eslint/scope-manager': 8.72.0
+ '@typescript-eslint/types': 8.72.0
+ '@typescript-eslint/typescript-estree': 8.72.0(supports-color@7.2.0)(typescript@5.9.3)
+ '@typescript-eslint/visitor-keys': 8.72.0
debug: 4.4.3(supports-color@7.2.0)
eslint: 9.39.5(jiti@2.7.0)(supports-color@7.2.0)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- "@typescript-eslint/project-service@8.72.0(supports-color@7.2.0)(typescript@5.9.3)":
+ '@typescript-eslint/project-service@8.72.0(supports-color@7.2.0)(typescript@5.9.3)':
dependencies:
- "@typescript-eslint/tsconfig-utils": 8.72.0(typescript@5.9.3)
- "@typescript-eslint/types": 8.72.0
+ '@typescript-eslint/tsconfig-utils': 8.72.0(typescript@5.9.3)
+ '@typescript-eslint/types': 8.72.0
debug: 4.4.3(supports-color@7.2.0)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- "@typescript-eslint/scope-manager@8.72.0":
+ '@typescript-eslint/scope-manager@8.72.0':
dependencies:
- "@typescript-eslint/types": 8.72.0
- "@typescript-eslint/visitor-keys": 8.72.0
+ '@typescript-eslint/types': 8.72.0
+ '@typescript-eslint/visitor-keys': 8.72.0
- "@typescript-eslint/tsconfig-utils@8.72.0(typescript@5.9.3)":
+ '@typescript-eslint/tsconfig-utils@8.72.0(typescript@5.9.3)':
dependencies:
typescript: 5.9.3
- "@typescript-eslint/type-utils@8.72.0(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3)":
+ '@typescript-eslint/type-utils@8.72.0(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3)':
dependencies:
- "@typescript-eslint/types": 8.72.0
- "@typescript-eslint/typescript-estree": 8.72.0(supports-color@7.2.0)(typescript@5.9.3)
- "@typescript-eslint/utils": 8.72.0(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3)
+ '@typescript-eslint/types': 8.72.0
+ '@typescript-eslint/typescript-estree': 8.72.0(supports-color@7.2.0)(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.72.0(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3)
debug: 4.4.3(supports-color@7.2.0)
eslint: 9.39.5(jiti@2.7.0)(supports-color@7.2.0)
ts-api-utils: 2.5.0(typescript@5.9.3)
@@ -6536,14 +4464,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
- "@typescript-eslint/types@8.72.0": {}
+ '@typescript-eslint/types@8.72.0': {}
- "@typescript-eslint/typescript-estree@8.72.0(supports-color@7.2.0)(typescript@5.9.3)":
+ '@typescript-eslint/typescript-estree@8.72.0(supports-color@7.2.0)(typescript@5.9.3)':
dependencies:
- "@typescript-eslint/project-service": 8.72.0(supports-color@7.2.0)(typescript@5.9.3)
- "@typescript-eslint/tsconfig-utils": 8.72.0(typescript@5.9.3)
- "@typescript-eslint/types": 8.72.0
- "@typescript-eslint/visitor-keys": 8.72.0
+ '@typescript-eslint/project-service': 8.72.0(supports-color@7.2.0)(typescript@5.9.3)
+ '@typescript-eslint/tsconfig-utils': 8.72.0(typescript@5.9.3)
+ '@typescript-eslint/types': 8.72.0
+ '@typescript-eslint/visitor-keys': 8.72.0
debug: 4.4.3(supports-color@7.2.0)
minimatch: 10.2.6
semver: 7.8.5
@@ -6553,54 +4481,96 @@ snapshots:
transitivePeerDependencies:
- supports-color
- "@typescript-eslint/utils@8.72.0(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3)":
+ '@typescript-eslint/utils@8.72.0(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@5.9.3)':
dependencies:
- "@eslint-community/eslint-utils": 4.10.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))
- "@typescript-eslint/scope-manager": 8.72.0
- "@typescript-eslint/types": 8.72.0
- "@typescript-eslint/typescript-estree": 8.72.0(supports-color@7.2.0)(typescript@5.9.3)
+ '@eslint-community/eslint-utils': 4.10.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))
+ '@typescript-eslint/scope-manager': 8.72.0
+ '@typescript-eslint/types': 8.72.0
+ '@typescript-eslint/typescript-estree': 8.72.0(supports-color@7.2.0)(typescript@5.9.3)
eslint: 9.39.5(jiti@2.7.0)(supports-color@7.2.0)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- "@typescript-eslint/visitor-keys@8.72.0":
+ '@typescript-eslint/visitor-keys@8.72.0':
dependencies:
- "@typescript-eslint/types": 8.72.0
+ '@typescript-eslint/types': 8.72.0
eslint-visitor-keys: 5.0.1
- "@ungap/structured-clone@1.4.0": {}
+ '@ungap/structured-clone@1.4.0': {}
- "@vitejs/plugin-react@4.7.0(supports-color@7.2.0)(vite@6.4.5(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.1))":
+ '@vitejs/plugin-react@4.7.0(supports-color@7.2.0)(vite@6.4.5(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.1))':
dependencies:
- "@babel/core": 7.29.7(supports-color@7.2.0)
- "@babel/plugin-transform-react-jsx-self": 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))
- "@babel/plugin-transform-react-jsx-source": 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))
- "@rolldown/pluginutils": 1.0.0-beta.27
- "@types/babel__core": 7.20.5
+ '@babel/core': 7.29.7(supports-color@7.2.0)
+ '@babel/plugin-transform-react-jsx-self': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))
+ '@babel/plugin-transform-react-jsx-source': 7.29.7(@babel/core@7.29.7(supports-color@7.2.0))
+ '@rolldown/pluginutils': 1.0.0-beta.27
+ '@types/babel__core': 7.20.5
react-refresh: 0.17.0
- vite: 6.4.5(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.1)
+ vite: 6.4.5(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.1)
transitivePeerDependencies:
- supports-color
- "@volar/kit@2.4.30(typescript@5.9.3)":
+ '@vitest/expect@3.2.7':
+ dependencies:
+ '@types/chai': 5.2.3
+ '@vitest/spy': 3.2.7
+ '@vitest/utils': 3.2.7
+ chai: 5.3.3
+ tinyrainbow: 2.0.0
+
+ '@vitest/mocker@3.2.7(vite@6.4.5(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.1))':
+ dependencies:
+ '@vitest/spy': 3.2.7
+ estree-walker: 3.0.3
+ magic-string: 0.30.21
+ optionalDependencies:
+ vite: 6.4.5(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.1)
+
+ '@vitest/pretty-format@3.2.7':
+ dependencies:
+ tinyrainbow: 2.0.0
+
+ '@vitest/runner@3.2.7':
+ dependencies:
+ '@vitest/utils': 3.2.7
+ pathe: 2.0.3
+ strip-literal: 3.1.0
+
+ '@vitest/snapshot@3.2.7':
+ dependencies:
+ '@vitest/pretty-format': 3.2.7
+ magic-string: 0.30.21
+ pathe: 2.0.3
+
+ '@vitest/spy@3.2.7':
+ dependencies:
+ tinyspy: 4.0.6
+
+ '@vitest/utils@3.2.7':
+ dependencies:
+ '@vitest/pretty-format': 3.2.7
+ loupe: 3.2.1
+ tinyrainbow: 2.0.0
+
+ '@volar/kit@2.4.30(typescript@5.9.3)':
dependencies:
- "@volar/language-service": 2.4.30(typescript@5.9.3)
- "@volar/typescript": 2.4.30(typescript@5.9.3)
+ '@volar/language-service': 2.4.30(typescript@5.9.3)
+ '@volar/typescript': 2.4.30(typescript@5.9.3)
typesafe-path: 0.2.2
typescript: 5.9.3
vscode-languageserver-textdocument: 1.0.16
vscode-uri: 3.2.0
- "@volar/language-core@2.4.30":
+ '@volar/language-core@2.4.30':
dependencies:
- "@volar/source-map": 2.4.30
+ '@volar/source-map': 2.4.30
- "@volar/language-server@2.4.30(typescript@5.9.3)":
+ '@volar/language-server@2.4.30(typescript@5.9.3)':
dependencies:
- "@volar/language-core": 2.4.30
- "@volar/language-service": 2.4.30(typescript@5.9.3)
- "@volar/typescript": 2.4.30(typescript@5.9.3)
+ '@volar/language-core': 2.4.30
+ '@volar/language-service': 2.4.30(typescript@5.9.3)
+ '@volar/typescript': 2.4.30(typescript@5.9.3)
path-browserify: 1.0.1
request-light: 0.7.0
vscode-languageserver: 9.0.1
@@ -6610,27 +4580,27 @@ snapshots:
optionalDependencies:
typescript: 5.9.3
- "@volar/language-service@2.4.30(typescript@5.9.3)":
+ '@volar/language-service@2.4.30(typescript@5.9.3)':
dependencies:
- "@volar/language-core": 2.4.30
+ '@volar/language-core': 2.4.30
vscode-languageserver-protocol: 3.18.5
vscode-languageserver-textdocument: 1.0.16
vscode-uri: 3.2.0
optionalDependencies:
typescript: 5.9.3
- "@volar/source-map@2.4.30": {}
+ '@volar/source-map@2.4.30': {}
- "@volar/typescript@2.4.30(typescript@5.9.3)":
+ '@volar/typescript@2.4.30(typescript@5.9.3)':
dependencies:
- "@volar/language-core": 2.4.30
- "@volar/language-service": 2.4.30(typescript@5.9.3)
+ '@volar/language-core': 2.4.30
+ '@volar/language-service': 2.4.30(typescript@5.9.3)
path-browserify: 1.0.1
vscode-uri: 3.2.0
optionalDependencies:
typescript: 5.9.3
- "@vscode/emmet-helper@2.11.0":
+ '@vscode/emmet-helper@2.11.0':
dependencies:
emmet: 2.4.11
jsonc-parser: 2.3.1
@@ -6638,7 +4608,7 @@ snapshots:
vscode-languageserver-types: 3.18.5
vscode-uri: 3.2.0
- "@vscode/l10n@0.0.18": {}
+ '@vscode/l10n@0.0.18': {}
acorn-jsx@5.3.2(acorn@8.19.0):
dependencies:
@@ -6750,15 +4720,17 @@ snapshots:
get-intrinsic: 1.3.0
is-array-buffer: 3.0.5
- astro@5.18.2(jiti@2.7.0)(lightningcss@1.32.0)(rollup@4.65.0)(supports-color@7.2.0)(typescript@5.9.3)(yaml@2.9.1):
+ assertion-error@2.0.1: {}
+
+ astro@5.18.2(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)(rollup@4.65.0)(supports-color@7.2.0)(typescript@5.9.3)(yaml@2.9.1):
dependencies:
- "@astrojs/compiler": 2.13.1
- "@astrojs/internal-helpers": 0.7.6
- "@astrojs/markdown-remark": 6.3.11(supports-color@7.2.0)
- "@astrojs/telemetry": 3.3.0(supports-color@7.2.0)
- "@capsizecss/unpack": 4.0.1
- "@oslojs/encoding": 1.1.0
- "@rollup/pluginutils": 5.5.1(rollup@4.65.0)
+ '@astrojs/compiler': 2.13.1
+ '@astrojs/internal-helpers': 0.7.6
+ '@astrojs/markdown-remark': 6.3.11(supports-color@7.2.0)
+ '@astrojs/telemetry': 3.3.0(supports-color@7.2.0)
+ '@capsizecss/unpack': 4.0.1
+ '@oslojs/encoding': 1.1.0
+ '@rollup/pluginutils': 5.5.1(rollup@4.65.0)
acorn: 8.19.0
aria-query: 5.3.2
axobject-query: 4.1.0
@@ -6807,8 +4779,8 @@ snapshots:
unist-util-visit: 5.1.0
unstorage: 1.17.6
vfile: 6.0.3
- vite: 6.4.5(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.1)
- vitefu: 1.1.3(vite@6.4.5(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.1))
+ vite: 6.4.5(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.1)
+ vitefu: 1.1.3(vite@6.4.5(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.1))
xxhash-wasm: 1.1.0
yargs-parser: 21.1.1
yocto-spinner: 0.2.3
@@ -6818,21 +4790,21 @@ snapshots:
optionalDependencies:
sharp: 0.34.5
transitivePeerDependencies:
- - "@azure/app-configuration"
- - "@azure/cosmos"
- - "@azure/data-tables"
- - "@azure/identity"
- - "@azure/keyvault-secrets"
- - "@azure/storage-blob"
- - "@capacitor/preferences"
- - "@deno/kv"
- - "@netlify/blobs"
- - "@planetscale/database"
- - "@types/node"
- - "@upstash/redis"
- - "@vercel/blob"
- - "@vercel/functions"
- - "@vercel/kv"
+ - '@azure/app-configuration'
+ - '@azure/cosmos'
+ - '@azure/data-tables'
+ - '@azure/identity'
+ - '@azure/keyvault-secrets'
+ - '@azure/storage-blob'
+ - '@capacitor/preferences'
+ - '@deno/kv'
+ - '@netlify/blobs'
+ - '@planetscale/database'
+ - '@types/node'
+ - '@upstash/redis'
+ - '@vercel/blob'
+ - '@vercel/functions'
+ - '@vercel/kv'
- aws4fetch
- db0
- idb-keyval
@@ -6900,6 +4872,8 @@ snapshots:
node-releases: 2.0.60
update-browserslist-db: 1.3.4(browserslist@4.29.4)
+ cac@6.7.14: {}
+
call-bind-apply-helpers@1.0.2:
dependencies:
es-errors: 1.3.0
@@ -6925,6 +4899,14 @@ snapshots:
ccount@2.0.1: {}
+ chai@5.3.3:
+ dependencies:
+ assertion-error: 2.0.1
+ check-error: 2.1.3
+ deep-eql: 5.0.2
+ loupe: 3.2.1
+ pathval: 2.0.1
+
chalk@4.1.2:
dependencies:
ansi-styles: 4.3.0
@@ -6938,6 +4920,8 @@ snapshots:
character-entities@2.0.2: {}
+ check-error@2.1.3: {}
+
chokidar@5.0.0:
dependencies:
readdirp: 5.1.1
@@ -7040,6 +5024,8 @@ snapshots:
dependencies:
character-entities: 2.0.2
+ deep-eql@5.0.2: {}
+
deep-is@0.1.4: {}
define-data-property@1.1.4:
@@ -7110,8 +5096,8 @@ snapshots:
emmet@2.4.11:
dependencies:
- "@emmetio/abbreviation": 2.3.3
- "@emmetio/css-abbreviation": 2.1.8
+ '@emmetio/abbreviation': 2.3.3
+ '@emmetio/css-abbreviation': 2.1.8
emoji-regex@10.6.0: {}
@@ -7241,61 +5227,61 @@ snapshots:
esbuild@0.25.12:
optionalDependencies:
- "@esbuild/aix-ppc64": 0.25.12
- "@esbuild/android-arm": 0.25.12
- "@esbuild/android-arm64": 0.25.12
- "@esbuild/android-x64": 0.25.12
- "@esbuild/darwin-arm64": 0.25.12
- "@esbuild/darwin-x64": 0.25.12
- "@esbuild/freebsd-arm64": 0.25.12
- "@esbuild/freebsd-x64": 0.25.12
- "@esbuild/linux-arm": 0.25.12
- "@esbuild/linux-arm64": 0.25.12
- "@esbuild/linux-ia32": 0.25.12
- "@esbuild/linux-loong64": 0.25.12
- "@esbuild/linux-mips64el": 0.25.12
- "@esbuild/linux-ppc64": 0.25.12
- "@esbuild/linux-riscv64": 0.25.12
- "@esbuild/linux-s390x": 0.25.12
- "@esbuild/linux-x64": 0.25.12
- "@esbuild/netbsd-arm64": 0.25.12
- "@esbuild/netbsd-x64": 0.25.12
- "@esbuild/openbsd-arm64": 0.25.12
- "@esbuild/openbsd-x64": 0.25.12
- "@esbuild/openharmony-arm64": 0.25.12
- "@esbuild/sunos-x64": 0.25.12
- "@esbuild/win32-arm64": 0.25.12
- "@esbuild/win32-ia32": 0.25.12
- "@esbuild/win32-x64": 0.25.12
+ '@esbuild/aix-ppc64': 0.25.12
+ '@esbuild/android-arm': 0.25.12
+ '@esbuild/android-arm64': 0.25.12
+ '@esbuild/android-x64': 0.25.12
+ '@esbuild/darwin-arm64': 0.25.12
+ '@esbuild/darwin-x64': 0.25.12
+ '@esbuild/freebsd-arm64': 0.25.12
+ '@esbuild/freebsd-x64': 0.25.12
+ '@esbuild/linux-arm': 0.25.12
+ '@esbuild/linux-arm64': 0.25.12
+ '@esbuild/linux-ia32': 0.25.12
+ '@esbuild/linux-loong64': 0.25.12
+ '@esbuild/linux-mips64el': 0.25.12
+ '@esbuild/linux-ppc64': 0.25.12
+ '@esbuild/linux-riscv64': 0.25.12
+ '@esbuild/linux-s390x': 0.25.12
+ '@esbuild/linux-x64': 0.25.12
+ '@esbuild/netbsd-arm64': 0.25.12
+ '@esbuild/netbsd-x64': 0.25.12
+ '@esbuild/openbsd-arm64': 0.25.12
+ '@esbuild/openbsd-x64': 0.25.12
+ '@esbuild/openharmony-arm64': 0.25.12
+ '@esbuild/sunos-x64': 0.25.12
+ '@esbuild/win32-arm64': 0.25.12
+ '@esbuild/win32-ia32': 0.25.12
+ '@esbuild/win32-x64': 0.25.12
esbuild@0.27.7:
optionalDependencies:
- "@esbuild/aix-ppc64": 0.27.7
- "@esbuild/android-arm": 0.27.7
- "@esbuild/android-arm64": 0.27.7
- "@esbuild/android-x64": 0.27.7
- "@esbuild/darwin-arm64": 0.27.7
- "@esbuild/darwin-x64": 0.27.7
- "@esbuild/freebsd-arm64": 0.27.7
- "@esbuild/freebsd-x64": 0.27.7
- "@esbuild/linux-arm": 0.27.7
- "@esbuild/linux-arm64": 0.27.7
- "@esbuild/linux-ia32": 0.27.7
- "@esbuild/linux-loong64": 0.27.7
- "@esbuild/linux-mips64el": 0.27.7
- "@esbuild/linux-ppc64": 0.27.7
- "@esbuild/linux-riscv64": 0.27.7
- "@esbuild/linux-s390x": 0.27.7
- "@esbuild/linux-x64": 0.27.7
- "@esbuild/netbsd-arm64": 0.27.7
- "@esbuild/netbsd-x64": 0.27.7
- "@esbuild/openbsd-arm64": 0.27.7
- "@esbuild/openbsd-x64": 0.27.7
- "@esbuild/openharmony-arm64": 0.27.7
- "@esbuild/sunos-x64": 0.27.7
- "@esbuild/win32-arm64": 0.27.7
- "@esbuild/win32-ia32": 0.27.7
- "@esbuild/win32-x64": 0.27.7
+ '@esbuild/aix-ppc64': 0.27.7
+ '@esbuild/android-arm': 0.27.7
+ '@esbuild/android-arm64': 0.27.7
+ '@esbuild/android-x64': 0.27.7
+ '@esbuild/darwin-arm64': 0.27.7
+ '@esbuild/darwin-x64': 0.27.7
+ '@esbuild/freebsd-arm64': 0.27.7
+ '@esbuild/freebsd-x64': 0.27.7
+ '@esbuild/linux-arm': 0.27.7
+ '@esbuild/linux-arm64': 0.27.7
+ '@esbuild/linux-ia32': 0.27.7
+ '@esbuild/linux-loong64': 0.27.7
+ '@esbuild/linux-mips64el': 0.27.7
+ '@esbuild/linux-ppc64': 0.27.7
+ '@esbuild/linux-riscv64': 0.27.7
+ '@esbuild/linux-s390x': 0.27.7
+ '@esbuild/linux-x64': 0.27.7
+ '@esbuild/netbsd-arm64': 0.27.7
+ '@esbuild/netbsd-x64': 0.27.7
+ '@esbuild/openbsd-arm64': 0.27.7
+ '@esbuild/openbsd-x64': 0.27.7
+ '@esbuild/openharmony-arm64': 0.27.7
+ '@esbuild/sunos-x64': 0.27.7
+ '@esbuild/win32-arm64': 0.27.7
+ '@esbuild/win32-ia32': 0.27.7
+ '@esbuild/win32-x64': 0.27.7
escalade@3.2.0: {}
@@ -7342,18 +5328,18 @@ snapshots:
eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0):
dependencies:
- "@eslint-community/eslint-utils": 4.10.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))
- "@eslint-community/regexpp": 4.12.2
- "@eslint/config-array": 0.21.2(supports-color@7.2.0)
- "@eslint/config-helpers": 0.4.2
- "@eslint/core": 0.17.0
- "@eslint/eslintrc": 3.3.7(supports-color@7.2.0)
- "@eslint/js": 9.39.5
- "@eslint/plugin-kit": 0.4.1
- "@humanfs/node": 0.16.8
- "@humanwhocodes/module-importer": 1.0.1
- "@humanwhocodes/retry": 0.4.3
- "@types/estree": 1.0.9
+ '@eslint-community/eslint-utils': 4.10.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))
+ '@eslint-community/regexpp': 4.12.2
+ '@eslint/config-array': 0.21.2(supports-color@7.2.0)
+ '@eslint/config-helpers': 0.4.2
+ '@eslint/core': 0.17.0
+ '@eslint/eslintrc': 3.3.7(supports-color@7.2.0)
+ '@eslint/js': 9.39.5
+ '@eslint/plugin-kit': 0.4.1
+ '@humanfs/node': 0.16.8
+ '@humanwhocodes/module-importer': 1.0.1
+ '@humanwhocodes/retry': 0.4.3
+ '@types/estree': 1.0.9
ajv: 6.15.0
chalk: 4.1.2
cross-spawn: 7.0.6
@@ -7401,12 +5387,14 @@ snapshots:
estree-walker@3.0.3:
dependencies:
- "@types/estree": 1.0.9
+ '@types/estree': 1.0.9
esutils@2.0.3: {}
eventemitter3@5.0.4: {}
+ expect-type@1.4.0: {}
+
extend@3.0.2: {}
fast-deep-equal@3.1.3: {}
@@ -7557,7 +5545,7 @@ snapshots:
hast-util-from-html@2.0.3:
dependencies:
- "@types/hast": 3.0.5
+ '@types/hast': 3.0.5
devlop: 1.1.0
hast-util-from-parse5: 8.0.3
parse5: 7.3.0
@@ -7566,8 +5554,8 @@ snapshots:
hast-util-from-parse5@8.0.3:
dependencies:
- "@types/hast": 3.0.5
- "@types/unist": 3.0.3
+ '@types/hast': 3.0.5
+ '@types/unist': 3.0.3
devlop: 1.1.0
hastscript: 9.0.1
property-information: 7.2.0
@@ -7577,17 +5565,17 @@ snapshots:
hast-util-is-element@3.0.0:
dependencies:
- "@types/hast": 3.0.5
+ '@types/hast': 3.0.5
hast-util-parse-selector@4.0.0:
dependencies:
- "@types/hast": 3.0.5
+ '@types/hast': 3.0.5
hast-util-raw@9.1.0:
dependencies:
- "@types/hast": 3.0.5
- "@types/unist": 3.0.3
- "@ungap/structured-clone": 1.4.0
+ '@types/hast': 3.0.5
+ '@types/unist': 3.0.3
+ '@ungap/structured-clone': 1.4.0
hast-util-from-parse5: 8.0.3
hast-util-to-parse5: 8.0.1
html-void-elements: 3.0.0
@@ -7601,8 +5589,8 @@ snapshots:
hast-util-to-html@9.0.5:
dependencies:
- "@types/hast": 3.0.5
- "@types/unist": 3.0.3
+ '@types/hast': 3.0.5
+ '@types/unist': 3.0.3
ccount: 2.0.1
comma-separated-tokens: 2.0.3
hast-util-whitespace: 3.0.0
@@ -7615,7 +5603,7 @@ snapshots:
hast-util-to-parse5@8.0.1:
dependencies:
- "@types/hast": 3.0.5
+ '@types/hast': 3.0.5
comma-separated-tokens: 2.0.3
devlop: 1.1.0
property-information: 7.2.0
@@ -7625,18 +5613,18 @@ snapshots:
hast-util-to-text@4.0.2:
dependencies:
- "@types/hast": 3.0.5
- "@types/unist": 3.0.3
+ '@types/hast': 3.0.5
+ '@types/unist': 3.0.3
hast-util-is-element: 3.0.0
unist-util-find-after: 5.0.0
hast-util-whitespace@3.0.0:
dependencies:
- "@types/hast": 3.0.5
+ '@types/hast': 3.0.5
hastscript@9.0.1:
dependencies:
- "@types/hast": 3.0.5
+ '@types/hast': 3.0.5
comma-separated-tokens: 2.0.3
hast-util-parse-selector: 4.0.0
property-information: 7.2.0
@@ -7810,6 +5798,8 @@ snapshots:
js-tokens@4.0.0: {}
+ js-tokens@9.0.1: {}
+
js-yaml@4.3.2:
dependencies:
argparse: 2.0.1
@@ -7911,6 +5901,8 @@ snapshots:
dependencies:
js-tokens: 4.0.0
+ loupe@3.2.1: {}
+
lru-cache@11.5.3: {}
lru-cache@5.1.1:
@@ -7919,12 +5911,12 @@ snapshots:
magic-string@0.30.21:
dependencies:
- "@jridgewell/sourcemap-codec": 1.6.0
+ '@jridgewell/sourcemap-codec': 1.6.0
magicast@0.5.5:
dependencies:
- "@babel/parser": 7.29.9
- "@babel/types": 7.29.8
+ '@babel/parser': 7.29.9
+ '@babel/types': 7.29.8
source-map-js: 1.2.2
markdown-table@3.0.4: {}
@@ -7933,21 +5925,21 @@ snapshots:
mdast-util-definitions@6.0.0:
dependencies:
- "@types/mdast": 4.0.4
- "@types/unist": 3.0.3
+ '@types/mdast': 4.0.4
+ '@types/unist': 3.0.3
unist-util-visit: 5.1.0
mdast-util-find-and-replace@3.0.3:
dependencies:
- "@types/mdast": 4.0.4
+ '@types/mdast': 4.0.4
escape-string-regexp: 5.0.0
unist-util-is: 6.0.1
unist-util-visit-parents: 6.0.2
mdast-util-from-markdown@2.1.0(supports-color@7.2.0):
dependencies:
- "@types/mdast": 4.0.4
- "@types/unist": 3.0.3
+ '@types/mdast': 4.0.4
+ '@types/unist': 3.0.3
decode-named-character-reference: 1.3.0
devlop: 1.1.0
mdast-util-to-string: 4.0.0
@@ -7963,7 +5955,7 @@ snapshots:
mdast-util-gfm-autolink-literal@2.0.1:
dependencies:
- "@types/mdast": 4.0.4
+ '@types/mdast': 4.0.4
ccount: 2.0.1
devlop: 1.1.0
mdast-util-find-and-replace: 3.0.3
@@ -7971,7 +5963,7 @@ snapshots:
mdast-util-gfm-footnote@2.1.0(supports-color@7.2.0):
dependencies:
- "@types/mdast": 4.0.4
+ '@types/mdast': 4.0.4
devlop: 1.1.0
mdast-util-from-markdown: 2.1.0(supports-color@7.2.0)
mdast-util-to-markdown: 2.2.0
@@ -7981,7 +5973,7 @@ snapshots:
mdast-util-gfm-strikethrough@2.0.1(supports-color@7.2.0):
dependencies:
- "@types/mdast": 4.0.4
+ '@types/mdast': 4.0.4
mdast-util-from-markdown: 2.1.0(supports-color@7.2.0)
mdast-util-to-markdown: 2.2.0
transitivePeerDependencies:
@@ -7989,7 +5981,7 @@ snapshots:
mdast-util-gfm-table@2.0.0(supports-color@7.2.0):
dependencies:
- "@types/mdast": 4.0.4
+ '@types/mdast': 4.0.4
devlop: 1.1.0
markdown-table: 3.0.4
mdast-util-from-markdown: 2.1.0(supports-color@7.2.0)
@@ -7999,7 +5991,7 @@ snapshots:
mdast-util-gfm-task-list-item@2.0.0(supports-color@7.2.0):
dependencies:
- "@types/mdast": 4.0.4
+ '@types/mdast': 4.0.4
devlop: 1.1.0
mdast-util-from-markdown: 2.1.0(supports-color@7.2.0)
mdast-util-to-markdown: 2.2.0
@@ -8020,14 +6012,14 @@ snapshots:
mdast-util-phrasing@4.1.0:
dependencies:
- "@types/mdast": 4.0.4
+ '@types/mdast': 4.0.4
unist-util-is: 6.0.1
mdast-util-to-hast@13.2.1:
dependencies:
- "@types/hast": 3.0.5
- "@types/mdast": 4.0.4
- "@ungap/structured-clone": 1.4.0
+ '@types/hast': 3.0.5
+ '@types/mdast': 4.0.4
+ '@ungap/structured-clone': 1.4.0
devlop: 1.1.0
micromark-util-sanitize-uri: 2.0.1
trim-lines: 3.0.1
@@ -8037,8 +6029,8 @@ snapshots:
mdast-util-to-markdown@2.2.0:
dependencies:
- "@types/mdast": 4.0.4
- "@types/unist": 3.0.3
+ '@types/mdast': 4.0.4
+ '@types/unist': 3.0.3
longest-streak: 3.1.0
mdast-util-phrasing: 4.1.0
mdast-util-to-string: 4.0.0
@@ -8051,7 +6043,7 @@ snapshots:
mdast-util-to-string@4.0.0:
dependencies:
- "@types/mdast": 4.0.4
+ '@types/mdast': 4.0.4
mdn-data@2.0.28: {}
@@ -8233,7 +6225,7 @@ snapshots:
micromark@4.0.3(supports-color@7.2.0):
dependencies:
- "@types/debug": 4.1.13
+ '@types/debug': 4.1.13
debug: 4.4.3(supports-color@7.2.0)
decode-named-character-reference: 1.3.0
devlop: 1.1.0
@@ -8276,7 +6268,7 @@ snapshots:
nlcst-to-string@4.0.0:
dependencies:
- "@types/nlcst": 2.0.3
+ '@types/nlcst': 2.0.3
node-exports-info@1.6.2:
dependencies:
@@ -8392,8 +6384,8 @@ snapshots:
parse-latin@7.0.0:
dependencies:
- "@types/nlcst": 2.0.3
- "@types/unist": 3.0.3
+ '@types/nlcst': 2.0.3
+ '@types/unist': 3.0.3
nlcst-to-string: 4.0.0
unist-util-modify-children: 4.0.0
unist-util-visit-children: 3.0.0
@@ -8411,6 +6403,10 @@ snapshots:
path-parse@1.0.7: {}
+ pathe@2.0.3: {}
+
+ pathval@2.0.1: {}
+
piccolore@0.1.3: {}
picocolors@1.1.1: {}
@@ -8502,32 +6498,32 @@ snapshots:
rehype-parse@9.0.1:
dependencies:
- "@types/hast": 3.0.5
+ '@types/hast': 3.0.5
hast-util-from-html: 2.0.3
unified: 11.0.5
rehype-raw@7.0.0:
dependencies:
- "@types/hast": 3.0.5
+ '@types/hast': 3.0.5
hast-util-raw: 9.1.0
vfile: 6.0.3
rehype-stringify@10.0.1:
dependencies:
- "@types/hast": 3.0.5
+ '@types/hast': 3.0.5
hast-util-to-html: 9.0.5
unified: 11.0.5
rehype@13.0.2:
dependencies:
- "@types/hast": 3.0.5
+ '@types/hast': 3.0.5
rehype-parse: 9.0.1
rehype-stringify: 10.0.1
unified: 11.0.5
remark-gfm@4.0.1(supports-color@7.2.0):
dependencies:
- "@types/mdast": 4.0.4
+ '@types/mdast': 4.0.4
mdast-util-gfm: 3.1.0(supports-color@7.2.0)
micromark-extension-gfm: 3.0.0
remark-parse: 11.0.0(supports-color@7.2.0)
@@ -8538,7 +6534,7 @@ snapshots:
remark-parse@11.0.0(supports-color@7.2.0):
dependencies:
- "@types/mdast": 4.0.4
+ '@types/mdast': 4.0.4
mdast-util-from-markdown: 2.1.0(supports-color@7.2.0)
micromark-util-types: 2.0.3
unified: 11.0.5
@@ -8547,8 +6543,8 @@ snapshots:
remark-rehype@11.1.2:
dependencies:
- "@types/hast": 3.0.5
- "@types/mdast": 4.0.4
+ '@types/hast': 3.0.5
+ '@types/mdast': 4.0.4
mdast-util-to-hast: 13.2.1
unified: 11.0.5
vfile: 6.0.3
@@ -8562,7 +6558,7 @@ snapshots:
remark-stringify@11.0.0:
dependencies:
- "@types/mdast": 4.0.4
+ '@types/mdast': 4.0.4
mdast-util-to-markdown: 2.2.0
unified: 11.0.5
@@ -8585,59 +6581,59 @@ snapshots:
retext-latin@4.0.0:
dependencies:
- "@types/nlcst": 2.0.3
+ '@types/nlcst': 2.0.3
parse-latin: 7.0.0
unified: 11.0.5
retext-smartypants@6.2.0:
dependencies:
- "@types/nlcst": 2.0.3
+ '@types/nlcst': 2.0.3
nlcst-to-string: 4.0.0
unist-util-visit: 5.1.0
retext-stringify@4.0.0:
dependencies:
- "@types/nlcst": 2.0.3
+ '@types/nlcst': 2.0.3
nlcst-to-string: 4.0.0
unified: 11.0.5
retext@9.0.0:
dependencies:
- "@types/nlcst": 2.0.3
+ '@types/nlcst': 2.0.3
retext-latin: 4.0.0
retext-stringify: 4.0.0
unified: 11.0.5
rollup@4.65.0:
dependencies:
- "@types/estree": 1.0.9
+ '@types/estree': 1.0.9
optionalDependencies:
- "@napi-rs/lzma-linux-x64-gnu": 1.5.1
- "@rollup/rollup-android-arm-eabi": 4.65.0
- "@rollup/rollup-android-arm64": 4.65.0
- "@rollup/rollup-darwin-arm64": 4.65.0
- "@rollup/rollup-darwin-x64": 4.65.0
- "@rollup/rollup-freebsd-arm64": 4.65.0
- "@rollup/rollup-freebsd-x64": 4.65.0
- "@rollup/rollup-linux-arm-gnueabihf": 4.65.0
- "@rollup/rollup-linux-arm-musleabihf": 4.65.0
- "@rollup/rollup-linux-arm64-gnu": 4.65.0
- "@rollup/rollup-linux-arm64-musl": 4.65.0
- "@rollup/rollup-linux-loong64-gnu": 4.65.0
- "@rollup/rollup-linux-loong64-musl": 4.65.0
- "@rollup/rollup-linux-ppc64-gnu": 4.65.0
- "@rollup/rollup-linux-ppc64-musl": 4.65.0
- "@rollup/rollup-linux-riscv64-gnu": 4.65.0
- "@rollup/rollup-linux-riscv64-musl": 4.65.0
- "@rollup/rollup-linux-s390x-gnu": 4.65.0
- "@rollup/rollup-linux-x64-gnu": 4.65.0
- "@rollup/rollup-linux-x64-musl": 4.65.0
- "@rollup/rollup-openbsd-x64": 4.65.0
- "@rollup/rollup-openharmony-arm64": 4.65.0
- "@rollup/rollup-win32-arm64-msvc": 4.65.0
- "@rollup/rollup-win32-ia32-msvc": 4.65.0
- "@rollup/rollup-win32-x64-gnu": 4.65.0
- "@rollup/rollup-win32-x64-msvc": 4.65.0
+ '@napi-rs/lzma-linux-x64-gnu': 1.5.1
+ '@rollup/rollup-android-arm-eabi': 4.65.0
+ '@rollup/rollup-android-arm64': 4.65.0
+ '@rollup/rollup-darwin-arm64': 4.65.0
+ '@rollup/rollup-darwin-x64': 4.65.0
+ '@rollup/rollup-freebsd-arm64': 4.65.0
+ '@rollup/rollup-freebsd-x64': 4.65.0
+ '@rollup/rollup-linux-arm-gnueabihf': 4.65.0
+ '@rollup/rollup-linux-arm-musleabihf': 4.65.0
+ '@rollup/rollup-linux-arm64-gnu': 4.65.0
+ '@rollup/rollup-linux-arm64-musl': 4.65.0
+ '@rollup/rollup-linux-loong64-gnu': 4.65.0
+ '@rollup/rollup-linux-loong64-musl': 4.65.0
+ '@rollup/rollup-linux-ppc64-gnu': 4.65.0
+ '@rollup/rollup-linux-ppc64-musl': 4.65.0
+ '@rollup/rollup-linux-riscv64-gnu': 4.65.0
+ '@rollup/rollup-linux-riscv64-musl': 4.65.0
+ '@rollup/rollup-linux-s390x-gnu': 4.65.0
+ '@rollup/rollup-linux-x64-gnu': 4.65.0
+ '@rollup/rollup-linux-x64-musl': 4.65.0
+ '@rollup/rollup-openbsd-x64': 4.65.0
+ '@rollup/rollup-openharmony-arm64': 4.65.0
+ '@rollup/rollup-win32-arm64-msvc': 4.65.0
+ '@rollup/rollup-win32-ia32-msvc': 4.65.0
+ '@rollup/rollup-win32-x64-gnu': 4.65.0
+ '@rollup/rollup-win32-x64-msvc': 4.65.0
fsevents: 2.3.3
safe-array-concat@1.1.4:
@@ -8693,34 +6689,34 @@ snapshots:
sharp@0.34.5:
dependencies:
- "@img/colour": 1.1.0
+ '@img/colour': 1.1.0
detect-libc: 2.1.2
semver: 7.8.5
optionalDependencies:
- "@img/sharp-darwin-arm64": 0.34.5
- "@img/sharp-darwin-x64": 0.34.5
- "@img/sharp-libvips-darwin-arm64": 1.2.4
- "@img/sharp-libvips-darwin-x64": 1.2.4
- "@img/sharp-libvips-linux-arm": 1.2.4
- "@img/sharp-libvips-linux-arm64": 1.2.4
- "@img/sharp-libvips-linux-ppc64": 1.2.4
- "@img/sharp-libvips-linux-riscv64": 1.2.4
- "@img/sharp-libvips-linux-s390x": 1.2.4
- "@img/sharp-libvips-linux-x64": 1.2.4
- "@img/sharp-libvips-linuxmusl-arm64": 1.2.4
- "@img/sharp-libvips-linuxmusl-x64": 1.2.4
- "@img/sharp-linux-arm": 0.34.5
- "@img/sharp-linux-arm64": 0.34.5
- "@img/sharp-linux-ppc64": 0.34.5
- "@img/sharp-linux-riscv64": 0.34.5
- "@img/sharp-linux-s390x": 0.34.5
- "@img/sharp-linux-x64": 0.34.5
- "@img/sharp-linuxmusl-arm64": 0.34.5
- "@img/sharp-linuxmusl-x64": 0.34.5
- "@img/sharp-wasm32": 0.34.5
- "@img/sharp-win32-arm64": 0.34.5
- "@img/sharp-win32-ia32": 0.34.5
- "@img/sharp-win32-x64": 0.34.5
+ '@img/sharp-darwin-arm64': 0.34.5
+ '@img/sharp-darwin-x64': 0.34.5
+ '@img/sharp-libvips-darwin-arm64': 1.2.4
+ '@img/sharp-libvips-darwin-x64': 1.2.4
+ '@img/sharp-libvips-linux-arm': 1.2.4
+ '@img/sharp-libvips-linux-arm64': 1.2.4
+ '@img/sharp-libvips-linux-ppc64': 1.2.4
+ '@img/sharp-libvips-linux-riscv64': 1.2.4
+ '@img/sharp-libvips-linux-s390x': 1.2.4
+ '@img/sharp-libvips-linux-x64': 1.2.4
+ '@img/sharp-libvips-linuxmusl-arm64': 1.2.4
+ '@img/sharp-libvips-linuxmusl-x64': 1.2.4
+ '@img/sharp-linux-arm': 0.34.5
+ '@img/sharp-linux-arm64': 0.34.5
+ '@img/sharp-linux-ppc64': 0.34.5
+ '@img/sharp-linux-riscv64': 0.34.5
+ '@img/sharp-linux-s390x': 0.34.5
+ '@img/sharp-linux-x64': 0.34.5
+ '@img/sharp-linuxmusl-arm64': 0.34.5
+ '@img/sharp-linuxmusl-x64': 0.34.5
+ '@img/sharp-wasm32': 0.34.5
+ '@img/sharp-win32-arm64': 0.34.5
+ '@img/sharp-win32-ia32': 0.34.5
+ '@img/sharp-win32-x64': 0.34.5
optional: true
shebang-command@2.0.0:
@@ -8731,14 +6727,14 @@ snapshots:
shiki@3.23.0:
dependencies:
- "@shikijs/core": 3.23.0
- "@shikijs/engine-javascript": 3.23.0
- "@shikijs/engine-oniguruma": 3.23.0
- "@shikijs/langs": 3.23.0
- "@shikijs/themes": 3.23.0
- "@shikijs/types": 3.23.0
- "@shikijs/vscode-textmate": 10.1.0
- "@types/hast": 3.0.5
+ '@shikijs/core': 3.23.0
+ '@shikijs/engine-javascript': 3.23.0
+ '@shikijs/engine-oniguruma': 3.23.0
+ '@shikijs/langs': 3.23.0
+ '@shikijs/themes': 3.23.0
+ '@shikijs/types': 3.23.0
+ '@shikijs/vscode-textmate': 10.1.0
+ '@types/hast': 3.0.5
side-channel-list@1.0.1:
dependencies:
@@ -8768,6 +6764,8 @@ snapshots:
side-channel-map: 1.0.1
side-channel-weakmap: 1.0.2
+ siginfo@2.0.0: {}
+
sisteransi@1.0.5: {}
smol-toml@1.9.1: {}
@@ -8776,6 +6774,10 @@ snapshots:
space-separated-tokens@2.0.2: {}
+ stackback@0.0.2: {}
+
+ std-env@3.10.0: {}
+
stop-iteration-iterator@1.1.0:
dependencies:
es-errors: 1.3.0
@@ -8858,6 +6860,10 @@ snapshots:
strip-json-comments@3.1.1: {}
+ strip-literal@3.1.0:
+ dependencies:
+ js-tokens: 9.0.1
+
supports-color@7.2.0:
dependencies:
has-flag: 4.0.0
@@ -8882,6 +6888,10 @@ snapshots:
tiny-inflate@1.0.3: {}
+ tinybench@2.9.0: {}
+
+ tinyexec@0.3.2: {}
+
tinyexec@1.3.1: {}
tinyglobby@0.2.17:
@@ -8889,6 +6899,12 @@ snapshots:
fdir: 6.5.0(picomatch@4.0.7)
picomatch: 4.0.7
+ tinypool@1.1.1: {}
+
+ tinyrainbow@2.0.0: {}
+
+ tinyspy@4.0.6: {}
+
trim-lines@3.0.1: {}
trough@2.2.0: {}
@@ -8962,11 +6978,13 @@ snapshots:
uncrypto@0.1.3: {}
+ undici-types@6.21.0: {}
+
undici@8.12.3: {}
unified@11.0.5:
dependencies:
- "@types/unist": 3.0.3
+ '@types/unist': 3.0.3
bail: 2.0.2
devlop: 1.1.0
extend: 3.0.2
@@ -8982,43 +7000,43 @@ snapshots:
unist-util-find-after@5.0.0:
dependencies:
- "@types/unist": 3.0.3
+ '@types/unist': 3.0.3
unist-util-is: 6.0.1
unist-util-is@6.0.1:
dependencies:
- "@types/unist": 3.0.3
+ '@types/unist': 3.0.3
unist-util-modify-children@4.0.0:
dependencies:
- "@types/unist": 3.0.3
+ '@types/unist': 3.0.3
array-iterate: 2.0.1
unist-util-position@5.0.0:
dependencies:
- "@types/unist": 3.0.3
+ '@types/unist': 3.0.3
unist-util-remove-position@5.0.0:
dependencies:
- "@types/unist": 3.0.3
+ '@types/unist': 3.0.3
unist-util-visit: 5.1.0
unist-util-stringify-position@4.0.0:
dependencies:
- "@types/unist": 3.0.3
+ '@types/unist': 3.0.3
unist-util-visit-children@3.0.0:
dependencies:
- "@types/unist": 3.0.3
+ '@types/unist': 3.0.3
unist-util-visit-parents@6.0.2:
dependencies:
- "@types/unist": 3.0.3
+ '@types/unist': 3.0.3
unist-util-is: 6.0.1
unist-util-visit@5.1.0:
dependencies:
- "@types/unist": 3.0.3
+ '@types/unist': 3.0.3
unist-util-is: 6.0.1
unist-util-visit-parents: 6.0.2
@@ -9045,20 +7063,41 @@ snapshots:
vfile-location@5.0.3:
dependencies:
- "@types/unist": 3.0.3
+ '@types/unist': 3.0.3
vfile: 6.0.3
vfile-message@4.0.3:
dependencies:
- "@types/unist": 3.0.3
+ '@types/unist': 3.0.3
unist-util-stringify-position: 4.0.0
vfile@6.0.3:
dependencies:
- "@types/unist": 3.0.3
+ '@types/unist': 3.0.3
vfile-message: 4.0.3
- vite@6.4.5(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.1):
+ vite-node@3.2.4(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)(supports-color@7.2.0)(yaml@2.9.1):
+ dependencies:
+ cac: 6.7.14
+ debug: 4.4.3(supports-color@7.2.0)
+ es-module-lexer: 1.7.0
+ pathe: 2.0.3
+ vite: 6.4.5(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.1)
+ transitivePeerDependencies:
+ - '@types/node'
+ - jiti
+ - less
+ - lightningcss
+ - sass
+ - sass-embedded
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+ - tsx
+ - yaml
+
+ vite@6.4.5(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.1):
dependencies:
esbuild: 0.25.12
fdir: 6.5.0(picomatch@4.0.7)
@@ -9067,14 +7106,57 @@ snapshots:
rollup: 4.65.0
tinyglobby: 0.2.17
optionalDependencies:
+ '@types/node': 22.20.5
fsevents: 2.3.3
jiti: 2.7.0
lightningcss: 1.32.0
yaml: 2.9.1
- vitefu@1.1.3(vite@6.4.5(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.1)):
+ vitefu@1.1.3(vite@6.4.5(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.1)):
+ optionalDependencies:
+ vite: 6.4.5(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.1)
+
+ vitest@3.2.7(@types/debug@4.1.13)(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)(supports-color@7.2.0)(yaml@2.9.1):
+ dependencies:
+ '@types/chai': 5.2.3
+ '@vitest/expect': 3.2.7
+ '@vitest/mocker': 3.2.7(vite@6.4.5(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.1))
+ '@vitest/pretty-format': 3.2.7
+ '@vitest/runner': 3.2.7
+ '@vitest/snapshot': 3.2.7
+ '@vitest/spy': 3.2.7
+ '@vitest/utils': 3.2.7
+ chai: 5.3.3
+ debug: 4.4.3(supports-color@7.2.0)
+ expect-type: 1.4.0
+ magic-string: 0.30.21
+ pathe: 2.0.3
+ picomatch: 4.0.7
+ std-env: 3.10.0
+ tinybench: 2.9.0
+ tinyexec: 0.3.2
+ tinyglobby: 0.2.17
+ tinypool: 1.1.1
+ tinyrainbow: 2.0.0
+ vite: 6.4.5(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.1)
+ vite-node: 3.2.4(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)(supports-color@7.2.0)(yaml@2.9.1)
+ why-is-node-running: 2.3.0
optionalDependencies:
- vite: 6.4.5(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.1)
+ '@types/debug': 4.1.13
+ '@types/node': 22.20.5
+ transitivePeerDependencies:
+ - jiti
+ - less
+ - lightningcss
+ - msw
+ - sass
+ - sass-embedded
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+ - tsx
+ - yaml
volar-service-css@0.0.71(@volar/language-service@2.4.30(typescript@5.9.3)):
dependencies:
@@ -9082,16 +7164,16 @@ snapshots:
vscode-languageserver-textdocument: 1.0.16
vscode-uri: 3.2.0
optionalDependencies:
- "@volar/language-service": 2.4.30(typescript@5.9.3)
+ '@volar/language-service': 2.4.30(typescript@5.9.3)
volar-service-emmet@0.0.71(@volar/language-service@2.4.30(typescript@5.9.3)):
dependencies:
- "@emmetio/css-parser": 0.4.1
- "@emmetio/html-matcher": 1.3.0
- "@vscode/emmet-helper": 2.11.0
+ '@emmetio/css-parser': 0.4.1
+ '@emmetio/html-matcher': 1.3.0
+ '@vscode/emmet-helper': 2.11.0
vscode-uri: 3.2.0
optionalDependencies:
- "@volar/language-service": 2.4.30(typescript@5.9.3)
+ '@volar/language-service': 2.4.30(typescript@5.9.3)
volar-service-html@0.0.71(@volar/language-service@2.4.30(typescript@5.9.3)):
dependencies:
@@ -9099,20 +7181,20 @@ snapshots:
vscode-languageserver-textdocument: 1.0.16
vscode-uri: 3.2.0
optionalDependencies:
- "@volar/language-service": 2.4.30(typescript@5.9.3)
+ '@volar/language-service': 2.4.30(typescript@5.9.3)
volar-service-prettier@0.0.71(@volar/language-service@2.4.30(typescript@5.9.3))(prettier@3.9.10):
dependencies:
vscode-uri: 3.2.0
optionalDependencies:
- "@volar/language-service": 2.4.30(typescript@5.9.3)
+ '@volar/language-service': 2.4.30(typescript@5.9.3)
prettier: 3.9.10
volar-service-typescript-twoslash-queries@0.0.71(@volar/language-service@2.4.30(typescript@5.9.3))(typescript@5.9.3):
dependencies:
vscode-uri: 3.2.0
optionalDependencies:
- "@volar/language-service": 2.4.30(typescript@5.9.3)
+ '@volar/language-service': 2.4.30(typescript@5.9.3)
typescript: 5.9.3
volar-service-typescript@0.0.71(@volar/language-service@2.4.30(typescript@5.9.3))(typescript@5.9.3):
@@ -9124,7 +7206,7 @@ snapshots:
vscode-nls: 5.2.0
vscode-uri: 3.2.0
optionalDependencies:
- "@volar/language-service": 2.4.30(typescript@5.9.3)
+ '@volar/language-service': 2.4.30(typescript@5.9.3)
typescript: 5.9.3
volar-service-yaml@0.0.71(@volar/language-service@2.4.30(typescript@5.9.3)):
@@ -9132,18 +7214,18 @@ snapshots:
vscode-uri: 3.2.0
yaml-language-server: 1.23.0
optionalDependencies:
- "@volar/language-service": 2.4.30(typescript@5.9.3)
+ '@volar/language-service': 2.4.30(typescript@5.9.3)
vscode-css-languageservice@6.3.10:
dependencies:
- "@vscode/l10n": 0.0.18
+ '@vscode/l10n': 0.0.18
vscode-languageserver-textdocument: 1.0.16
vscode-languageserver-types: 3.17.5
vscode-uri: 3.2.0
vscode-html-languageservice@5.6.2:
dependencies:
- "@vscode/l10n": 0.0.18
+ '@vscode/l10n': 0.0.18
vscode-languageserver-textdocument: 1.0.16
vscode-languageserver-types: 3.18.5
vscode-uri: 3.2.0
@@ -9233,6 +7315,11 @@ snapshots:
dependencies:
isexe: 2.0.0
+ why-is-node-running@2.3.0:
+ dependencies:
+ siginfo: 2.0.0
+ stackback: 0.0.2
+
widest-line@5.0.0:
dependencies:
string-width: 7.2.0
@@ -9253,7 +7340,7 @@ snapshots:
yaml-language-server@1.23.0:
dependencies:
- "@vscode/l10n": 0.0.18
+ '@vscode/l10n': 0.0.18
ajv: 8.20.0
ajv-draft-04: 1.0.0(ajv@8.20.0)
ajv-i18n: 4.2.0(ajv@8.20.0)
diff --git a/web/src/components/Visualizer.tsx b/web/src/components/Visualizer.tsx
new file mode 100644
index 0000000..35dcea9
--- /dev/null
+++ b/web/src/components/Visualizer.tsx
@@ -0,0 +1,389 @@
+import { useCallback, useEffect, useMemo, useRef, useState } from "react";
+import { loadEngine } from "@/lib/engine";
+import { PRESETS } from "@/lib/presets";
+import { quantize } from "@/lib/quantize";
+import { attention } from "@/lib/reference";
+import { flashTileOrder, naiveTileOrder, type TileRef } from "@/lib/schedule";
+import {
+ FLASH_STATES,
+ NAIVE_STATES,
+ type EngineInstance,
+ type EngineModule,
+ type Snapshot,
+ type TileState,
+} from "@/lib/state-schema";
+
+const MAX_STEPS = 400_000;
+
+interface Settings {
+ preset: number;
+ mode: 0 | 1;
+ causal: boolean;
+ overlap: boolean;
+ qrows: number;
+ latency: number;
+}
+
+interface Result {
+ out: number[][];
+ maxErr: number;
+ probs: number[][] | null;
+}
+
+const panel = { background: "var(--panel)" } as const;
+const muted = { color: "var(--muted)" } as const;
+
+function matrix(flat: number[], rows: number, cols: number): number[][] {
+ const m: number[][] = [];
+ for (let r = 0; r < rows; r++) m.push(flat.slice(r * cols, (r + 1) * cols));
+ return m;
+}
+
+export default function Visualizer() {
+ const [mod, setMod] = useState(null);
+ const [error, setError] = useState(null);
+ const [settings, setSettings] = useState({
+ preset: 0,
+ mode: 0,
+ causal: PRESETS[0]?.causal ?? false,
+ overlap: false,
+ qrows: 4,
+ latency: 10,
+ });
+ const [stepCount, setStepCount] = useState(0);
+ const [snap, setSnap] = useState(null);
+ const [tile, setTile] = useState(null);
+ const [finished, setFinished] = useState(false);
+ const [result, setResult] = useState(null);
+ const simRef = useRef(null);
+
+ const preset = PRESETS[settings.preset] ?? PRESETS[0];
+ const n = preset?.q.length ?? 4;
+ const labels: string[] = preset?.labels ?? [];
+ const qrowOptions = [4, 8, 16, 32].filter((q) => q <= n);
+
+ useEffect(() => {
+ loadEngine().then(setMod).catch((e: unknown) => setError(e instanceof Error ? e.message : String(e)));
+ return () => simRef.current?.delete();
+ }, []);
+
+ const order: TileRef[] = useMemo(() => {
+ if (!preset) return [];
+ return settings.mode === 0
+ ? flashTileOrder(n, settings.qrows, settings.causal)
+ : naiveTileOrder(n, settings.causal);
+ }, [preset, n, settings.mode, settings.qrows, settings.causal]);
+
+ /** Advance one clock. The DONE edge is followed by one finalizing edge (counters are final after it). */
+ const advance = useCallback((sim: EngineInstance, state: { count: number; finished: boolean }) => {
+ if (state.finished) return null;
+ let s = sim.step();
+ state.count++;
+ if (s.done) {
+ s = sim.step();
+ state.count++;
+ state.finished = true;
+ }
+ return s;
+ }, []);
+
+ /** Publish the state of the engine to the view. Builds the result once the run has finished. */
+ const commit = useCallback(
+ (sim: EngineInstance, count: number, done: boolean, last: Snapshot) => {
+ setStepCount(count);
+ setSnap(last);
+ setFinished(done);
+ setTile(sim.getTile());
+ if (!done || !preset) {
+ setResult(null);
+ return;
+ }
+ const qz = quantize(preset.q, preset.k, preset.v);
+ const out = matrix(sim.readOutput(), n, 4).map((row) => row.map((v) => (v / 256) * qz.sv));
+ const ref = attention(preset.q, preset.k, preset.v, settings.causal).out;
+ let maxErr = 0;
+ out.forEach((row, i) => row.forEach((v, c) => (maxErr = Math.max(maxErr, Math.abs(v - (ref[i]?.[c] ?? 0))))));
+ const probs =
+ settings.mode === 1 ? matrix(sim.readProbabilities(), n, n).map((row) => row.map((v) => v / 256)) : null;
+ setResult({ out, maxErr, probs });
+ },
+ [preset, n, settings],
+ );
+
+ /** Rebuild the run from reset and advance `target` clocks. Used by Start and by step-back. */
+ const seek = useCallback(
+ (target: number) => {
+ if (!mod || !preset) return;
+ simRef.current?.delete();
+ const qz = quantize(preset.q, preset.k, preset.v);
+ const sim = new mod.TinyAttnSim();
+ sim.configure(n, settings.qrows, settings.causal, settings.mode, settings.overlap, settings.latency, qz.cfgScale);
+ sim.loadQKV(qz.q, qz.k, qz.v);
+ sim.start();
+ simRef.current = sim;
+
+ const state = { count: 0, finished: false };
+ let last: Snapshot = sim.snapshot();
+ while (state.count < target && !state.finished) {
+ last = advance(sim, state) ?? last;
+ }
+ commit(sim, state.count, state.finished, last);
+ },
+ [mod, preset, n, settings, advance, commit],
+ );
+
+ const stepOnce = () => {
+ const sim = simRef.current;
+ if (!sim) return seek(1);
+ const state = { count: stepCount, finished };
+ const s = advance(sim, state);
+ if (!s) return;
+ commit(sim, state.count, state.finished, s);
+ };
+
+ const runToEnd = () => {
+ const sim = simRef.current;
+ if (!sim || finished) return;
+ const state = { count: stepCount, finished };
+ let last: Snapshot | null = null;
+ while (!state.finished && state.count < MAX_STEPS) last = advance(sim, state) ?? last;
+ commit(sim, state.count, state.finished, last ?? sim.snapshot());
+ };
+
+ const reset = () => {
+ simRef.current?.delete();
+ simRef.current = null;
+ setStepCount(0);
+ setSnap(null);
+ setTile(null);
+ setFinished(false);
+ setResult(null);
+ };
+
+ const setPreset = (i: number) => {
+ reset();
+ setSettings((s) => ({ ...s, preset: i, causal: PRESETS[i]?.causal ?? false, qrows: Math.min(s.qrows, PRESETS[i]?.q.length ?? 4) }));
+ };
+
+ // ---- derived view
+ const nb = n / 4;
+ const tilesStarted = snap?.tiles ?? 0;
+ const orderIndex = new Map();
+ order.forEach((t, i) => orderIndex.set(`${t.qi},${t.kj}`, i));
+ const stateNames = settings.mode === 0 ? FLASH_STATES : NAIVE_STATES;
+ const stateName = snap ? (stateNames[snap.ctrlState] ?? `#${snap.ctrlState}`) : "not started";
+ const cellClass = (qi: number, kj: number) => {
+ if (settings.causal && kj > qi) return { bg: "transparent", label: "masked" };
+ const idx = orderIndex.get(`${qi},${kj}`);
+ if (idx === undefined) return { bg: "transparent", label: "" };
+ if (idx < tilesStarted - 1) return { bg: "var(--ok)", label: "done" };
+ if (idx === tilesStarted - 1 && snap?.busy) return { bg: "var(--accent)", label: "in flight" };
+ if (idx === tilesStarted - 1) return { bg: "var(--ok)", label: "done" };
+ return { bg: "var(--panel)", label: "" };
+ };
+
+ const fmt = (v: number, digits = 0) => (Number.isFinite(v) ? v.toFixed(digits) : "-");
+
+ if (error) return {error}
;
+ if (!mod) return Loading engine…
;
+
+ return (
+
+ {/* controls */}
+
+
+ Preset
+ setPreset(Number(e.target.value))}>
+ {PRESETS.map((p, i) => (
+ {p.name} (N={p.q.length})
+ ))}
+
+
+
+ Schedule
+ { reset(); setSettings((s) => ({ ...s, mode: Number(e.target.value) as 0 | 1 })); }}>
+ FLASH
+ NAIVE
+
+
+
+ { reset(); setSettings((s) => ({ ...s, causal: e.target.checked })); }} />
+ Causal
+
+ {settings.mode === 0 && (
+ <>
+
+ { reset(); setSettings((s) => ({ ...s, overlap: e.target.checked })); }} />
+ Overlap
+
+
+ Q block rows
+ { reset(); setSettings((s) => ({ ...s, qrows: Number(e.target.value) })); }}>
+ {qrowOptions.map((q) => {q} )}
+
+
+ >
+ )}
+
+ HBM latency: {settings.latency}
+ { reset(); setSettings((s) => ({ ...s, latency: Number(e.target.value) })); }} />
+
+
+
+
+ seek(0)}>Start
+ seek(Math.max(0, stepCount - 1))}>◀ Back
+ Step ▶
+ Run to end
+ Reset
+
+
+ {/* status */}
+
+
+
+
Controller
{stateName}
+
+
+
HBM read / write
+
{snap?.hbmRdBytes ?? 0} B / {snap?.hbmWrBytes ?? 0} B
+
+
+
Tiles / K-V loads
+
{snap?.tiles ?? 0} / {snap?.kvLoads ?? 0}
+
+
+
+
+ {/* schedule */}
+
+
+ {settings.mode === 0 ? "Tile schedule (row groups × K/V tiles)" : "Tile schedule, pass 1 (Z tiles)"}
+
+
+
+ {Array.from({ length: nb }, (_, kj) => (
+
kv{kj}
+ ))}
+ {Array.from({ length: nb }, (_, qi) => (
+
+
q{qi}
+ {Array.from({ length: nb }, (_, kj) => {
+ const c = cellClass(qi, kj);
+ return (
+
+ {c.label === "in flight" ? "●" : ""}
+
+ );
+ })}
+
+ ))}
+
+
+ Green: finished. Blue: in flight. Faded: masked by the causal mask.
+ {settings.mode === 1 ? " NAIVE passes 2 to 4 reuse these tiles." : ""}
+
+
+
+ {/* current tile */}
+
+ Current tile values
+ {tile && tilesStarted > 0 ? (
+
+ {settings.mode === 0 ? (
+ <>
+
Row group {tile.curGrp} (rows {tile.curGrp * 4}–{tile.curGrp * 4 + 3})
+
+
+
+
+ fmt(v)} />
+ fmt(v)} />
+ fmt(v)} />
+
+ >
+ ) : (
+
+ NAIVE tiles go through HBM, not the tile core, so the per-element S, Z and P are not shown here.
+ The row max m and sum l are shown below; the final probabilities P are in the matrix after the run.
+
+ )}
+ {settings.mode === 1 && (
+
+ fmt(v)} />
+ fmt(v)} />
+
+ )}
+
+
+ ) : (
+ Press Start, then Step.
+ )}
+
+
+
+ {/* result */}
+ {result && (
+
+ Output
+
+ Max |engine − float attention| = {result.maxErr.toFixed(4)} (INT8 quantization of Q, K and V dominates).
+
+
+ {result.probs && (
+
+
Attention probabilities P (from HBM, NAIVE)
+
+ {result.probs.flatMap((row, i) =>
+ row.map((p, j) => (
+
+ )),
+ )}
+
+ {labels.length === n && (
+
+ {labels.map((l, i) => {i}:{l} )}
+
+ )}
+
+ )}
+
+ )}
+
+ );
+}
+
+function Grid({ title, values, cols }: { title: string; values: number[]; cols: number }) {
+ const rows: number[][] = [];
+ for (let r = 0; r < values.length / cols; r++) rows.push(values.slice(r * cols, (r + 1) * cols));
+ return (
+
+
{title}
+
+ {rows.flatMap((row, i) => row.map((v, j) => {v} ))}
+
+
+ );
+}
+
+function Vec({ title, values, fmt }: { title: string; values: number[]; fmt: (v: number) => string }) {
+ return (
+
+
{title}
+
{values.map((v) => fmt(v)).join(" ")}
+
+ );
+}
diff --git a/web/src/lib/engine.ts b/web/src/lib/engine.ts
new file mode 100644
index 0000000..735e882
--- /dev/null
+++ b/web/src/lib/engine.ts
@@ -0,0 +1,21 @@
+// Loads the engine module. Client only: called from a client:only island, never during SSR.
+import type { EngineModule } from "@/lib/state-schema";
+
+let modulePromise: Promise | null = null;
+
+export function loadEngine(): Promise {
+ if (typeof window === "undefined") {
+ return Promise.reject(new Error("loadEngine must only run in the browser"));
+ }
+ if (!modulePromise) {
+ // Built at runtime so Vite's import analysis never sees a literal public/ path (see astro.config.mjs).
+ const url = (import.meta.env.BASE_URL as string) + "tiny_attn.mjs";
+ modulePromise = (import(/* @vite-ignore */ url) as Promise<{ default: () => Promise }>)
+ .then(({ default: factory }) => factory())
+ .catch((e: unknown) => {
+ modulePromise = null;
+ throw new Error(`engine not found: run bash wasm/build.sh (${e instanceof Error ? e.message : String(e)})`);
+ });
+ }
+ return modulePromise;
+}
diff --git a/web/src/lib/presets.ts b/web/src/lib/presets.ts
new file mode 100644
index 0000000..af90bc4
--- /dev/null
+++ b/web/src/lib/presets.ts
@@ -0,0 +1,1832 @@
+// GENERATED by sim/golden/export_web_data.py from sim/golden/presets.py. Do not edit.
+export interface Preset {
+ name: string;
+ labels: string[];
+ causal: boolean;
+ q: number[][];
+ k: number[][];
+ v: number[][];
+}
+
+export const PRESETS: Preset[] = [
+ {
+ "name": "toy_sentence",
+ "labels": [
+ "",
+ "The",
+ "cat",
+ "chased",
+ "the",
+ "mouse",
+ "because",
+ "it",
+ "was",
+ "very",
+ "hungry",
+ "."
+ ],
+ "causal": true,
+ "q": [
+ [
+ 0.0,
+ 1.24322,
+ -1.566654,
+ 0.0
+ ],
+ [
+ 0.0,
+ 2.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 1.24322,
+ 1.566654,
+ 0.0
+ ],
+ [
+ 0.0,
+ -0.454404,
+ 1.947695,
+ 0.0
+ ],
+ [
+ 0.0,
+ -1.808144,
+ 0.85476,
+ 0.0
+ ],
+ [
+ 0.0,
+ -1.793517,
+ -0.885041,
+ 0.0
+ ],
+ [
+ 0.0,
+ -0.421592,
+ -1.95506,
+ 0.0
+ ],
+ [
+ 3.0,
+ 0.0,
+ 0.0,
+ 3.0
+ ],
+ [
+ 0.0,
+ 1.999717,
+ 0.033628,
+ 0.0
+ ],
+ [
+ 0.0,
+ 1.216703,
+ 1.587336,
+ 0.0
+ ],
+ [
+ 0.0,
+ -0.487088,
+ 1.93978,
+ 0.0
+ ],
+ [
+ 0.0,
+ -1.822261,
+ 0.824237,
+ 0.0
+ ]
+ ],
+ "k": [
+ [
+ 0.0,
+ 1.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.62161,
+ 0.783327,
+ 0.0
+ ],
+ [
+ 1.0,
+ -0.227202,
+ 0.973848,
+ 1.0
+ ],
+ [
+ 0.0,
+ -0.904072,
+ 0.42738,
+ 0.0
+ ],
+ [
+ 0.0,
+ -0.896758,
+ -0.44252,
+ 0.0
+ ],
+ [
+ 1.0,
+ -0.210796,
+ -0.97753,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.634693,
+ -0.772764,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.999859,
+ 0.016814,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.608351,
+ 0.793668,
+ 0.0
+ ],
+ [
+ 0.0,
+ -0.243544,
+ 0.96989,
+ 0.0
+ ],
+ [
+ 0.0,
+ -0.91113,
+ 0.412118,
+ 0.0
+ ],
+ [
+ 0.0,
+ -0.889191,
+ -0.457536,
+ 0.0
+ ]
+ ],
+ "v": [
+ [
+ 0.00123,
+ 0.298746,
+ -0.274138,
+ -0.890592
+ ],
+ [
+ -0.454671,
+ -0.991647,
+ 0.060144,
+ 1.340215
+ ],
+ [
+ -0.492207,
+ -0.620475,
+ 0.489842,
+ 0.356887
+ ],
+ [
+ 0.105414,
+ -0.930468,
+ -0.029252,
+ 0.695303
+ ],
+ [
+ -1.344215,
+ -0.457616,
+ -1.901223,
+ -1.289538
+ ],
+ [
+ -1.841735,
+ -0.235091,
+ -1.267446,
+ 0.271264
+ ],
+ [
+ 0.156751,
+ -0.186931,
+ -2.51676,
+ -0.538693
+ ],
+ [
+ -0.048501,
+ 0.113309,
+ -1.530136,
+ -0.477753
+ ],
+ [
+ -0.978519,
+ -0.808837,
+ 1.060899,
+ -0.807535
+ ],
+ [
+ -0.032522,
+ 0.88439,
+ -0.5836,
+ -0.111702
+ ],
+ [
+ 0.110464,
+ 0.063782,
+ -1.225056,
+ 0.07614
+ ],
+ [
+ 1.358823,
+ -1.547145,
+ 0.859383,
+ 0.119354
+ ]
+ ]
+ },
+ {
+ "name": "previous_token",
+ "labels": [
+ "0",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "10",
+ "11",
+ "12",
+ "13",
+ "14",
+ "15"
+ ],
+ "causal": true,
+ "q": [
+ [
+ 2.09012,
+ -2.152068,
+ 0.0,
+ 0.0
+ ],
+ [
+ 3.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 2.09012,
+ 2.152068,
+ 0.0,
+ 0.0
+ ],
+ [
+ -0.087599,
+ 2.998721,
+ 0.0,
+ 0.0
+ ],
+ [
+ -2.212181,
+ 2.02639,
+ 0.0,
+ 0.0
+ ],
+ [
+ -2.994884,
+ -0.175122,
+ 0.0,
+ 0.0
+ ],
+ [
+ -1.960931,
+ -2.270407,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.262497,
+ -2.988494,
+ 0.0,
+ 0.0
+ ],
+ [
+ 2.326698,
+ -1.8938,
+ 0.0,
+ 0.0
+ ],
+ [
+ 2.979555,
+ 0.349648,
+ 0.0,
+ 0.0
+ ],
+ [
+ 1.825054,
+ 2.381004,
+ 0.0,
+ 0.0
+ ],
+ [
+ -0.4365,
+ 2.968075,
+ 0.0,
+ 0.0
+ ],
+ [
+ -2.433279,
+ 1.754752,
+ 0.0,
+ 0.0
+ ],
+ [
+ -2.954064,
+ -0.52298,
+ 0.0,
+ 0.0
+ ],
+ [
+ -1.682953,
+ -2.483479,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.609015,
+ -2.937533,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "k": [
+ [
+ 1.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.696707,
+ 0.717356,
+ 0.0,
+ 0.0
+ ],
+ [
+ -0.0292,
+ 0.999574,
+ 0.0,
+ 0.0
+ ],
+ [
+ -0.737394,
+ 0.675463,
+ 0.0,
+ 0.0
+ ],
+ [
+ -0.998295,
+ -0.058374,
+ 0.0,
+ 0.0
+ ],
+ [
+ -0.653644,
+ -0.756802,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.087499,
+ -0.996165,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.775566,
+ -0.631267,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.993185,
+ 0.116549,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.608351,
+ 0.793668,
+ 0.0,
+ 0.0
+ ],
+ [
+ -0.1455,
+ 0.989358,
+ 0.0,
+ 0.0
+ ],
+ [
+ -0.811093,
+ 0.584917,
+ 0.0,
+ 0.0
+ ],
+ [
+ -0.984688,
+ -0.174327,
+ 0.0,
+ 0.0
+ ],
+ [
+ -0.560984,
+ -0.827826,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.203005,
+ -0.979178,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.843854,
+ -0.536573,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "v": [
+ [
+ 0.345584,
+ 0.821618,
+ 0.330437,
+ -1.303157
+ ],
+ [
+ 0.905356,
+ 0.446375,
+ -0.536953,
+ 0.581118
+ ],
+ [
+ 0.364572,
+ 0.294132,
+ 0.028422,
+ 0.546713
+ ],
+ [
+ -0.736454,
+ -0.16291,
+ -0.482119,
+ 0.598846
+ ],
+ [
+ 0.039722,
+ -0.292457,
+ -0.781908,
+ -0.257192
+ ],
+ [
+ 0.008142,
+ -0.275603,
+ 1.294064,
+ 1.006724
+ ],
+ [
+ -2.711162,
+ -1.889013,
+ -0.174772,
+ -0.42219
+ ],
+ [
+ 0.213643,
+ 0.217322,
+ 2.117839,
+ -1.112021
+ ],
+ [
+ -0.377605,
+ 2.042772,
+ 0.646703,
+ 0.663063
+ ],
+ [
+ -0.514006,
+ -1.648075,
+ 0.167465,
+ 0.109014
+ ],
+ [
+ -1.227352,
+ -0.683227,
+ -0.072044,
+ -0.944752
+ ],
+ [
+ -0.09827,
+ 0.095483,
+ 0.035586,
+ -0.506292
+ ],
+ [
+ 0.593748,
+ 0.891167,
+ 0.320848,
+ -0.81823
+ ],
+ [
+ 0.731652,
+ -0.50144,
+ 0.879161,
+ -1.071787
+ ],
+ [
+ 0.914467,
+ -0.020063,
+ -1.248749,
+ -0.313899
+ ],
+ [
+ 0.054102,
+ 0.272791,
+ -0.982188,
+ -1.107373
+ ]
+ ]
+ },
+ {
+ "name": "attention_sink",
+ "labels": [
+ "sink",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "10",
+ "11",
+ "12",
+ "13",
+ "14",
+ "15"
+ ],
+ "causal": true,
+ "q": [
+ [
+ 4.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 4.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 4.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 4.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 4.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 4.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 4.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 4.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 4.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 4.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 4.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 4.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 4.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 4.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 4.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 4.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "k": [
+ [
+ 2.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "v": [
+ [
+ 0.189053,
+ -0.522748,
+ -0.413064,
+ -2.441467
+ ],
+ [
+ 1.799707,
+ 1.144166,
+ -0.325423,
+ 0.773807
+ ],
+ [
+ 0.281211,
+ -0.553823,
+ 0.977567,
+ -0.310557
+ ],
+ [
+ -0.328824,
+ -0.792147,
+ 0.454958,
+ -0.099198
+ ],
+ [
+ 0.545289,
+ -0.607186,
+ 0.126828,
+ -0.892274
+ ],
+ [
+ 0.841465,
+ 0.188035,
+ 0.330571,
+ 0.410504
+ ],
+ [
+ -1.010758,
+ 0.783181,
+ 2.056703,
+ -1.638443
+ ],
+ [
+ -1.729411,
+ -1.504831,
+ 0.841459,
+ 0.128716
+ ],
+ [
+ 1.078342,
+ 0.722431,
+ 0.210572,
+ 0.284038
+ ],
+ [
+ -0.16976,
+ 0.86846,
+ -1.129716,
+ -0.421859
+ ],
+ [
+ 0.242939,
+ 1.801421,
+ -0.764464,
+ -1.07906
+ ],
+ [
+ -0.563287,
+ 0.969272,
+ -0.235006,
+ 1.324347
+ ],
+ [
+ -1.87253,
+ 1.128523,
+ 1.034866,
+ -1.418666
+ ],
+ [
+ 0.153582,
+ 1.215758,
+ 0.087919,
+ 0.999701
+ ],
+ [
+ 2.374887,
+ 0.273932,
+ -0.280382,
+ -0.771052
+ ],
+ [
+ 0.648065,
+ -0.19673,
+ -0.178746,
+ -0.10526
+ ]
+ ]
+ },
+ {
+ "name": "uniform",
+ "labels": [
+ "0",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "10",
+ "11",
+ "12",
+ "13",
+ "14",
+ "15"
+ ],
+ "causal": false,
+ "q": [
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "k": [
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ [
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ ],
+ "v": [
+ [
+ 2.040919,
+ -2.555665,
+ 0.418099,
+ -0.56777
+ ],
+ [
+ -0.452649,
+ -0.215597,
+ -2.019986,
+ -0.231932
+ ],
+ [
+ -0.865213,
+ 3.323,
+ 0.225787,
+ -0.352631
+ ],
+ [
+ -0.281287,
+ -0.668046,
+ -1.055151,
+ -0.390801
+ ],
+ [
+ 0.481945,
+ -0.238554,
+ 0.957759,
+ -0.199802
+ ],
+ [
+ 0.02426,
+ 1.545821,
+ 0.545106,
+ -0.505229
+ ],
+ [
+ -0.182839,
+ 0.540525,
+ 1.935088,
+ -0.26962
+ ],
+ [
+ -0.243559,
+ 1.002314,
+ -0.88646,
+ -0.29172
+ ],
+ [
+ 0.882539,
+ 0.58035,
+ 0.091517,
+ 0.670104
+ ],
+ [
+ -2.828162,
+ 1.021307,
+ -0.959645,
+ -1.66862
+ ],
+ [
+ 0.276446,
+ 0.700545,
+ -0.444767,
+ -1.076406
+ ],
+ [
+ 0.026125,
+ -0.052747,
+ 1.405598,
+ 0.747408
+ ],
+ [
+ 0.193816,
+ 1.111633,
+ -0.205523,
+ -0.9259
+ ],
+ [
+ 0.584058,
+ 0.582538,
+ -0.214829,
+ -0.782809
+ ],
+ [
+ 0.229154,
+ -2.493894,
+ 0.690125,
+ 0.491368
+ ],
+ [
+ -1.638857,
+ 0.061354,
+ -0.9641,
+ 0.757221
+ ]
+ ]
+ },
+ {
+ "name": "self",
+ "labels": [
+ "0",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "10",
+ "11",
+ "12",
+ "13",
+ "14",
+ "15"
+ ],
+ "causal": false,
+ "q": [
+ [
+ -1.363194,
+ -0.365414,
+ 3.479611,
+ 1.37858
+ ],
+ [
+ -3.725994,
+ -0.011811,
+ -1.415271,
+ 0.337396
+ ],
+ [
+ -2.825646,
+ 0.424802,
+ 0.413573,
+ 2.768434
+ ],
+ [
+ 0.457481,
+ 0.737626,
+ -2.157221,
+ 3.254691
+ ],
+ [
+ -3.190517,
+ 1.835056,
+ -0.549457,
+ -1.466721
+ ],
+ [
+ -2.575437,
+ -2.637164,
+ 1.491963,
+ -0.4319
+ ],
+ [
+ 2.354986,
+ -2.90623,
+ -0.004894,
+ -1.416984
+ ],
+ [
+ 1.354414,
+ -3.697429,
+ -0.599976,
+ 0.366892
+ ],
+ [
+ -2.890327,
+ 1.918518,
+ 0.34801,
+ 1.96066
+ ],
+ [
+ 2.398912,
+ -2.450607,
+ -1.99528,
+ -0.508533
+ ],
+ [
+ 2.037609,
+ 2.318225,
+ -1.93334,
+ -1.654141
+ ],
+ [
+ -3.111659,
+ -2.278639,
+ -0.927946,
+ -0.514103
+ ],
+ [
+ 3.763103,
+ -0.92592,
+ -0.52791,
+ 0.838474
+ ],
+ [
+ -2.973537,
+ -1.150096,
+ 0.041553,
+ 2.415291
+ ],
+ [
+ -2.712657,
+ 2.826964,
+ -0.726509,
+ 0.349212
+ ],
+ [
+ 2.231221,
+ 1.740521,
+ 2.790004,
+ 0.456201
+ ]
+ ],
+ "k": [
+ [
+ -1.363194,
+ -0.365414,
+ 3.479611,
+ 1.37858
+ ],
+ [
+ -3.725994,
+ -0.011811,
+ -1.415271,
+ 0.337396
+ ],
+ [
+ -2.825646,
+ 0.424802,
+ 0.413573,
+ 2.768434
+ ],
+ [
+ 0.457481,
+ 0.737626,
+ -2.157221,
+ 3.254691
+ ],
+ [
+ -3.190517,
+ 1.835056,
+ -0.549457,
+ -1.466721
+ ],
+ [
+ -2.575437,
+ -2.637164,
+ 1.491963,
+ -0.4319
+ ],
+ [
+ 2.354986,
+ -2.90623,
+ -0.004894,
+ -1.416984
+ ],
+ [
+ 1.354414,
+ -3.697429,
+ -0.599976,
+ 0.366892
+ ],
+ [
+ -2.890327,
+ 1.918518,
+ 0.34801,
+ 1.96066
+ ],
+ [
+ 2.398912,
+ -2.450607,
+ -1.99528,
+ -0.508533
+ ],
+ [
+ 2.037609,
+ 2.318225,
+ -1.93334,
+ -1.654141
+ ],
+ [
+ -3.111659,
+ -2.278639,
+ -0.927946,
+ -0.514103
+ ],
+ [
+ 3.763103,
+ -0.92592,
+ -0.52791,
+ 0.838474
+ ],
+ [
+ -2.973537,
+ -1.150096,
+ 0.041553,
+ 2.415291
+ ],
+ [
+ -2.712657,
+ 2.826964,
+ -0.726509,
+ 0.349212
+ ],
+ [
+ 2.231221,
+ 1.740521,
+ 2.790004,
+ 0.456201
+ ]
+ ],
+ "v": [
+ [
+ -0.801931,
+ -1.324359,
+ -0.248362,
+ 0.420445
+ ],
+ [
+ 1.136047,
+ 0.109706,
+ -0.552647,
+ -0.78478
+ ],
+ [
+ 0.748746,
+ 1.634783,
+ 0.272769,
+ -1.233329
+ ],
+ [
+ -0.958265,
+ 1.600019,
+ 0.202882,
+ -1.732135
+ ],
+ [
+ -0.083696,
+ -1.163226,
+ -0.629288,
+ -0.488006
+ ],
+ [
+ -0.713313,
+ 0.553378,
+ -0.063086,
+ -0.589431
+ ],
+ [
+ 0.409638,
+ 0.829855,
+ -1.643023,
+ -0.25673
+ ],
+ [
+ -0.980747,
+ -0.173155,
+ -1.289419,
+ 0.02069
+ ],
+ [
+ -0.037886,
+ -0.304338,
+ -1.047927,
+ -0.39619
+ ],
+ [
+ -1.091329,
+ -1.355209,
+ 0.224786,
+ -1.10935
+ ],
+ [
+ 1.170296,
+ 0.716588,
+ -1.997817,
+ 0.272129
+ ],
+ [
+ -1.101717,
+ 0.033057,
+ 0.043632,
+ -1.98843
+ ],
+ [
+ -0.233423,
+ -0.25579,
+ 0.962001,
+ -1.181447
+ ],
+ [
+ 0.738042,
+ -1.098973,
+ -0.331291,
+ -0.840473
+ ],
+ [
+ 1.448731,
+ 0.568213,
+ 2.431733,
+ 0.641916
+ ],
+ [
+ 0.844993,
+ 0.840683,
+ -0.606612,
+ -0.070028
+ ]
+ ]
+ },
+ {
+ "name": "random",
+ "labels": [
+ "0",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "10",
+ "11",
+ "12",
+ "13",
+ "14",
+ "15"
+ ],
+ "causal": false,
+ "q": [
+ [
+ 0.25146,
+ -0.26421,
+ 1.280845,
+ 0.2098
+ ],
+ [
+ -1.071339,
+ 0.72319,
+ 2.608,
+ 1.894162
+ ],
+ [
+ -1.40747,
+ -2.530843,
+ -1.246549,
+ 0.082652
+ ],
+ [
+ -4.650062,
+ -0.437583,
+ -2.491822,
+ -1.464535
+ ],
+ [
+ -1.088518,
+ -0.6326,
+ 0.823261,
+ 2.085027
+ ],
+ [
+ -0.257069,
+ 2.732927,
+ -1.330389,
+ 0.70302
+ ],
+ [
+ 1.80694,
+ 0.188025,
+ -1.486998,
+ -1.843451
+ ],
+ [
+ -0.915452,
+ 0.44039,
+ -2.019236,
+ -0.418351
+ ],
+ [
+ -0.31845,
+ 1.081691,
+ 0.429318,
+ 0.710745
+ ],
+ [
+ -1.307657,
+ -0.259227,
+ 1.567951,
+ 2.986862
+ ],
+ [
+ -2.518131,
+ 3.027848,
+ 2.691751,
+ 1.562623
+ ],
+ [
+ 0.528911,
+ -0.627846,
+ 2.916041,
+ 3.920517
+ ],
+ [
+ 3.60327,
+ 2.630208,
+ 0.714761,
+ -2.416637
+ ],
+ [
+ -0.008908,
+ 1.31295,
+ -2.576723,
+ 0.790244
+ ],
+ [
+ 0.859727,
+ 1.392085,
+ -2.368236,
+ -1.323405
+ ],
+ [
+ -0.87287,
+ -2.339604,
+ 3.478736,
+ -0.991821
+ ]
+ ],
+ "k": [
+ [
+ 0.657939,
+ -0.517145,
+ 3.166946,
+ 2.640722
+ ],
+ [
+ 1.266705,
+ -4.40702,
+ 0.104058,
+ 1.367372
+ ],
+ [
+ 2.007923,
+ -1.235814,
+ 3.644023,
+ -2.640862
+ ],
+ [
+ -1.323056,
+ 1.8701,
+ 0.098109,
+ 4.004785
+ ],
+ [
+ 0.377038,
+ -1.266388,
+ -0.755127,
+ -2.182292
+ ],
+ [
+ -2.55536,
+ 1.260823,
+ 1.162332,
+ 2.589118
+ ],
+ [
+ -1.509212,
+ 3.378215,
+ -0.574775,
+ 3.148817
+ ],
+ [
+ -0.865572,
+ -1.470967,
+ 0.499571,
+ 2.062906
+ ],
+ [
+ 0.322019,
+ -1.171058,
+ -2.682439,
+ -2.80304
+ ],
+ [
+ 1.005366,
+ 1.979426,
+ -0.328589,
+ -2.14873
+ ],
+ [
+ 1.746084,
+ -2.560788,
+ -1.426136,
+ 1.242036
+ ],
+ [
+ -4.500282,
+ 0.772739,
+ -1.163282,
+ 0.218559
+ ],
+ [
+ -0.151403,
+ 0.404229,
+ 1.388344,
+ -1.51674
+ ],
+ [
+ 2.841964,
+ 1.452188,
+ 1.687465,
+ 2.329728
+ ],
+ [
+ 1.575176,
+ 1.688157,
+ 0.151187,
+ -2.853548
+ ],
+ [
+ -0.27009,
+ -1.539029,
+ -2.845484,
+ 0.516906
+ ]
+ ],
+ "v": [
+ [
+ -0.568549,
+ -1.029804,
+ -1.043001,
+ 0.268417
+ ],
+ [
+ 0.358672,
+ 1.322457,
+ -0.013915,
+ 1.04184
+ ],
+ [
+ 1.402265,
+ 1.150166,
+ -2.365304,
+ 1.228684
+ ],
+ [
+ 0.33962,
+ 0.423771,
+ 0.371227,
+ 0.382757
+ ],
+ [
+ 0.319414,
+ -0.358913,
+ -1.901635,
+ -0.108915
+ ],
+ [
+ -0.803732,
+ 1.080163,
+ -0.288767,
+ 0.083475
+ ],
+ [
+ -0.849606,
+ -0.510622,
+ -0.011533,
+ -1.485375
+ ],
+ [
+ 0.300685,
+ -0.106072,
+ -1.18572,
+ -2.398233
+ ],
+ [
+ 0.513052,
+ -0.297584,
+ -0.530008,
+ -0.236155
+ ],
+ [
+ 1.816476,
+ -0.049801,
+ 0.086619,
+ -1.487073
+ ],
+ [
+ 1.647339,
+ 0.917488,
+ 1.066935,
+ 0.047673
+ ],
+ [
+ 0.916655,
+ 0.370947,
+ 0.613189,
+ -0.152193
+ ],
+ [
+ -1.473888,
+ 1.028854,
+ -1.93496,
+ -0.239937
+ ],
+ [
+ -0.204522,
+ -1.04286,
+ 0.613123,
+ -0.20033
+ ],
+ [
+ -0.436868,
+ 0.519842,
+ -0.476579,
+ 1.38898
+ ],
+ [
+ 0.351455,
+ -0.474333,
+ -1.944265,
+ -1.307753
+ ]
+ ]
+ }
+];
diff --git a/web/src/lib/quantize.test.ts b/web/src/lib/quantize.test.ts
new file mode 100644
index 0000000..b450a46
--- /dev/null
+++ b/web/src/lib/quantize.test.ts
@@ -0,0 +1,42 @@
+import { readFileSync } from "node:fs";
+import { join } from "node:path";
+import { describe, expect, it } from "vitest";
+import { quantize, roundHalfEven } from "@/lib/quantize";
+
+const cases = JSON.parse(
+ readFileSync(join(process.cwd(), "..", "wasm", "fixtures", "quantize_cases.json"), "utf8"),
+) as Array<{
+ q: number[][];
+ k: number[][];
+ v: number[][];
+ expQ: number[];
+ expK: number[];
+ expV: number[];
+ expCfgScale: number;
+}>;
+
+describe("roundHalfEven", () => {
+ it("matches numpy rint / Python round on halves", () => {
+ expect([0.5, 1.5, 2.5, -0.5, -1.5, 2.4999, 2.5001].map(roundHalfEven)).toEqual([0, 2, 2, 0, -2, 2, 3]);
+ });
+});
+
+describe("quantize (mirror of sim/golden/fixed.py)", () => {
+ cases.forEach((c, i) => {
+ it(`case ${i} matches the golden values exactly`, () => {
+ const z = quantize(c.q, c.k, c.v);
+ expect(z.q).toEqual(c.expQ);
+ expect(z.k).toEqual(c.expK);
+ expect(z.v).toEqual(c.expV);
+ expect(z.cfgScale).toBe(c.expCfgScale);
+ });
+ });
+
+ it("keeps values inside int8 and cfg_scale inside 24 bits", () => {
+ for (const c of cases) {
+ const z = quantize(c.q, c.k, c.v);
+ for (const x of [...z.q, ...z.k, ...z.v]) expect(Math.abs(x)).toBeLessThanOrEqual(127);
+ expect(z.cfgScale).toBeLessThan(2 ** 24);
+ }
+ });
+});
diff --git a/web/src/lib/quantize.ts b/web/src/lib/quantize.ts
new file mode 100644
index 0000000..be4211b
--- /dev/null
+++ b/web/src/lib/quantize.ts
@@ -0,0 +1,46 @@
+// Host-side quantization, a mirror of sim/golden/fixed.py quantize(): symmetric per-tensor INT8 and the folded
+// cfg_scale (UQ4.20, 24 bits). Checked against wasm/fixtures/quantize_cases.json in quantize.test.ts.
+
+export const LOG2E = Math.log2(Math.E);
+export const D = 4;
+
+/** numpy.rint / Python round: halves go to the even neighbour. */
+export function roundHalfEven(x: number): number {
+ const f = Math.floor(x);
+ const d = x - f;
+ if (d > 0.5) return f + 1;
+ if (d < 0.5) return f;
+ return f % 2 === 0 ? f : f + 1;
+}
+
+export interface Quantized {
+ q: number[]; // int8, row-major
+ k: number[];
+ v: number[];
+ sq: number;
+ sk: number;
+ sv: number;
+ cfgScale: number; // 24-bit UQ4.20
+}
+
+function quantizeOne(x: number[][]): { values: number[]; scale: number } {
+ let maxAbs = 0;
+ for (const row of x) for (const value of row) maxAbs = Math.max(maxAbs, Math.abs(value));
+ const scale = maxAbs / 127 || 1.0;
+ const values: number[] = [];
+ for (const row of x) {
+ for (const value of row) {
+ values.push(Math.min(127, Math.max(-127, roundHalfEven(value / scale))));
+ }
+ }
+ return { values, scale };
+}
+
+export function quantize(q: number[][], k: number[][], v: number[][]): Quantized {
+ const Q = quantizeOne(q);
+ const K = quantizeOne(k);
+ const V = quantizeOne(v);
+ const cfgScale = roundHalfEven(Q.scale * K.scale * LOG2E / Math.sqrt(D) * 2 ** 20);
+ if (cfgScale < 0 || cfgScale >= 2 ** 24) throw new Error(`cfg_scale ${cfgScale} does not fit 24 bits`);
+ return { q: Q.values, k: K.values, v: V.values, sq: Q.scale, sk: K.scale, sv: V.scale, cfgScale };
+}
diff --git a/web/src/lib/reference.ts b/web/src/lib/reference.ts
new file mode 100644
index 0000000..20db972
--- /dev/null
+++ b/web/src/lib/reference.ts
@@ -0,0 +1,32 @@
+// Float64 attention, the reference the engine output is compared with (sim/golden/float_ref.py).
+
+export function attention(q: number[][], k: number[][], v: number[][], causal: boolean): {
+ out: number[][];
+ probs: number[][];
+} {
+ const n = q.length;
+ const d = q[0]?.length ?? 0;
+ const probs: number[][] = [];
+ const out: number[][] = [];
+ for (let i = 0; i < n; i++) {
+ const s: number[] = [];
+ for (let j = 0; j < n; j++) {
+ if (causal && j > i) {
+ s.push(-Infinity);
+ continue;
+ }
+ let dot = 0;
+ for (let c = 0; c < d; c++) dot += (q[i]?.[c] ?? 0) * (k[j]?.[c] ?? 0);
+ s.push(dot / Math.sqrt(d));
+ }
+ const mx = Math.max(...s);
+ const e = s.map((x) => (x === -Infinity ? 0 : Math.exp(x - mx)));
+ const sum = e.reduce((a, b) => a + b, 0);
+ const p = e.map((x) => x / sum);
+ probs.push(p);
+ const row: number[] = new Array(d).fill(0);
+ for (let j = 0; j < n; j++) for (let c = 0; c < d; c++) row[c] = (row[c] ?? 0) + (p[j] ?? 0) * (v[j]?.[c] ?? 0);
+ out.push(row);
+ }
+ return { out, probs };
+}
diff --git a/web/src/lib/schedule.test.ts b/web/src/lib/schedule.test.ts
new file mode 100644
index 0000000..92b471d
--- /dev/null
+++ b/web/src/lib/schedule.test.ts
@@ -0,0 +1,48 @@
+import { readFileSync } from "node:fs";
+import { join } from "node:path";
+import { describe, expect, it } from "vitest";
+import { flashTileOrder, naiveTileOrder } from "@/lib/schedule";
+
+const fixture = (name: string) =>
+ JSON.parse(readFileSync(join(process.cwd(), "..", "wasm", "fixtures", `${name}.json`), "utf8")) as {
+ n: number;
+ qrows: number;
+ causal: boolean;
+ tiles: number;
+ };
+
+describe("tile order matches the engine's tile counter", () => {
+ it("FLASH sequential", () => {
+ const f = fixture("flash_seq");
+ expect(flashTileOrder(f.n, f.qrows, f.causal).length).toBe(f.tiles);
+ });
+ it("FLASH causal with overlap (same order as without)", () => {
+ const f = fixture("flash_overlap_causal");
+ expect(flashTileOrder(f.n, f.qrows, f.causal).length).toBe(f.tiles);
+ });
+ it("NAIVE causal", () => {
+ const f = fixture("naive_causal");
+ expect(naiveTileOrder(f.n, f.causal).length).toBe(f.tiles);
+ });
+});
+
+describe("tile order invariants", () => {
+ it("no tile above the causal diagonal; row groups increase within a K/V tile", () => {
+ const order = flashTileOrder(32, 16, true);
+ for (const t of order) expect(t.kj).toBeLessThanOrEqual(t.qi);
+ for (let i = 1; i < order.length; i++) {
+ const a = order[i - 1]!;
+ const b = order[i]!;
+ if (a.kj === b.kj) {
+ expect(b.qi).toBeGreaterThan(a.qi);
+ } else if (b.kj > a.kj) {
+ // same Q block, next K/V tile
+ expect(b.qi).toBeGreaterThanOrEqual(a.qi - 3);
+ } else {
+ // next Q block starts again at K/V tile 0 with later row groups
+ expect(b.kj).toBe(0);
+ expect(b.qi).toBeGreaterThan(a.qi);
+ }
+ }
+ });
+});
diff --git a/web/src/lib/schedule.ts b/web/src/lib/schedule.ts
new file mode 100644
index 0000000..fbe3211
--- /dev/null
+++ b/web/src/lib/schedule.ts
@@ -0,0 +1,37 @@
+// The order in which the FLASH controller computes tiles (flash_ctrl.sv): Q blocks outer; within a block, K/V tiles kj
+// in order; within a K/V tile, the row groups of the block in order, skipping groups above the causal diagonal.
+// The tiles counter counts tile starts, so tile k (0-based) in this order is the one in flight after k+1 starts.
+
+export interface TileRef {
+ qi: number; // row group (4 rows), global
+ kj: number; // K/V tile
+}
+
+export function flashTileOrder(n: number, qrows: number, causal: boolean): TileRef[] {
+ const nb = n / 4;
+ const g = qrows / 4;
+ const order: TileRef[] = [];
+ for (let gb = 0; gb < nb; gb += g) {
+ const bg = Math.min(g, nb - gb);
+ const last = causal ? gb + bg - 1 : nb - 1;
+ for (let kj = 0; kj <= last; kj++) {
+ for (let gi = 0; gi < bg; gi++) {
+ const qi = gb + gi;
+ if (causal && kj > qi) continue;
+ order.push({ qi, kj });
+ }
+ }
+ }
+ return order;
+}
+
+/** NAIVE tile pairs, block by block (naive_ctrl.sv): every K/V tile of block qi, for each qi. */
+export function naiveTileOrder(n: number, causal: boolean): TileRef[] {
+ const nb = n / 4;
+ const order: TileRef[] = [];
+ for (let qi = 0; qi < nb; qi++) {
+ const last = causal ? qi : nb - 1;
+ for (let kj = 0; kj <= last; kj++) order.push({ qi, kj });
+ }
+ return order;
+}
diff --git a/web/src/lib/state-schema.ts b/web/src/lib/state-schema.ts
new file mode 100644
index 0000000..faf9270
--- /dev/null
+++ b/web/src/lib/state-schema.ts
@@ -0,0 +1,58 @@
+// Mirrors wasm/harness/harness.h and docs/STATE_SCHEMA.md. Change both together.
+
+/** Per-clock summary returned by step(), snapshot(). */
+export interface Snapshot {
+ cycle: number;
+ ctrlState: number;
+ busy: boolean;
+ done: boolean;
+ hbmRdBytes: number;
+ hbmWrBytes: number;
+ cycles: number;
+ tiles: number;
+ kvLoads: number;
+}
+
+/** Tile-core state of the most recent tile (4 rows of one row group). */
+export interface TileState {
+ curGrp: number;
+ srow: number;
+ s: number[]; // 16 values, row-major (4 rows x 4 key columns)
+ z: number[];
+ p: number[];
+ alpha: number[]; // 4 rows
+ m: number[];
+ l: number[];
+ o: number[]; // 16 values, row-major (4 rows x 4 columns)
+}
+
+export interface EngineInstance {
+ reset(): void;
+ configure(n: number, qrows: number, causal: boolean, mode: number, overlap: boolean, latency: number, scale: number): void;
+ loadQKV(q: number[], k: number[], v: number[]): void;
+ start(): void;
+ step(): Snapshot;
+ runToDone(maxCycles: number): number;
+ readOutput(): number[];
+ readHbm(addr: number, len: number): number[];
+ readProbabilities(): number[];
+ snapshot(): Snapshot;
+ isDone(): boolean;
+ getTile(): TileState;
+ delete(): void;
+}
+
+export interface EngineModule {
+ TinyAttnSim: new () => EngineInstance;
+}
+
+/** Controller state names (flash_ctrl.sv and naive_ctrl.sv, the enum order). */
+export const FLASH_STATES = [
+ "IDLE", "BLK", "LDQ", "LDQ_W", "LDK", "LDK_W", "LDV", "LDV_W", "WLOAD",
+ "TILE", "TILE_W", "WAITPF", "NORM", "NORM_W", "STO", "STO_W", "DONE",
+] as const;
+
+export const NAIVE_STATES = [
+ "IDLE", "BLK", "LDQ", "LDQ_W", "ISSUE", "WAIT", "WLOAD", "TILE", "TILE_W",
+ "STORE", "STORE_W", "NEXT", "NORM", "NORM_W", "STO", "STO_W", "DONE",
+] as const;
diff --git a/web/src/pages/app.astro b/web/src/pages/app.astro
new file mode 100644
index 0000000..1551517
--- /dev/null
+++ b/web/src/pages/app.astro
@@ -0,0 +1,17 @@
+---
+import Layout from "@/layouts/Layout.astro";
+import Visualizer from "@/components/Visualizer";
+---
+
+
+
+ TinyAttention visualizer
+
+ Every number here is read from the compiled RTL, running in your browser. Pick a preset, press Start, then Step
+ through the clock.
+
+
+
+
+
+
diff --git a/web/vitest.config.ts b/web/vitest.config.ts
new file mode 100644
index 0000000..9167136
--- /dev/null
+++ b/web/vitest.config.ts
@@ -0,0 +1,11 @@
+import { fileURLToPath } from "node:url";
+import { defineConfig } from "vitest/config";
+
+export default defineConfig({
+ resolve: {
+ alias: { "@": fileURLToPath(new URL("./src", import.meta.url)) },
+ },
+ test: {
+ include: ["src/**/*.test.ts"],
+ },
+});
From 6f0e1b035b364530880ec8b8ae7cc3ca532f6bba Mon Sep 17 00:00:00 2001
From: Dineth Hettiarachchi
Date: Mon, 26 Oct 2026 06:32:20 +0530
Subject: [PATCH 2/3] feat: finish Phase 7 visualizer: editable inputs, K/V
buffers, HBM meter, heatmap, smoke tests
- Matrix editor: Q, K and V values are editable in the page; the browser quantizes them the same way as the golden model. Editing resets the run; "Reset to preset" restores the preset.
- SRAM panel: the K and V tile buffers, read from the RTL (new debug ports dbg_kbuf, dbg_vbuf, dbg_kv_sel; no behavior change). The buffer in use is outlined.
- HBM meter: bytes so far against the expected total for the configuration, from web/src/lib/traffic-table.ts, generated from sim/golden/traffic.py (freshness checked in pytest).
- Attention heatmap: engine probabilities from HBM for NAIVE; float reference for FLASH, which never stores P (labelled as such).
- Playwright smoke test (pnpm test:e2e, five tests) against the production build: FLASH output against the float reference, step and back, NAIVE probabilities, editing and re-running, phone width without horizontal scroll.
- WASM harness: getKVBuffers(); the Node test checks the buffer in use holds the last K/V tile loaded.
Phase 7 exit criteria in docs/PLAN.md are met. Docs updated: ARCHITECTURE section 12, STATE_SCHEMA, PLAN, CONTEXT, README.
---
.gitignore | 4 +
CONTEXT.md | 9 +-
README.md | 2 +-
docs/ARCHITECTURE.md | 15 +-
docs/PLAN.md | 2 +-
docs/STATE_SCHEMA.md | 9 +
rtl/tiny_attn_top.sv | 13 +-
sim/golden/export_web_data.py | 28 ++-
sim/golden/test_golden.py | 1 +
wasm/harness/bindings.cpp | 9 +
wasm/harness/harness.cpp | 14 ++
wasm/harness/harness.h | 9 +
wasm/test.mjs | 12 +
web/e2e/smoke.spec.ts | 73 ++++++
web/eslint.config.js | 2 +-
web/package.json | 4 +-
web/playwright.config.ts | 20 ++
web/pnpm-lock.yaml | 28 +++
web/src/components/AttentionHeatmap.tsx | 38 +++
web/src/components/HbmMeter.tsx | 33 +++
web/src/components/MatrixEditor.tsx | 34 +++
web/src/components/SramPanel.tsx | 43 ++++
web/src/components/Visualizer.tsx | 190 ++++++++++-----
web/src/lib/state-schema.ts | 8 +
web/src/lib/traffic-table.ts | 300 ++++++++++++++++++++++++
25 files changed, 821 insertions(+), 79 deletions(-)
create mode 100644 web/e2e/smoke.spec.ts
create mode 100644 web/playwright.config.ts
create mode 100644 web/src/components/AttentionHeatmap.tsx
create mode 100644 web/src/components/HbmMeter.tsx
create mode 100644 web/src/components/MatrixEditor.tsx
create mode 100644 web/src/components/SramPanel.tsx
create mode 100644 web/src/lib/traffic-table.ts
diff --git a/.gitignore b/.gitignore
index c9d103e..a24903a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -40,3 +40,7 @@ web/public/spike/
# Agent scratch
.agents/
.claude/
+
+# Playwright output
+web/test-results/
+web/playwright-report/
diff --git a/CONTEXT.md b/CONTEXT.md
index 3c8715e..9f83467 100644
--- a/CONTEXT.md
+++ b/CONTEXT.md
@@ -33,16 +33,17 @@ On a fresh machine delete the symlinks and run `.tools/setup.sh` and `.tools/ems
pass; perf baseline in `sim/perf_baseline.json` (re-record with `PERF_RECORD=1 COCOTB_TEST_FILTER=perf_grid bash sim/run_e2e.sh`).
- Phase 6 (WASM harness): DONE. `wasm/build.sh` builds `web/public/tiny_attn.{mjs,wasm}` (81 KB gzipped); `node wasm/test.mjs`
checks three golden fixtures on interleaved instances, exactly. JS API in `docs/STATE_SCHEMA.md`.
-- Phase 7 (web visualizer `/app`): PARTIAL. Built: presets and quantization shared with the golden model, schedule, tile values,
- bytes, NAIVE probability matrix. Browser-checked on the production build. Missing from the plan: MatrixEditor, SramPanel,
- HbmMeter, FLASH heatmap, Playwright smoke test (see ARCHITECTURE §12).
-- Next: finish the Phase 7 list, then Phase 8 (L1, L2, L4).
+- Phase 7 (web visualizer `/app`): DONE. Presets, editable Q/K/V (quantized in the browser), schedule, tile values, K/V
+ buffers (read from the RTL), HBM meter against the golden traffic model, heatmap (engine P for NAIVE, float reference for
+ FLASH), Playwright smoke test (5 tests, production build).
+- Next: Phase 8 (L1 softmax cell, L2 tile dataflow, L4 naive vs flash with two instances, N sweep, error panel).
## Gotchas found in Phase 7
- `wasm/fixtures/` holds engine runs and `quantize_cases.json`; the Node test must skip the quantization file (it did not for
a while and aborted in configure with no useful message).
- Embind gives 64-bit integers to JavaScript as BigInt, which breaks JSON comparison. Tile values are 32-bit for that reason.
- The tile core's debug S/Z/P registers are only written by FLASH. NAIVE views must not show them.
+- Playwright 1.64 needs its own Chromium build (`pnpm exec playwright install chromium`); the cache has other versions.
- `astro dev` hung without output in this environment; `astro build` + `astro preview` works for browser checks.
## Gotchas found in Phase 5
diff --git a/README.md b/README.md
index 276fb0c..abb9cbf 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@ Fourth project in the series after [tiny-gpu](https://github.com/deaneeth/tiny-g
[tiny-tpu](https://github.com/deaneeth/tiny-tpu) and tiny-cpu. Same rule as the others: nothing on screen is
faked; every value comes from a `dbg_*` port on the compiled RTL.
-**Status:** Phases 0-6 done, Phase 7 partly done: the engine (FLASH, NAIVE, K/V overlap) is bit-exact against the golden model, compiled to WebAssembly, and shown clock by clock in a browser visualizer at `/app`. Still open in Phase 7: matrix editor, SRAM panel, Playwright smoke test. See [`docs/PLAN.md`](docs/PLAN.md) for the roadmap.
+**Status:** Phases 0-7 done: the engine (FLASH, NAIVE, K/V overlap) is bit-exact against the golden model, compiled to WebAssembly, and shown clock by clock in a browser visualizer at `/app`, with editable inputs, K/V buffers, HBM traffic against the model, and a Playwright smoke test. Next: the L1, L2 and L4 views. See [`docs/PLAN.md`](docs/PLAN.md) for the roadmap.
## Quick start
diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md
index bf3b60e..07302af 100644
--- a/docs/ARCHITECTURE.md
+++ b/docs/ARCHITECTURE.md
@@ -375,7 +375,14 @@ Checks: `node wasm/test.mjs` (engine vs golden), `pnpm test` (quantization and t
`pnpm typecheck`, `pnpm lint`, `pnpm build`. The browser run (built site, `astro preview`) showed no console errors; the
FLASH run and the NAIVE run both finished with max deviation 0.0049 on the toy preset; the phone width has no horizontal scroll.
-Not yet built from the Phase 7 list in `docs/PLAN.md`: `MatrixEditor` (edit Q/K/V in the page; presets only for now),
-`SramPanel` (staging buffer contents), an `HbmMeter` bar, a FLASH attention heatmap (only NAIVE shows P), and the Playwright
-smoke test. The dev-server path also needs a fix (`astro dev` hung without output in this environment); `astro build` +
-`astro preview` works. The light/dark theme and 375 px checks are done for layout only; the theme check is not.
+Phase 7 items, all built: `MatrixEditor` (the Q, K and V values are editable; editing resets the run), `SramPanel` (the
+K and V tile buffers, read from the RTL through `dbg_kbuf`, `dbg_vbuf`, `dbg_kv_sel`, with the buffer in use outlined),
+`HbmMeter` (bytes so far against the expected total, from `web/src/lib/traffic-table.ts`, generated from
+`sim/golden/traffic.py`), and `AttentionHeatmap` (engine probabilities from HBM for NAIVE; the float reference for FLASH,
+which never stores P). The Playwright smoke test (`pnpm test:e2e`, five tests: FLASH output against float, step and back,
+NAIVE probabilities, editing and re-running, phone width) runs against the production build.
+
+Checks: `node wasm/test.mjs` (engine vs golden, now including the K/V buffer in use against the last tile loaded),
+`pnpm test` (quantization, tile order), `pnpm test:e2e`, `pnpm typecheck`, `pnpm lint`, `pnpm build`, `pytest sim/golden`
+(fixture, web-data and traffic-table freshness). The `astro dev` server hangs without output in this environment, so
+browser checks use `astro build` + `astro preview`.
diff --git a/docs/PLAN.md b/docs/PLAN.md
index d4cd595..f008036 100644
--- a/docs/PLAN.md
+++ b/docs/PLAN.md
@@ -447,7 +447,7 @@ The estimates assume one person part-time, at tiny-cpu's pace.
- `harness.cpp`, `bindings.cpp`, `build.sh`, `STATE_SCHEMA.md`, `test.mjs` with golden fixtures.
- **Exit:** `wasm.yml` is green; the size budget is met; two instances run independently in Node.
-### Phase 7: Core UI + L3 Schedule (2 weeks) — PARTIAL (visualizer built; see ARCHITECTURE §12 for what remains)
+### Phase 7: Core UI + L3 Schedule (2 weeks) ✅ DONE (see ARCHITECTURE §12)
- `useTinyAttn`, `Controls`, `MatrixEditor`, presets, `quantize.ts`, `AttentionHeatmap`, `SramPanel`,
`HbmMeter`, and **L3 Schedule first**.
- **Exit:** pick a preset, step forward and back, and watch tiles, buffers and bytes update; the Playwright smoke test passes.
diff --git a/docs/STATE_SCHEMA.md b/docs/STATE_SCHEMA.md
index e633d51..9666bfb 100644
--- a/docs/STATE_SCHEMA.md
+++ b/docs/STATE_SCHEMA.md
@@ -39,6 +39,9 @@ class TinyAttnSim {
readHbm(addr: number, len: number): number[]; // raw 32-bit words (Z/P tiles are at 256 and 768)
snapshot(): Snapshot;
isDone(): boolean;
+ getTile(): TileState; // tile-core values of the most recent tile (S, Z, P, m, l, alpha, O)
+ getKVBuffers(): KVBuffers; // K and V tile buffers (both), and the buffer in use
+ readProbabilities(): number[]; // NAIVE: P from HBM, n*n values (UQ1.8)
delete(): void;
}
```
@@ -55,6 +58,12 @@ Input validation throws: `n` must be a multiple of 4 in 4..32, `qrows` one of 4,
Multiple instances are independent: each owns its Verilator context. Steps may be interleaved across instances.
+## K/V buffers (`getKVBuffers`)
+
+`k[(buf*4 + row)*4 + col]` is K[row][col] of buffer `buf` (int8, sign-extended); `v` the same for V. `sel` is the buffer
+the engine uses for the current tile. Buffer 1 is used only by the overlap schedule. Checked in `wasm/test.mjs`: after a
+run, the buffer in use holds the last K/V tile loaded.
+
## Address map of the HBM model (words)
| Region | Base | Size |
diff --git a/rtl/tiny_attn_top.sv b/rtl/tiny_attn_top.sv
index 1bf89c1..3a4305a 100644
--- a/rtl/tiny_attn_top.sv
+++ b/rtl/tiny_attn_top.sv
@@ -54,7 +54,11 @@ module tiny_attn_top
output logic [16*S_W-1:0] dbg_mm1_psum,
output logic [16*Q_W-1:0] dbg_mm2_w,
output logic [16*P_W-1:0] dbg_mm2_a,
- output logic [16*PV_W-1:0] dbg_mm2_psum
+ output logic [16*PV_W-1:0] dbg_mm2_psum,
+ // K/V buffers: word (buf*4 + row) holds row `row` of buffer `buf` (4 int8 lanes); dbg_kv_sel is the buffer in use
+ output logic [2*4*32-1:0] dbg_kbuf,
+ output logic [2*4*32-1:0] dbg_vbuf,
+ output logic dbg_kv_sel
);
// ---- controllers (only the one selected by cfg_naive is started)
logic f_busy, f_done, n_busy, n_done;
@@ -106,6 +110,13 @@ module tiny_attn_top
// ---- K/V double buffers and the NAIVE tile input (Z or P tile: 8 words, 4 rows x 4 lanes x 16 bit)
logic [31:0] kreg [2][4];
logic [31:0] vreg [2][4];
+ for (genvar b = 0; b < 2; b++) begin : g_kvdbg
+ for (genvar r = 0; r < 4; r++) begin : g_row
+ assign dbg_kbuf[(b*4+r)*32 +: 32] = kreg[b][r];
+ assign dbg_vbuf[(b*4+r)*32 +: 32] = vreg[b][r];
+ end
+ end
+ assign dbg_kv_sel = kv_sel;
logic [31:0] tin_words [8];
logic q_load_valid;
diff --git a/sim/golden/export_web_data.py b/sim/golden/export_web_data.py
index 2ccf118..c607394 100644
--- a/sim/golden/export_web_data.py
+++ b/sim/golden/export_web_data.py
@@ -12,10 +12,12 @@
import fixed
import presets
+from traffic import traffic
from export_fixtures import ROOT
WEB_PRESETS = ROOT / "web" / "src" / "lib" / "presets.ts"
QUANT_CASES = ROOT / "wasm" / "fixtures" / "quantize_cases.json"
+TRAFFIC_TS = ROOT / "web" / "src" / "lib" / "traffic-table.ts"
def r(x):
@@ -76,10 +78,34 @@ def quant_cases():
return cases
+def traffic_entries():
+ """Expected HBM bytes and tile counts for every (schedule, N, causal, Q block rows) the web app can run."""
+ out = {}
+ for n in range(4, 33, 4):
+ for causal in (False, True):
+ for qrows in (4, 8, 16, 32):
+ if qrows > n:
+ continue
+ t = traffic(n, causal, "FLASH", qblock=qrows)
+ out[f"FLASH:{n}:{int(causal)}:{qrows}"] = dict(rd=t["rd"], wr=t["wr"], tiles=t["tiles"])
+ t = traffic(n, causal, "NAIVE", qblock=4)
+ out[f"NAIVE:{n}:{int(causal)}:4"] = dict(rd=t["rd"], wr=t["wr"], tiles=t["tiles"])
+ return out
+
+
+def traffic_ts(entries):
+ body = json.dumps(entries, indent=1, sort_keys=True)
+ return ("// GENERATED by sim/golden/export_web_data.py from sim/golden/traffic.py. Do not edit.\n"
+ "// Key: `${mode}:${n}:${causal ? 1 : 0}:${qrows}`. rd / wr: HBM bytes; tiles: tile count.\n"
+ "export interface TrafficEntry {\n rd: number;\n wr: number;\n tiles: number;\n}\n\n"
+ f"export const TRAFFIC: Record = {body};\n")
+
+
def main():
WEB_PRESETS.write_text(presets_ts(preset_entries()))
QUANT_CASES.write_text(json.dumps(quant_cases()) + "\n")
- print(f"wrote {WEB_PRESETS.name} ({len(presets.ALL)} presets) and {QUANT_CASES.name}")
+ TRAFFIC_TS.write_text(traffic_ts(traffic_entries()))
+ print(f"wrote {WEB_PRESETS.name} ({len(presets.ALL)} presets), {QUANT_CASES.name}, {TRAFFIC_TS.name}")
if __name__ == "__main__":
diff --git a/sim/golden/test_golden.py b/sim/golden/test_golden.py
index 9fcb5bd..896842f 100644
--- a/sim/golden/test_golden.py
+++ b/sim/golden/test_golden.py
@@ -277,3 +277,4 @@ def test_web_data_fresh():
assert ewd.WEB_PRESETS.read_text() == ewd.presets_ts(ewd.preset_entries()), "presets.ts is stale"
assert ewd.QUANT_CASES.read_text() == json.dumps(ewd.quant_cases()) + "\n", "quantize_cases.json is stale"
+ assert ewd.TRAFFIC_TS.read_text() == ewd.traffic_ts(ewd.traffic_entries()), "traffic-table.ts is stale"
diff --git a/wasm/harness/bindings.cpp b/wasm/harness/bindings.cpp
index 356ad27..3b1290e 100644
--- a/wasm/harness/bindings.cpp
+++ b/wasm/harness/bindings.cpp
@@ -12,6 +12,14 @@ using namespace emscripten;
namespace {
std::vector toI32(const val& arr) { return vecFromJSArray(arr); }
+val kvToJs(const KVBuffers& kv) {
+ val o = val::object();
+ o.set("sel", kv.sel);
+ o.set("k", val::array(kv.k.begin(), kv.k.end()));
+ o.set("v", val::array(kv.v.begin(), kv.v.end()));
+ return o;
+}
+
val tileToJs(const TileState& t) {
val o = val::object();
o.set("curGrp", t.curGrp);
@@ -65,6 +73,7 @@ EMSCRIPTEN_BINDINGS(tiny_attn) {
}))
.function("snapshot", optional_override([](TinyAttnSim& self) { return snapshotToJs(self.snapshot()); }))
.function("isDone", &TinyAttnSim::isDone)
+ .function("getKVBuffers", optional_override([](TinyAttnSim& self) { return kvToJs(self.getKVBuffers()); }))
.function("getTile", optional_override([](TinyAttnSim& self) { return tileToJs(self.getTile()); }))
.function("readProbabilities", optional_override([](TinyAttnSim& self) {
auto p = self.readProbabilities();
diff --git a/wasm/harness/harness.cpp b/wasm/harness/harness.cpp
index c5892a1..c261864 100644
--- a/wasm/harness/harness.cpp
+++ b/wasm/harness/harness.cpp
@@ -229,3 +229,17 @@ std::vector TinyAttnSim::readProbabilities() {
}
return p;
}
+
+KVBuffers TinyAttnSim::getKVBuffers() const {
+ KVBuffers kv;
+ kv.sel = top_->dbg_kv_sel ? 1 : 0;
+ const uint32_t* kw = wordsOf(top_->dbg_kbuf);
+ const uint32_t* vw = wordsOf(top_->dbg_vbuf);
+ for (int word = 0; word < 8; ++word) {
+ for (int col = 0; col < 4; ++col) {
+ kv.k.push_back(static_cast(signExtend(bitsAt(kw, word * 32 + col * 8, 8), 8)));
+ kv.v.push_back(static_cast(signExtend(bitsAt(vw, word * 32 + col * 8, 8), 8)));
+ }
+ }
+ return kv;
+}
diff --git a/wasm/harness/harness.h b/wasm/harness/harness.h
index cd4a7c7..3243752 100644
--- a/wasm/harness/harness.h
+++ b/wasm/harness/harness.h
@@ -37,6 +37,14 @@ struct TileState {
std::vector o; // 16, 26 bit signed
};
+// K and V tile buffers. k[(buf*4 + row)*4 + col] is K[row][col] of buffer buf (int8, sign-extended); same for v.
+// sel is the buffer the engine is using for the current tile.
+struct KVBuffers {
+ int sel;
+ std::vector k; // 32
+ std::vector v; // 32
+};
+
class TinyAttnSim {
public:
TinyAttnSim();
@@ -62,6 +70,7 @@ class TinyAttnSim {
Snapshot snapshot() const;
bool isDone() const;
TileState getTile() const;
+ KVBuffers getKVBuffers() const;
// P tiles written by a NAIVE run (HBM words 768..): n x n probabilities (UQ1.8), row-major. Requires n known.
std::vector readProbabilities();
diff --git a/wasm/test.mjs b/wasm/test.mjs
index a1e7459..bffdd99 100644
--- a/wasm/test.mjs
+++ b/wasm/test.mjs
@@ -71,6 +71,18 @@ for (const { fx, sim, last, finished } of sims) {
check(JSON.stringify(t.o) === JSON.stringify(lt.o), "tile O differs from golden");
console.log(` last tile (qi=${lt.qi}, kj=${lt.kj}) state checked`);
}
+ {
+ // The K/V buffer in use holds the last K/V tile loaded, which is K/V tile n/4-1 for every fixture (the last
+ // block's last tile). Its rows are the last four rows of the quantized K and V.
+ const kv = sim.getKVBuffers();
+ const lastK = fx.k.slice((fx.n - 4) * 4, fx.n * 4);
+ const lastV = fx.v.slice((fx.n - 4) * 4, fx.n * 4);
+ const bufK = kv.k.slice(kv.sel * 16, kv.sel * 16 + 16);
+ const bufV = kv.v.slice(kv.sel * 16, kv.sel * 16 + 16);
+ check(JSON.stringify(bufK) === JSON.stringify(lastK), `K buffer ${kv.sel} != last K tile`);
+ check(JSON.stringify(bufV) === JSON.stringify(lastV), `V buffer ${kv.sel} != last V tile`);
+ console.log(` K/V buffer ${kv.sel} holds the last K/V tile`);
+ }
if (fx.probs) {
const probs = Array.from(sim.readProbabilities());
const badP = probs.findIndex((v, i) => v !== fx.probs[i]);
diff --git a/web/e2e/smoke.spec.ts b/web/e2e/smoke.spec.ts
new file mode 100644
index 0000000..5466029
--- /dev/null
+++ b/web/e2e/smoke.spec.ts
@@ -0,0 +1,73 @@
+import { expect, test } from "@playwright/test";
+
+// The visualizer runs the compiled engine in the page; each test waits for the engine to load first.
+async function openApp(page: import("@playwright/test").Page) {
+ await page.goto("/app");
+ await expect(page.getByRole("button", { name: "Start" })).toBeVisible({ timeout: 30_000 });
+}
+
+const clock = (page: import("@playwright/test").Page) =>
+ page.getByTestId("clock").textContent().then((t) => Number(t));
+
+test("FLASH run to the end: output matches the float reference", async ({ page }) => {
+ await openApp(page);
+ await page.getByRole("button", { name: "Start" }).click();
+ await page.getByRole("button", { name: "Run to end" }).click();
+
+ await expect(page.getByRole("heading", { name: "Output" })).toBeVisible();
+ const text = await page.locator("main").innerText();
+ const match = text.match(/Max \|engine − float attention\| = ([0-9.]+)/);
+ expect(match, "max deviation line").not.toBeNull();
+ expect(Number(match?.[1])).toBeLessThan(0.02);
+ await expect(page.getByText("Float reference attention")).toBeVisible();
+ await expect(page.getByText(/· in use/)).toBeVisible();
+ await expect(page.getByText(/ B$/).first()).toBeVisible();
+});
+
+test("step forward and back moves the clock", async ({ page }) => {
+ await openApp(page);
+ await page.getByRole("button", { name: "Start" }).click();
+ expect(await clock(page)).toBe(0);
+ for (let i = 0; i < 3; i++) await page.getByRole("button", { name: "Step ▶" }).click();
+ expect(await clock(page)).toBe(3);
+ await page.getByRole("button", { name: "◀ Back" }).click();
+ expect(await clock(page)).toBe(2);
+});
+
+test("NAIVE run shows the engine's probability matrix from HBM", async ({ page }) => {
+ await openApp(page);
+ await page.getByLabel("Schedule").selectOption("1");
+ await page.getByRole("button", { name: "Start" }).click();
+ await page.getByRole("button", { name: "Run to end" }).click();
+
+ await expect(page.getByText("read back from HBM (NAIVE)")).toBeVisible();
+ await expect(page.getByText("Read", { exact: true })).toBeVisible();
+});
+
+test("editing a Q value resets the run and the result follows the new input", async ({ page }) => {
+ await openApp(page);
+ await page.getByRole("button", { name: "Start" }).click();
+ await page.getByRole("button", { name: "Run to end" }).click();
+ await expect(page.getByRole("heading", { name: "Output" })).toBeVisible();
+
+ await page.getByText(/Edit Q, K and V/).click();
+ const cell = page.getByLabel("Q token 0 dimension 0");
+ await cell.fill("2.5");
+ expect(await clock(page)).toBe(0);
+ await expect(page.getByRole("heading", { name: "Output" })).toHaveCount(0);
+ await expect(page.getByRole("button", { name: "Reset to preset" })).toBeEnabled();
+
+ // the engine still matches the float reference for the edited inputs
+ await page.getByRole("button", { name: "Start" }).click();
+ await page.getByRole("button", { name: "Run to end" }).click();
+ const text = await page.locator("main").innerText();
+ const match = text.match(/Max \|engine − float attention\| = ([0-9.]+)/);
+ expect(Number(match?.[1])).toBeLessThan(0.02);
+});
+
+test("no horizontal scroll at phone width", async ({ page }) => {
+ await page.setViewportSize({ width: 375, height: 812 });
+ await openApp(page);
+ const overflow = await page.evaluate(() => document.documentElement.scrollWidth - document.documentElement.clientWidth);
+ expect(overflow).toBeLessThanOrEqual(0);
+});
diff --git a/web/eslint.config.js b/web/eslint.config.js
index 3ed0649..644dfab 100644
--- a/web/eslint.config.js
+++ b/web/eslint.config.js
@@ -40,7 +40,7 @@ export default [
},
},
{
- files: ["**/*.test.ts"],
+ files: ["**/*.test.ts", "e2e/**/*.ts", "playwright.config.ts"],
languageOptions: {
globals: {
...globals.node,
diff --git a/web/package.json b/web/package.json
index 58086dd..2581ece 100644
--- a/web/package.json
+++ b/web/package.json
@@ -9,7 +9,8 @@
"lint": "eslint .",
"typecheck": "astro check && tsc --noEmit",
"format": "prettier --write .",
- "test": "vitest run"
+ "test": "vitest run",
+ "test:e2e": "pnpm build && playwright test"
},
"dependencies": {
"@astrojs/react": "^4.4.2",
@@ -25,6 +26,7 @@
"devDependencies": {
"@astrojs/check": "^0.9.4",
"@eslint/js": "^9.13.0",
+ "@playwright/test": "^1.64.1",
"@types/node": "^22.20.5",
"@types/react": "^18.3.12",
"@types/react-dom": "^18.3.1",
diff --git a/web/playwright.config.ts b/web/playwright.config.ts
new file mode 100644
index 0000000..9eb7edb
--- /dev/null
+++ b/web/playwright.config.ts
@@ -0,0 +1,20 @@
+import { defineConfig, devices } from "@playwright/test";
+
+// Runs against the production build (`pnpm test:e2e` builds first).
+export default defineConfig({
+ testDir: "e2e",
+ fullyParallel: true,
+ retries: process.env.CI ? 1 : 0,
+ reporter: "list",
+ use: {
+ baseURL: "http://localhost:4325",
+ trace: "retain-on-failure",
+ },
+ projects: [{ name: "chromium", use: { ...devices["Desktop Chrome"] } }],
+ webServer: {
+ command: "pnpm exec astro preview --port 4325",
+ url: "http://localhost:4325/app",
+ reuseExistingServer: !process.env.CI,
+ timeout: 60_000,
+ },
+});
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index d01436f..c0f610c 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -42,6 +42,9 @@ importers:
'@eslint/js':
specifier: ^9.13.0
version: 9.39.5
+ '@playwright/test':
+ specifier: ^1.64.1
+ version: 1.64.1
'@types/node':
specifier: ^22.20.5
version: 22.20.5
@@ -811,6 +814,11 @@ packages:
'@oslojs/encoding@1.1.0':
resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==}
+ '@playwright/test@1.64.1':
+ resolution: {integrity: sha512-IaYGml/nSOiZWROfPtuIL7neuu9qDOZ3TNvNljUIrhDMxiGTgPjzj/g9p9RxpS2tSepPDRY+UwAaEeiKtUvIAg==}
+ engines: {node: '>=20'}
+ hasBin: true
+
'@rolldown/pluginutils@1.0.0-beta.27':
resolution: {integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==}
@@ -2635,6 +2643,16 @@ packages:
resolution: {integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==}
engines: {node: '>=12'}
+ playwright-core@1.64.1:
+ resolution: {integrity: sha512-BC4s8y6SEVA6Q1rSxZTto8hI1KUI3xXlHGZgvGqP4IqPdI/a6FX9H29IDNz7vKo9l21b6LfYosScPL6M3xxyDQ==}
+ engines: {node: '>=20'}
+ hasBin: true
+
+ playwright@1.64.1:
+ resolution: {integrity: sha512-HCrVhHr5QQuwYoswEUGTb7gGp522yflbv/ST8nF4sFWGuLjQCt17Q/EubpGGSNKYn1tsTCPZxqHhHCfVURu7UA==}
+ engines: {node: '>=20'}
+ hasBin: true
+
possible-typed-array-names@1.1.0:
resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==}
engines: {node: '>= 0.4'}
@@ -4149,6 +4167,10 @@ snapshots:
'@oslojs/encoding@1.1.0': {}
+ '@playwright/test@1.64.1':
+ dependencies:
+ playwright: 1.64.1
+
'@rolldown/pluginutils@1.0.0-beta.27': {}
'@rollup/pluginutils@5.5.1(rollup@4.65.0)':
@@ -6415,6 +6437,12 @@ snapshots:
picomatch@4.0.7: {}
+ playwright-core@1.64.1: {}
+
+ playwright@1.64.1:
+ dependencies:
+ playwright-core: 1.64.1
+
possible-typed-array-names@1.1.0: {}
postcss@8.5.31:
diff --git a/web/src/components/AttentionHeatmap.tsx b/web/src/components/AttentionHeatmap.tsx
new file mode 100644
index 0000000..45a485a
--- /dev/null
+++ b/web/src/components/AttentionHeatmap.tsx
@@ -0,0 +1,38 @@
+// Attention probabilities P[i][j] (row i attends to column j). "engine" values are read from HBM after a NAIVE run;
+// "float" values are the float reference, because FLASH never stores P.
+interface Props {
+ probs: number[][];
+ labels: string[];
+ source: "engine" | "float";
+}
+
+export default function AttentionHeatmap({ probs, labels, source }: Props) {
+ const n = probs.length;
+ const caption =
+ source === "engine"
+ ? "Attention probabilities P, read back from HBM (NAIVE)"
+ : "Float reference attention (FLASH never stores P, so this is the float model)";
+ return (
+
+
{caption}
+
+
+ {probs.flatMap((row, i) =>
+ row.map((p, j) => (
+
+ )),
+ )}
+
+
+ {labels.length === n && (
+
+ {labels.map((l, i) => {i}:{l} )}
+
+ )}
+
+ );
+}
diff --git a/web/src/components/HbmMeter.tsx b/web/src/components/HbmMeter.tsx
new file mode 100644
index 0000000..a8abd00
--- /dev/null
+++ b/web/src/components/HbmMeter.tsx
@@ -0,0 +1,33 @@
+// HBM traffic so far against the expected total for this configuration (generated from sim/golden/traffic.py).
+interface Props {
+ read: number;
+ write: number;
+ expected: { rd: number; wr: number } | null;
+}
+
+function Bar({ label, value, total, color }: { label: string; value: number; total: number; color: string }) {
+ const pct = total > 0 ? Math.min(100, (value / total) * 100) : 0;
+ return (
+
+
+ {label}
+ {value} / {total} B
+
+
+
+ );
+}
+
+export default function HbmMeter({ read, write, expected }: Props) {
+ if (!expected) {
+ return No traffic reference for this configuration.
;
+ }
+ return (
+
+
+
+
+ );
+}
diff --git a/web/src/components/MatrixEditor.tsx b/web/src/components/MatrixEditor.tsx
new file mode 100644
index 0000000..3595f65
--- /dev/null
+++ b/web/src/components/MatrixEditor.tsx
@@ -0,0 +1,34 @@
+// Editable Q, K or V matrix (one row per token, four columns). Values are the float inputs the browser quantizes.
+interface Props {
+ title: string;
+ values: number[][];
+ onChange: (row: number, col: number, value: number) => void;
+}
+
+export default function MatrixEditor({ title, values, onChange }: Props) {
+ const cols = values[0]?.length ?? 4;
+ return (
+
+
{title}
+
+ {values.flatMap((row, r) =>
+ row.map((value, c) => (
+ {
+ const x = e.target.valueAsNumber;
+ if (Number.isFinite(x)) onChange(r, c, x);
+ }}
+ />
+ )),
+ )}
+
+
+ );
+}
diff --git a/web/src/components/SramPanel.tsx b/web/src/components/SramPanel.tsx
new file mode 100644
index 0000000..5e41f60
--- /dev/null
+++ b/web/src/components/SramPanel.tsx
@@ -0,0 +1,43 @@
+// The K and V tile buffers the engine holds, read from the RTL (dbg_kbuf, dbg_vbuf). Buffer 1 is only used by the
+// overlap schedule; the buffer in use is outlined.
+import type { KVBuffers } from "@/lib/state-schema";
+
+interface Props {
+ kv: KVBuffers | null;
+}
+
+function Tile({ title, values }: { title: string; values: number[] }) {
+ const rows: number[][] = [];
+ for (let r = 0; r < 4; r++) rows.push(values.slice(r * 4, r * 4 + 4));
+ return (
+
+
{title}
+
+ {rows.flatMap((row, i) => row.map((v, j) => {v} ))}
+
+
+ );
+}
+
+export default function SramPanel({ kv }: Props) {
+ if (!kv) {
+ return The buffers fill once a run starts.
;
+ }
+ return (
+
+ {[0, 1].map((b) => (
+
+
+ Buffer {b}{kv.sel === b ? " · in use" : ""}
+
+
+
+
+ ))}
+
+ );
+}
diff --git a/web/src/components/Visualizer.tsx b/web/src/components/Visualizer.tsx
index 35dcea9..ca0ca80 100644
--- a/web/src/components/Visualizer.tsx
+++ b/web/src/components/Visualizer.tsx
@@ -1,14 +1,20 @@
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
+import AttentionHeatmap from "@/components/AttentionHeatmap";
+import HbmMeter from "@/components/HbmMeter";
+import MatrixEditor from "@/components/MatrixEditor";
+import SramPanel from "@/components/SramPanel";
import { loadEngine } from "@/lib/engine";
import { PRESETS } from "@/lib/presets";
import { quantize } from "@/lib/quantize";
import { attention } from "@/lib/reference";
import { flashTileOrder, naiveTileOrder, type TileRef } from "@/lib/schedule";
+import { TRAFFIC } from "@/lib/traffic-table";
import {
FLASH_STATES,
NAIVE_STATES,
type EngineInstance,
type EngineModule,
+ type KVBuffers,
type Snapshot,
type TileState,
} from "@/lib/state-schema";
@@ -24,10 +30,17 @@ interface Settings {
latency: number;
}
+interface Inputs {
+ q: number[][];
+ k: number[][];
+ v: number[][];
+}
+
interface Result {
out: number[][];
maxErr: number;
- probs: number[][] | null;
+ probs: number[][];
+ probsSource: "engine" | "float";
}
const panel = { background: "var(--panel)" } as const;
@@ -39,6 +52,12 @@ function matrix(flat: number[], rows: number, cols: number): number[][] {
return m;
}
+function maxAbsDiff(a: number[][], b: number[][]): number {
+ let worst = 0;
+ a.forEach((row, i) => row.forEach((v, c) => (worst = Math.max(worst, Math.abs(v - (b[i]?.[c] ?? 0))))));
+ return worst;
+}
+
export default function Visualizer() {
const [mod, setMod] = useState(null);
const [error, setError] = useState(null);
@@ -50,9 +69,12 @@ export default function Visualizer() {
qrows: 4,
latency: 10,
});
+ // Edited Q/K/V; null means the preset's values.
+ const [edits, setEdits] = useState(null);
const [stepCount, setStepCount] = useState(0);
const [snap, setSnap] = useState(null);
const [tile, setTile] = useState(null);
+ const [kv, setKv] = useState(null);
const [finished, setFinished] = useState(false);
const [result, setResult] = useState(null);
const simRef = useRef(null);
@@ -60,19 +82,35 @@ export default function Visualizer() {
const preset = PRESETS[settings.preset] ?? PRESETS[0];
const n = preset?.q.length ?? 4;
const labels: string[] = preset?.labels ?? [];
+ const inputs: Inputs = useMemo(
+ () => edits ?? { q: preset?.q ?? [], k: preset?.k ?? [], v: preset?.v ?? [] },
+ [edits, preset],
+ );
const qrowOptions = [4, 8, 16, 32].filter((q) => q <= n);
+ const reset = useCallback(() => {
+ simRef.current?.delete();
+ simRef.current = null;
+ setStepCount(0);
+ setSnap(null);
+ setTile(null);
+ setKv(null);
+ setFinished(false);
+ setResult(null);
+ }, []);
+
useEffect(() => {
loadEngine().then(setMod).catch((e: unknown) => setError(e instanceof Error ? e.message : String(e)));
return () => simRef.current?.delete();
}, []);
- const order: TileRef[] = useMemo(() => {
- if (!preset) return [];
- return settings.mode === 0
- ? flashTileOrder(n, settings.qrows, settings.causal)
- : naiveTileOrder(n, settings.causal);
- }, [preset, n, settings.mode, settings.qrows, settings.causal]);
+ const order: TileRef[] = useMemo(
+ () =>
+ settings.mode === 0
+ ? flashTileOrder(n, settings.qrows, settings.causal)
+ : naiveTileOrder(n, settings.causal),
+ [n, settings.mode, settings.qrows, settings.causal],
+ );
/** Advance one clock. The DONE edge is followed by one finalizing edge (counters are final after it). */
const advance = useCallback((sim: EngineInstance, state: { count: number; finished: boolean }) => {
@@ -87,35 +125,38 @@ export default function Visualizer() {
return s;
}, []);
- /** Publish the state of the engine to the view. Builds the result once the run has finished. */
+ /** Publish the engine state to the view. Builds the result once the run has finished. */
const commit = useCallback(
(sim: EngineInstance, count: number, done: boolean, last: Snapshot) => {
setStepCount(count);
setSnap(last);
setFinished(done);
setTile(sim.getTile());
- if (!done || !preset) {
+ setKv(sim.getKVBuffers());
+ if (!done) {
setResult(null);
return;
}
- const qz = quantize(preset.q, preset.k, preset.v);
+ const qz = quantize(inputs.q, inputs.k, inputs.v);
const out = matrix(sim.readOutput(), n, 4).map((row) => row.map((v) => (v / 256) * qz.sv));
- const ref = attention(preset.q, preset.k, preset.v, settings.causal).out;
- let maxErr = 0;
- out.forEach((row, i) => row.forEach((v, c) => (maxErr = Math.max(maxErr, Math.abs(v - (ref[i]?.[c] ?? 0))))));
- const probs =
- settings.mode === 1 ? matrix(sim.readProbabilities(), n, n).map((row) => row.map((v) => v / 256)) : null;
- setResult({ out, maxErr, probs });
+ const ref = attention(inputs.q, inputs.k, inputs.v, settings.causal);
+ const naive = settings.mode === 1;
+ setResult({
+ out,
+ maxErr: maxAbsDiff(out, ref.out),
+ probs: naive ? matrix(sim.readProbabilities(), n, n).map((row) => row.map((v) => v / 256)) : ref.probs,
+ probsSource: naive ? "engine" : "float",
+ });
},
- [preset, n, settings],
+ [inputs, n, settings],
);
/** Rebuild the run from reset and advance `target` clocks. Used by Start and by step-back. */
const seek = useCallback(
(target: number) => {
- if (!mod || !preset) return;
+ if (!mod) return;
simRef.current?.delete();
- const qz = quantize(preset.q, preset.k, preset.v);
+ const qz = quantize(inputs.q, inputs.k, inputs.v);
const sim = new mod.TinyAttnSim();
sim.configure(n, settings.qrows, settings.causal, settings.mode, settings.overlap, settings.latency, qz.cfgScale);
sim.loadQKV(qz.q, qz.k, qz.v);
@@ -129,7 +170,7 @@ export default function Visualizer() {
}
commit(sim, state.count, state.finished, last);
},
- [mod, preset, n, settings, advance, commit],
+ [mod, inputs, n, settings, advance, commit],
);
const stepOnce = () => {
@@ -150,19 +191,26 @@ export default function Visualizer() {
commit(sim, state.count, state.finished, last ?? sim.snapshot());
};
- const reset = () => {
- simRef.current?.delete();
- simRef.current = null;
- setStepCount(0);
- setSnap(null);
- setTile(null);
- setFinished(false);
- setResult(null);
+ const setPreset = (i: number) => {
+ reset();
+ setEdits(null);
+ setSettings((s) => ({
+ ...s,
+ preset: i,
+ causal: PRESETS[i]?.causal ?? false,
+ qrows: Math.min(s.qrows, PRESETS[i]?.q.length ?? 4),
+ }));
};
- const setPreset = (i: number) => {
+ const editValue = (name: keyof Inputs, row: number, col: number, value: number) => {
reset();
- setSettings((s) => ({ ...s, preset: i, causal: PRESETS[i]?.causal ?? false, qrows: Math.min(s.qrows, PRESETS[i]?.q.length ?? 4) }));
+ setEdits((prev) => {
+ const base = prev ?? inputs;
+ const copy = base[name].map((r) => r.slice());
+ const target = copy[row];
+ if (target) target[col] = value;
+ return { ...base, [name]: copy };
+ });
};
// ---- derived view
@@ -172,13 +220,16 @@ export default function Visualizer() {
order.forEach((t, i) => orderIndex.set(`${t.qi},${t.kj}`, i));
const stateNames = settings.mode === 0 ? FLASH_STATES : NAIVE_STATES;
const stateName = snap ? (stateNames[snap.ctrlState] ?? `#${snap.ctrlState}`) : "not started";
+ const qblock = settings.mode === 1 ? 4 : settings.qrows;
+ const expected =
+ TRAFFIC[`${settings.mode === 1 ? "NAIVE" : "FLASH"}:${n}:${settings.causal ? 1 : 0}:${qblock}`] ?? null;
+
const cellClass = (qi: number, kj: number) => {
if (settings.causal && kj > qi) return { bg: "transparent", label: "masked" };
const idx = orderIndex.get(`${qi},${kj}`);
if (idx === undefined) return { bg: "transparent", label: "" };
- if (idx < tilesStarted - 1) return { bg: "var(--ok)", label: "done" };
if (idx === tilesStarted - 1 && snap?.busy) return { bg: "var(--accent)", label: "in flight" };
- if (idx === tilesStarted - 1) return { bg: "var(--ok)", label: "done" };
+ if (idx < tilesStarted) return { bg: "var(--ok)", label: "done" };
return { bg: "var(--panel)", label: "" };
};
@@ -236,6 +287,22 @@ export default function Visualizer() {
+
+
+ Edit Q, K and V {edits ? "(edited)" : `(preset: ${preset?.name ?? ""})`}
+
+
+
+ Values are floats; the browser quantizes them to INT8 the same way as the golden model. Editing resets the run.
+
+
editValue("q", r, c, x)} />
+ editValue("k", r, c, x)} />
+ editValue("v", r, c, x)} />
+ { reset(); setEdits(null); }}>Reset to preset
+
+
+
seek(0)}>Start
-
Clock
{stepCount}
+
Clock
{stepCount}
-
-
HBM read / write
-
{snap?.hbmRdBytes ?? 0} B / {snap?.hbmWrBytes ?? 0} B
-
Tiles / K-V loads
{snap?.tiles ?? 0} / {snap?.kvLoads ?? 0}
+
+
Expected tiles
+
{expected?.tiles ?? "-"}
+
+
+
{/* schedule */}
@@ -315,16 +387,16 @@ export default function Visualizer() {
>
) : (
-
- NAIVE tiles go through HBM, not the tile core, so the per-element S, Z and P are not shown here.
- The row max m and sum l are shown below; the final probabilities P are in the matrix after the run.
-
- )}
- {settings.mode === 1 && (
-
- fmt(v)} />
- fmt(v)} />
-
+ <>
+
+ NAIVE tiles go through HBM, not the tile core, so the per-element S, Z and P are not shown here.
+ The row max m and sum l are shown below; the final probabilities are in the heatmap after the run.
+
+
+ fmt(v)} />
+ fmt(v)} />
+
+ >
)}
@@ -334,6 +406,11 @@ export default function Visualizer() {
+
+ On-chip K/V buffers
+
+
+
{/* result */}
{result && (
@@ -342,24 +419,7 @@ export default function Visualizer() {
Max |engine − float attention| = {result.maxErr.toFixed(4)} (INT8 quantization of Q, K and V dominates).
- {result.probs && (
-
-
Attention probabilities P (from HBM, NAIVE)
-
- {result.probs.flatMap((row, i) =>
- row.map((p, j) => (
-
- )),
- )}
-
- {labels.length === n && (
-
- {labels.map((l, i) => {i}:{l} )}
-
- )}
-
- )}
+
)}
diff --git a/web/src/lib/state-schema.ts b/web/src/lib/state-schema.ts
index faf9270..70a5009 100644
--- a/web/src/lib/state-schema.ts
+++ b/web/src/lib/state-schema.ts
@@ -26,6 +26,13 @@ export interface TileState {
o: number[]; // 16 values, row-major (4 rows x 4 columns)
}
+/** K and V tile buffers. k[(buf*4 + row)*4 + col] is K[row][col] of buffer buf (int8). sel: buffer in use. */
+export interface KVBuffers {
+ sel: number;
+ k: number[]; // 32
+ v: number[]; // 32
+}
+
export interface EngineInstance {
reset(): void;
configure(n: number, qrows: number, causal: boolean, mode: number, overlap: boolean, latency: number, scale: number): void;
@@ -39,6 +46,7 @@ export interface EngineInstance {
snapshot(): Snapshot;
isDone(): boolean;
getTile(): TileState;
+ getKVBuffers(): KVBuffers;
delete(): void;
}
diff --git a/web/src/lib/traffic-table.ts b/web/src/lib/traffic-table.ts
new file mode 100644
index 0000000..65fb794
--- /dev/null
+++ b/web/src/lib/traffic-table.ts
@@ -0,0 +1,300 @@
+// GENERATED by sim/golden/export_web_data.py from sim/golden/traffic.py. Do not edit.
+// Key: `${mode}:${n}:${causal ? 1 : 0}:${qrows}`. rd / wr: HBM bytes; tiles: tile count.
+export interface TrafficEntry {
+ rd: number;
+ wr: number;
+ tiles: number;
+}
+
+export const TRAFFIC: Record = {
+ "FLASH:12:0:4": {
+ "rd": 336,
+ "tiles": 9,
+ "wr": 96
+ },
+ "FLASH:12:0:8": {
+ "rd": 240,
+ "tiles": 9,
+ "wr": 96
+ },
+ "FLASH:12:1:4": {
+ "rd": 240,
+ "tiles": 6,
+ "wr": 96
+ },
+ "FLASH:12:1:8": {
+ "rd": 208,
+ "tiles": 6,
+ "wr": 96
+ },
+ "FLASH:16:0:16": {
+ "rd": 192,
+ "tiles": 16,
+ "wr": 128
+ },
+ "FLASH:16:0:4": {
+ "rd": 576,
+ "tiles": 16,
+ "wr": 128
+ },
+ "FLASH:16:0:8": {
+ "rd": 320,
+ "tiles": 16,
+ "wr": 128
+ },
+ "FLASH:16:1:16": {
+ "rd": 192,
+ "tiles": 10,
+ "wr": 128
+ },
+ "FLASH:16:1:4": {
+ "rd": 384,
+ "tiles": 10,
+ "wr": 128
+ },
+ "FLASH:16:1:8": {
+ "rd": 256,
+ "tiles": 10,
+ "wr": 128
+ },
+ "FLASH:20:0:16": {
+ "rd": 400,
+ "tiles": 25,
+ "wr": 160
+ },
+ "FLASH:20:0:4": {
+ "rd": 880,
+ "tiles": 25,
+ "wr": 160
+ },
+ "FLASH:20:0:8": {
+ "rd": 560,
+ "tiles": 25,
+ "wr": 160
+ },
+ "FLASH:20:1:16": {
+ "rd": 368,
+ "tiles": 15,
+ "wr": 160
+ },
+ "FLASH:20:1:4": {
+ "rd": 560,
+ "tiles": 15,
+ "wr": 160
+ },
+ "FLASH:20:1:8": {
+ "rd": 432,
+ "tiles": 15,
+ "wr": 160
+ },
+ "FLASH:24:0:16": {
+ "rd": 480,
+ "tiles": 36,
+ "wr": 192
+ },
+ "FLASH:24:0:4": {
+ "rd": 1248,
+ "tiles": 36,
+ "wr": 192
+ },
+ "FLASH:24:0:8": {
+ "rd": 672,
+ "tiles": 36,
+ "wr": 192
+ },
+ "FLASH:24:1:16": {
+ "rd": 416,
+ "tiles": 21,
+ "wr": 192
+ },
+ "FLASH:24:1:4": {
+ "rd": 768,
+ "tiles": 21,
+ "wr": 192
+ },
+ "FLASH:24:1:8": {
+ "rd": 480,
+ "tiles": 21,
+ "wr": 192
+ },
+ "FLASH:28:0:16": {
+ "rd": 560,
+ "tiles": 49,
+ "wr": 224
+ },
+ "FLASH:28:0:4": {
+ "rd": 1680,
+ "tiles": 49,
+ "wr": 224
+ },
+ "FLASH:28:0:8": {
+ "rd": 1008,
+ "tiles": 49,
+ "wr": 224
+ },
+ "FLASH:28:1:16": {
+ "rd": 464,
+ "tiles": 28,
+ "wr": 224
+ },
+ "FLASH:28:1:4": {
+ "rd": 1008,
+ "tiles": 28,
+ "wr": 224
+ },
+ "FLASH:28:1:8": {
+ "rd": 720,
+ "tiles": 28,
+ "wr": 224
+ },
+ "FLASH:32:0:16": {
+ "rd": 640,
+ "tiles": 64,
+ "wr": 256
+ },
+ "FLASH:32:0:32": {
+ "rd": 384,
+ "tiles": 64,
+ "wr": 256
+ },
+ "FLASH:32:0:4": {
+ "rd": 2176,
+ "tiles": 64,
+ "wr": 256
+ },
+ "FLASH:32:0:8": {
+ "rd": 1152,
+ "tiles": 64,
+ "wr": 256
+ },
+ "FLASH:32:1:16": {
+ "rd": 512,
+ "tiles": 36,
+ "wr": 256
+ },
+ "FLASH:32:1:32": {
+ "rd": 384,
+ "tiles": 36,
+ "wr": 256
+ },
+ "FLASH:32:1:4": {
+ "rd": 1280,
+ "tiles": 36,
+ "wr": 256
+ },
+ "FLASH:32:1:8": {
+ "rd": 768,
+ "tiles": 36,
+ "wr": 256
+ },
+ "FLASH:4:0:4": {
+ "rd": 48,
+ "tiles": 1,
+ "wr": 32
+ },
+ "FLASH:4:1:4": {
+ "rd": 48,
+ "tiles": 1,
+ "wr": 32
+ },
+ "FLASH:8:0:4": {
+ "rd": 160,
+ "tiles": 4,
+ "wr": 64
+ },
+ "FLASH:8:0:8": {
+ "rd": 96,
+ "tiles": 4,
+ "wr": 64
+ },
+ "FLASH:8:1:4": {
+ "rd": 128,
+ "tiles": 3,
+ "wr": 64
+ },
+ "FLASH:8:1:8": {
+ "rd": 96,
+ "tiles": 3,
+ "wr": 64
+ },
+ "NAIVE:12:0:4": {
+ "rd": 1200,
+ "tiles": 9,
+ "wr": 672
+ },
+ "NAIVE:12:1:4": {
+ "rd": 816,
+ "tiles": 6,
+ "wr": 480
+ },
+ "NAIVE:16:0:4": {
+ "rd": 2112,
+ "tiles": 16,
+ "wr": 1152
+ },
+ "NAIVE:16:1:4": {
+ "rd": 1344,
+ "tiles": 10,
+ "wr": 768
+ },
+ "NAIVE:20:0:4": {
+ "rd": 3280,
+ "tiles": 25,
+ "wr": 1760
+ },
+ "NAIVE:20:1:4": {
+ "rd": 2000,
+ "tiles": 15,
+ "wr": 1120
+ },
+ "NAIVE:24:0:4": {
+ "rd": 4704,
+ "tiles": 36,
+ "wr": 2496
+ },
+ "NAIVE:24:1:4": {
+ "rd": 2784,
+ "tiles": 21,
+ "wr": 1536
+ },
+ "NAIVE:28:0:4": {
+ "rd": 6384,
+ "tiles": 49,
+ "wr": 3360
+ },
+ "NAIVE:28:1:4": {
+ "rd": 3696,
+ "tiles": 28,
+ "wr": 2016
+ },
+ "NAIVE:32:0:4": {
+ "rd": 8320,
+ "tiles": 64,
+ "wr": 4352
+ },
+ "NAIVE:32:1:4": {
+ "rd": 4736,
+ "tiles": 36,
+ "wr": 2560
+ },
+ "NAIVE:4:0:4": {
+ "rd": 144,
+ "tiles": 1,
+ "wr": 96
+ },
+ "NAIVE:4:1:4": {
+ "rd": 144,
+ "tiles": 1,
+ "wr": 96
+ },
+ "NAIVE:8:0:4": {
+ "rd": 544,
+ "tiles": 4,
+ "wr": 320
+ },
+ "NAIVE:8:1:4": {
+ "rd": 416,
+ "tiles": 3,
+ "wr": 256
+ }
+};
From 02a2c0027df45947bea01118a46d8e026fc79366 Mon Sep 17 00:00:00 2001
From: Dineth Hettiarachchi
Date: Mon, 26 Oct 2026 06:33:34 +0530
Subject: [PATCH 3/3] build: commit the engine WASM and run web tests in CI
web/public/tiny_attn.{mjs,wasm} are tracked again: the Vercel build has no Emscripten, so /app needs
them in git. web CI now runs Vitest and the Playwright smoke tests against the committed engine.
.gitignore re-includes the two files.
---
.github/workflows/web.yml | 13 +++++++++++++
.gitignore | 3 ++-
docs/ARCHITECTURE.md | 5 +++++
web/public/tiny_attn.mjs | 2 ++
web/public/tiny_attn.wasm | Bin 0 -> 212397 bytes
5 files changed, 22 insertions(+), 1 deletion(-)
create mode 100644 web/public/tiny_attn.mjs
create mode 100755 web/public/tiny_attn.wasm
diff --git a/.github/workflows/web.yml b/.github/workflows/web.yml
index 0e3cae1..7833d3a 100644
--- a/.github/workflows/web.yml
+++ b/.github/workflows/web.yml
@@ -38,3 +38,16 @@ jobs:
- name: Build
working-directory: web
run: pnpm build
+
+ - name: Unit tests (Vitest)
+ working-directory: web
+ run: pnpm test
+
+ # The engine (web/public/tiny_attn.{mjs,wasm}) is committed, built by wasm.yml's toolchain; no Emscripten here.
+ - name: Install Playwright Chromium
+ working-directory: web
+ run: pnpm exec playwright install --with-deps chromium
+
+ - name: Smoke tests (Playwright, production build)
+ working-directory: web
+ run: pnpm exec playwright test
diff --git a/.gitignore b/.gitignore
index a24903a..664ef94 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,10 +23,11 @@ sim/results.xml
# WASM build intermediates and generated artifacts
wasm/build/
-web/public/tiny_attn.mjs
+!web/public/tiny_attn.mjs
web/public/spike/
*.o
*.wasm
+!web/public/tiny_attn.wasm
# Toolchain checkouts (built by .tools/*.sh, or symlinked to a sibling project's)
.tools/*
diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md
index 07302af..868d4cf 100644
--- a/docs/ARCHITECTURE.md
+++ b/docs/ARCHITECTURE.md
@@ -386,3 +386,8 @@ Checks: `node wasm/test.mjs` (engine vs golden, now including the K/V buffer in
`pnpm test` (quantization, tile order), `pnpm test:e2e`, `pnpm typecheck`, `pnpm lint`, `pnpm build`, `pytest sim/golden`
(fixture, web-data and traffic-table freshness). The `astro dev` server hangs without output in this environment, so
browser checks use `astro build` + `astro preview`.
+
+**Committed engine build.** `web/public/tiny_attn.{mjs,wasm}` are tracked: the Vercel build has no Emscripten, so `/app`
+needs the files in git. Rebuild with `bash wasm/build.sh` after any RTL or harness change and commit them with it. CI does
+not yet check that the committed files match a fresh build; the wasm workflow's `node wasm/test.mjs` checks behavior, not
+the files.
diff --git a/web/public/tiny_attn.mjs b/web/public/tiny_attn.mjs
new file mode 100644
index 0000000..420f4cf
--- /dev/null
+++ b/web/public/tiny_attn.mjs
@@ -0,0 +1,2 @@
+async function createTinyAttn(moduleArg={}){var Module=moduleArg;var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_IS_WORKER=!!globalThis.WorkerGlobalScope;var ENVIRONMENT_IS_NODE=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer";if(ENVIRONMENT_IS_NODE){const{createRequire}=await(import("node:module"));var require=createRequire(import.meta.url)}var thisProgram="./this.program";var _scriptName=import.meta.url;var scriptDirectory="";function locateFile(path){if(Module["locateFile"])return Module["locateFile"](path,scriptDirectory);return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("node:fs");if(_scriptName.startsWith("file:"))scriptDirectory=require("node:path").dirname(require("node:url").fileURLToPath(_scriptName))+"/";readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename);return ret};readAsync=async(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename,binary?void 0:"utf8");return ret};if(process.argv.length>1)thisProgram=process.argv[1].replace(/\\/g,"/");process.argv.slice(2);0}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href}catch{}readAsync=async url=>{var response=await fetch(url,{credentials:"same-origin"});if(response.ok)return response.arrayBuffer();throw new Error(response.status+" : "+response.url)}}var out=console.log.bind(console);var err=console.error.bind(console);var ABORT=false;var isFileURI=filename=>filename.startsWith("file://");function getMemoryBuffer(){return wasmMemory.buffer}function updateMemoryViews(){if(HEAP8?.buffer?.resizable)return;var b=getMemoryBuffer();HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function preRun(){var preRun=Module["preRun"];if(preRun){if(typeof preRun==="function")preRun=[preRun];onPreRuns.push(...preRun)}callRuntimeCallbacks(onPreRuns)}function initRuntime(){0;if(!Module["noFSInit"]&&!FS.initialized)FS.init();TTY.init();wasmExports["__wasm_call_ctors"]();FS.ignorePermissions=false}function postRun(){var postRun=Module["postRun"];if(postRun){if(typeof postRun==="function")postRun=[postRun];onPostRuns.push(...postRun)}callRuntimeCallbacks(onPostRuns)}function abort(what){Module["onAbort"]?.(what);what=`Aborted(${what})`;err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";throw new WebAssembly.RuntimeError(what)}var wasmBinaryFile;function findWasmBinary(){if(Module["locateFile"])return locateFile("tiny_attn.wasm");return new URL("tiny_attn.wasm",import.meta.url).href}function getBinarySync(file){if(readBinary)return readBinary(file);throw"both async and sync fetching of the wasm failed"}async function getWasmBinary(binaryFile){if(true)try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&!ENVIRONMENT_IS_NODE)try{var response=fetch(binaryFile,{credentials:"same-origin"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation")}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){var imports={env:wasmImports,wasi_snapshot_preview1:wasmImports};return imports}var HEAP8;var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0)callbacks.shift()(Module)};var onPostRuns=[];var onPreRuns=[];var stackRestore=val=>__emscripten_stack_restore(val);var stackSave=()=>_emscripten_stack_get_current();var UTF8Decoder=globalThis.TextDecoder&&new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder)return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr));var str="";while(idx>10,56320|ch&1023)}}return str};var HEAPU8;var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead,ignoreNul):"";var HEAPU32;class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){HEAPU32[this.ptr+4>>2]=type}get_type(){return HEAPU32[this.ptr+4>>2]}set_destructor(destructor){HEAPU32[this.ptr+8>>2]=destructor}get_destructor(){return HEAPU32[this.ptr+8>>2]}set_caught(caught){caught=caught?1:0;HEAP8[this.ptr+12]=caught}get_caught(){return HEAP8[this.ptr+12]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13]=rethrown}get_rethrown(){return HEAP8[this.ptr+13]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr}get_adjusted_ptr(){return HEAPU32[this.ptr+16>>2]}}var uncaughtExceptionCount=0;var __Unwind_RaiseException=()=>{abort()};var HEAP32;var syscallGetVarargI=()=>{var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret};var syscallGetVarargP=syscallGetVarargI;var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(filename).slice(1),normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===".")parts.splice(i,1);else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot)for(;up;up--)parts.unshift("..");return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.slice(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute)path=".";if(path&&trailingSlash)path+="/";return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir)return".";if(dir)dir=dir.slice(0,-1);return root+dir},basename:path=>path&&path.match(/([^\/]+|\/)\/*$/)[1],join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>{if(ENVIRONMENT_IS_NODE){var nodeCrypto=require("node:crypto");return view=>(nodeCrypto.randomFillSync(view),0)}return view=>(crypto.getRandomValues(view),0)};var randomFill=view=>(randomFill=initRandomFill())(view);var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!=="string")throw new TypeError("Arguments to path.resolve must be strings");else if(!path)return"";resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).slice(1);to=PATH_FS.resolve(to).slice(1);function trim(arr){var start=0;for(;start=0;end--)if(arr[end]!=="")break;if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else len+=3}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63;i++}}heap[outIdx]=0;return outIdx-startIdx};var intArrayFromString=(stringy,dontAddNull,length)=>{var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array};var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var buf=Buffer.alloc(256);var bytesRead=0;try{bytesRead=fs.readSync(process.stdin.fd,buf,0,256)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0)result=buf.toString("utf-8",0,bytesRead)}else if(globalThis.window?.prompt){result=window.prompt("Input: ");if(result!==null)result+="\n"}if(!result)return null;FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty)throw new FS.ErrnoError(43);stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char)throw new FS.ErrnoError(60);var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[]}else if(val!=0)tty.output.push(val)},fsync(tty){if(tty.output?.length>0){err(UTF8ArrayToString(tty.output));tty.output=[]}}}};var mmapAlloc=()=>{abort()};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16895,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode))throw new FS.ErrnoError(63);MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=MEMFS.emptyFileContents??=new Uint8Array(0)}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.atime=node.mtime=node.ctime=Date.now();if(parent){parent.contents[name]=node;parent.atime=parent.mtime=parent.ctime=node.atime}return node},getFileDataAsTypedArray(node){return node.contents.subarray(0,node.usedBytes)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents.length;if(prevCapacity>=newCapacity)return;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<1048576?2:1.125)>>>0);if(prevCapacity)newCapacity=Math.max(newCapacity,256);var oldContents=MEMFS.getFileDataAsTypedArray(node);node.contents=new Uint8Array(newCapacity);node.contents.set(oldContents)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;var oldContents=node.contents;node.contents=new Uint8Array(newSize);node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)));node.usedBytes=newSize},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode))attr.size=4096;else if(FS.isFile(node.mode))attr.size=node.usedBytes;else if(FS.isLink(node.mode))attr.size=node.link.length;else attr.size=0;attr.atime=new Date(node.atime);attr.mtime=new Date(node.mtime);attr.ctime=new Date(node.ctime);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){for(const key of["mode","atime","mtime","ctime"])if(attr[key]!=null)node[key]=attr[key];if(attr.size!==void 0)MEMFS.resizeFileStorage(node,attr.size)},lookup(parent,name){if(!MEMFS.doesNotExistError){MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack=""}throw MEMFS.doesNotExistError},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node&&FS.isDir(old_node.mode))for(var i in new_node.contents)throw new FS.ErrnoError(55);delete old_node.parent.contents[old_node.name];new_dir.contents[new_name]=old_node;old_node.name=new_name;new_dir.ctime=new_dir.mtime=old_node.parent.ctime=old_node.parent.mtime=Date.now()},unlink(parent,name){delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents)throw new FS.ErrnoError(55);delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},readdir(node){return[".","..",...Object.keys(node.contents)]},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,41471,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode))throw new FS.ErrnoError(28);return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);buffer.set(contents.subarray(position,position+size),offset);return size},write(stream,buffer,offset,length,position,canOwn){if(buffer.buffer===HEAP8.buffer)canOwn=false;if(!length)return 0;var node=stream.node;node.mtime=node.ctime=Date.now();if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length}else if(!node.usedBytes&&!position){node.contents=buffer.slice(offset,offset+length);node.usedBytes=length}else{MEMFS.expandFileStorage(node,position+length);node.contents.set(buffer.subarray(offset,offset+length),position);node.usedBytes=Math.max(node.usedBytes,position+length)}return length},llseek(stream,offset,whence){var position=offset;if(whence===1)position+=stream.position;else if(whence===2)if(FS.isFile(stream.node.mode))position+=stream.node.usedBytes;if(position<0)throw new FS.ErrnoError(28);return position},mmap(stream,length,position,prot,flags){if(!FS.isFile(stream.node.mode))throw new FS.ErrnoError(43);var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&contents.buffer===HEAP8.buffer){allocated=false;ptr=contents.byteOffset}else{allocated=true;ptr=mmapAlloc();if(!ptr)throw new FS.ErrnoError(48);if(contents){if(position>0||position+length{if(typeof str!=="string")return str;var flags={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[str];if(typeof flags==="undefined")throw new Error(`Unknown file open mode: ${str}`);return flags};var FS_fileDataToTypedArray=data=>{if(typeof data==="string")data=intArrayFromString(data,true);if(!data.subarray)data=new Uint8Array(data);return data};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=365;if(canWrite)mode|=146;return mode};var asyncLoad=async url=>{var arrayBuffer=await readAsync(url);return new Uint8Array(arrayBuffer)};var FS_createDataFile=(...args)=>FS.createDataFile(...args);var getUniqueRunDependency=id=>id;var dependenciesPromise=null;var resolveRunDependencies=async()=>dependenciesPromise;var runDependencies=0;var dependenciesPromiseResolve=null;var removeRunDependency=()=>{runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(!runDependencies)dependenciesPromiseResolve()};var addRunDependency=()=>{if(!runDependencies)dependenciesPromise=new Promise(resolve=>dependenciesPromiseResolve=resolve);runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)};var preloadPlugins=[];var FS_handledByPreloadPlugin=async(byteArray,fullname)=>{if(typeof Browser!=="undefined")Browser.init();for(var plugin of preloadPlugins)if(plugin["canHandle"](fullname))return plugin["handle"](byteArray,fullname);return byteArray};var FS_preloadFile=async(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;getUniqueRunDependency(`cp ${fullname}`);addRunDependency();try{var byteArray=url;if(typeof url==="string")byteArray=await asyncLoad(url);byteArray=await FS_handledByPreloadPlugin(byteArray,fullname);preFinish?.();if(!dontCreateFile)FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}finally{removeRunDependency()}};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:[],currentPath:"/",initialized:false,ignorePermissions:true,syncFSRequests:0,ErrnoError:class{name="ErrnoError";constructor(errno){this.errno=errno}},FSStream:class{shared={};get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{node_ops={};stream_ops={};readMode=365;writeMode=146;mounted=null;constructor(parent,name,mode,rdev){if(!parent)parent=this;this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev;this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}addListener(cb,exclusive=false){var entry={cb,exclusive};var listeners=this.listeners??=new Set;listeners.add(entry);return{listeners,entry}}notifyListeners(flags){if(!this.listeners)return;var excl;for(var entry of this.listeners)if(entry.exclusive)(excl||=[]).push(entry);else entry.cb(flags);if(excl){var i=(this.exclTurn||0)%excl.length;this.exclTurn=i+1;excl[i].cb(flags)}}},lookupPath(path,opts={}){if(!path)throw new FS.ErrnoError(44);opts.follow_mount??=true;if(!PATH.isAbs(path))path=FS.cwd()+"/"+path;linkloop:for(var nlinks=0;nlinks<40;nlinks++){var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node)FS.nameTable[hash]=node.name_next;else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode)throw new FS.ErrnoError(errCode);var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name)return node}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512)perms+="w";return perms},nodePermissions(node,perms){if(FS.ignorePermissions)return 0;if(perms.includes("r")&&!(node.mode&292))return 2;if(perms.includes("w")&&!(node.mode&146))return 2;if(perms.includes("x")&&!(node.mode&73))return 2;return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){if(!FS.isDir(dir.mode))return 54;try{FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode)return errCode;if(isdir){if(!FS.isDir(node.mode))return 54;if(FS.isRoot(node)||FS.getPath(node)===FS.cwd())return 10}else if(FS.isDir(node.mode))return 31;return 0},mayOpen(node,flags){if(!node)return 44;if(FS.isLink(node.mode))return 32;var mode=FS.flagsToPermissionString(flags);if(FS.isDir(node.mode))if(mode!=="r"||flags&576)return 31;return FS.nodePermissions(node,mode)},checkOpExists(op,err){if(!op)throw new FS.ErrnoError(err);return op},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++)if(!FS.streams[fd])return fd;throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1)fd=FS.nextfd();stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},doSetAttr(stream,node,attr){var setattr=stream?.stream_ops.setattr;var arg=setattr?stream:node;setattr??=node.node_ops.setattr;FS.checkOpExists(setattr,63);try{setattr(arg,attr)}catch(e){if(e instanceof RangeError)throw new FS.ErrnoError(22);throw e}},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1)err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length)doCallback(null)}for(var mount of mounts)if(mount.type.syncfs)mount.type.syncfs(mount,populate,done);else done(null)},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root)throw new FS.ErrnoError(10);else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node))throw new FS.ErrnoError(10);if(!FS.isDir(node.mode))throw new FS.ErrnoError(54)}var mount={type,opts,mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root)FS.root=mountRoot;else if(node){node.mounted=mount;if(node.mount)node.mount.mounts.push(mount)}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node))throw new FS.ErrnoError(28);var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);for(var[hash,current]of Object.entries(FS.nameTable))while(current){var next=current.name_next;if(mounts.includes(current.mount))FS.destroyNode(current);current=next}node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name)throw new FS.ErrnoError(28);if(name==="."||name==="..")throw new FS.ErrnoError(20);var errCode=FS.mayCreate(parent,name);if(errCode)throw new FS.ErrnoError(errCode);if(!parent.node_ops.mknod)throw new FS.ErrnoError(63);return parent.node_ops.mknod(parent,name,mode,dev)},statfs(path){return FS.statfsNode(FS.lookupPath(path,{follow:true}).node)},statfsStream(stream){return FS.statfsNode(stream.node)},statfsNode(node){var rtn={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:FS.nextInode,ffree:FS.nextInode-1,fsid:42,flags:2,namelen:255};if(node.node_ops.statfs)Object.assign(rtn,node.node_ops.statfs(node.mount.opts.root));return rtn},create(path,mode=438){mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode=511){mode&=1023;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode=511){var dirs=path.split("/");var d="";for(var dir of dirs){if(!dir)continue;if(d||PATH.isAbs(path))d+="/";d+=dir;try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink(oldpath,newpath){if(!PATH_FS.resolve(oldpath))throw new FS.ErrnoError(44);var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent)throw new FS.ErrnoError(44);var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode)throw new FS.ErrnoError(errCode);if(!parent.node_ops.symlink)throw new FS.ErrnoError(63);return parent.node_ops.symlink(parent,newname,oldpath)},link(oldpath,newpath,flags){var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent)throw new FS.ErrnoError(44);var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode)throw new FS.ErrnoError(errCode);if(!parent.node_ops.link)throw new FS.ErrnoError(34);return parent.node_ops.link(parent,newname,oldpath,flags)},rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount)throw new FS.ErrnoError(75);var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!==".")throw new FS.ErrnoError(28);relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!==".")throw new FS.ErrnoError(55);var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node)return;var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode)throw new FS.ErrnoError(errCode);errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode)throw new FS.ErrnoError(errCode);if(!old_dir.node_ops.rename)throw new FS.ErrnoError(63);if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node))throw new FS.ErrnoError(10);if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode)throw new FS.ErrnoError(errCode)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);if(new_node)FS.hashRemoveNode(new_node);old_node.parent=new_dir}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode)throw new FS.ErrnoError(errCode);if(!parent.node_ops.rmdir)throw new FS.ErrnoError(63);if(FS.isMountpoint(node))throw new FS.ErrnoError(10);parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var readdir=FS.checkOpExists(node.node_ops.readdir,54);return readdir(node)},unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent)throw new FS.ErrnoError(44);var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode)throw new FS.ErrnoError(errCode);if(!parent.node_ops.unlink)throw new FS.ErrnoError(63);if(FS.isMountpoint(node))throw new FS.ErrnoError(10);parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link)throw new FS.ErrnoError(44);if(!link.node_ops.readlink)throw new FS.ErrnoError(28);return link.node_ops.readlink(link)},stat(path,dontFollow=false){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;var getattr=FS.checkOpExists(node.node_ops.getattr,63);return getattr(node)},fstat(fd){var stream=FS.getStreamChecked(fd);var node=stream.node;var getattr=stream.stream_ops.getattr;var arg=getattr?stream:node;getattr??=node.node_ops.getattr;FS.checkOpExists(getattr,63);return getattr(arg)},lstat(path){return FS.stat(path,true)},doChmod(stream,node,mode,dontFollow=false){FS.doSetAttr(stream,node,{mode:mode&4095|node.mode&-4096,ctime:Date.now(),dontFollow})},chmod(path,mode,dontFollow=false){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else node=path;FS.doChmod(null,node,mode,dontFollow)},lchmod(path,mode){FS.chmod(path,mode,true)},fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.doChmod(stream,stream.node,mode,false)},doChown(stream,node,dontFollow=false){FS.doSetAttr(stream,node,{timestamp:Date.now(),dontFollow})},chown(path,uid,gid,dontFollow=false){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else node=path;FS.doChown(null,node,dontFollow)},lchown(path,uid,gid){FS.chown(path,uid,gid,true)},fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.doChown(stream,stream.node,false)},doTruncate(stream,node,len){if(FS.isDir(node.mode))throw new FS.ErrnoError(31);if(!FS.isFile(node.mode))throw new FS.ErrnoError(28);var errCode=FS.nodePermissions(node,"w");if(errCode)throw new FS.ErrnoError(errCode);FS.doSetAttr(stream,node,{size:len,timestamp:Date.now()})},truncate(path,len){if(len<0)throw new FS.ErrnoError(28);var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else node=path;FS.doTruncate(null,node,len)},ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if(len<0||(stream.flags&2097155)===0)throw new FS.ErrnoError(28);FS.doTruncate(stream,stream.node,len)},utime(path,atime,mtime,dontFollow=false){var lookup=FS.lookupPath(path,{follow:!dontFollow});FS.doSetAttr(null,lookup.node,{atime,mtime,dontFollow})},open(path,flags,mode=438){if(path==="")throw new FS.ErrnoError(44);flags=FS_modeStringToFlags(flags);if(flags&64)mode=mode&4095|32768;else mode=0;var node;var isDirPath;if(typeof path==="object")node=path;else{isDirPath=path.endsWith("/");var lookup=FS.lookupPath(path,{follow:!(flags&131072),noent_okay:true});node=lookup.node;path=lookup.path}var created=false;if(flags&64)if(node){if(flags&128)throw new FS.ErrnoError(20)}else if(isDirPath)throw new FS.ErrnoError(31);else{node=FS.mknod(path,mode|511,0);created=true}if(!node)throw new FS.ErrnoError(44);if(FS.isChrdev(node.mode))flags&=-513;if(flags&65536&&!FS.isDir(node.mode))throw new FS.ErrnoError(54);if(!created){var errCode=FS.mayOpen(node,flags);if(errCode)throw new FS.ErrnoError(errCode)}if(flags&512&&!created)FS.truncate(node,0);flags&=-131713;var stream=FS.createStream({node,path:FS.getPath(node),flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open)stream.stream_ops.open(stream);if(created)FS.chmod(node,mode&511);return stream},close(stream){if(FS.isClosed(stream))throw new FS.ErrnoError(8);if(stream.getdents)stream.getdents=null;stream.node?.notifyListeners(32);try{if(stream.stream_ops.close)stream.stream_ops.close(stream)}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed(stream){return stream.fd===null},llseek(stream,offset,whence){if(FS.isClosed(stream))throw new FS.ErrnoError(8);if(!stream.seekable||!stream.stream_ops.llseek)throw new FS.ErrnoError(70);if(whence!=0&&whence!=1&&whence!=2)throw new FS.ErrnoError(28);stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read(stream,buffer,offset,length,position){if(length<0||position<0)throw new FS.ErrnoError(28);if(FS.isClosed(stream))throw new FS.ErrnoError(8);if((stream.flags&2097155)===1)throw new FS.ErrnoError(8);if(FS.isDir(stream.node.mode))throw new FS.ErrnoError(31);if(!stream.stream_ops.read)throw new FS.ErrnoError(28);var seeking=typeof position!=="undefined";if(!seeking)position=stream.position;else if(!stream.seekable)throw new FS.ErrnoError(70);var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write(stream,buffer,offset,length,position,canOwn){if(length<0||position<0)throw new FS.ErrnoError(28);if(FS.isClosed(stream))throw new FS.ErrnoError(8);if((stream.flags&2097155)===0)throw new FS.ErrnoError(8);if(FS.isDir(stream.node.mode))throw new FS.ErrnoError(31);if(!stream.stream_ops.write)throw new FS.ErrnoError(28);if(stream.seekable&&stream.flags&1024)FS.llseek(stream,0,2);var seeking=typeof position!=="undefined";if(!seeking)position=stream.position;else if(!stream.seekable)throw new FS.ErrnoError(70);var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},mmap(stream,length,position,prot,flags){if(prot&2&&!(flags&2)&&(stream.flags&2097155)!==2)throw new FS.ErrnoError(2);if((stream.flags&2097155)===1)throw new FS.ErrnoError(2);if(!stream.stream_ops.mmap)throw new FS.ErrnoError(43);if(!length)throw new FS.ErrnoError(28);return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync(stream,buffer,offset,length,mmapFlags){if(!stream.stream_ops.msync)return 0;return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl)throw new FS.ErrnoError(59);return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags??=0;opts.encoding??="binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary")abort(`Invalid encoding type "${opts.encoding}"`);var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8")buf=UTF8ArrayToString(buf);FS.close(stream);return buf},writeFile(path,data,opts={}){opts.flags??=577;var stream=FS.open(path,opts.flags,opts.mode);data=FS_fileDataToTypedArray(data);FS.write(stream,data,0,data.byteLength,void 0,opts.canOwn);FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null)throw new FS.ErrnoError(44);if(!FS.isDir(lookup.node.mode))throw new FS.ErrnoError(54);var errCode=FS.nodePermissions(lookup.node,"x");if(errCode)throw new FS.ErrnoError(errCode);FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length)=>length,llseek:()=>0});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(!randomLeft){randomFill(randomBuffer);randomLeft=randomBuffer.byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16895,73);node.stream_ops={llseek:MEMFS.stream_ops.llseek};node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path},id:fd+1};ret.parent=ret;return ret},readdir(){return Array.from(FS.streams.entries()).filter(([k,v])=>v).map(([k,v])=>k.toString())}};return node}},{},"/proc/self/fd")},createStandardStreams(input,output,error){if(input)FS.createDevice("/dev","stdin",input);else FS.symlink("/dev/tty","/dev/stdin");if(output)FS.createDevice("/dev","stdout",null,output);else FS.symlink("/dev/tty","/dev/stdout");if(error)FS.createDevice("/dev","stderr",null,error);else FS.symlink("/dev/tty1","/dev/stderr");FS.open("/dev/stdin",0);FS.open("/dev/stdout",1);FS.open("/dev/stderr",1)},staticInit(){FS.nameTable.length=4096;FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories()},init(input,output,error){FS.initialized=true;input??=Module["stdin"];output??=Module["stdout"];error??=Module["stderr"];FS.createStandardStreams(input,output,error)},quit(){FS.initialized=false;for(var stream of FS.streams)if(stream)FS.close(stream)},analyzePath(path,dontResolveLastLink=false){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath(parent,path,canRead,canWrite){parent=typeof parent==="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){if(e.errno!=20)throw e}parent=current}return current},createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name;if(parent){parent=typeof parent==="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){data=FS_fileDataToTypedArray(data);FS.chmod(node,mode|146);var stream=FS.open(node,577);FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}},createDevice(parent,name,input,output){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(!!input,!!output);FS.createDevice.major??=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open(stream){stream.seekable=false},close(stream){if(output?.buffer?.length)output(10)},read(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;ithis.length-1||idx<0)return;var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort(`Couldn't load ${url}. Status: ${xhr.status}`);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1048576;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)abort(`invalid range (${from}, ${to}) or no bytes requested!`);if(to>datalength-1)abort(`only ${datalength} bytes available! programmer error!`);var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range",`bytes=${from}-${to}`);xhr.responseType="arraybuffer";if(xhr.overrideMimeType)xhr.overrideMimeType("text/plain; charset=x-user-defined");xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort(`Couldn't load ${url}. Status: ${xhr.status}`);if(xhr.response!==void 0)return new Uint8Array(xhr.response||[]);return intArrayFromString(xhr.responseText??"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined")lazyArray.chunks[chunkNum]=doXHR(start,end);if(typeof lazyArray.chunks[chunkNum]==="undefined")abort("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown)this.cacheLength();return this._length}get chunkSize(){if(!this.lengthKnown)this.cacheLength();return this._chunkSize}}if(globalThis.XMLHttpRequest){if(!ENVIRONMENT_IS_WORKER)abort("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else properties={isDevice:false,url};var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents)node.contents=properties.contents;else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};for(const[key,fn]of Object.entries(node.stream_ops))stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)};function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice)for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position)=>{FS.forceLoadFile(node);var ptr=mmapAlloc();if(!ptr)throw new FS.ErrnoError(48);writeChunks(stream,HEAP8,ptr,length,position);return{ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var HEAP64;var SYSCALLS={currentUmask:18,calculateAt(dirfd,path,allowEmpty=false){if(PATH.isAbs(path))return path;var dir;if(dirfd===-100)dir=FS.cwd();else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty)throw new FS.ErrnoError(44);return dir}return dir+"/"+path},writeStat(buf,stat){HEAPU32[buf>>2]=stat.dev;HEAPU32[buf+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAPU32[buf+12>>2]=stat.uid;HEAPU32[buf+16>>2]=stat.gid;HEAPU32[buf+20>>2]=stat.rdev;HEAP64[buf+24>>3]=BigInt(stat.size);HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();HEAP64[buf+40>>3]=BigInt(Math.floor(atime/1e3));HEAPU32[buf+48>>2]=atime%1e3*1e3*1e3;HEAP64[buf+56>>3]=BigInt(Math.floor(mtime/1e3));HEAPU32[buf+64>>2]=mtime%1e3*1e3*1e3;HEAP64[buf+72>>3]=BigInt(Math.floor(ctime/1e3));HEAPU32[buf+80>>2]=ctime%1e3*1e3*1e3;HEAP64[buf+88>>3]=BigInt(stat.ino);return 0},writeStatFs(buf,stats){HEAPU32[buf+4>>2]=stats.bsize;HEAPU32[buf+60>>2]=stats.bsize;HEAP64[buf+8>>3]=BigInt(stats.blocks);HEAP64[buf+16>>3]=BigInt(stats.bfree);HEAP64[buf+24>>3]=BigInt(stats.bavail);HEAP64[buf+32>>3]=BigInt(stats.files);HEAP64[buf+40>>3]=BigInt(stats.ffree);HEAPU32[buf+48>>2]=stats.fsid;HEAPU32[buf+64>>2]=stats.flags;HEAPU32[buf+56>>2]=stats.namelen},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode))throw new FS.ErrnoError(43);if(flags&2)return 0;var buffer=HEAPU8.subarray(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:void 0,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};var HEAP16;var AsciiToString=ptr=>{var str="";while(1){var ch=HEAPU8[ptr++];if(!ch)return str;str+=String.fromCharCode(ch)}};var awaitingDependencies={};var registeredTypes={};var typeDependencies={};class BindingError extends Error{constructor(message){super(message);this.name="BindingError"}}var throwBindingError=message=>{throw new BindingError(message)};function sharedRegisterType(rawType,registeredInstance,options={}){var name=registeredInstance.name;if(!rawType)throwBindingError(`type "${name}" must have a positive integer typeid pointer`);if(registeredTypes.hasOwnProperty(rawType))if(options.ignoreDuplicateRegistrations)return;else throwBindingError(`Cannot register type '${name}' twice`);registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function registerType(rawType,registeredInstance,options={}){return sharedRegisterType(rawType,registeredInstance,options)}var HEAPU16;var HEAPU64;var integerReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?pointer=>HEAP8[pointer]:pointer=>HEAPU8[pointer];case 2:return signed?pointer=>HEAP16[pointer>>1]:pointer=>HEAPU16[pointer>>1];case 4:return signed?pointer=>HEAP32[pointer>>2]:pointer=>HEAPU32[pointer>>2];case 8:return signed?pointer=>HEAP64[pointer>>3]:pointer=>HEAPU64[pointer>>3];default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};var shallowCopyInternalPointer=o=>({count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType});var throwInstanceAlreadyDeleted=obj=>{throwBindingError(function(handle){return handle.$$.ptrType.registeredClass.name}(obj)+" instance already deleted")};var finalizationRegistry=false;var detachFinalizer=()=>{};var runDestructor=$$=>{if($$.smartPtr)$$.smartPtrType.rawDestructor($$.smartPtr);else $$.ptrType.registeredClass.rawDestructor($$.ptr)};var releaseClassHandle=$$=>{$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete)runDestructor($$)};var attachFinalizer=handle=>{if(!globalThis.FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$};finalizationRegistry.register(handle,info,handle)}return handle};detachFinalizer=handle=>finalizationRegistry.unregister(handle);return attachFinalizer(handle)};var deletionQueue=[];var flushPendingDeletes=()=>{while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}};function ClassHandle(){}var createNamedFunction=(name,func)=>Object.defineProperty(func,"name",{value:name});var registeredPointers={};var ensureOverloadTable=(proto,methodName,humanName)=>{if(void 0===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(...args){if(!proto[methodName].overloadTable.hasOwnProperty(args.length))throwBindingError(`Function '${humanName}' called with an invalid number of arguments (${args.length}) - expects one of (${proto[methodName].overloadTable})!`);return proto[methodName].overloadTable[args.length].apply(this,args)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}};var exposePublicSymbol=(name,value,numArguments)=>{if(Module.hasOwnProperty(name)){if(void 0===numArguments||void 0!==Module[name].overloadTable&&void 0!==Module[name].overloadTable[numArguments])throwBindingError(`Cannot register public name '${name}' twice`);ensureOverloadTable(Module,name,name);if(Module[name].overloadTable.hasOwnProperty(numArguments))throwBindingError(`Cannot register multiple overloads of a function with the same number of arguments (${numArguments})!`);Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}};var makeLegalFunctionName=name=>{name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=48&&f<=57)return`_${name}`;return name};function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}var upcastPointer=(ptr,ptrClass,desiredClass)=>{while(ptrClass!==desiredClass){if(!ptrClass.upcast)throwBindingError(`Expected null or instance of ${desiredClass.name}, got an instance of ${ptrClass.name}`);ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr};var embindRepr=v=>{if(v===null)return"null";var t=typeof v;if(t==="object"||t==="array"||t==="function")return v.toString();else return""+v};function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference)throwBindingError(`null is not a valid ${this.name}`);return 0}if(!handle.$$)throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`);if(!handle.$$.ptr)throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`);var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference)throwBindingError(`null is not a valid ${this.name}`);if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null)destructors.push(this.rawDestructor,ptr);return ptr}else return 0}if(!handle||!handle.$$)throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`);if(!handle.$$.ptr)throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`);if(!this.isConst&&handle.$$.ptrType.isConst)throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`);var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(void 0===handle.$$.smartPtr)throwBindingError("Passing raw pointer to smart pointer is illegal");switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this)ptr=handle.$$.smartPtr;else throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this)ptr=handle.$$.smartPtr;else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,Emval.toHandle(()=>clonedHandle["delete"]()));if(destructors!==null)destructors.push(this.rawDestructor,ptr)}break;default:throwBindingError("Unsupported sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference)throwBindingError(`null is not a valid ${this.name}`);return 0}if(!handle.$$)throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`);if(!handle.$$.ptr)throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`);if(handle.$$.ptrType.isConst)throwBindingError(`Cannot convert argument of type ${handle.$$.ptrType.name} to parameter type ${this.name}`);var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function readPointer(pointer){return this.fromWireType(HEAPU32[pointer>>2])}var downcastPointer=(ptr,ptrClass,desiredClass)=>{if(ptrClass===desiredClass)return ptr;if(void 0===desiredClass.baseClass)return null;var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null)return null;return desiredClass.downcast(rv)};var registeredInstances={};var getBasestPointer=(class_,ptr)=>{if(ptr===void 0)throwBindingError("ptr should not be undefined");while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr};var getInheritedInstance=(class_,ptr)=>{ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]};class InternalError extends Error{constructor(message){super(message);this.name="InternalError"}}var throwInternalError=message=>{throw new InternalError(message)};var makeClassHandle=(prototype,record)=>{if(!record.ptrType||!record.ptr)throwInternalError("makeClassHandle requires ptr and ptrType");var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr)throwInternalError("Both smartPtrType and smartPtr must be specified");record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record,writable:true}}))};function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(void 0!==registeredInstance)if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}function makeDefaultHandle(){if(this.isSmartPointer)return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr});else return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr})}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord)return makeDefaultHandle.call(this);var toType;if(this.isConst)toType=registeredPointerRecord.constPointerType;else toType=registeredPointerRecord.pointerType;var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null)return makeDefaultHandle.call(this);if(this.isSmartPointer)return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr});else return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===void 0)if(isConst){this.toWireType=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this.toWireType=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else this.toWireType=genericPointerToWireType}var replacePublicSymbol=(name,value,numArguments)=>{if(!Module.hasOwnProperty(name))throwInternalError("Replacing nonexistent public symbol");if(void 0!==Module[name].overloadTable&&void 0!==numArguments)Module[name].overloadTable[numArguments]=value;else{Module[name]=value;Module[name].argCount=numArguments}};var wasmTableMirror=[];var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func)wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr);return func};var embind__requireFunction=(signature,rawFunction)=>{signature=AsciiToString(signature);var fp=function(){var rtn=getWasmTableEntry(rawFunction);return rtn}();if(typeof fp!=="function")throwBindingError(`unknown function pointer with signature ${signature}: ${rawFunction}`);return fp};class UnboundTypeError extends Error{}var getTypeName=type=>{var ptr=___getTypeName(type);var rv=AsciiToString(ptr);_free(ptr);return rv};var throwUnboundTypeError=(message,types)=>{var unboundTypes=[];var seen={};types.forEach(function visit(type){if(seen[type])return;if(registeredTypes[type])return;if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true});throw new UnboundTypeError(`${message}: `+unboundTypes.map(getTypeName).join([", "]))};var whenDependentTypesAreResolved=(myTypes,dependentTypes,getTypeConverters)=>{myTypes.forEach(type=>typeDependencies[type]=dependentTypes);function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length)throwInternalError("Mismatched type converter count");for(var i=0;i{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length)onComplete(typeConverters)})}if(0===unregisteredTypes.length)onComplete(typeConverters)};var heap32VectorToArray=(count,firstElement)=>{var array=[];for(var i=0;i>2]);return array};var runDestructors=destructors=>{while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}};function usesDestructorStack(argTypes){for(var i=1;i{signature=signature.trim();const argsIndex=signature.indexOf("(");if(argsIndex===-1)return signature;return signature.slice(0,argsIndex)};var emval_freelist=[];var emval_handles=[0,1,,1,null,1,true,1,false,1];var __emval_decref=handle=>{if(handle>9&&0===--emval_handles[handle+1]){emval_handles[handle];emval_handles[handle]=void 0;emval_freelist.push(handle)}};var Emval={toValue:handle=>{if(!handle)throwBindingError(`Cannot use deleted val. handle = ${handle}`);return emval_handles[handle]},toHandle:value=>{switch(value){case void 0:return 2;case null:return 4;case true:return 6;case false:return 8;default:{const handle=emval_freelist.pop()||emval_handles.length;emval_handles[handle]=value;emval_handles[handle+1]=1;return handle}}}};var EmValType={name:"emscripten::val",fromWireType:handle=>{var rv=Emval.toValue(handle);__emval_decref(handle);return rv},toWireType:(destructors,value)=>Emval.toHandle(value),readValueFromPointer:readPointer,destructorFunction:null};var HEAPF32;var HEAPF64;var floatReadValueFromPointer=(name,width)=>{switch(width){case 4:return function(pointer){return this.fromWireType(HEAPF32[pointer>>2])};case 8:return function(pointer){return this.fromWireType(HEAPF64[pointer>>3])};default:throw new TypeError(`invalid float width (${width}): ${name}`)}};var installIndexedIterator=(proto,sizeMethodName,getMethodName)=>{const makeIterator=(size,getValue)=>{let index=0;return{next(){if(index>=size)return{done:true};const current=index;index++;const value=getValue(current);return{value,done:false}},[Symbol.iterator](){return this}}};if(!proto[Symbol.iterator])proto[Symbol.iterator]=function(){const size=this[sizeMethodName]();return makeIterator(size,i=>this[getMethodName](i))}};var EmValOptionalType=Object.assign({optional:true},EmValType);var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var UTF16Decoder=globalThis.TextDecoder?new TextDecoder("utf-16le"):void 0;var UTF16ToString=(ptr,maxBytesToRead,ignoreNul)=>{var idx=ptr>>1;var endIdx=findStringEnd(HEAPU16,idx,maxBytesToRead/2,ignoreNul);if(endIdx-idx>16&&UTF16Decoder)return UTF16Decoder.decode(HEAPU16.subarray(idx,endIdx));var str="";for(var i=idx;i{if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr};var lengthBytesUTF16=str=>str.length*2;var UTF32ToString=(ptr,maxBytesToRead,ignoreNul)=>{var str="";var startIdx=ptr>>2;for(var i=0;!(i>=maxBytesToRead/4);i++){var utf32=HEAPU32[startIdx+i];if(!utf32&&!ignoreNul)break;str+=String.fromCodePoint(utf32)}return str};var stringToUTF32=(str,outPtr,maxBytesToWrite=2147483647)=>{if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i65535)i++;HEAP32[outPtr>>2]=codePoint;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr};var lengthBytesUTF32=str=>{var len=0;for(var i=0;i65535)i++;len+=4}return len};var emval_methodCallers=[];var emval_addMethodCaller=caller=>{var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id};var requireRegisteredType=(rawType,humanName)=>{var impl=registeredTypes[rawType];if(void 0===impl)throwBindingError(`${humanName} has unknown type ${getTypeName(rawType)}`);return impl};var emval_lookupTypes=(argCount,argTypes)=>{var a=new Array(argCount);for(var i=0;i>2],`parameter ${i}`);return a};var emval_returnValue=(toReturnWire,destructorsRef,handle)=>{var destructors=[];var result=toReturnWire(destructors,handle);if(destructors.length)HEAPU32[destructorsRef>>2]=Emval.toHandle(destructors);return result};var emval_symbols={};var getStringOrSymbol=address=>{var symbol=emval_symbols[address];if(symbol===void 0)return AsciiToString(address);return symbol};var _emscripten_get_now=()=>performance.now();var _emscripten_date_now=()=>Date.now();var checkWasiClock=clock_id=>clock_id>=0&&clock_id<=3;var bigintToI53Checked=num=>num<-9007199254740992||num>9007199254740992?NaN:Number(num);var getHeapMax=()=>2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var ENV={};var getExecutableName=()=>thisProgram;var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV)if(ENV[x]===void 0)delete env[x];else env[x]=ENV[x];var strings=[];for(var x in env)strings.push(`${x}=${env[x]}`);getEnvStrings.strings=strings}return getEnvStrings.strings};var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;try{var curr=FS.read(stream,HEAP8,ptr,len,offset)}catch(e){if(ret>0&&e instanceof FS.ErrnoError&&(e.errno==6||e.errno==6))break;throw e}if(curr<0)return-1;ret+=curr;if(curr{if(iovcnt==1)return FS.write(stream,HEAP8,HEAPU32[iov>>2],HEAPU32[iov+4>>2],offset);var total=0;for(var i=0,p=iov;i>2];var view=new Uint8Array(total);var voff=0;for(i=0;i>2];var len=HEAPU32[iov+4>>2];view.set(HEAPU8.subarray(ptr,ptr+len),voff);voff+=len}return FS.write(stream,view,0,total,offset)};FS.createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{FS_preloadFile(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish).then(onload).catch(onerror)};FS.preloadFile=FS_preloadFile;FS.staticInit();(()=>{let proto=ClassHandle.prototype;Object.assign(proto,{isAliasOf(other){if(!(this instanceof ClassHandle))return false;if(!(other instanceof ClassHandle))return false;var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;other.$$=other.$$;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right},clone(){if(!this.$$.ptr)throwInstanceAlreadyDeleted(this);if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}},delete(){if(!this.$$.ptr)throwInstanceAlreadyDeleted(this);if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete)throwBindingError("Object already scheduled for deletion");detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=void 0;this.$$.ptr=void 0}},isDeleted(){return!this.$$.ptr},deleteLater(){if(!this.$$.ptr)throwInstanceAlreadyDeleted(this);if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete)throwBindingError("Object already scheduled for deletion");deletionQueue.push(this);if(deletionQueue.length===1&&void 0)(void 0)(flushPendingDeletes);this.$$.deleteScheduled=true;return this}});const symbolDispose=Symbol.dispose;if(symbolDispose)proto[symbolDispose]=proto["delete"]})();(()=>{Object.assign(RegisteredPointer.prototype,{getPointee(ptr){if(this.rawGetPointee)ptr=this.rawGetPointee(ptr);return ptr},destructor(ptr){this.rawDestructor?.(ptr)},readValueFromPointer:readPointer,fromWireType:RegisteredPointer_fromWireType})})();if(Module["noExitRuntime"])Module["noExitRuntime"];if(Module["print"])out=Module["print"];if(Module["printErr"])err=Module["printErr"];if(Module["arguments"])Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];var preInit=Module["preInit"];if(preInit){if(typeof preInit==="function")Module["preInit"]=preInit=[preInit];while(preInit.length>0)preInit.shift()()}var _free,___getTypeName,_malloc,__emscripten_stack_restore,_emscripten_stack_get_current,wasmMemory,wasmTable;function assignWasmExports(wasmExports){_free=wasmExports["free"];___getTypeName=wasmExports["__getTypeName"];_malloc=wasmExports["malloc"];wasmExports["setThrew"];__emscripten_stack_restore=wasmExports["_emscripten_stack_restore"];wasmExports["_emscripten_stack_alloc"];_emscripten_stack_get_current=wasmExports["emscripten_stack_get_current"];wasmMemory=wasmExports["memory"];wasmTable=wasmExports["__indirect_function_table"]}var wasmImports={__assert_fail:(condition,filename,line,func)=>abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"]),__cxa_throw:(ptr,type,destructor)=>{var info=new ExceptionInfo(ptr);info.init(type,destructor);uncaughtExceptionCount++;__Unwind_RaiseException()},__syscall_fcntl64:function(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:var arg=syscallGetVarargI();if(arg<0)return-28;while(FS.streams[arg])arg++;var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd;case 1:case 2:return 0;case 3:return stream.flags;case 4:arg=syscallGetVarargI();stream.flags=stream.flags&-289793|arg&289792;return 0;case 12:arg=syscallGetVarargP();HEAP16[arg+0>>1]=2;return 0;case 13:case 14:return 0}return-28}catch(e){if(typeof FS==="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}},__syscall_ioctl:function(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:if(!stream.tty)return-59;return 0;case 21505:if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=syscallGetVarargP();HEAP32[argp>>2]=termios.c_iflag||0;HEAP32[argp+4>>2]=termios.c_oflag||0;HEAP32[argp+8>>2]=termios.c_cflag||0;HEAP32[argp+12>>2]=termios.c_lflag||0;for(var i=0;i<32;i++)HEAP8[argp+i+17]=termios.c_cc[i]||0;return 0}return 0;case 21510:case 21511:case 21512:if(!stream.tty)return-59;return 0;case 21506:case 21507:case 21508:if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){argp=syscallGetVarargP();var c_iflag=HEAP32[argp>>2];var c_oflag=HEAP32[argp+4>>2];var c_cflag=HEAP32[argp+8>>2];var c_lflag=HEAP32[argp+12>>2];var c_cc=[];for(i=0;i<32;i++)c_cc.push(HEAP8[argp+i+17]);return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag,c_oflag,c_cflag,c_lflag,c_cc})}return 0;case 21519:if(!stream.tty)return-59;argp=syscallGetVarargP();HEAP32[argp>>2]=0;return 0;case 21520:if(!stream.tty)return-59;return-28;case 21537:case 21531:argp=syscallGetVarargP();return FS.ioctl(stream,op,argp);case 21523:if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);argp=syscallGetVarargP();HEAP16[argp>>1]=winsize[0];HEAP16[argp+2>>1]=winsize[1]}return 0;case 21524:if(!stream.tty)return-59;return 0;case 21515:if(!stream.tty)return-59;return 0;default:return-28}}catch(e){if(typeof FS==="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}},__syscall_openat:function(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?syscallGetVarargI():0;if(flags&64)mode&=~SYSCALLS.currentUmask;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS==="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}},_abort_js:()=>abort(""),_embind_register_bigint:(primitiveType,name,size,minRange,maxRange)=>{name=AsciiToString(name);const isUnsignedType=minRange===0n;let fromWireType=value=>value;if(isUnsignedType){const bitSize=size*8;fromWireType=value=>BigInt.asUintN(bitSize,value);maxRange=fromWireType(maxRange)}registerType(primitiveType,{name,fromWireType,toWireType:(destructors,value)=>{if(typeof value==="number")value=BigInt(value);return value},readValueFromPointer:integerReadValueFromPointer(name,size,!isUnsignedType),destructorFunction:null})},_embind_register_bool:(rawType,name,trueValue,falseValue)=>{name=AsciiToString(name);registerType(rawType,{name,fromWireType:function(wt){return!!wt},toWireType:function(destructors,o){return o?trueValue:falseValue},readValueFromPointer:function(pointer){return this.fromWireType(HEAPU8[pointer])},destructorFunction:null})},_embind_register_class:(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor)=>{name=AsciiToString(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);upcast&&=embind__requireFunction(upcastSignature,upcast);downcast&&=embind__requireFunction(downcastSignature,downcast);rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(`Cannot construct ${name} due to unbound types`,[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],base=>{base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else basePrototype=ClassHandle.prototype;var constructor=createNamedFunction(name,function(...args){if(Object.getPrototypeOf(this)!==instancePrototype)throw new BindingError(`Use 'new' to construct ${name}`);if(void 0===registeredClass.constructor_body)throw new BindingError(`${name} has no accessible constructor`);var body=registeredClass.constructor_body[args.length];if(void 0===body)throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${args.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`);return body.apply(this,args)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);if(registeredClass.baseClass){registeredClass.baseClass.__derivedClasses??=[];registeredClass.baseClass.__derivedClasses.push(registeredClass)}var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})},_embind_register_class_constructor:(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor)=>{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],classType=>{classType=classType[0];var humanName=`constructor ${classType.name}`;if(void 0===classType.registeredClass.constructor_body)classType.registeredClass.constructor_body=[];if(void 0!==classType.registeredClass.constructor_body[argCount-1])throw new BindingError(`Cannot register multiple constructors with identical number of parameters (${argCount-1}) for class '${classType.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);classType.registeredClass.constructor_body[argCount-1]=()=>{throwUnboundTypeError(`Cannot construct ${classType.name} due to unbound types`,rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,argTypes=>{argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})},_embind_register_class_function:(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual,isAsync)=>{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=AsciiToString(methodName);methodName=getFunctionName(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],classType=>{classType=classType[0];var humanName=`${classType.name}.${methodName}`;if(methodName.startsWith("@@"))methodName=Symbol[methodName.substring(2)];if(isPureVirtual)classType.registeredClass.pureVirtualFunctions.push(methodName);function unboundTypesHandler(){throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`,rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(void 0===method||void 0===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,argTypes=>{var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context,isAsync);if(void 0===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else proto[methodName].overloadTable[argCount-2]=memberFunction;return[]});return[]})},_embind_register_emval:rawType=>registerType(rawType,EmValType),_embind_register_float:(rawType,name,size)=>{name=AsciiToString(name);registerType(rawType,{name,fromWireType:value=>value,toWireType:(destructors,value)=>value,readValueFromPointer:floatReadValueFromPointer(name,size),destructorFunction:null})},_embind_register_integer:(primitiveType,name,size,minRange,maxRange)=>{name=AsciiToString(name);const isUnsignedType=minRange===0;let fromWireType=value=>value;if(isUnsignedType){var bitshift=32-8*size;fromWireType=value=>value<>>bitshift;maxRange=fromWireType(maxRange)}registerType(primitiveType,{name,fromWireType,toWireType:(destructors,value)=>value,readValueFromPointer:integerReadValueFromPointer(name,size,minRange!==0),destructorFunction:null})},_embind_register_iterable:(rawClassType,rawElementType,sizeMethodName,getMethodName)=>{sizeMethodName=AsciiToString(sizeMethodName);getMethodName=AsciiToString(getMethodName);whenDependentTypesAreResolved([],[rawClassType,rawElementType],types=>{const classType=types[0];installIndexedIterator(classType.registeredClass.instancePrototype,sizeMethodName,getMethodName);return[]})},_embind_register_memory_view:(rawType,dataTypeIndex,name)=>{var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){var size=HEAPU32[handle>>2];var data=HEAPU32[handle+4>>2];return new TA(HEAP8.buffer,data,size)}name=AsciiToString(name);registerType(rawType,{name,fromWireType:decodeMemoryView,readValueFromPointer:decodeMemoryView},{ignoreDuplicateRegistrations:true})},_embind_register_optional:rawOptionalType=>{registerType(rawOptionalType,EmValOptionalType)},_embind_register_std_string:(rawType,name)=>{name=AsciiToString(name);registerType(rawType,{name,fromWireType(value){var length=HEAPU32[value>>2];var payload=value+4;var str;if(true)str=UTF8ToString(payload,length,true);else{str="";for(var i=0;i>2]=length;if(valueIsOfTypeString)if(true)stringToUTF8(value,ptr,length+1);else for(var i=0;i255){_free(base);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+i]=charCode}else HEAPU8.set(value,ptr);if(destructors!==null)destructors.push(_free,base);return base},readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr)}})},_embind_register_std_wstring:(rawType,charSize,name)=>{name=AsciiToString(name);var decodeString,encodeString,lengthBytesUTF;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16}else{decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32}registerType(rawType,{name,fromWireType:value=>{var length=HEAPU32[value>>2];var str=decodeString(value+4,length*charSize,true);_free(value);return str},toWireType:(destructors,value)=>{if(!(typeof value==="string"))throwBindingError(`Cannot pass non-string to C++ string type ${name}`);var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length/charSize;encodeString(value,ptr+4,length+charSize);if(destructors!==null)destructors.push(_free,ptr);return ptr},readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr)}})},_embind_register_void:(rawType,name)=>{name=AsciiToString(name);registerType(rawType,{isVoid:true,name,fromWireType:()=>{},toWireType:()=>{}})},_emval_create_invoker:(argCount,argTypesPtr,kind)=>{var[retType,...argTypes]=emval_lookupTypes(argCount,argTypesPtr);var toReturnWire=retType.toWireType.bind(retType);var argFromPtr=argTypes.map(type=>type.readValueFromPointer.bind(type));argCount--;var captures={toValue:Emval.toValue};var args=argFromPtr.map((argFromPtr,i)=>{var captureName=`argFromPtr${i}`;captures[captureName]=argFromPtr;return`${captureName}(args${i?"+"+i*8:""})`});var functionBody;switch(kind){case 0:functionBody="toValue(handle)";break;case 2:functionBody="new (toValue(handle))";break;case 3:functionBody="";break;case 1:captures["getStringOrSymbol"]=getStringOrSymbol;functionBody="toValue(handle)[getStringOrSymbol(methodName)]";break}functionBody+=`(${args})`;if(!retType.isVoid){captures["toReturnWire"]=toReturnWire;captures["emval_returnValue"]=emval_returnValue;functionBody=`return emval_returnValue(toReturnWire, destructorsRef, ${functionBody})`}functionBody=`return function (handle, methodName, destructorsRef, args) {\n${functionBody}\n}`;var invokerFunction=new Function(Object.keys(captures),functionBody)(...Object.values(captures));var functionName=`methodCaller<(${argTypes.map(t=>t.name)}) => ${retType.name}>`;return emval_addMethodCaller(createNamedFunction(functionName,invokerFunction))},_emval_decref:__emval_decref,_emval_get_property:(handle,key)=>{handle=Emval.toValue(handle);key=Emval.toValue(key);return Emval.toHandle(handle[key])},_emval_incref:handle=>{if(handle>9)emval_handles[handle+1]+=1},_emval_invoke:(caller,handle,methodName,destructorsRef,args)=>emval_methodCallers[caller](handle,methodName,destructorsRef,args),_emval_new_array:()=>Emval.toHandle([]),_emval_new_cstring:v=>Emval.toHandle(getStringOrSymbol(v)),_emval_new_object:()=>Emval.toHandle({}),_emval_run_destructors:handle=>{var destructors=Emval.toValue(handle);runDestructors(destructors);__emval_decref(handle)},_emval_set_property:(handle,key,value)=>{handle=Emval.toValue(handle);key=Emval.toValue(key);value=Emval.toValue(value);handle[key]=value},_tzset_js:(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?"-":"+";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,"0");var minutes=String(absOffset%60).padStart(2,"0");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffset>3]=BigInt(nsec);return 0},emscripten_get_heap_max:()=>getHeapMax(),emscripten_resize_heap:requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize)return false;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement)return true}return false},environ_get:(__environ,environ_buf)=>{var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;HEAPU32[__environ+envp>>2]=ptr;bufSize+=stringToUTF8(string,ptr,1/0)+1;envp+=4}return 0},environ_sizes_get:(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;for(var string of strings)bufSize+=lengthBytesUTF8(string)+1;HEAPU32[penviron_buf_size>>2]=bufSize;return 0},fd_close:function(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}},fd_read:function(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}},fd_seek:function(fd,offset,whence,newOffset){offset=bigintToI53Checked(offset);try{if(isNaN(offset))return 22;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);HEAP64[newOffset>>3]=BigInt(stream.position);if(stream.getdents&&!offset&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}},fd_write:function(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}};var wasmExports;wasmExports=await async function(){function receiveInstance(instance){wasmExports=instance.exports;assignWasmExports(wasmExports);updateMemoryViews();return wasmExports}var info=getWasmImports();var instantiateWasm=Module["instantiateWasm"];if(instantiateWasm)return new Promise(resolve=>{instantiateWasm(info,inst=>resolve(receiveInstance(inst)))});wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(void 0,wasmBinaryFile,info);var exports=function(result){return receiveInstance(result["instance"])}(result);return exports}();await async function(){preRun();if(runDependencies)await resolveRunDependencies();var setStatus=Module["setStatus"];if(setStatus){setStatus("Running...");await new Promise(resolve=>setTimeout(resolve,1));setTimeout(setStatus,1,"")}if(ABORT)return;initRuntime();Module["onRuntimeInitialized"]?.();postRun()}();
+;return Module}export default createTinyAttn;
diff --git a/web/public/tiny_attn.wasm b/web/public/tiny_attn.wasm
new file mode 100755
index 0000000000000000000000000000000000000000..3b8f7914d1e47f2a13b4e7a083cb919911da4337
GIT binary patch
literal 212397
zcmdSC51d`qb>Dmb+=-h*V5onP3k4M<($ovNzkVK6C#G}7}{_tl;
zgKS&`0~*8FmTlRVZ8fFt)KP=tfTO0oRLzIFQ&)W;Zv)kr=ALc
z0s*|nPuZiw!$BoIgH>fcgkbL;F%J$_dHi5i)$kl@5UdKoZ1F*W<)@zHzkpnxd@6i$
z9N7pxseE!|Px?s`wdEugUxES;BOuaGSR`2O<5>cR+K;d98+>r!k&gwf3Ypor{-HG+9$wcsu>OG!
zTL#w;^sU{zddrp|QDi!KWZ&9H9^NuI@YveHM+SnL5a*o%@&3miUOTwqk%xns!aDaf
ztVbSI?CQ-yIC=aA7+Sq%^ZKBo_;X0Vb@k@HwFB!{53cXq@bK10Hmx5BN{Z|7aV{`u
zC`@G&{=j1o_pMu>bG#*pniH&B54rnY*fgKu;q@QuTMPb%haU(6Ay4-a53C>TdvxHD
zN7oMwJ|4u)WHvlJPG)KonMc-aT)%cOn9@vTOEVQ~g?dwp)dK^oA9o2l`ub=KGV8m4
z^@h#kl`yfvwm!09ovT1q(8Rbkk38bj%|0z|!^4B?AE5r)#M`XXqStJA0E{42?CHJa
z{>_i99&}x(>$Id>2G{lZ>a&KOJ1NG;JjxmRp|zcBm($ZfwEm$-1|IL*x?#QV$E|&<
z*E~W+ZQK%c%>3BuEgSl_JiPkREe}4T23s$@%crc}{K(o(eS;ewTHi-Q2D8tASG|8-
z-^T{%dO`IJ7%gDX2iKhuK_tj+%laTV1Bt2B>V|PKB?ZtWZVgt{PAWy5M#6S6wEF#8@_
z{c-x>Sm|4(j%ZpO#X(2JzaR>xg!3zHVO$C;)i4gjFo>pvt*w=H439C
zK@_oKL_tSuROy&9CAcsQSVF>57zJ?@L?O>Gg06yj4>~%6I0#y&mP$b|yQIHyJf&0$
zFDk`TV`452x@XlZ3o1cyNlRyIP`R}2+%Tvvtb$2&6o)~5R?lViMPWFrUav2{JcvqA
z4dT-DifHkR;0QFHDi2{{D@ms-?^tMJq#{=MSE6iitK!8$3!FtkwWU&OskD~LQP4^9
zau8I?<#J28+&1Tm@|9&?f=+_tI1lAnDz%ha+DbFZ=UmlNJ*TTQrCOaaw}mi56u?Uu
zwg+I=_}A9b-aZa?);f)WFzh_9wY9S?2s+Q>Zy20Eb6#1$QmqDC;*gS+s?};-;$OAY
zLI@B*drM2yUgB>+8QR<3Pvz5E?*3C@&-Bl#D~{tZs_>UG$E`u@G}7tM6tyosqJz9k
zrMR`if2Fw6R%>f(tHGHOof4K>!bih@75}TaOi7=KhK3^g%~N4^{NI;rE#D5?DsCi4
z!PLG!hV4UrYgcb(hG%8j5?pw0ACvsL4Fk-eefd(-H>d?63`+M8tY05|H)M{a)2@8{
z(e>|N{m}a0GhyW+C_J(@_}#EdFJJlK08_-DmbCU1Lt@L|Y9;~(2HC6+{@5jFv|GW55{O{u*K>TUlu
z{t58bt^X}P9#4GvKjZ()V*YQ%G`~E)?VHiBNBg43xBc_zH=>uLZU0;JN;DRIJNj+@
zy&C;a^t;jbqVGrBelPm{=!elCM2GqJhtVHJ|2g{O=t#8f&!Qhie;&ON{UrKt(SMKr
zGTQb(qW>A4jQ%=$D;kQQiMPj(Z+k8ti9Z#8I^Gd~F8)Hiz4Tn^Go`PV{!!`kr7uyi
z=i)ELyW%g$Uyc7^{Cxb$(x*zFE&apNKQ4Wt^ySiM>7SJTajd`pB;Ga}kH-Jh{(U{(
z`pfYzPZqK#-s5rpna4RjZnkQILc;bp#5pT1aWB@VcWQjdJ9TSs=V93G2yC9bruf7F2_FedGKf8~xQVyB3^m
z4}g&Ciw%6)C@BI+SOWLG6fO&{1=yPdqdD+u4!rVGnC*Yb(0SzG!94o495_Pc>kf}c
z4vqnei|l9)>?iv_w4hf!@AVyFCU_!?;3?hymu)T-I0|@)fL8#9hDrj*01y6(Dv7t+
zVV2FOR9B_$Xkixg23DKATsQubf_!%tED5RZ?&u?~LV;EmVKcIDJmu`>m$~C)x}&7|
zWq$KZ_xOu)yRXQjeLSK&syDwh#neCQOVB=^wZaq%Ya6eLW)uiT5#M>D`Z!f}z_+C!
z=4aG?jYV*2{x1o$(xz}o`{B&yZ(QYb77ZmCs+?AJT$i-Ot@!muiKG<~HJ
zLone_kd`*3aTYz6mPK2`mVtX4GuvDI7Yn7DfKtiA$I=%1OqjIX)<8UhSN0zS
z*`Ke?%l@D{n_Fkfy*Oh&?aq#LXXj<-*CRNh^g%WcUKP1_Y8GclyR+lnSprY?uO8=E
z4UhG`=~*coT9EBrkfo<%UEs04KRt`G-3zkO1=;-5u`cvj2W#YbU_tiUg6yKxu`c#l
z2WsSaWI=X(LDt=b1;-RVBd3G4dO3T!s2(6!Jtr1qFZ$}~$&U79&tInMxhz}IR6Spq
zm;Hy!vP)DwJyg%(%d*!m%P!3pj#p2QvC-qI=g4K*8<%C5HL>9>!Y;;j}#pzgAdMvA+7Z+vw7iCwSj&-%ivg#RIlpR`>UDJd`aVUIIJ%<-%
z$Kh%*HL!0nwLacKUaM#SVlk~u;TKT@`xj@gEY8YVg&L^34#Lb$@60su3FkXC+IDPl
zc3^SFgj@8JiO8)U`7fqtt=XZ)*_(^AwkBj>Yc-Gc+AMM$x;)!;dDh;9HIZb8NB-L6
z`FoO6Jl2U$xP1BY?3K&2&NGs%d*o+ls3TsUy>@vvwF%jioaV9qx@}UD9&5VCI#Q>*
z9=|*rx*}tNEvm<3o#V0gs1R?*-b|1DmPXUgE3(~JWV22uIoo6XBgDW-NcxP=^;kP+
zoDFM^$NKT4v}$E_fZ7cv9Wmi)DrM%KV?Y`b!pzI`NAOg{D4PmhaJ}Enjrv<_Ve+3k
zC8+(ym0|l+*=%*P784Ix-H{{eNz1Zf=Jzo~$|^xeA~5QYYPv;G3+unmq@@W~ee%sE
z1STlYvX=#AV}B43-v|p4L%gIV&6>wv6l=i9yYMNouN}#k;QEJCz4<^Ee_@ms#D}A0
zKY9JncKzu4KmPUi-Xkgb3m4Fw{5jN7f4~abVCp^kq9Z0sMm1Zk5|xmMh8f3
zr9c)7Nz3zDSxVV_7L>&0TuMSqMU08lbKL`BM(FJzF%YZnZJ~QyCaAWqDv+5tC!dP|2?o9$Qu+Kk7{d1>(4&9pt4RS%6+0+|oY#Y!DP*R8numM`K
zEJ}mbfQ}rP0?;C44Z7L&P1i)P7ZefJ9Ja=oC7YH5(*bJrO-sUG5_Y0=M+8~e^F`Rv
z0yl#$;l}zy*^t1|NZ?K-9uuf%
zP~UuQe4wQO54B_m=zG~~hC3Pq9x-r8$#%s?OyC{^EsK}OLl3)9AsjPs)Oc_R#sfP#
z&(4@Y5RL!YIdCq3RnXTGp|@R{so22Xp~gDdz$hf%9_U{2Z8<<0N@VBL~tPxB$Sa
zO$+)^bz=izt5HT?tVkLf+}McJdw7?06b){4tw_gn5?e{qASonXh5d$HPS9(qFO3>C
zQWO7oLvaj>XXmFXe)6(i2;e%MCKZE@3Oe$(WL&YV&m3!RB*`<@?JfpzUFWd6jx~V9
znB%9Aj;S$+7vxozcovVhyK@e^dO@DgB{^^@fc1~BtAA9~=NAH4N9oA{Nj1ju
zA^>Y?Nia6xFV6uvG^-InbNqEXjfEbKu=M@SYsF
zAqSQM7>5~vakwl8-kSqA0$A=h0T@3w=OMS`A-4h?|8DShwOZ8w_fA0#X{)+stJ9il
z-@#K*H4vt0Iy)Wp`=_9und3%ux*kri#H5nFV%2BONZiBu7w*y#H+>rx!=D_;^ta09-19#=X-2g`Yh{lWc
z)q4P}-IwRUiX2!8V0o~HIp7y^-~%~uUk-c_z>TqEqHRsMM+Pj9P5D`YplR}wZM8X$J&r%9VoC47FZi|
ztW7!Ap#tl*0&8=QrFGwUK3rhEUSK_(V?B~%9VxJm7FdtwSp7NHu>$Lj0&5`0+LB`(
zFR
z3alq`tZg~g?gH!i0_({f>!}=Tw7}X^U=3;H8i!8{vfAHU;Jqlw#`QCbwHf1tmj(A#
z-1J}rd%L1rwN4z>d}Yv&3+R}jKi8mW7F4td7~*Mz`}nD-r!Ot};I^sjr05$oq)F1C
zVL?WIpLnydS5%yl*EG7D24`E-2-i$9!23>tx3j?8Rp5QTz&lXj?Jn@1FYtC2c;7AXMhm<>1>P45yn_Ya
z-U9E%0`H3j-tQH7`wG053%oBCc!vtS{RQ4Df^3ZZpul^rfPPp&hXt8v@Rb7kYRGn*
z@%(h7QO)*DZQWZA3ZNuI({Y=@E;0yylC9rPbh`@H~$cDoP+B(vpi@GLaLXFk_Ow^n!p{V0*doOkd8g;VJI=flzyHwON{a#HS&X8+3@zx>0Cj@2%k`kt>RlW^Ee=%HnvA<0%s$CY>Lf!zSz2DybPrR0^aLY20a2Z~lb
z&`sI_Cp#i#t7(U9o#L^D8qlC_F)e3(#O5LPGYAgU$-a0~TAd%%Un$LDDml(<$DScn
z38dg-*g~TQTB!dg+Ou6f$+W<
z>x3j&7~GWww`!v7j_x%5^NluRRy5I|5U(ac3!=J}C`**anvq#CRB3iFEy_rul2n@X
z)#{vdOK8@o29{z(LvVyc&{M*PqdUl4y)-SUg;!F%gFgVc4&d+)pb(^0m8=BM?VEVr
zn7wYnF3?Sk7M^m<>9pUfBaRiJGFt^!)kn*o866rrLd)o+F}O+NE22D9ZZ~xcJa=RL
zKujjq+|^~O-AAuwerV!nzZip+Z1nd4q;p6ebn+@sw+&`oDYJhHmQLf$zm
zxyp6tg{t)gIN6xCsVy!|TWO6n>Y{pyny+T%pjYtXw3=1>)lf;rozwHE@C2a?E61026($H4&e!of5<
zr@qBa6ZOAhDQ;vlc+Y!DJH00jIlBL~u)ZbxlZlbl36Z~+q8S)ZseUJdpS=L}$d)|5s)r4XZf6GZw(-G2pn^Lu&mI_v3j)reZ
zsxq3gXXr5R{OS?qm@O8d1E|2vBG?M>6a|C8DC2
zG&zx=`!j`mbbLPktFo&KlqZHuT<8jRSOyEs%^T*@56}Pa6%N8?|YmYMwo!nE_>Z>lx
z)S$I{E)ULPXYfGcN8)4jGpw{S@~66ylirHWBJIdDt#`p)P;X_5fVWcv=1vTti;(m8
zLadWq){$GpVbAw#jTsEq^iY_Mk~~bIvU1a@@eJle9Uk*gw1(XEJ%KHS7P6QZY>;&1
zY46@9sW)I5Q;Kzz*A`>FJZLYh!g|?kFQU)OqxQnmt(QT2Vew&xSxFzW!Yp*vh%u+i
z5~+GZtIeqlXl$6;snv*@Qytf?ZJPSxNv6I@r@J_)eYO;~_!^5{ja8XgVls20iaUjN
zc6cm!Ol@UN
zo66e^79_?|y=9JaWvEcILA|O;7zt4sYbG#`Z0JHsJrvw}K6GQ(=U$GB?!ca9d=N_r
zM3NzQWMy0bZNZbxTRh$u)N$w`W{AU1f(Ehefm?FbA86<*4XsvBv7n=?Csk|bmSSYC
zVo7C@HViQdRBf~=NF^^PmZcz=pbzpX{Vsj!=IosaU~>E>~jnzy}SW4fMuP=%>$M~u{DN>(0h%%IbD#!HtC
zVOWz5g-K@?52nmf%whD785^_mR(1MT38HD#&vcW7TN&FgEsIFN%V2s=Liq49c2F7l
z52iESdzE)AbOuw_2gTQUuj`$ioZb`O6TMG$?_=!NvoY8mOxgK@F`Uj>cHOhfZg_6l
z(BHiER_FF)&J!<~{Evj|Muhgu8VO9vo6>1AiJhe}(3X$c*fuci2o;aj`D5w1NgMyp
z#U6HcVGmoNBd8Vwye*lwkv+fd$Xk+Ggl}Tjo2E|8_?+gfV51uX=QFRHmW^q<=33cY*sJ4U}^KVpILVfu+sw|!!3rbvRXZh>nW?usYA{kOFN=FC`0pD~Ho6yLPYp)d>4vy)2GI%kJWu*u?)?VDO}qcx-Y6spKX$xxzXFb!QNv+6uW@@x$;YJgMeaNl$VpHl+$S?=#36^gjA8$yl0PrGeQ;Z0`1ia6^F(IHG
z+}N1HGuhba3@?Yi674u_3)X5hAL>gGngEND#SH;q|1Or}1|pq4Z=^#u*W
z@?(q|&Ao2c?MkK%H>M?1m(|hKE{k$(9d(=q8Mdd=F~#$=WsBU5I&?xa>a-_bNKKSs
zQnPBcO$wybqCbx((iGnm&Ui?H8X%!;xp8;bg~0K_nBIWta}G=k2@RoTBSpr5KS7NW63tc#gp5Vi*!t;A
z-njo4v)&2!H#+W@{=9Mj<9Af|cRTLy{CVU4SKKD)ZAR@!9QXJA+;RU7>Rw_e`@y?y
zKg7bK!*|~A%lAXTH;%{MsyHkJ+%X97b>nf@D{g61+`{p=#frPCDJ~h0!<>U7>83c8
z4D4Ht7tW*E2Qro7SuMhl`8COO>mzgdddJNjjt(}8k@s{-uv+N5RyvgHQ*4pPXln_bXKq_S`@
znL^e&y)fE0&!jEs@Xb1X
zm2QHTTpBNQ2<}8K^7{UOjWy@^k`3VkmR&NY98(Jzo2E#2E;~CThese9-EOJNl*yjNgD3=>XaNhzY__uwjx$SQ6Ta
zB{VCX_tV=UuFSN}fV%o^0H;tgX9uourFMo^p&SgoK9+9vnD9ua6RdKfMy%#TSSFa!
zpp=Mc3h08T=bDro!5MO9NRxOI)zG4bWW=@PUJF`{E=ml>lPcdg1voe1P(y|r?XeW1
zmAmlvfSCilQ&jL!DXND{QCORJAmMA=pI@MpV=A#aZOgV+1BfpU>gZbIr*s)?(6@?1x|1>W
zE}dM8wGh3^9r>8mSx}orAAv1btJdQv7@n-ID*A9~ybqsVqon}a#W9ZtY|qb7{8yTa
zzkg!!7y06Y;)+lF-$C)eS&mxptvP;@qjt|;m6%eh*U&DP+=imWh9Y}4XOFcei?Zi0
zH=aPxc^ZQ!-PP9q%2dEnysqPlOP8^Vib
zHg`HhA!Qg9)&11zD@+?VcWg+7)Kjh9ujL%MdVeuzgK)>jA6~&QSexGf-9i
zFi8!}oml;I$9J4Dl^mrUW5{-x0b;d^y#%u_iv>a2k7H2BD08;RBBoZ>dO9t
zq^xB%2G!C;o$!$m;+*kpAd}o=DoFVdK(w|
ziC@kz(Iw}$2D8{?y(Ofy439monebedHn(AbxTd^baJYQ-eLzm>MgdK
zQSn;!G-s((ho|iKo2_>Ia(Z@tU(fpzz5B51-JajEoL^8}w<3O=Upso>EZ_C+zc+s0
zY~uI$1b&~t!ls`v1I6)6{5Ze=uhlQ@$Ny95h-BeSKO}tJCgBTr6D|~ytxWeg@*+Yy
z>k00&1lPw{)q`y48)5y?ITrA3=c7VFT6lQWYV)8(7c`$4Hsnm|3+rp`2r{UpXO9=w
z=SHLGqffPSp^g!&e$Qn-pfu_UR$|H-X*4PtrWsbwUEyX;NvuCBb3*Qfd7R1Nzxi&h*0OC`wY%L@6u#%&BI2jJKD9JtlE{;E{pGub}vUo
z-ma`>D68E*czC(;?^OOuH?lmdDiv1n{OgXMU#>K5N@I3bT&J;^1@V6J-tXbD3
z{HkShiFvf&)sAQ!0$ntW#RJ0WTQ*y%&ll2ciqPo_ebBSAfM!8@ho4K*P8_#&lcWOD
zQ(Jhske4XKg@P~^h0mLCYeV;_n%e@uJ|1{P(s7jSd(?C4`5&+hVUtX6-Ysm!_R^a
zihW0-(+66@LoT5_45XbbuTDr#QJ~YZ8h0LyiJ1*vA+}`It+evc(8-p5$2rS4
zmDu8#0d?yDL`Q^6!K!Q;jaXG#?eL-P3gh@)VLKH@M}2Qvk{Htyw3{IqKpU$uk7W{M
z^r{}WsYVkr#BOnk7AfKi_$dz#^aL+n+Z)Vr5gGZm-b@}-ZXW0j&UJxTYa7V~w?wZ@
zLNw2)b#7*w>b3EhgQMZI^qT)IiNGEp{C
zAt)PSePZBtCE>>GL}$OM9}4|gJJ4jxkU5|q-B=B<-SVu86357cGHJCmY@g4@R{T!c
z5}h-!1;-S+AHA)ZkbHl(982#sM>G{@%F&onS$!2LKdQZ`C~;KO$C+`?#^&Eqd#P#u
z9xjrqwNzP2PB)jEX+cB2LnvP-W9bWd;_45X|HJ;B`!
zdKumVVmGIyxqJr$>3SEmMnU&$3gr2qrY~fGo?xAulXv+EiJLGz!NVTw(E@9;!`f|F
z3%Jb5!1nMC;3GcuVvWd68CD=!bX!{L4Q?QB7Q-S4`HePG9+vr5pV7yQj0Rms&wGNO
z5bBd2Yse;DOZbFC8J8?DRJmEl#XZ5zsT7TxUcxzU
zKH=KTe3#RroRjhVPs_DAN67w7*w2(V1%BWgH;gRO{L_Z5q9LaVrvy-fiv;wl=i-{0
zTQ;tRd7RNfl**sYA`gel{W{N_VRdp>ic*m3K+x8LFvh{an01@(=m7Am9zFzoz{7`u
z4|@0r@F5Q$1AfiJ$AJ%f_yq9l9vb4tT))C4G;ew@QWTk1pLjF%Yr1jIy$~QUCaH_()MkQRW9W95Wyak
z+3NOf=^6ni-g+z8PMp2SgX8vX!%5$8qc3_=(L*SsdV)I;%o#Y$T_t+$0PFJ{B2T`B
z$($p5V!2TxqjVi1>ny1!wg!4nE|b?^Wd+`X5n+k=NtgFT^kwZM>6&3MFj2eLI)5*j&=Czo5U;&DAZt}hZ&;B^yu
zTxUEw4A0|4bn&=u7&;0e;2cp5RXA2b$-0=Aq~|nx{ATpv&wSNMk<1ao|@yd;<7@
zhld#X2R%Fje8|H)fnW3RZs5Zn9tD2g!+U{`cz6s^^B8<+hI$qF4TITOB2pgr@FCz6
z9zF~_BwYhuAR6aKPue`mD$Oj~6TDyBF}4}~?%rnFp0#YvhEB3AYR|Y%H1N{0Y0uhS
z%pyEa&etx=#SZ)R{e4;=7Q{zdYK?Wts$|V@V-*ZC(SC@0nf0Gxf!6cGV!KD{Zcnge
zfL<J|Y_HO;~2P;G!m{;No
z#houIt-f@V_67Yc&-4j42a>VQkcEqyJPQ}6ENa}%Wx6WhllI(oC6FE+SG{YzCI0*?8Y_7rEoZ|H@Ne**JKXbU{KlK#WK
zJw;E|&6+47K^uGak}u1;u$1rH5jC`L=gJ34p0tZ0u4vL6Uztv$1{8-6;C((+D?cM_
zWm;1VtEvRAnpYYSb8sbh`lT-bKCm*y>9??kRI=7Q%jtk#RUow2L~M>ra!5&R(?6^v
zwG0DG>2Ib3Dv7i>BzaxAobQqxR&rBjjksJQl1O31EeuP8&PZvFh_r3dcL;B~!j6iL
z=+?J_Oiv#gy1w7AkBRCG@xBx6Zln#f_A6ymgfuktR6n<3O4^z~FKThtX5lA-{^VS3
z*=gLlO1<0hB>RY=F_Zy0Q|+KklN5^%uEcD;V5G4M6xqX1Shp%&ANrf1e^L12HEC&c*12`lOG)XaCzsVnSaix=nv^(JM&8y4
zy3Kl~Cf8_ifXVXs?MTj?w>)oi(~;$L-RdARr_P}#NzfAyFZx*s5+SmyDiyy
z)&b9LkDe~M~ebIx9+
z!ET5&M;KS_(*8nY9=W$N4oPVama>?LPvwU|nNHeT>RdMYoi()71@P5<8~FF5o%l^3Q$srVQ=d1L*p
z>ZQ-MQJ=L@-wOys0YB=|S0#HC*G3AoHu?r)yz6jUUDf5dx-2!d?=!Xypm}`bgxecy
zllvV-+Zw2=-i|)KbaUETQitTU3x7js`lYvb!rYU~I&~z%V!i^=fE$fk75X;~C_9%=
zqa7~DxWwq8BI4$XF#acSu*!3w9Yo`PQjTv1h9nh8RZ!%Ra=JblW7HAd_{kTTM>n!m
zC+&>A9c2}O60S+^A7+2Cp6y6ObqH%!Sf{^CY3?t!cbUN2{YhUg6zlZhOtrGws$`=?
zfw$he!DjK{m6Sbz{y67TCg*%T%%$r+=WabO+ji~Ad%0$&7LK>GPSse7STu(JCJ5LzKOMMyull5YjE)N5c6^u6}Sp!!g~>#
zx!OL!JQgKg%<0^xWzuD;=b~p*aa)tM%r2B|mCt3$U{a%1cDYvR6JNJX%&o7c3}~*n
zi&jI))f;?LyC<|?Lwa(cu{Fgn%;()peQP?iH~6$(T4|^}pJ|jP>_@OEpSm|!@4hR&
zB#Z7CF#Xo4+w
zGvlfoHj{^n>UMk|-^V`QbpvhSwIE7kKmk6KUfRVjk=kE`_tgf{^OfPT6%7{8E5o0x
z&^Ed!SR-KrO=yG5%BV=WWXR*e2InU|TrQff$FnPRho>jl+(`6zZiTjjC`ua*Jw{fj
zd3%CK8>t=xjSKYn%nI6`=U`*59y?Yzh2hr5e7$~lg%fo?-ndY&pJ-g9$Icb3bUdGE
zoTtYZR$yVv^U1~xJ-)btKF)I}Z1_{@;T7uW1Z`iDUaame_~{jCx1P_eNEb-(pd0Pc
zf?Q89;ze+c`qMcB^uIZq(m8a&Qvar8&OmYwA?HZKR49=yW?*15y}gAFg1cLZ8Qe8?
zB+e0ub2g=dR7K)ET+VqC)q&(9LN0P7a7zKQ5g+Gbmq^r@B0LczQJp~ILegD$77{x|
zqLl%BW)kxuG5;(ihDAblO=l*-=i!pMXCZ-`WvPZ|79=*Mp#KfKl9?LQsu|v`{-~$q
z0^Tn;3pso{GifkwoSCB(66sk;;6xg!&{ja}W|LHH0}_q1kT@z5xZ^tu7YQVivyi|o
zHnU+tAPH3yG_b@*b@p%|nNG-bMupN(90
zaoSr>9Cj~@3{%RdY`$r+nMMnrn_c#5c3GQjKvYdO;@#p|X6$R@V_Nc7Nwv0SSrvofq!AG$t^M!(poGr-&p^41imFzMtbaFDdMD}EM7Gz=))WL$xaHwdJnFTkqa&A}~XXePSf~;!Yxf0Ya
zZA(!nA~{WAqOv0cNmIvcj#wJE52u)e5vvV4P>O5`)Fmp^G@8V~2*$
zgw>gurOk|njw?xsMv5duQp4e*mn_RpAG(NRI_9WM#42o=l>M77lX)`LlWMkxn4Jxc
ziDk~WF%et0){~t*vTL&Ez93)Qg&*RX!|zy
zalG3`nHRUM8oswHtq{6a`$R(5+Gb056(`;+unCp9-%0I+pAoAq;iSDM(B7C`Gk3r&
zi?-7Uo|21r;Yf0iwB6EOHlPwcB~XYoF7p#|F57IkxC2th!o-A6-v^aU>(S^net$yG
zQ4wHPTZ=4M78r`zevy^rM7ibp{VuqvHCmXRw1I(hJTDoeT`3FnVX$AfqEb^(P2y+!XJi9tV?&8=%in9{#p_B4P
zCMqu@ZuE*Xi7X>!liFkxjzxI5u`w@s5J&FZzAnkjK*t(|-E+V1K#$;T?>5nrmiey|=&At=ptP;j#Ph^A_<=GWv
z&X9?$h+4cAk)^zWQCzxtfTQD(40N{Y
zQq)1g%%eCgrXetovQvWaYQ9W4ZoXn#rrdnRUWN+u71LdTj{%HUMrpH}&H-{Gm(#Ra
z?u@}(eE0(gk1UIi)y-xx@HlQ3!wa@rli0?==D|s4$RGGUISHm7#DPxvw>G1RZQ^q1)uNv*2>v*odn%
zd&^Q*0_-VEVQDMyxYlwVbv(hKsBa?ce@A*t6^xBEtgmtdACnTB06y$``x3@p5~GgY
z;)d`dOiHi>L=C3?ow2<)lM+mJlu+KlF)0z`e2hyIV8#ifSR5Q>K+>o4~g(%prNQ%8tpB)y>;{ax$X@j?Ty-#`yqek(2-xnV>!(EE<4t
z(u{^l&}t3G+sC)!npbQqeypUucu31lkXBc}z~Dz(<#dSQk#bKLY;}k*L0UZn7M0l~tscKaU+SHNB7vo*Y$UG65?4*^s5;RJ2XBSQ>P0tO
zfoWQ8(6yxNBuXM{tbL{zSrOKLF-an;_TAcSiFguwk+qD#r3xV~*CDxTm{hbjvB^v8@0`a8a+C4cB=V8J
zXR#}7m9WYl$plq4j#|_xK_sSC0^6gWS^{p#sRVh0Oj1*m)b!6>%cqpUv1sD9iK=W6
zVccq4jB67t-P6xn^8`|f2kt?!I`
zsc(1aKDzFhbY&No`}h*OO^V2LU>^MBdWObnpz>;pEhiKWjj^DfZ_3~T7?|Odk=7)IPxPjkN
zei^^_^1G4WP5f@=cMHE;`Q66vc7Av8yOZDh_`RRsUHtCmcMrei{8sQ=$?sl%zrgPU
z{O;rTL4F_N_hEh?;rEN$zU))mgxg=x_9gOLnCWf{gF?#MzB@V+HsVaZQGKJkgI2^P
zL*_Oh3R=kBTg>TB;NFuvvMlD@J$q^71#2yO)S~d~B(N@aQCig(To%NKTN;P}J;B8+
z1~tURl6nWL0s@FUrW|i$?`C2-+Yp6e{HrjNWSGJc29j0S`f?pz9g-~aE1Pa7A}vtRJ
zW~kAISsQux1oXIDFv6w&EUo-FbEtAlhZzg$;fA#=U`f>z(CfhOU_Rv2VaPmezB)pg
z)N*}8=q_
z>#?kHnI1QBlFZ}%jcfF{tC8xlym5mbcQkVpjuNcUR+T8k1M3
z^aK~CogB}F(MI%F6&BeY7VZiL~cl
z{~Yzt-Tt}LKS%s?$Uph$rlsQ}o%ZCTp7uQApL{gb-ucL=J^3i9J;&_X8(gW^-hfsV
zH+y~TsDJME&z=4`;-5qQ$#-`x9bf6S=Q000;-7pk*uwd`ussj>=a_%)_s@Oy><#V_
z+LDkiq6ghakBcmAaGM@9dcywh+Hj3~Y;+IQPYV2mJ@f%Zz3Kyt7W^Cj$tP0n{kQ$|
zyY3kup)SE^+Mvle)iez$bCONu=wcgHwKFrxl{6Z5pB3ygc)na|%+&L^EG2lJT!Hxp
zBC&^dI6dHszK35{OVquCB^LpMf}*j@14Q*O-H9Co4w
zTM~NQ_OQ`V`156rhMwSqjm3I=2tyA-k1cQ9sOOu@8#gQOMd2GOIp8DE2qmeko1PD+)ea*jyf~ET7yD$DmvV#(QujB
z>nnW+kyP#!wr`}mpo>?AhLLw8TS6!5DG_RKz(}Lqj_Qp`%m^{Tvn-Z~U?~+NeCos^
zEKrmwi*e^EN6=|=nUG(~n8zeq^!{4<@|%T4@rxpYU3DDdOef(RaA3v40wyD-g>Jj8
zprVuuvQ!0Hwnj{~mQ(h>cy7Zi#QbA~toSMe(kEvs89P$ShVhTfTczOFEgp(0j*V_6
zk2I=g&!P&Vva6TkR7@#JMSr_2vBjl>Pt|lGK1iSf-~zCu_>!(rQ~_e$O32E7Lw_-($$CtST2Mr9
z>R=V1uOzmlpoEkD?R{ikZ#W#qLR`VjQB9quMLlXt!oamo)1s)n({KcJ3xwO<9WR!$
z3)NJe{f!H0OO*U3PtEncmL3o%7kh+@vsN;e4%zj+C0555E0cEvwtKF6f+?y+vLO)J
zqrJj)^0|6WiX|d1#dUc#O_gZiv4(7V9rrtl-_q4eRUqpj05xT*YdO$sg66+Vo1MQUz0YkjmgV15_T
zzTRM+gI4th_d95HZ}6act6haQEbv(fJpSea|KS4vQQ=$P&+%C?JU*H?LD1)ttsv-s
zT=>>?bNo*f_)ir0PZsz?3;|L;qeI@j7+eX#GsUnCtejOBHez8pJ1%SoVdrwrz#y85
zK{|uzylm=LCf)g2=U^k@#5f$pgs|_0#+;-fxPcJbg_Ud*qmI%}C`HNa0YuN4Tq|LX
zIzLGUAUL1HV%C;f8TTxpI45h}+USCqUN05pg@nNYEu|%e<7ocwTPagvop?xMPzYz*
z{C&9ymqeiuj?DSHzX+Gap%6~w`TI%{E{Q}T9QgBhtO!5i!?7A5{M91-m=DJ&f$#%G
zxFjBhVDrG=gGIO`B86a5!QVqg_z>?3!7hWpuNC2vs1$jBBUoXOU
zTR4`GD|&;qLXp*DZ?N8B?=kEn1@@??f;|jWjuzpP^Av))4S$an;gSOtf;A6+-zdWO
zTeu7>dxHmDuG;}OIPjBzn;iHo;6o044)75NjsUVQi`h>DZgJpe0C6y>&>esubKqwI
zA9vvA0snymcLHv6;1>YdXDQhi0iOnvAThFX2^WkV{Au8qJ-h?>H$D70V0|lD_+JE;
zNG5m}FkhxO_$$EQ^6+lpF%LfvEYVH)Uju&C!=u38@$lDy4|w=jfF{v*;bnCyq12kf!gm+p5?U4hs)avagiEMZIM#Rk9WBBo^eP0y
zKK|}0!X*?d1e-zr?k&P4G%Mt&g}+#YOQ=>jmX7@0SA+$c{&Eq1+=pYUN$mb2
z{Dco5wt@3X5iX%#m^&XbU9v1k+5Ho%hhA?Er?^X{UDWm^##21P;
zD-PBt+61VD#JctXsY!FnCv~h6V%?T1a9#OMxd4Lj`zh&!q}QmoqQ+Cb_6B!KN(b#D
zC^%ATt|z!xKCdlrr#DOr%^1qCmJ~JB5jeg&I=OsVN|{h1El-n|mQ8(@Lo%7X%1xWb
zqK-sX^$#>|(HjSjbd*~~|E~0cyby{xzC1~EJFoFxwa_u!gD%2ssBy1isgIRPw4#yt
zx?iFFYb#|mW`99D+@=Z_`Lt;7V=Y#_sjGlA&$j5;Mcr95Zx8t@oeH11J-NF5LP^@>
zzq0WQVrO@`ai^ZU%8fhp+*xkiuIG+&17!g!r?kuE#gV+V)3r82o7?GHayONa&I?Gw
zB$JgIA61^d(k)-|RwtzLt*{_wS<9v=m7taXN_aE1)+1BVn6Ew#BXWhqpBvfQ=}C>E
zD7(4e{5t`jXL7It^8|vgW_#Q#U58KIE9k15`>~XujP$sY&0d^d-bQz^y3y>^>W?$K
z8kcy!RhwQp?DrarvUY7)e9`=9x&j4gA&4|j?oW@cM`kuPfm&q(dVERn*F3xiG&d06Z#8yIMNNwws=~9|Y(cZ?-l&;gb
z=dDzn6`x$e6J^~AJ-NsJrk>pBJgz5K*-wPY6%55NdAE&AuC^uDn^JcP7f&IUXXR8p
z``OJ()w9n(_xh(WuQD7
zBtK-tdf@qXp%_QZPv=N^fzBs8{#~4S1=&!@SJ4QP#)+c<+%6qc8RslPMZh8CTt-s!sjZQhRjJ1;p?z=QP
z`OV~~lMQsvHY^cxs!kU@R&~1R1J#;z+VW)o6LB?T2^uG!^OvAl;)%BDN8)mNFS;k5
zGkZ}y@$Bvm7zN2iy}?a9+IwZZlVGjH#HX3YyMr@$Fa9(RpcqiNckc#_1Ve8)tZ-WW
zn4a{dH}oVNzZ{113h?U&Jo#mF?jjz(+j16Zoiy$0{iU5myhE
z;y^{0v2pWcZ-*-KIDw-ldplf7Y0!iI?MNj(&zwD3+_8%8k>l>k-i}w&`R4G+-cD3f
zIs`7C>}{weodYNSZKNf=0$%*v&X)8_x{iO_-I88K2l8*DEom>^$iMAv(bu$a|70}x
zwdk|}2T=C5zeP?nZ~?_z?gGj{=K{*W2h0VOfg8*Pl!49#l!49#l!49#l!46rxPUTn
zi@AU@(7Avz(7Avz(7Avz(7Avz(7Avz(7Avz@M$CyTtERAE}#tdE}#tdE}#tdE}#td
zE}#tdE}#tdE}#tdE}#tdE}#tdE}#tdE}#tdE}#tdE}#tdE}#tdE}#r{E}&fX?<=R*
zo8uv3h1MdpCW-VT>j))-t6+1rtF%KC&8
zB6~YlPWcWV-iGY$csXTF!{3m-ohYYM&Et^04OLRsH+&A++ejsyZeEA%ZD%EInBO6L
z+g(Zd6f&NN>}|A?E;ipo_O`c@E}+XQu7|}ZeK$)2{&yJM*>|MZ%C6a%oYU141Zj_^
zd#;Il3o5K+`Lf!(H>T%U*b&XkfbxgxK{_hlT?lLE)@GP2#S0f%CRuO5d0lc{Z_uM8
z-hhg&&O%x>g<;?iHMz3zx58?H+RJ%ynGY-)^8GMJx3jo;t~tJ4_rc{F<~%?l$SuZvy9!a)
zRS2woh1QW*%uGO`$(8YWnyE>~Eelo#p`GhJ*r0qPrbE{x%xg`UERlv!Z+N<4Juf_1
zEC!ZGjNE?(t7;Z|PZbSd#fj&|@>BsXUMtLB1*>fCRAUxk?o^{;oX?PJ4Rfl&qHNBk
z@cVH!pwLvnS@QBhGW>p+uMgIAG=kX}=Qr;H6q-DWTx|uMDvu%z12H}=bFNA*0uq+0
z;aze}LMmL9Fm!~4%NcWl(hVdmxj^CQ1FUIsfx>VT)?DvSrJH6P026mA=0YV*t|yLk
z=5{4aKEi~mp8Mh6;3GWnJIe+wxuiF^mB+=s!PPw8(;HmDU6Wc0&4*U4-m5Zsd0pzuA)7Ze|5gn%S%idUC+W
zW+_Z=Wc28HK0|G}`PT}Q3uHo!pTb{%THxfse*OFh9%$CV}axU%hD#ylpE$NfE
zA(o`i42=wp;uQ#ih271BfYDO}cApxs^VEQmQv-%h4LEVfDY+cKqn30boKvV@putp-
zJE^z#QII>R1U+x367;-{N_bx_S!l?2n=pD8cneLaP@ub`M=8t$6!Xf|$AW*5?qIy!E!qz2TcnZ>!xKF73d_&ra;d
z$!IR3;(5o2ufV*-jXXNH4Ms-OUSVO0W=@PM=Dw&!W6#{`z|^?wd3(7U59Ea5@!8xs
zTi8`JC}Ga=x`ix21?Pm}OVDq4pXaP3Nh=afHyIj{%XJ7R`+4@XBCwdll6VsdBo;?(
zXVv34KhgKl)h#&TA@BwZECF#yNY|;*UD+F_6-Z-}p_liju{J;ID(tXReGS|ot_l&L
zljy>Uwd`Tag9=`hwiF($t?!VZxj>P-=XPnbgq2Z;cFq}U*P{y)`WTsV@_wJyTXF4X
zXT+#M>Kyi_Rj2E@$yAAfQ01-{g`mDH0s7KShE7DY|L1BK-zUrcKjXf>pA8ot=%q=+
z>A!q_)B)va81Gi{|4i)-X5RmEBW9keveD1po>BA6{LUHG>HZlQMZL*oc_|^qR@IaX
zZ&yvaAM{gHlTM1ykh|1@RukD!BnR4R9v!3mYV=hC7L2_!%y&?Erq+Asm1jJjv6X4i
zzwa#7m8?3Uo)_l2%Jh!SbIojm
zaD|gV9)*Vg$OrI*uW#^<>Xs$(l#h2<_|S6Z_z55HuweH^4ZcZ)WJS8BFKUQ-^LILk
zo$#FwOTJrFCw!-aU^FrA6CeirPk?;~XIt&=Wqs0nVXQKE7eu9A3^9sNw@2TqU+V5Q820i67@sxmeNoIENFr
z+}dQyGImN@7BpGhrhYb4u>01AK9_|*a}2BpQU=4I`-+B+3R)2G`PK$2$zVFA_(q2C
zS-kDT8pDPY4zP5A}K~V{K9i4POkDz3|mn}Ia!pO
z*)aMMP
z!ACX>*FLggn4DQ~6P-_78eMTgYuILuk8C(zsAYV~6DqoVWWz$Mh6X$NM>Z%dl~OR*
zCU-@aM&)UTHzPW%ZAhD}``g$@>LVM*xx9F3GiuC$ntx=&nALYej9C7W4POMpD6yF0
zBOBJo?#91a+9u!l_Ig*^q0jxWnv2PW!zApBy<;j1#P}f+qEYRsr
z^EJVBiq5YI+Ka=*1Iih$^Tkxk>0YiO%UO{KDAT`t57I+J!$VbWu8n)SUQb@$%k>(3
z4Hwt<#NVm@t>KRAduz_b9rp}R_rWdtg%57`l3z>o_Y5ccw_ann2*>?f%d;|UttxKp
zi7{M|*}cMdaAQvmr@B<5iF5vQw<6b02X*=@R6`WYEbk8@jq&D^Fue
z<}VwD=5cze>sq(dC*4P)7!And`bd-@Ep42ZCGk!ANR&BW%dcnZu$5(&DMk`4biBK2
zz7~_atDaK0rJkZ=;7Qz7w=-!mMqTVMzMr9TXWH&%@H=HmF2B_-;(h4H<+IvYye(<(
zPp8Pmx2`ZYR=IM}6}+2i2ysX-@rJLH3KlU*n{#Pm@-wY0jkyTY6fQcP>qwyeW%E
zyjJu#botu^?M_lK|C@v~(Yf@Qa*}{|rkq@y9sK*W%N}9Y>Kp
zb`O*j9;Mewk6eovqXB2T>`M7}cDKZAD`bfwp$aQUZG-ezZiXwFybM=#IIIUQRqP?R
z#Jo9dys+4t!#B6Y#N{dSB-~*$tUQrYrPFXrOb^&;X_nf
zm1eLwnETQPRJsY?93Lb^{w%3B8Bd&>OqXM0Xu68fpl_^#>iu#)tnrtgle>MCtbsZN
zIiZ$3kUTi-d=Vg8;lz`pITUu>XXM_a_;3sue{fVvXKDvKquGh4O)?W$dmuSSx}EWC
zZPAs{eHMQ^d}uB6cQ|b{2E2n$t9w#@>PF
zD)Dg3#5P~We8j>RAP~{3otw%Kw(+C3I$1aIf;GK1$?1-}?3B^WPgcmO2Eefu@~hF<
zpaZ6(TtIlqnv|=HR06Bk2pLuEVtF#f40D)0ZleQh7Ma9{H=%#JToN9@kCsai(*>X&
z4%QidIQFhUg}FvS6RDVE@5%t)Ypf`YEjixdn54;N^E7kWytc_@Gs`vnwThf`{%oFj
z+D9pG~?#IdEI2*o7b|!uYQN#n+vX4?Zw-;hu+ra!EFqQ
zGaFSoXZ8Z8NFp?*I7@yuhQ2{f=hZmQ5SR5ex+nPM{d;2Q#Yq|Z+q$?urG8d9SI$U+
zG}x*am=9PJ-STBsikR+PIV;dyIpg9Q*C2AU8;?5`n2P8)?%&VWK|JJ|DgzI>wxHsT
zu*2L8O7DQb+;hxdt|=k5rnq#$Uv8LeC_EQVH_wG(a)0iQM)!Q4*Ii8QHP+{j3f+L#
z1$3MhvVN;ue==lmWX{L1uwfx{(>)IUjY2yK}*@PzoNYhS~(?|
zvb$_QT~L~kZB7Y?e6VsFrD=sDxi+_y_bnO@*|aW0^m?oDv=ai58_(qH~^PF7J54
zEg{KO6`21ZHh4-?ImgS9hfzW}WLzP#1_^lr-A-Q>I71}*v}`+z0?6v#QNlOl3P
zyfYFlN~ds@^CUZcA>t-)rrhM28Uv#nzHPxtFkja3Zt{F~c$7R_-~amC^?jNDJI2Qy
zSx(@LzCS(ZZBKzb?mV+uXrptxQsO=nK~ANdFyy8e^`-j)F57W$o~LB%DB;hOraO(&
zjDnJG7&uB_Dh4liggLqP4W9FagHb;oPl?V;r#lIDfJ{m`1?;q=VfVom8Uzo6Tyk_C
z26a}hcEH1+<~sZZ+Cex2uJ9LVS}9~V=P%H{P2l|n>im1$C*gD{^JratqlH|?eG=-6
zE=qw*h2bU$d9+-He0**BSCtRf-zEag7>&vN0ld9CWzU9hy!YH8-d+5X*-=
z=9Wlo7RiKF@b;>wh9_?6AFVvx1{ZI&P3r!}o15-2Gdp!aSY6Z#YP!EbO3KPNtK68+
zJE_OCEsD>j-RGi@3#bO#3p%>*AS%x~4~wVZpUTzdGvt-mm~Kgk+H)&F^kr;wOIVvm
zk;~onWsKq!qS-2+xQ%n?ELZh^)KeSbB6v;>2mC6_6z5h{WtpOP@_h8vHN&Vmr=y~#
z8yOCB;0&0u(hnub+hDy&2zm`bCbEK4YP)b+Gi2<
zb81r)OFdN!grhdq^Y-z4zRzbuqc*kZC%SLqYVQ;O4|VSXW#@I(d48|^{OWN_DoG`k
z9DnzV0cj#9N|SaB<3x2Tu`JthEXR&9J+oFDW>|Qt9I#|ZxECc=IVvg2tU#1t*0@6&
zl#q_pK@~I&O$6Au^2BBmQ0M@LWClS(Fe{G{tJBkhcB1+H_c`Caw@M|)Hoa!8v0V3i
zoyR`=?AO`noPDm460B`vJq%cD6c+ovp(vQXmPW6fM*~#Hb@WVV;}~JVD0>a4=B`jz
zMQ_^GqBg$wP7;RF))&^M^|KP*hX3`UjfeC`7^`Howb6@nVeG@9wD)NcA4(f9Ecc2a
z^d1ijG38is)kxfm^DSI`s
z+Sd^%(0?U{wUz8+SlcOA_zK3tS7KQA!()xuv`$GdR|}6N$2+S9hBemvp5d_?q>{UI
zWiZ#qK-?-DK`MAvqi2GLV6JPXYB77V-FOV=$*bb1R1K}m%H!o=c9q|;Sgy?5$y0;3
zvKJVODL@Dh80Bs85rnyA?pi7LmmQ15>H`-AVtl?>u6B+$#(63!fbjE?k9c8`k9eUj
zUKOy)M?NCnYs}tsAInuM8HnYIdGBMnng>_1*TPD%+ZILZK`uJ8rfk^y?KFr?`IdUJ
zU0u&$pd(FSAYor5j6@4t1>>r)QXa&~a%eCx7Rp$I7o57%x7GqCa{Yt!bJYUHgH_M*
z?S*1`9cdAX9?RzyxWa+}ZrGM{MTUj6kZSA!{t{3hRILXb
zpX2uojI{#w?KJ@RAWmwqd3j(g4dJLu1E31q1U(V9tDaZ`V}ta9Z}vbH1lt1*gBZ|+
z&0Zs~r)jgbDw@U>d>OWFbo~~Km}`Nth}Vj%Y1jwG8d`#jR|dwiWhZxP##13&TOl+S
zUQVL>Tro73M4fC(cHr6Eslxl5*LoM*BJ$Q^ntemvX{HH$P*=HFSui-$jngT2>|@B^
zs7$oThh-cKA5$jgK`t(Zn+xHl^XW{9wd*KyaW~1`;>YmtMbONP%bdG!FDawylK(l8
z>HM6|F`D6#!q{cV;-;By;&ygEmSLu{P?&yHq($yJth?cEqO1Y0diT1-;!Gqs#EP0`
zfOPc5#7vp+p{TKkyhc7;pkr~QnG#N@4{w@dkuqy72!Le1KmuNnwVPSeZ3z(^Qj31U
zZPCz1OTHN-Wo_8P-vA3)hjDWg0%JxeM+50~32WSJhe|>CU4gHr^1lz}ssv=HmkHom
z-HqKk=$iFf1w~OKr8diq1!6v!j~(4ssv%`sXqrn2RdJn3y`rvk5mCkHn;|u?XfRtg
z1RC^$txu%ZQEr7D*$_5iW_p#CLaHKEW~8yhn825y2XVkCEKs3dkh*CQAnHOI56VDN
z%LE39aHckcDCM-a2zErcXvKikjErE_oP6n1gWSw2SDmB>0c5XWx2`34NPx=jsEU*T
zuYyRc9b&2Wqoszq%Q3<{BGnQn1HAvaZ5_^`pASy1@>HwMMZIi*^YOYMQ!7RT&zrOZuHd
zRfage8kBO1LshInoDu$`BHErt)A5`(OnH8PQQQuOULecrlvWrMyf_dw95Sw-t;}a(Fd~b})G8taxiriK-1so|=J8OEVy`blKA{SO!*90Po
zvaS)QC4o3OonVOB4p>MQ1{V>v$_+(&{y|VsplY@|$syvl4nqSgnq31jznh_#}J*t_8|7?F}3PG`wRzKJq|X
zS{7#8qqKaa8xb42J{AfMM0{OY9m#f{Zp!?EUQ+E;7Xl|7+s-p
zd_N-nMGb=*$7{&gY
zd!a?~P5Y2Sp*K-J0~Da%_5m6M0>V^+)Z^F`taayqJG@fa3+hgjF#qkSNSnM3Czx2y
z`WVFSo|Gm*(nLtg0-;5-#qnM^n>-FWNMg_HAfq*KqMYa;q$#=t$AIa8_#g_hXi0^U
zBL(s5KORX*x%f5h)AuekXcQB#Ep*B?w*CAUyY5fN+{MWK!ceD!cFH=R%JA@f_4AVA
z3<%jl<92l-WIQ`))LPas#Ca`pe>a+Ebbj87+`>oW&b}@Ar{XxBhaeXIESl;33*E&2
zI)o1GJgnRkrMNeeA|sV_UmuB13}{6`*IiQ=iIQ)fS^kHTLNQSa*dgYF)hC?K_EK@FR7-%ebuf5
zLW(GVFplTlv#4?Y1P)DX4&bCWd~K1_M`1Z1D95XM_snNV
z8+DEo`|ZoU+x!nwRHHWm(rY63tQiMzC^d55`5(*@HPJ!1hv)yiO>!DwB}f@T>52@I
z;x~McbD?89?jK5Mvoq8A)k>+-M)wU~@+R;6&&ibgF9rX1ek}$A&z_7szl1oUReU&m
z%50Z5!rDD|G9c-q-Go3kl#hs_{0tK@%+hm-I+ugWIQ
zDkxo9CoWB2L0na!?36t^!wT|uTjDWMClCt{qgx;a>tWjFzCrKucUkYAuikz6`Fd9$
zeed?m@x9ymxj4$7NaNZ(UM_DIf;@(-M%J=U%#MIB{17wi4>4^$u$ib~n8`@MY)-Nk
z4E+X@+M8-LTFQ1wL8f>I0RdU}Y}`t|fEQ6F0z1eTGudVHC-4Fl)n?s7A@EEG)i8=#
z(!!=2X-Gv^%tITxm2Hb6DTqvxm{DwU0%&Jl@^(he38PWZ7nd8vrPB5gGLS|1WX+jk
zIvV{ZAao>&BU#}@w)D2R3_H59V26+hre6t|0!4gS3)Z}AH5M`dfN^f0jBtnhK%Ih{
zz&&TTTMB`j=ijW;eQsPMd>b!yuxw!;jR|FBaG?zhYuuOFCk@9Kt5SvKNc~%QthPPL
zUMuOQyP?;TUsVlS{x&*zDZ`!~{wfk9;u5Dr#Ip_zFj$-n!xU)7(-|k_(79f`#MKC+
zqQL|NYZT)LJAQ})cLnN|K$f)N5n}Np8c;_9M90s<*9lzgQJIB2I;hQ~6k-TyuH($T
z8Tx{p6f~J7Lj?#{!2^ZS*XTSKznx_4{UA5XY!h73Y|eL2o(hex7r=S
zI84Iv_PS)eUp($+;N)irU@JJ2s%@Tgd=lD*a_P)bPiXlHx(77hl5X8Y?1x-bjuXXW
z2XbNyx_W?ijRy=6qY+d{_pps#-#ATUs{qj}wz^t}sVRXjCkh-V6bdD3z_Avd=6L&p
zI!D<}$0N>P2@Cs7UE^7ievdjBkN`s5mqjKjdIBc4;hd-MB+xe^!#Hkxf>Ta5XS6*b
zya)I;RU-nFoojkCr7>pDjA9L;jZNX}r_=d~C~rpYo9jBSit;~7l6XEo<
zT}eE_!S1{Exz=qSMR-%^kF2Z$X}J{VJA{~11Bl^1AVzl}rgH-Jc!=Kz^Tn7$_R>RD
zQ{%qnfzYF=^W7ww(mxUIYsz>eNl>ymLm)2PIhf9fR*@=Lb}RYyn5f{KG9&DzaxeQt_;QWd`~|Jiq$YMLK6(h
zkuvSUkP3#xU`P!Hcx_IKEuE(7rK8|ZHz0KKutAppMv`Q}Ah>2+@ixRNj@8I@-we8G
zlgRo_lU9{rw
ziHAYU>uI=PNYrI3x=!`|1U55B`r;qU%qoA4oIXW*|~0p1S2k#If6-xSiP=cQjZBpyKg?DdyDe5Wh#v!~=<
zf4Seke25ElxDfLena98n02DXguI~=lN5l04;riilW&NquM<7$XE{E$=Tvg?{@JzHp
z`+h!LpY>M-M$`M~KgaGGb&gFKVKN8?IuO%^5>CPm~7jZqs^c?2yj_5a7KoWTM4EteVuv31}
z9J!}Ri+VRNl{b$iTqp?FD{lp)h8bL-Y*_-CySnq!4x1jZa9!GT55h>tU`20&%*`#u
z^jV>Z9b(LvbqKPngi_*u%&j|EvL_R9vM^c^&(25_Rf#nqxmjWo0K(w@k7_+`sf$}y
z`VVyK<|_Ar=vN&|Xyn8&Xib)65Vs;=d%g>jJYFSvJduoEE6JHE2}r&|l1CF!pnC98
z$}sVz2Gc5Y4RLe4mjaqxGsU}mDc*gB6bro+3n2wYDl&|DcbqdC@YLlXNjQl)^tDb*
z@m^j4X9Oi=15_CtArkkJfoRMf5#Wnpn6;D&;G`ygO}>LOGSDeDLnW2Vw2V+mQJ^vj
zO5h?U4;plDuRb0)S-l$T5|}{c3W06{NgsS)2~txIHH4|v*c4k
zZAbJo{sV(YTB)uT+6J4ygK?^7ICp;SBy865-l`vv=7j{(sRCgoEZc5%T&~t_!nQad
zKbghtpe7m`0y5Cz=$5E+k@dUR(p}~#krHC1Ce&w&HRx}-z%zG-1tBBH1WO
zR1r>mZz45V(`5*|=zr;~sQ^8)YG14=^iB|ys
z6~YD&36mKqh183oB9*uj)DTvE#tS?Iqhyhi7PTGGD4jaVXV1-oRJHl{ltS8}EtbPm
zP_G$Hfv%QX@v+)IP)3njYZD0!24Hf8*F1Fy+|GSbZpH&*gE52|WUvib?6}(g&WB)x
zyz>tlcL##HTQ1xc1cir`R+zx%W}9caY96&>ISm3S6tUg&VM}ZjX`sK~i*54HebokS
z8l9c@ZUezp#tx?%Hxefp4k`@c87Z}z1vx4Ken64AfPq9+dR*EEvxSo>x7;iI@fC&R
zk6oj1QdfnOVC};BV1>)m9pxhc0$Y7luoY4Mu~?oMl1et(fdI;|cC=jAc5gwxo-!Rh*piQIlL=e;UW;!aj
z2v?I4a0YX?QI!8m61U8dR;5D}uDVOO#zS9Xb*qMknn4vhsW*8$%GDiuo0+__b?e4m
zB*45ySGOsawvrEeH%k`QhCwudpn)m^#}2HqyUYfRXg*nqvS?al)HFA*=GY+3q6CZq
zDqzV9b;%SFe$s9x4460(Iy3QM)$%Yb0+6jwK;lHsJ
z7O{N1`#AjU>_efFXwncj02B2f8->M!x884ln76n;gD~&Of-Z{XbGq(k_uIt
zn)TQ*1e@Edw!3U`o@g}~fqjIXy08NlgdLfA>5L&rvdWG>7Q56yP`wagaZZjQNR*+b
zr9zMfDS-K{4V|6BYmd%DR36Kb9|Gd
z8Pn1%SQ>j2ngu}pz>bDY6{>)Fo-ePBh({y#P0c;#Q?hi|zSfWyB|e2TnIc7<0@R_X
zG9g{7$ivuBT;=)5FmNwc)pg0eM)gR`KMsblH=wDoh*?Ia_Mjq?bc(`h%DtYSuXssZ
z4U%x@j+zF6DE@zn3hRW-6j=Tq(=+q#i(iN_Yfzczz911OM*G|s;?BQ8vvrQiqeTMi
zQzg(RNLCjakDv}Lf)3*!WyhlVWk2v~>MN2(^a;i-DLFz?NGI+*sc}2lkrVhbclBE#HFcr3q#-y(v|<7M-2>t4UUt;Xk2&yqcDS{f+IEKxs8X&
z<%s2L>~4s=!tOfUZMC~`?k0+irNSUh-XFsS{Gj^eFj0LG*P$73mrNy76v^asofg^f
zMFtnDPO}z6c>7>Z_opBIlaHDwiA1tBximTVfJ@fR-Jj^IauI=QmONOF#3aHZGYBRT
zmL&L-2v<=k>Gokh5vj2pl6{#KITg}SX6*@gk4~VA36TS}dZ~e~0&edHiitw^(AyN{
zkqqh~R7KJB8U*dg@>>(w);zyR#pbNgZ=?-6j%rNyv2v^O8L7+0bJb(LdoRtFa9Lr`
z@39%vof>7}r=UZ~V_t49TPh-yP65=QQ+7nRhhYoD0do_)(Q|^^COJb#ST92*o*-kX
zOWbrRhIneUY(`yR2^DQ1f@z^QBu;J>ySoK2sotbNk5xXbHJ7ew{Zr;I$7#DTcxv%o@Np>f>g?VOUI_uqY
zy!hS07Z-T(+j>EOn3x2|J{Y^lawp%;Asm@{^(e32qgN!kl=9*PFMf+<9%f`bZ0^nm
zuTS%ONv|U}&*NDh|7hK1sXoo?&+4^Lb&ki!+1p|+M7a?c=FNpDHzE*^yDyXAH1t1CL7$hx&7sF*W~upF87b?Ivd@ET@-wNU1yU!yBq=W(e>Oeega+Zeo?ol
zw|6GoIi8u?xvI0-U9{UT==Q`Xk#6pzx_ye<#QphZZZB}l08h7%eM-fg*uw2Hw>9^K
zZlATc|BtdA|Fqsd`Z8{PxxYHetuOZ-y7lG$jc$FppVF-__v>4^_2oXT+p`qbbf}!LWaqOC_HkxxPbWmyQXU}7Tf*t|!lPgRa=K7vnu@{d
zzzDK8hYr5p4>q=^9Y1lSSpxImF?CKUnnWz3{0mZKeih6`TVDYv{)W{o%-^{4wgQB=
z{)V?jyk8#{e^cC7B0XS4i5~rIwJ}mJkzO&4W~v;gcQTMrHj?_BU)(N?noYEfGlZOH
zh{L;{_Ax^|LU<;#r(LX1+s4L_R?2P)LuQ}%isR9U@;Pgf((OT5$FsnDU9v~d10b%b
z`Ld$aFl35C8d0$;C?LS4Vs_|fC&Eu+8eDpnH2ILb`t9m*jR_1~`3~}3Hi@z=xuKiV
z>nwJX-jrUkW6o&<4vH>aEYpM@>e4_{#!O(5W-|YJ5;tUNKri@AFea&ctLCI=F)c##
zF!~T0Y$d}47km}7Uinf0;|DuNddlPe2J<4g=6<`1Ty~c!=hnk!*rwVyCR4Vv6@X|3
zmM6qW_u|m7kUW_k*Gqp5)Z(Et%HTaq0i>HnToqiOci9FinQ_sfRG
z%24KP_Vhu`6?1zf7PW6T%5+`D^=h|1N+wK4cM4?#utx5u+4)J9QDkb)5VOym?MS9-
z{^=Okm|&CXn3`e1xPTRFl*=p7sJ_UMB7UihfaaAXmIRv5$zkt%)EsM*jnpAZ9O?82
zz2VyCa^ay&{VouJEVAs1qsDQ8iwr@Z
z?E%X23F`)d)_H$i+FD}dZIR?(isL5o9jv{sbIN}aG5{M~uyU%b=|nc9?x(~4C>vUs
z{NpaAeNqoyC>CeChO>xiG6+-2R60c?7@x?gG>o^A{((_xrmc5D_G%U>yEbB82=3>J
zhQiIhO(|`|nj`mYE{71vpbn%5Z`|u}i5cnzY28=+=@qak{3xRi{KPYpz;wl6rzJ3%q}Vb
zWpvjdr+r}&?Ih#dFMENTq0Nd|Z6!9TWd9j^nvEM)u!@U0p*c2aK?+B)mL7Z!lgOwKWWE@|z{ow_0B@uUU!#apF5G9OT)6MH
zN%y`{zJqs?ULv^G^lOej`JsVkdDVu|Fhqi{f>ET#r(!rvDoahyKX!F8K3|iWiovpu
zSL+N5JRetIDGiu7t`!&Dv6z6#9?f*`;OVPe3;%dm5qC#j)Q#NluQ&7OOoD6(Ge7XV
zIf9eUdxcLuK`f+HXCX-?N{SgrjHvaZ2eG%&g;7%(cYYoVMISudfZBAJdl
zr(@F3Te(mG#os3(tTuXenNp1qophG)zJz=LK}lH34@^ftS|vwnqhB?(NGUsJPwV@`
z#l+lPS6i_HwZ`uIMAnoV1JHlx*F%0EbXq}^*vH6{^&yJ~AX7U`kq<&<4ON>2x8E!%
zRFzlCXcn6_N(xntWc{pKGSDU!0MA*Ypy)Rb6ZT{{A8G?CUoLND0rlA#c1#ndF7YlG
zcmXF+&9x*XsV8yQ;4ttML-ZOE7Z*$`T;@2M?Kb9!FAddYH;av}yj0~CqyBMJ+&pTH
zW$X^=u(KPB$QU@KLfbK~MRN3f&9(0*C4z5;FFuttP2llf^0r?sU@6@<@v&lAORu(M
zq~3%lNR-n}c>}J%a$Yus>)550Ga~Vn=S%oRG&}OcS(|@Z*54tp
z(Ihm)MCX%!)A9dT>;wT8wbSKBm=_3*&evewifd(aX|?;>lu^F*6Iz;za*~qe)peD9h#_{caJ2U_et*I
zG%Wc1pXeE8i1g@)Vag@b<+?c1Haq1p+ATBpe~C&~X2-zMBI%eFhLhc)o|sD1h)EfJ
zWVqHFrvE220qs!AOl>#7%_5AMXy*ZjH+nhjE)^Zz!XDDCgX&`
z;E-gSHJ>SXzQ@*1gp}q(T@x`0bF}?hOWDuUksZ=lQbwxpCVsBD
z&7u-io){WH1A_`Nu^3c{Oj!wPEZe>cVHvwA5z!eac*U&FVUEDTyu)g8*RsfB#FO-u
zin7*w(XG=)s(%0$3AzsZ@>J4J#O#ZJ%KgiI5Iefb7~+Mu#y!FTn>5gMZf1Ad6_~8>
znpP*wGO`Jn2i7(uMh9k9A<_}gUqpYTC{4?V$+y)sjMhXW;~eC>1b
z%@rQjkP@c*Dp8RKU3D8MWHhzZ-KgahsIH{gINd%(tl`>HcazAuD)CC4)GHAf(0?f_
zwu?>0=DBj?^!ouxU~Rt3w)N^0BNil-swg)X=~B6gmC5&Dl8y_Z0@1~=Rq|q@#CaPZu%K8;TR2z#e_s}0O
zE2TDQX^j~XTqG~0z{YLm(2evd3+%7=4WLIi7DTiF@7>K*u(8;DsN7T#0|n^IE%e0Q
zbpNJe%iK$CMB_FJ7%Mg-_BWy;S-Cofgx@O>1r7J9A3qNDzwl-aa1Gn1@C$z$lRA>n
zVy!%sdnHcVSd5%5HytT99qew(2|s1V{3cqrrfzCOdTf9}#jsF7;<;IDd_7Jm2v*8}
zqm)0q*aSrzJ70>g=M#FtKmJAhL#c)_dX(dttT>q^@voKZ
zA5_~`by|7ec{(m@I3F;^uxZ*uC`AP_NlqoaN|Py3TQ}ktC#EMdoSi*WUNuP$%j4DO
zOF1;U3Z#J3@`rVTlv8BJItzmNnPl|OnOMvI4{MpMYL!{YMzea$8uq7V
zC*}SaZVB$T$v4U|bjY0nE|d#=ymSnBp-IIpbt6q+wVJ6?fR}7u4Rj|!tjaA{(;PLL
zpnM4(VA4!6a;hq&jb(K+GunkzT%A`-r=pX(To40MLE_f
zkUjIfEL5Rsbe|MTmmh%;sxXH0BSbcGYm`BV5BWiQ169_~#b`~-Dr1EPF$iM_Fg&T0
z5LR5YG_$GcP4U&dUe~pV`x;a!LvLNzc@`hW3pE|(--^wXX*$IZlC{7L!om%@
zj^H^d0NVL$GlUN;gT%BP4he&8G3&mH{PjCLXxCYW_gm0
za$
zz92_sjKV2mwPyD8k8%r^PJ%5kqweq^}ToQ$+y2=rFNz2Jp
z(u6Ot<2^eJ@)qWC3{uY2?8?ph
zL93rDF2whL*JKs-U+;_CseZIsrfG1l2H{xTc~o@*jLj_zb=+y62;i~E?ix0L)@|b*
zB()%MEIjHTH9?3NP3JUc0v~5Re|NWSk2{YMoE<4u63OwBTv!g7&ABZO=Q6q5i+d-9
zPP@x<85GGhd06mcxrmiVE_t7|Y`TcWA1GL$#m&KR9Ae@!Aw|dz7NX_x1kve&Qju0B
z%OIf;uTwC4ue{bl94=cx&-ND3Tf>g3aB75rA43er3LtVRU0I)`bgSk89qV9KWP;e>
zW!PQM4&j%gsPk4-yGLBhzq@Q@QsRAO+p=7QnlNv+r}yS4)CN3DJ`k?T*2;HJ+3MwE
zYIS?MSG?2e;XIJ>ax4n`7HWE?UX%UOGs@<|);ZrxX@l+-tD(
z_@jb+o5yWI!!a;h)A3P|x$D@X*+0Ff9MdD?iAMQ(B=XZ|fltF5{z%w9pHP<>)Sx&P~JsM~l*9
zRp-NrOlY{(qU*xDGsz$Fr6W7G>%MX5}D~7
z%L~p{d2?a7xZ6mkz<093jiFp}V-V2%`HCYzkhq5eQ466Md=O8|2Z6S$y9Sd}FBm3-
zPkl%95nHJz&0M2@w3fWs?{zop%;dwWacU%L2Q3fhX%0&ly#f;R4{BmKHo)m)wVb4)
z6F=Q$9~3Yn6;?u66HRk8{{0)GXkq@*$4iMk1-q42W(ZEyUfED(gUS_aRzSo{)0>ZS
zsE?1+xqyU}gbHuP<{-ua1~uFAgC!(s{F7+^FA!Mgk3cUXs7Gr@D2NwPcY}M^CDO4_
zfrAT+4HB;S%|u$jarJ?v>0L(`i*eIjep0F!ktiG2h1`IkPN@DBH5=rxZds0@Ka>j?
zriiyZDZ=4fdnExrZQ;eU?K!a!r)EsO^DD;S?NJU(OS!;!}1{6P17;nju#Ae3AQ9SC>|d+
z%StPLyR@sj!M8@6-~wfo_~|@Ryz(YMEcV0nkcX??st{?`;0PBJz;}m=@$M!GzPkIf
zXtu!EbU$>a@sh*q`ryr*l0P095%E<=6XFt@5B*XqO-9f;ka`Cdb==i@$w(=9!z99v0=3F#pl
zTY<||kCLXinJe;_X@{-!#wh$(G(P^3&VRJ_-;2`=$nR6@1Nz6+zt#n?@dlbvZkTRj
zD=-D*VKRYu&Sqm!B%OaBlb{+IEX=xIy%pl`xdcJL37l;WPeAwt
z)aVn2fl~w!2?oiN$W9{_hXtV&EaBw$u{Ba`PZwej!!ao`Q)w~58b@VCz7oj+M*_VA
zksU)*3Lyhm&PhloQkl0*GR3^97+tzk8`1tg(l$_RCMx&n
z*`6Lt=^hGQNV~Xf)ja5jHFKaNneBWyHrjFLl75bJiDm}e1zwTwyczY++V3+7>_<2p
zUSCYQ?C<1|>Lh1!ujZCX-BNq@-58LhQI6(t5?9>3Z(o`0@B9fl<;xK-D(|ut`c&e(
z>A0`&jJ+hT06uEtYj?uuz-$1GlUxjY8q>H1pXY?-Ic2}>BB$ub5}%ii-FjTGm&bge
ze{Kz6|F>}qn}*e;HYOXSGQ$(O>D^-dWarl{)A>Lr&zey)NRj7A8Yptv*LluzJcH7z
zq-~(bGyeOseShk*@7vQep_a4k;2HN`W;vV3y+M2?l@kmzXTn=M9jqN(ot2Rgtz+wH#mo){14i$aK+J#DN{X@b
zLBmPZ5Z(&7n;Cpo25Bro*mp?5Yb|t4u?e*(3<*;d%+dt)%@vYsp=95hGqu6A2df^u
zSYj>p@j7cL!En}B6D_aZ^E~z3evdTQ5crO!CMiCDKUx
z!F*PANgne+k$u`tuj+8kIa#u;c2D4ona6roTV6r{daKlfdx
za?DA^m%aLY&*h)Dr&GSRJ?i;N+pN@a&=q1LR3{BaQHX4Q(O@ejN@i{tzAV`HW0!rW
zKYV?rV&(U5yQV04ka*>-?bcJM0n$ZS7_D+pn*7etDQmsCYVJwvtH)2`uYwa?3*Cg~
z8dG1ii(xGX9-nUAVP#7Wh6YIFS^xT;IN{ra1O#eA;qZILe$U3CJ5IzN;#0O1XMDOT
zT@1L$`wA!A4itGIpvc^ikJ&FmpMsB>dZG7N0!!%bS#uR!xX}~GIiKr-ResTa&)e^_
zvAknsKNkRb#sC=wEeBz2R`VzBWp9Gy0@W5tAUsrS1>rev1L;XSQrLNe2wkdz?f01g
zowOpykv-&|`b?yt10FnSK9Vk5(x>bf^~jsEJ{x9F67VGV1D#isS6w4H-?duqD^M+R
z3HGq2T!!g5`t_%c)p%}*2z6ddtcdNR_`?1m3R
zk}W)I9c>4|+!y}t9~6=i2;0us*&WMHP
zbGt1$e`DFS@nzA}QWW3096OBe5PWnG<``O-f~6z`)IiZ{cLgNGo;*Zo1}Xh_vl@qe
zfGFdY)q06@p*DjCguG41{muJ7{`1RbjUgBK0!LkdWw2`PcL8T8f}<`IlAC91bSBsH
zHF&KLE&YMJpWHzpE&D2z@|+d(ObubCmgv<}H54h=i9p0gBGn7=Lg*Q)3uJmy+@CVW57-6J%r>
zTWJ<7^RZe-`ompdVO;odqE;H-Pt_Q*VDZz@e4JqDL9Pp!S#)+*b#UhU=6uFrA39bz
zA>&P~H&D(S-%zviOzgQ!PydH+#ag{*C*(8;KA;Rrjx+%f24Jm^2P@{>t`BLD1q8g6
zAtnf5FCa)O2sB9J#rYI_3NB@2^9NLbElsv_0NyL?*{ZN*-iE@?S#zGLn)6iV3tP^7
zVXcpMCq+F0NHGxYA^T(i@O)L~Lch%8R_0?>na4tz3!zMUZ=ir4P$&8YoUsDVRt202
z1)QJ&S-bzYZ8M>99w&X1h9R`|lU
z#fT(8mEqb(@g(7RI)2Y;D8AX~L*sH!1}7MH)9345GRrCkO?@@?$;<(1DLMe>o8H-f
z(P53rZ~^$qKaIPotk;;}XQHCxR^4N1Wn!O2{NO1tdOwx|pN9Erfv0MD40zZmutW1u
zCF@a+!!w-Q`K@S16S8KP-K4C0_V2R=7c9}m+1?wM8YyB!2m!+y!UD;KU@=@wa>2gN
z`_^e2D&3DOw;{0@UKZv>hZ-fqH05kgcwqfK6L-o*W|!qC`uiOjv7HG?+GuQ3W08w6;|%6H}y
zr(NUB185#PSK~w1CKM%FCPl+APpT0cT2Bk;%hYL2W3=bRfJC;8QKc;-Oiyb<%_>mg
zORVo|ADYvq)E9~#0SFkZv#d|=JXqGJKlYv@fA;&I{Q9rPclsJa;V-yEYcP#R7;8m@
z_tp>MiheHY2hp^(N%Qqrq{?WJ#`rw8(Qp9218G<>QqLFSBy99P!Mr!?2N=-C*RjRb
zF7T#y%}A(sW^ClA@vdCGsf)Fm9P+eCNgC{7B0=I&yODgIk(-*)AivP684bR_+ko~kl`A>%&V~8I
z6{ariT70rr&7afTaXw`OvYR~!e)U9);8m?d;9+Ua1gnud{>~2?GRH*^vj$Y05C9D%*P_dfFt*f!AWoV&7yAqG`0P{)+OSTc51+(FCSu$_6xsH7puyxa~8@&xZSf84QO8
zfjX)^RKZS-Q}wEj??j|Ocnh+ECz)0_Y;Gu7USG*EzwADjPfD)}j^1R_)7(RGR}Ki?
zu*(Uu>}tS~v($=b8jry*cfIV>ZmjnSE;o#DMF7)m+V{zV!;Y8D&A#tqh%M_qfXe(9
zc1=XWVKD@K{WkT)!=$y+m>FCLD9s(zg=lCw+k(`j3bU9=l~SjR5#FutI@KYhAl^pE
z74L|mvZLMfO?S0c#>9R?hKplx@er@y^@U6uD`^fnsj(z>%MBQUBl}swPyV>dUnmAl
zOI7tVs#R3eVGCG>3z6GafD=cXX6RcLoRU}O;-M1EM%PwH%SgngWPO>96ms@LwL)|B
zWqeo%)*4DJZ?9<@BaCW&E@LZ^JyT7R4L%&rsEg!24aC6{E3_Q0qFGAkD9h!DhN<+1
zyJ4pDJ36x-_Z0(CXn}zeCAUC1t8&PrC2E@IV*;C7ZFCE*1TQA2o4%ENOnq-?zn4v#
zhsHK9Yb^cc8(Xyye5eB>@Z)F7tx3($BpnN;bt0iTZJJ}iTVHwVw`M4bwZP##-bin@
z@H}p1VFdjrB51k)iU8bwbG0y&PINzfzZQ1>C7uV`NeT`4h>)p4T17|dQ8y_PZ{0XN
z#1c%+ic~$hPK~p;bVHo`*PtiYsc}g0*QPtg544B?L*|sDtLmNKwP_X=GAu;LmVjhJ
zbFmN5M&Qw(-B)g4&fmIf-z2>ODZ5{Swu|-MG2>L*F>7~X)0IyUqZ-p$W{h|zhB>s!
z06AshGcDGBJlhJDZ4Cc)Hn!@WPG@6X&q*!axUs!4-ncP~MAor1$w;HKG2ciUa1y)!
z$TWFAw1L**QS5F8E=FoSHAH;!ZQLu_FCqd4&(S@5iGFvN`w@hd3e6U4DNUJ8(yqotj6G*9u2=QrlfEF{Y
zz+Su&@!xv-P?#7j8v!BdM%f(kx-*oU4wS3uV_#$f=$ODtj&ETPEfCfC0x{~KG#$~r
z`Cz#jf^xCZfvCUb7CJcY?ac?YBFg=n7J%^{aXo_CSjTv8edlp%Vm}JliT3Op9^XH
zYGj*$e7C9<^yn4(w7~a`!0S9={z>+DX$xwj*sM4>oVmqjJ=CuRnce4I%O|zwU32D4
zv+%ji&QriC8OZiMS`g1lZWG^VrYoxk=N&k>Sw0%~I*Ajd9P$A0SpZZ%L-QAEm#ZN4
z3R1$E=>!cz86gg-D(??0Vl&>W_rHzO?A1v9GFH_@)gY1mpsLXmzmQ3+4S`j^whS(;
zfmh(;$59Ku0lTP;ZI0A6Zys)Fudn2{8f5CkA8Qt&b;qG=$S8&-4-{##kJQUYJ;i5gn7BkK^(wKS_Ynyq#|G(0le8N+l6)`Z`)
zP3sC7`Lx^?#hX?h`1G1YD}UGggtz!gpI&$_hfnq4eGr>C*?=**bXi1Kr-Z)D^J6iKGc_Ev
zaa!kJn0AD9rIOfy%lr01$1z=)KBM3Cff^Xu;ylCW-EAlg|1aAwBPpE03$jD>3{%O7Bjh2&-?leL3d
z!&Zck#!3r`xLO~T?h;bgWGR_b8&}xU35LsmxhWl+kLOYay*NW)+#y(+c;(k6r?Uj;
zo+#0cng@-U=lQp-?)oBre;Gf~-7M{kYc^=#jyuIS>EB;#xsR|aS^Bp#N%GE(Y|5jg
z&DHq#B1^~z?ln^=$)yeDIM?Jfk#6>~iR@lB{btAgqZXMItUR4`r`Nj=Fus!|7ytOA
zQ-eYo%3f&+>`Y3nGfkmA*)$4|r$$gVIzbD&)7cC|c=|U!QO3QI{*MFDP%*R(1mK&O
z6X`T-=CufJgZnEc%@q=&|Ez#BmX_%X1;$Fzij!6yj`OQ#OU@`EdsX@w_aO}YUOJR9
zU_476R`x`1W=?U;PC`d1JeQW5a5c4vJD&NEvmZ1Nf8z6>cOM!AmwpAkb
zcx{Et4|GzrZDNzgjG@q5I(1;9V#UQ5kRXVEHfHl!gNLOwnSm1X$3X>yk9-$uJZU3Akv;i%5!k}nWFC!`L!
z#e3a1{wI;jp2-;sT6l^%C_IdB!=a45!`@5Pn`%=3ehG~R6h+mlQSYUIQ`gkQq$sZK
zQ3ymoRgM%5atz;yRSWh;i3E+DA`QVjwXrJj*3=uivj41etb|0`NKtLq)`ipJY=pLlAw_bN`v5Pm}5
zOTWMru$QOlwx`$x;XIWPi}xQ+dM6-%)W$Fmd-RoDBeqUJsfHd@&9=aDHk
z3iF8&-7UQO*<1FNZ6=#B=n2ojeil|EYUeqpMeHkwafSbkW^!3;YI4WUB+*u1$RdSU
zwIZbbfKg)|ih(zI16e?i=>s-94YxfgwrKQ7&+Ic+8-3OyF
zZAXK-|A;~i|L`Zi6xP<6l)U=wW&J_o4K5Yy7&&s9kBdDgNFAUPc4~yYjsz|-Mn)W<
zWJmm-U!`%^x>u;!J(E7=hy-T8T1K|Q0q;7&$Q96D3Gz;-{$#84-%d1{`f0)2@ZP2^
zsy3NwbFKXn{!nSF7$e|N+HFBLEeZ6d2Ef*{MN4GDaxW=EqAHMLuuJ})h-qreO+fPexQ==9kQ9sb>0tdByl^#W22O#My)Rc9+c`I5;
zF=Tu(s4^@GOpqnU5H-RRgBYnWhu#qZOxigXtEgW55HNDFMiFPV4JoOLq}N0}#x
z5e@5vd$~t)@tV?T?T(ZqY4k$Ilo3l9F6)WE$`D!)Lu^sdR@d4`&?(xQx*@u}7)4aF
z0p&G3bHW=dgOQhYCgwnn1ZOev!4pVN5r)aki4RJYt_!A;l=5oES%ubMC^d5Eo(0b^
zjC@ksTmt(H^E5gme(7-#z6{Snl211RRrIEPkhnMG8W0Z_29{F7WXFZ4&2?F{%*%w9
z`M9^1qG;z7CKqi~zaT;_GYl=duB@^s`mv%Z!@BNXsh~Q*Gt&ji{`Vh;x=iGx?!TI_
z>CkQzNNZ*myCt9;tcl)y4M3)56)9)r!26R7)?19(1w!C$e9)p7^&itGecmo)e`|8S
zUVRq3VTuG2;DmJlLEUWmdfm(l%%Y)gmRZU4Jf?g*-!2trlT_6>Qt{>ix?sVu{WLok
z*TP4EeD0Leb^#2dp9l9WYckYCf<=%GG^jYe<(!J&Nfh2Sb&ugmpp6ReAc^ZOY-uV*
z$6=g>uFXw8nlG6zOc$yW_4Q3;^T0^aX#^rCaY`IczFvAV
zwfLqA_L;d)B9>G4&*VrF>9UOUO^Ag=(wfLja#zBWB3o5h=SWg0rbFMjEpJER?{~zU
zi6AE}YwcV1pKM3F2J-|B-scKr~Cu=aJkHg+c1;;&6j??T4+5*Yo_Hu^%g*
zP)q4;hN-mTmvNxrj|5x}C1mhH`z?O&V?04eK764~#J-6aUm@K!T$z_;xhglmqRILl
zcKfJq@1pY+^MN-SZT?l{{#vmhyDH75Tp6=|G>*Ni=Po8=HbqzMSx*X+R&^w&YL(
zMrRn-m?Pj&v3u$k+Lb{QJuHRD{3D%fSs{5HngAM9D~Lv;DXfFWzS&?lG|*tSOq2c^
zpBcoF>R%Z(ImzFut&Fk004xoPpp*qB=wkV4*&sQqD&$qu>>$TwvOQE0XvIca{b2~v
z)S70VK?oQE#C#)liAqK7EWap3EcE#Mn1iL8;SwBLtm%pq<0=~LshZad^HAH9#AHZ&
zq+&9bsc5Y)qF$YlyAUJVD3+)C0k^ED$R*GM1x)dIIlW1@XVTj(3e#XN{1SW`I^fP*
zuBwb)p)U2sEO2o1rAxb3SDIRebq6>j&!lSrp~~JXy?TL<#^b<=>Jb>M85ZS}PcX;%
zx<0D(vh(|K{`GBf9)gdyuK{Cg|AP>}tu8Ra{4M0cQX+1
z;Xe}4Cqp=9{zt1|Q})`pPd~vu^)j#i1RZWcnbA}#6y8Tt{ftD5x`38juu!oqer6r2
z))gBtP094MI1B27y=+Ci-V8B2khu?g=$f*BkfH*jAVLo0^bl~-_}TsY?j!I{9~#7m
zhX$%>mdPMAwVz?_X@Cc66Fi7EgGapX0pX732_Cq{whl-VAO<8&?Wm0=E<|g2H+5$W
zKC~j+EL@DCnjYZfSCNh3faRx}d@n3$0<780#m=7MVLu(g0yOf(OJ9qjGH#pb%g+
zgARAXBZEi>|C@
zB1h6d@WHBq0-Zx|A&zyFADg6gGgR7uh&vs(G0=^gY2od7shHP^8=t{8Qnl=hmdfZ5
z->;S;XEfrax5hO-0tC{VqG#)!k5HKQ8UZV{BSiDx-GyqfUuR1{ReVJ%jc+I|lOt0A=jfC5F*MQfjW3}p9uxeJD@6Vs`|ZUms4DUb`hxqyWd
zbyMM07KO)oUPd4pX)a4T4txb-)EsP$3Hr#^$Ar%2)#}d165_4z?3#5pkD;>_AR`yL
ziUfl_bT-tqqOhTk;6bBNsP`mIQ)~>3)6id~0H!
zZm*cwe7SwNR>3O71X$4=3N9Ak#zGZ%
z>gHh**Hs7XBbPCw37pZh1?{!hMpl%IY@0#xLxJYSm6Z)`%Zt5p1}YDD2PBOF1PK8X
zF;qSuE1?t+z8q@oCYnp+0x@x3L`_q65#(W^%p!fGtqRI){Qweatg|In@CT)J6T?VX
z%ud0vim^+Pm=XhY8E-78;*qn*=uF>mHQW04oRwKbqCxJ>{J~3jrB3qg2V=qjvH0ai
z=hk3U2Cuub
z0I>K8VVM*fs*_woi?njN)6yY^w7P@L>arkxp;U$Uh^pk673{EcU~gd>9089i1#zKL
z0kT%5bd$$nk!Z%XhdZPLG?RLENv1%Gbpkti
zd0pK!<+LXLI6PARQEMvxh+w!g5O{w48HRrVyBx&KxL1Jz(5A3kn0qzHpj6W{UtNy3
zGufJSxQ8I@zS*Y{KJ&qR{e60=2!k&ikQf<#03f1T(onpFm!HnJPE#MGIyaGIt0g
zQ4EMhr0HibP>~rl5W7l;+(-Z=?jmE!Ph)X*d0pA95DZ^rbtOHki(1U;GQ(5dkTZm(
zof>B#Sg^X>P&aW}dx#wYRB|1f9g(>2=V_H4vERM^L8;$ZoVZoH^@STo3=cW%2=j|3
zQAV%oi8%;g4PVrPoc+~-E
zb=eOhS)$Hx5-NUc&Z?8~gaM#qW_;<2UyKDyqvI}z&`LE@E&{>Y?optH_B032DoKbB
z=CI{3a!sp=54_X~3`0&7i?I-Re5o2S^NZ