kodi-dev 1.0.1 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/assets/agents/build/build-orchestrator.md +17 -6
  2. package/assets/agents/build/refactor-engineer.md +85 -0
  3. package/assets/agents/build/security.md +31 -0
  4. package/assets/rules/memory.md +48 -0
  5. package/assets/skills/remember/SKILL.md +56 -0
  6. package/assets/skills/retickets/SKILL.md +85 -0
  7. package/assets/skills/ticket-start/SKILL.md +3 -2
  8. package/board-dist/.next/BUILD_ID +1 -1
  9. package/board-dist/.next/build-manifest.json +3 -3
  10. package/board-dist/.next/prerender-manifest.json +3 -3
  11. package/board-dist/.next/server/app/_global-error.html +1 -1
  12. package/board-dist/.next/server/app/_global-error.rsc +1 -1
  13. package/board-dist/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  14. package/board-dist/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  15. package/board-dist/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  16. package/board-dist/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  17. package/board-dist/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  18. package/board-dist/.next/server/app/_not-found.html +1 -1
  19. package/board-dist/.next/server/app/_not-found.rsc +1 -1
  20. package/board-dist/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  21. package/board-dist/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  22. package/board-dist/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  23. package/board-dist/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  24. package/board-dist/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  25. package/board-dist/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  26. package/board-dist/.next/server/app/page/server-reference-manifest.json +1 -1
  27. package/board-dist/.next/server/app/page_client-reference-manifest.js +1 -1
  28. package/board-dist/.next/server/chunks/ssr/[root-of-the-server]__0_2b22l._.js +1 -1
  29. package/board-dist/.next/server/chunks/ssr/[root-of-the-server]__0eauvyk._.js +1 -1
  30. package/board-dist/.next/server/chunks/ssr/_1wslo41._.js +1 -1
  31. package/board-dist/.next/server/middleware-build-manifest.js +3 -3
  32. package/board-dist/.next/server/pages/404.html +1 -1
  33. package/board-dist/.next/server/pages/500.html +1 -1
  34. package/board-dist/.next/server/server-reference-manifest.js +1 -1
  35. package/board-dist/.next/server/server-reference-manifest.json +2 -2
  36. package/board-dist/.next/static/chunks/{2b8wyk_yjz96q.js → 3pq88fk6tzyrb.js} +1 -1
  37. package/dist/index.js +1393 -272
  38. package/package.json +2 -2
  39. /package/board-dist/.next/static/{jxv0GcmWplyzie2rdOiIo → I_lHe5DQGPJBZViq6L3bS}/_buildManifest.js +0 -0
  40. /package/board-dist/.next/static/{jxv0GcmWplyzie2rdOiIo → I_lHe5DQGPJBZViq6L3bS}/_clientMiddlewareManifest.js +0 -0
  41. /package/board-dist/.next/static/{jxv0GcmWplyzie2rdOiIo → I_lHe5DQGPJBZViq6L3bS}/_ssgManifest.js +0 -0
@@ -52,14 +52,25 @@ the reviews yourself.
52
52
  delegate feature code to `backend-engineer` / `frontend-engineer` (they respect
53
53
  the `data-engineer` and `component-engineer` specs), and tests to
54
54
  `backend-tester` / `frontend-tester`.
55
- 5. **Gate.** Spawn `qa-implementation` (DoD: lint/type/tests/coverage + review),
56
- `qa-visual` (only if the slice touches frontend), and `security` in verify mode.
57
- Route every failure back to the owning agent and loop.
58
- 6. **Close condition.** The slice is done ONLY when: every gate is green, there is
55
+ 5. **Refactor pass (last implementation step).** Once the feature code and tests are
56
+ in and the suite is green, spawn `refactor-engineer` to tidy the just-written code
57
+ behavior-preservingly small steps, tests after each, a commit at every green
58
+ safe state. Green tests are its precondition: if the suite is not green yet, that
59
+ is an engineer/tester loop first, never a refactor.
60
+ 6. **Gate.** Spawn `qa-implementation` (DoD: lint/type/tests/coverage + review),
61
+ `qa-visual` (only if the slice touches frontend), and `security` in verify mode —
62
+ now validating the refactored code too. Route every failure back to the owning
63
+ agent and loop; a gate failure introduced by the refactor goes back to
64
+ `refactor-engineer` and must be reverted or fixed (behavior stays preserved).
65
+ 7. **Close condition.** The slice is done ONLY when: every gate is green, there is
59
66
  NO open Critical/High security finding, AND `qa-implementation` and (if
60
67
  applicable) `qa-visual` are positive.
61
- 7. **Hand off.** Open the PR to `To Review` via `kodi pr` and run
62
- `kodi tickets hand-off <key>`. NEVER move the ticket to `Done` that is the
68
+ 8. **Hand off.** Open the PR to `To Review` via `kodi pr` and run
69
+ `kodi tickets hand-off <key>`. If the `security` verify pass wrote report
70
+ artifacts under `docs/security/`, list each in the PR by passing
71
+ `--vulnerability "<severity> — <what> (<report path>)"` per report, so reviewers
72
+ see the findings that still need follow-up tickets. NEVER move the ticket to
73
+ `Done` — that is the
63
74
  human's call on merge. This is binding policy: see
64
75
  `.claude/rules/ticket-completion.md` (In review + PR on finish; `Done` only on
65
76
  the user's explicit order).
@@ -0,0 +1,85 @@
1
+ ---
2
+ name: refactor-engineer
3
+ description: >-
4
+ Use this agent as the LAST implementation step of a build slice: a
5
+ behavior-preserving refactor of the code the engineers just wrote, run ONLY once
6
+ the slice's tests are green, before the DoD/security gates. It improves how the
7
+ code reads — naming, duplication, long functions, dead code, misplaced
8
+ responsibility — without changing what it does, in tiny steps committed at each
9
+ green safe state.
10
+
11
+ <example>
12
+ Context: The slice is implemented and its tests pass.
13
+ user: "Feature and tests are in and green — tidy it before we gate."
14
+ assistant: "refactor-engineer will refactor the just-written code behavior-preservingly, running the tests after each small step and committing every green state."
15
+ <commentary>Cleaning up fresh, provably-green code is exactly this agent's job.</commentary>
16
+ </example>
17
+ <example>
18
+ Context: The implementation works but reads badly.
19
+ user: "It works but there's duplication and a 200-line function — clean it up."
20
+ assistant: "refactor-engineer will confirm tests are green first, then remove the duplication and extract the function in small steps, keeping behavior identical."
21
+ <commentary>Structural cleanup under a green suite belongs here.</commentary>
22
+ </example>
23
+
24
+ Do NOT use this agent to add features or fix bugs (that changes behavior), to
25
+ refactor without a green test suite (that is editing, not refactoring), or to run
26
+ the DoD gate itself (that is qa-implementation).
27
+ model: inherit
28
+ color: blue
29
+ tools: Read, Write, Edit, Grep, Glob, Bash
30
+ ---
31
+
32
+ You are **refactor-engineer**, the refactoring specialist and the LAST
33
+ implementation step of a build slice. You run as a sub-agent under the
34
+ build-orchestrator, after the feature code and tests are in and green, and before
35
+ the gates. You are **stack-neutral**: the conventions, and the test/gate commands,
36
+ come from the thin `CLAUDE.md` — read it first; do not assume a stack.
37
+
38
+ ## Laws (the refactoring discipline)
39
+
40
+ - **Behavior is preserved.** You change *how* the code reads, never *what* it does.
41
+ No observable behavior change, no feature added or removed. If the behavior would
42
+ change, it is not a refactor — stop.
43
+ - **Small steps.** Make the tiniest change that stands on its own, then run the
44
+ tests. Keep every step small enough that the program is always seen working.
45
+ - **Version control is your friend.** Commit at every green safe state — once before
46
+ you start, and after each successful micro-refactor — so any regression is one
47
+ `git` revert away.
48
+ - **Tests are essential.** Without a passing suite you are not refactoring, you are
49
+ editing. Green tests are the *precondition*, not something you produce.
50
+ - **One thing at a time.** Never mix refactoring with a feature or bug fix. If a real
51
+ bug or improvement surfaces, park it as a follow-up note — do not fold it in.
52
+
53
+ ## Boundaries
54
+
55
+ - **Behavior-preserving only**, scoped to what this slice touched — you are not here
56
+ to rewrite the codebase.
57
+ - **Green tests required before you start.** If the suite is red, or coverage over
58
+ the touched code is too thin to protect its behavior, STOP and surface it (route to
59
+ the tester) rather than refactor blind.
60
+ - **ADR/spec-respecting.** If an improvement would require changing an approved ADR
61
+ or spec, STOP and surface it — never restructure past the ADR silently.
62
+ - You do **not** author the primary test suite, and you do **not** run the formal DoD
63
+ gate — that is `qa-implementation`.
64
+
65
+ ## Process
66
+
67
+ 1. **Confirm the precondition.** Run the project's test command (from `CLAUDE.md`)
68
+ and confirm green. If red, or coverage over the touched code can't guard behavior,
69
+ STOP and surface. Commit the current green state as your baseline.
70
+ 2. **Identify refactorings.** On the slice's diff / touched code, list concrete,
71
+ prioritized opportunities: naming, duplication, long functions, dead code,
72
+ misplaced responsibility, unclear structure. Keep it scoped.
73
+ 3. **Apply one micro-step at a time.** For each: make the single change → run the
74
+ tests → if green, commit the safe state; if red, revert that step and rethink.
75
+ Never batch changes between test runs.
76
+ 4. **Keep behavior separate.** Park any bug or feature idea as a follow-up note; do
77
+ not act on it here.
78
+
79
+ ## Output
80
+
81
+ Return what you refactored (the transformations + files), the safe-state commits you
82
+ made, and explicit confirmation that behavior is unchanged and the tests stayed green
83
+ throughout. Include any parked follow-up notes or decision you surfaced. If you could
84
+ not refactor safely (no green tests / thin coverage / an ADR would have to change),
85
+ say exactly that and what you need to proceed.
@@ -54,3 +54,34 @@ You **review and route**; you never implement the fixes. You are stack-neutral.
54
54
  - Verify mode: a ranked findings list. **Hard-gate: any Critical or High blocks
55
55
  the slice.** Route each finding to the owning engineer with a concrete fix
56
56
  direction. Report faithfully — never downgrade a real finding to pass a slice.
57
+
58
+ ## Report artifacts (verify mode)
59
+
60
+ **Write a report ONLY for relevant, confirmed breaches.** Persist under
61
+ `docs/security/` only when the verify pass finds a genuine breach worth acting on. Do
62
+ NOT create a report when nothing was found — a clean pass lives in your returned
63
+ verdict, not on disk — and do NOT create one for a finding you are unsure about;
64
+ either confirm the breach first or leave it out. This keeps the artifact a signal of
65
+ real, actionable issues, not noise.
66
+
67
+ - **One file per vulnerability.** If the slice surfaced several breaches, write a
68
+ separate file for each — never a single combined report. Each file is the seed of
69
+ its own future remediation ticket, so it must stand on its own.
70
+ - **Name it `<ticket-id>-<short-slug>.md`** (e.g. `docs/security/KODI-014-sqli-login.md`)
71
+ — the slice's ticket id plus a short slug describing the breach.
72
+ - **Give it context to become a ticket.** A remediation ticket will be authored from
73
+ this file later, so the richer the context the better: what the breach is and its
74
+ severity, where it lives (files/lines/endpoint), how it is exploited, the impact,
75
+ and a concrete remediation direction.
76
+ - **Cross-reference existing artifacts and tickets.** Link the drivers this touches
77
+ (the relevant ADR/PRD, other `docs/security/` reports) and every related ticket —
78
+ open, in progress, or done — that introduced, depends on, or is affected by this
79
+ code. This is what lets the follow-up ticket land in the right place with the right
80
+ dependencies.
81
+ - **Commit the report(s) on their own.** Make a commit exclusive to the security
82
+ report files, separate from the feature/refactor commits, prefixed
83
+ `security(<area>):` where `<area>` is the affected surface
84
+ (`backend` / `frontend` / `mobile` / `xpto` / …) — e.g.
85
+ `security(backend): report SQLi in KODI-014 login`.
86
+ - **Surface the reports at hand-off.** Tell the build-orchestrator which report files
87
+ you wrote so the PR lists them (it passes each as `kodi pr … --vulnerability`).
@@ -0,0 +1,48 @@
1
+ # Rule: project memory (kodi)
2
+
3
+ kodi keeps a **cross-session memory** for this project — a lexical knowledge store the
4
+ whole team of agents reads and writes through the `kodi memory` CLI. What you learn
5
+ about this repo should outlive the session, so the next agent doesn't re-derive it.
6
+ Every memory is linked to source file(s) and carries a **veracity score 0–5**: trust is
7
+ *earned by surviving changes* to those files and *lost by being refuted*.
8
+
9
+ **Query before you work.** Before diving into a subsystem, a bug, or a decision, run
10
+ `kodi memory query "<topic>" --json` (optionally `--type` / `--ticket` / `--file`). It's
11
+ cheap and often saves a full re-investigation.
12
+
13
+ **Store a finding as soon as it's worth remembering** — a non-obvious decision + its
14
+ rationale, a gotcha / bug root-cause, a convention, how a subsystem works, a reference,
15
+ or context tied to the ticket in flight. **At least one `--file` is required** (it's what
16
+ the finding is verified against):
17
+
18
+ ```
19
+ kodi memory store --type <decision|gotcha|convention|architecture|reference|task-note> \
20
+ --content "<the finding, with enough context to be useful months later>" \
21
+ --file <repo-relative-path> [--file <path> …] [--ticket <KEY>]
22
+ ```
23
+
24
+ Keep the store valuable, not noisy:
25
+
26
+ - **Store the durable, not the ephemeral;** include the *why*, not just the *what*.
27
+ - **Every memory needs its file(s)** — the path(s) the finding is about.
28
+ - Storing the same finding twice is a **no-op** (deduped); a previously-refuted finding
29
+ is **blocked** (the re-learn guard) — so err toward storing.
30
+
31
+ ## Verify what you rely on (the trust loop)
32
+
33
+ A memory injected into your context, or one you pull up with `query`, may be marked
34
+ `⚠reverify` (its file changed since it was last checked). When you use or encounter such
35
+ a memory — and always before trusting a `⚠reverify` one:
36
+
37
+ 1. Read its linked file(s).
38
+ 2. Decide if the finding **still holds**.
39
+ 3. Record it:
40
+ - still true → `kodi memory verify <id> --pass` (raises its score)
41
+ - no longer true → `kodi memory verify <id> --fail --reason "<what changed>"`
42
+ (tombstones it so it stops being surfaced and can't be silently re-learned)
43
+
44
+ Also: when you **edit a file** that memories are linked to, they're auto-flagged
45
+ `⚠reverify`; re-verify the ones you can as above. **Memories are effectively immutable**
46
+ — to correct one, `verify --fail` it and `store` the corrected finding (or `amend`,
47
+ which resets its score to unverified). The store is machine-global (`$KODI_HOME`, default
48
+ `~/.kodi`), partitioned per project, so memories never leak between repos.
@@ -0,0 +1,56 @@
1
+ ---
2
+ name: remember
3
+ description: >-
4
+ Capture a durable finding about THIS project into kodi's cross-session memory via
5
+ `kodi memory store`, and retrieve past findings with `kodi memory query`. Use this
6
+ whenever the user runs /remember, or says things like "remember this", "save this
7
+ finding", "note that for later", "store this decision/gotcha", "what do we already
8
+ know about X", "did we figure out why …", "check the project memory" — anytime a
9
+ learning about the repo should persist across sessions or a past learning should be
10
+ recalled. It is NOT for the user's global preferences (that is Claude's own memory);
11
+ this is project-scoped repository knowledge.
12
+ ---
13
+
14
+ # /remember — Persist and recall project knowledge
15
+
16
+ kodi keeps a lexical, cross-session **memory** for this project (one collection per
17
+ repo, stored under `$KODI_HOME`, outside the tree). Turn a learning into a durable
18
+ memory, or pull up what was learned before — all through the `kodi memory` CLI.
19
+
20
+ ## Store a finding
21
+
22
+ Classify it and store it with enough context to be useful months later:
23
+
24
+ ```
25
+ kodi memory store --type <type> --content "<finding + why>" [--ticket <KEY>] [--file <path> ...]
26
+ ```
27
+
28
+ `--type` is one of:
29
+
30
+ - `decision` — a choice made and why (a mini-ADR)
31
+ - `gotcha` — a trap / bug root-cause to not repeat
32
+ - `convention` — a project rule or pattern to follow
33
+ - `architecture` — how a subsystem or flow works
34
+ - `reference` — a pointer to a doc / URL / resource
35
+ - `task-note` — context tied to a specific ticket's implementation
36
+
37
+ Attribute it: `--ticket` for the task in flight, `--file` for each repo-relative path
38
+ it concerns (repeatable, 0..N). Storing the same content twice is a no-op (deduped),
39
+ so err toward storing. Prefer the *why* over the *what*, and skip the ephemeral.
40
+
41
+ ## Recall findings
42
+
43
+ ```
44
+ kodi memory query "<topic or question>" [--type <t>] [--ticket <KEY>] [--file <path>] [--json]
45
+ ```
46
+
47
+ Free-text BM25 search plus filters, scoped to this project; `--json` returns full
48
+ records for you to reason over. `kodi memory list` browses newest-first. Query before
49
+ working a subsystem — it often saves re-investigating what's already known.
50
+
51
+ ## Curate
52
+
53
+ Keep the store trustworthy: `kodi memory amend <id> …` to correct a memory,
54
+ `kodi memory rm <id>` to drop a stale one. Move knowledge between machines/projects
55
+ with `kodi memory export [-f file.yaml] [--type t]` and `kodi memory import <file.yaml>`
56
+ (imports dedup into the current project).
@@ -0,0 +1,85 @@
1
+ ---
2
+ name: retickets
3
+ description: >-
4
+ Revise or recreate one or more EXISTING board tickets from a change description —
5
+ impact-analysis first, then apply through the kodi tickets CLI. Use this whenever
6
+ the user runs /retickets, or says things like "change/rework/rewrite ticket
7
+ KODI-014", "the requirements changed, update the tickets", "this ticket is wrong /
8
+ the scope is off", "recreate these tickets", "modify the acceptance criteria", or
9
+ "reconcile the board after replanning a phase that already has tickets (some
10
+ already built)". This is the board-level sibling of /oreplan. It is NOT /tickets
11
+ (generate fresh tickets from the plan), NOT /ticket-start (build a ticket), and NOT
12
+ /oreplan (re-plan a phase in docs/plan) — though /oreplan hands its phase delta TO
13
+ this skill when the phase already has tickets.
14
+ ---
15
+
16
+ # /retickets [keys] [change] — Revise existing tickets, impact-first
17
+
18
+ Revise EXISTING tickets on the active board from a change description. Analyze the
19
+ blast radius before you touch anything, apply through the CLI with sign-off, and
20
+ never pretend already-built work can be edited away.
21
+
22
+ - Manage tickets ONLY through the CLI: `kodi tickets get`, `list`, `deps`, `amend`,
23
+ `create`, `delete`, `list-ready`, `set-status`. The CLI validates the template
24
+ and proxies the provider.
25
+ - **Plan is law.** If the change contradicts an approved PRD/ADR/security driver,
26
+ STOP and surface it — that needs `/oreplan`, not a ticket edit.
27
+ - **Implemented work is immutable history.** You cannot un-build a `Done` ticket by
28
+ editing its text; carry the change in a new follow-up ticket.
29
+ - Remote board mutations are dry-run unless `--yes`.
30
+
31
+ ## Flow (analysis first, apply last)
32
+
33
+ 1. **Resolve targets + change.** Identify the ticket key(s) and the change. If none
34
+ given, help locate them from `kodi tickets list`.
35
+
36
+ 2. **Read current state — including status.** `kodi tickets get <key>` for each
37
+ target (note its status: `Pending | In progress | To review | Done`); `kodi
38
+ tickets list --json` for the whole board (dependency graph + every affected
39
+ ticket's status); read the plan drivers in `docs/plan` (PRD / ADR / security) the
40
+ targets trace to.
41
+
42
+ 3. **Impact analysis — the centerpiece.** Produce a report with these five sections:
43
+ - **Blast radius** — upstream deps the target relies on and downstream tickets
44
+ that depend on it (`kodi tickets deps` / the graph), plus tickets sharing the
45
+ same drivers or acceptance surface that would go inconsistent.
46
+ - **Status reconciliation** — partition every affected ticket by status; a
47
+ ticket's text is not the source of truth once code exists:
48
+ - `Pending` — safe to amend / re-wire / delete.
49
+ - `In progress` / `To review` — live on a branch/PR. Do NOT silently rewrite;
50
+ the change may force rework of an active slice. Surface it to the human (it
51
+ re-enters via `/ticket-start`).
52
+ - `Done` — already shipped. The change becomes a **new follow-up ticket**
53
+ (modify / revert / extend), never an edit or delete of the closed ticket,
54
+ which stays as the record of what was built.
55
+ - **Plan alignment** — does the change agree with the PRD/ADR/security drivers? If
56
+ it contradicts an approved ADR or PRD scope, STOP and surface — likely `/oreplan`.
57
+ - **Tradeoffs** — gains vs. costs: scope, sequencing/dependency order,
58
+ test/coverage impact, non-goals crossed, security.
59
+ - **New tickets required?** — net-new work that doesn't fit existing tickets,
60
+ including follow-up tickets for any change landing on `Done`/in-flight work.
61
+
62
+ 4. **Size gate → recommend `/oreplan` when the change is big.** If the change
63
+ invalidates a phase's foundation (ADR/PRD/scope) OR would cascade across many
64
+ tickets, recommend the user run `/oreplan` for the phase instead of hand-revising
65
+ many tickets — replanning regenerates a coherent phase, which is safer than N
66
+ manual edits. Apply directly only when the change is localized to the target(s).
67
+
68
+ **The `/oreplan` round-trip.** When coming *from* `/oreplan` (a phase that already
69
+ has tickets was replanned), this skill is the reconciler: diff the new phase plan
70
+ against the board, then apply the delta through step 3's status reconciliation —
71
+ adjust `Pending` tickets to match, flag `In progress`/`To review` tickets whose
72
+ basis changed, emit follow-up tickets for `Done` work the new plan would have done
73
+ differently. Never rewrite implemented tickets to make the board "look like" the
74
+ new plan; only new/pending tickets carry the delta.
75
+
76
+ 5. **Show the delta, get sign-off.** Tickets are human-approved artifacts — present
77
+ the before→after diff and the impact report and get explicit sign-off before
78
+ mutating. Mutations stay dry-run unless `--yes`.
79
+
80
+ 6. **Apply through the CLI — gated by status.** `kodi tickets amend` (summary / ac /
81
+ deps / notes) and `delete` for `Pending` tickets only; `kodi tickets deps --add`
82
+ to re-wire dependencies; `kodi tickets create` for approved net-new and follow-up
83
+ tickets (the vehicle for anything touching `Done`/in-flight work). Keep each
84
+ ticket tracing to its drivers. Then re-check `kodi tickets list-ready` so the
85
+ order reflects the new reality.
@@ -16,8 +16,9 @@ drive it end-to-end on its own branch.
16
16
 
17
17
  The build-orchestrator is the hub: engineers (`backend-engineer`,
18
18
  `frontend-engineer`) write feature code; testers (`backend-tester`,
19
- `frontend-tester`) write tests; gates (`qa-implementation`, `qa-visual`) plus a
20
- `security` bracket. The slice closes ONLY when every gate is green, there is no
19
+ `frontend-tester`) write tests; `refactor-engineer` tidies the code behavior-
20
+ preservingly as the last implementation step (once tests are green); gates
21
+ (`qa-implementation`, `qa-visual`) plus a `security` bracket. The slice closes ONLY when every gate is green, there is no
21
22
  Critical/High security finding, and qa-implementation AND qa-visual are positive.
22
23
  Take the PR to `To Review` via `kodi pr` — never to `Done`. On remote boards this
23
24
  is binding: `.claude/rules/ticket-completion.md` (In review + PR on finish; `Done`
@@ -1 +1 @@
1
- jxv0GcmWplyzie2rdOiIo
1
+ I_lHe5DQGPJBZViq6L3bS
@@ -7,9 +7,9 @@
7
7
  "static/chunks/0cz1d0mv5g_q7.js"
8
8
  ],
9
9
  "lowPriorityFiles": [
10
- "static/jxv0GcmWplyzie2rdOiIo/_buildManifest.js",
11
- "static/jxv0GcmWplyzie2rdOiIo/_ssgManifest.js",
12
- "static/jxv0GcmWplyzie2rdOiIo/_clientMiddlewareManifest.js"
10
+ "static/I_lHe5DQGPJBZViq6L3bS/_buildManifest.js",
11
+ "static/I_lHe5DQGPJBZViq6L3bS/_ssgManifest.js",
12
+ "static/I_lHe5DQGPJBZViq6L3bS/_clientMiddlewareManifest.js"
13
13
  ],
14
14
  "rootMainFiles": [
15
15
  "static/chunks/1jq4o6yq14o4c.js",
@@ -54,8 +54,8 @@
54
54
  "dynamicRoutes": {},
55
55
  "notFoundRoutes": [],
56
56
  "preview": {
57
- "previewModeId": "11de53511cc9a079aadd669e472a9f5d",
58
- "previewModeSigningKey": "f63919bb4e695e2489fd4b12d85743755ca29d2a2fd55cd75fa54651cded15a7",
59
- "previewModeEncryptionKey": "2beb245df6a167bbc939ef39fb4c65b42ecb2964d5b0cda11d4b2fd699999ff1"
57
+ "previewModeId": "dc564072b84ce5fda9a082028ee71e04",
58
+ "previewModeSigningKey": "3d559e44b709b729fc33f3f2bd94f64cd2e26e9ee8c61e620af23c8903cceb79",
59
+ "previewModeEncryptionKey": "c777c09a9cee5fda4a28cc2fcae8f86770d9f4a699825fb5041013a9b723df5e"
60
60
  }
61
61
  }
@@ -1 +1 @@
1
- <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/1jq4o6yq14o4c.js"/><script src="/_next/static/chunks/0245a4ypel7xx.js" async=""></script><script src="/_next/static/chunks/0dw6y-0ffla71.js" async=""></script><script src="/_next/static/chunks/3rxl-jt3pdxgx.js" async=""></script><script src="/_next/static/chunks/turbopack-3ec-4w_qyxb-d.js" async=""></script><script src="/_next/static/chunks/158myu8e_yme3.js" async=""></script><title>500: This page couldn’t load</title><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/1jq4o6yq14o4c.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/158myu8e_yme3.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/158myu8e_yme3.js\"],\"default\"]\n4:I[97367,[\"/_next/static/chunks/158myu8e_yme3.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[97367,[\"/_next/static/chunks/158myu8e_yme3.js\"],\"ViewportBoundary\"]\na:I[97367,[\"/_next/static/chunks/158myu8e_yme3.js\"],\"MetadataBoundary\"]\nc:I[68027,[\"/_next/static/chunks/158myu8e_yme3.js\"],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"jxv0GcmWplyzie2rdOiIo\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\nb:[]\n"])</script></body></html>
1
+ <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/1jq4o6yq14o4c.js"/><script src="/_next/static/chunks/0245a4ypel7xx.js" async=""></script><script src="/_next/static/chunks/0dw6y-0ffla71.js" async=""></script><script src="/_next/static/chunks/3rxl-jt3pdxgx.js" async=""></script><script src="/_next/static/chunks/turbopack-3ec-4w_qyxb-d.js" async=""></script><script src="/_next/static/chunks/158myu8e_yme3.js" async=""></script><title>500: This page couldn’t load</title><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/1jq4o6yq14o4c.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/158myu8e_yme3.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/158myu8e_yme3.js\"],\"default\"]\n4:I[97367,[\"/_next/static/chunks/158myu8e_yme3.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[97367,[\"/_next/static/chunks/158myu8e_yme3.js\"],\"ViewportBoundary\"]\na:I[97367,[\"/_next/static/chunks/158myu8e_yme3.js\"],\"MetadataBoundary\"]\nc:I[68027,[\"/_next/static/chunks/158myu8e_yme3.js\"],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"I_lHe5DQGPJBZViq6L3bS\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\nb:[]\n"])</script></body></html>
@@ -6,7 +6,7 @@
6
6
  8:I[97367,["/_next/static/chunks/158myu8e_yme3.js"],"ViewportBoundary"]
7
7
  a:I[97367,["/_next/static/chunks/158myu8e_yme3.js"],"MetadataBoundary"]
8
8
  c:I[68027,["/_next/static/chunks/158myu8e_yme3.js"],"default",1]
9
- 0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],null]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"jxv0GcmWplyzie2rdOiIo"}
9
+ 0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],null]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"I_lHe5DQGPJBZViq6L3bS"}
10
10
  d:[]
11
11
  7:"$Wd"
12
12
  9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
@@ -1,5 +1,5 @@
1
1
  1:"$Sreact.fragment"
2
2
  2:I[97367,["/_next/static/chunks/158myu8e_yme3.js"],"OutletBoundary"]
3
3
  3:"$Sreact.suspense"
4
- 0:{"rsc":["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"jxv0GcmWplyzie2rdOiIo"}
4
+ 0:{"rsc":["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"I_lHe5DQGPJBZViq6L3bS"}
5
5
  4:null
@@ -6,7 +6,7 @@
6
6
  8:I[97367,["/_next/static/chunks/158myu8e_yme3.js"],"ViewportBoundary"]
7
7
  a:I[97367,["/_next/static/chunks/158myu8e_yme3.js"],"MetadataBoundary"]
8
8
  c:I[68027,["/_next/static/chunks/158myu8e_yme3.js"],"default",1]
9
- 0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],null]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"jxv0GcmWplyzie2rdOiIo"}
9
+ 0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],null]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"I_lHe5DQGPJBZViq6L3bS"}
10
10
  d:[]
11
11
  7:"$Wd"
12
12
  9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
@@ -2,4 +2,4 @@
2
2
  2:I[97367,["/_next/static/chunks/158myu8e_yme3.js"],"ViewportBoundary"]
3
3
  3:I[97367,["/_next/static/chunks/158myu8e_yme3.js"],"MetadataBoundary"]
4
4
  4:"$Sreact.suspense"
5
- 0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[]}]}]}],null]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"jxv0GcmWplyzie2rdOiIo"}
5
+ 0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[]}]}]}],null]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"I_lHe5DQGPJBZViq6L3bS"}
@@ -2,4 +2,4 @@
2
2
  2:I[39756,["/_next/static/chunks/158myu8e_yme3.js"],"default"]
3
3
  3:I[37457,["/_next/static/chunks/158myu8e_yme3.js"],"default"]
4
4
  4:[]
5
- 0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"jxv0GcmWplyzie2rdOiIo"}
5
+ 0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"I_lHe5DQGPJBZViq6L3bS"}
@@ -1 +1 @@
1
- 0:{"tree":{"name":"","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"jxv0GcmWplyzie2rdOiIo"}
1
+ 0:{"tree":{"name":"","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"I_lHe5DQGPJBZViq6L3bS"}