lockhawk 0.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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Faith Onyebueke
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,157 @@
1
+ <div align="center">
2
+
3
+ # πŸ›‘οΈ lockhawk
4
+
5
+ ### Fast, free, and accurate npm dependency vulnerability scanning β€” for your machine **and** your pipeline.
6
+
7
+ [![npm](https://img.shields.io/npm/v/lockhawk.svg)](https://www.npmjs.com/package/lockhawk)
8
+ [![CI](https://github.com/lockhawk/lockhawk/actions/workflows/ci.yml/badge.svg)](https://github.com/lockhawk/lockhawk/actions/workflows/ci.yml)
9
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/lockhawk/lockhawk/blob/main/LICENSE)
10
+ [![Data: OSV.dev](https://img.shields.io/badge/data-OSV.dev-4285F4.svg)](https://osv.dev)
11
+
12
+ </div>
13
+
14
+ ---
15
+
16
+ `lockhawk` reads your lockfile (`package-lock.json`, `yarn.lock`, or `pnpm-lock.yaml`), builds the
17
+ full dependency tree β€” including transitive dependencies β€” and checks every package against the
18
+ free [OSV.dev](https://osv.dev) vulnerability database. It produces a beautiful, self-contained
19
+ HTML dashboard and machine-readable reports so you can understand and prioritise fixes.
20
+ **No account, no API key, no usage limits.**
21
+
22
+ ```console
23
+ $ npx lockhawk scan
24
+
25
+ lockhawk Β· acme-web@2.4.1 Β· npm Β· 842 packages
26
+
27
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
28
+ β”‚ Severity β”‚ Package β”‚ Advisory β”‚ Fixed in β”‚ Path β”‚
29
+ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
30
+ β”‚ critical β”‚ lodash 4.17.11 (direct) β”‚ GHSA-jf85-cpcp-j695 β”‚ 4.17.12 β”‚ acme-web β€Ί lodash β”‚
31
+ β”‚ high 7.4 β”‚ lodash 4.17.11 (direct) β”‚ GHSA-p6mc-m468-83gw β”‚ 4.17.19 β”‚ acme-web β€Ί lodash β”‚
32
+ β”‚ medium 5.3 β”‚ minimist 1.2.0 β”‚ GHSA-vh95-rmgr-6w4m β”‚ 1.2.3 β”‚ acme-web β€Ί mkdirp β€Ί minimist β”‚
33
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
34
+
35
+ Found 3 vulnerabilities (1 critical, 1 high, 1 medium) Β· 3 fixable
36
+ Data from OSV.dev Β· database: offline Β· scanned in 184ms
37
+ ```
38
+
39
+ ## πŸš€ Quick start
40
+
41
+ ```bash
42
+ # One-off, no install
43
+ npx lockhawk scan
44
+
45
+ # Fail the build on high+ severity and emit SARIF for the GitHub Security tab
46
+ npx lockhawk scan --format sarif --output scan.sarif --fail-on high
47
+
48
+ # Generate the standalone HTML dashboard
49
+ npx lockhawk scan --format html --output report.html
50
+
51
+ # Explore findings in an interactive local dashboard
52
+ npx lockhawk serve
53
+ ```
54
+
55
+ Install it globally or as a dev dependency:
56
+
57
+ ```bash
58
+ npm install -g lockhawk # global `lockhawk` command
59
+ npm install --save-dev lockhawk # for use in package scripts / CI
60
+ ```
61
+
62
+ ## ✨ Features
63
+
64
+ - **⚑ Fast & non-intrusive** β€” a warm scan does **zero network I/O** and finishes in well under a
65
+ second. The vulnerability database is cached on disk (and downloadable for fully offline CI),
66
+ lookups are batched, and the scanner is **fail-open**: a transient network blip never breaks
67
+ your build.
68
+ - **πŸ†“ Free forever** β€” powered by Google's [OSV.dev](https://osv.dev). No API key, no
69
+ rate-limited account, no seat licensing.
70
+ - **🎯 Accurate** β€” canonical OSV range matching with `semver`, **CVSS v3 _and_ v4** scoring,
71
+ withdrawn-advisory handling, and alias de-duplication.
72
+ - **πŸ“¦ Every package manager** β€” npm (`package-lock` v1/v2/v3 + shrinkwrap), Yarn (classic &
73
+ Berry), and pnpm (v5/v6/v9), including workspaces.
74
+ - **πŸ“Š Beautiful analysis** β€” a self-contained HTML dashboard you can open anywhere or attach as
75
+ a CI artifact, plus `lockhawk serve` for interactive drill-down with dependency-path tracing.
76
+ - **πŸ”Œ Built for CI/CD** β€” first-class **SARIF** (GitHub Security tab), **JUnit** (Azure DevOps /
77
+ GitLab test dashboards), JSON, and a stable exit-code contract for build gating.
78
+
79
+ ## 🧭 CLI
80
+
81
+ ```
82
+ lockhawk scan [path] Scan a project (default command)
83
+ -f, --format <fmt> table | json | sarif | html | junit (default: table)
84
+ -o, --output <file> write the report to a file
85
+ --severity-threshold <level> minimum severity to report
86
+ --fail-on <level> minimum severity for a non-zero exit (default: high)
87
+ --offline | --online force the offline DB or live OSV.dev queries
88
+ --strict-network fail on network errors instead of degrading
89
+ --prod-only ignore dev dependencies
90
+ --ignore <ids...> suppress specific advisory ids
91
+ --ignore-file <path> a .lockhawkignore file (ids, optional expiry date)
92
+ --cache-dir <dir> | --cache-ttl <hours> | --no-cache | --concurrency <n>
93
+
94
+ lockhawk report -i result.json -f html -o report.html Re-render a saved result
95
+ lockhawk serve [path] Interactive local dashboard
96
+ lockhawk db update | status | path Manage the offline OSV database
97
+ ```
98
+
99
+ ### Exit codes
100
+
101
+ | Code | Meaning |
102
+ | ---- | --------------------------------------------- |
103
+ | `0` | Clean β€” no finding at or above `--fail-on` |
104
+ | `1` | At least one finding at or above `--fail-on` |
105
+ | `2` | Usage error (e.g. no lockfile found) |
106
+ | `3` | Internal error |
107
+ | `4` | Network error while `--strict-network` is set |
108
+
109
+ Plain network failures never fail the build unless you opt in with `--strict-network`.
110
+
111
+ ## πŸ” CI/CD
112
+
113
+ Runs in any pipeline without slowing it down β€” warm the cached DB once, then scan offline in well
114
+ under a second. Full recipes for **GitHub Actions**, **Azure DevOps**, and **GitLab CI** are in
115
+ [docs/ci-cd.md](https://github.com/lockhawk/lockhawk/blob/main/docs/ci-cd.md).
116
+
117
+ ```yaml
118
+ permissions: { contents: read, security-events: write }
119
+ steps:
120
+ - uses: actions/checkout@v4
121
+ - uses: lockhawk/lockhawk@v1
122
+ with: { fail-on: high }
123
+ ```
124
+
125
+ ## βš™οΈ Configuration
126
+
127
+ Add a `.lockhawkrc`, `lockhawk.config.js`, or a `"lockhawk"` key in `package.json`:
128
+
129
+ ```json
130
+ {
131
+ "mode": "auto",
132
+ "failOn": "high",
133
+ "prodOnly": false,
134
+ "ignore": ["GHSA-xxxx-xxxx-xxxx"]
135
+ }
136
+ ```
137
+
138
+ ## 🧩 Programmatic API
139
+
140
+ To embed the scanner in your own tooling, use the engine package
141
+ [`@lockhawk/core`](https://www.npmjs.com/package/@lockhawk/core):
142
+
143
+ ```ts
144
+ import { scan } from '@lockhawk/core';
145
+
146
+ const result = await scan({ path: '.', mode: 'auto', failOn: 'high' });
147
+ console.log(result.summary, result.findings);
148
+ ```
149
+
150
+ ## πŸ“š Full documentation
151
+
152
+ Full docs, CI/CD recipes, configuration reference, and the contributing guide live in the main
153
+ repository: **https://github.com/lockhawk/lockhawk**
154
+
155
+ ## πŸ“„ License
156
+
157
+ [MIT](https://github.com/lockhawk/lockhawk/blob/main/LICENSE) β€” free to use, modify, and distribute.
@@ -0,0 +1,66 @@
1
+ #!/usr/bin/env node
2
+
3
+ // src/commands/db.ts
4
+ import ora from "ora";
5
+ import {
6
+ offlineDbDir,
7
+ readOfflineMeta,
8
+ resolveCacheDir,
9
+ updateOfflineDatabase
10
+ } from "@lockhawk/core";
11
+ async function runDbUpdate(opts) {
12
+ const cacheDir = resolveCacheDir(opts.cacheDir);
13
+ const useSpinner = Boolean(process.stderr.isTTY) && !process.env.CI;
14
+ const spinner = useSpinner ? ora({ stream: process.stderr, text: "Updating database\u2026" }).start() : void 0;
15
+ try {
16
+ const { status, meta } = await updateOfflineDatabase({
17
+ cacheDir,
18
+ nowIso: (/* @__PURE__ */ new Date()).toISOString(),
19
+ force: opts.force,
20
+ onProgress: (message) => {
21
+ if (spinner) spinner.text = message;
22
+ else process.stderr.write(`${message}
23
+ `);
24
+ }
25
+ });
26
+ const summary = `${status === "updated" ? "Updated" : "Already up to date"} \u2014 ${meta.recordCount} advisories across ${meta.packageCount} packages.`;
27
+ if (spinner) spinner.succeed(summary);
28
+ else process.stderr.write(`${summary}
29
+ `);
30
+ } catch (err) {
31
+ const message = err instanceof Error ? err.message : String(err);
32
+ if (spinner) spinner.fail(`Database update failed: ${message}`);
33
+ else process.stderr.write(`Database update failed: ${message}
34
+ `);
35
+ process.exitCode = 3;
36
+ }
37
+ }
38
+ async function runDbStatus(opts) {
39
+ const cacheDir = resolveCacheDir(opts.cacheDir);
40
+ const meta = await readOfflineMeta(cacheDir);
41
+ if (!meta) {
42
+ process.stdout.write("No offline database found. Run `lockhawk db update` to create one.\n");
43
+ return;
44
+ }
45
+ const ageHours = Math.round((Date.now() - Date.parse(meta.lastUpdated)) / 36e5);
46
+ process.stdout.write(
47
+ [
48
+ `Ecosystem: ${meta.ecosystem}`,
49
+ `Source: ${meta.source}`,
50
+ `Advisories: ${meta.recordCount}`,
51
+ `Packages: ${meta.packageCount}`,
52
+ `Last updated: ${meta.lastUpdated} (${ageHours}h ago)`,
53
+ `Location: ${offlineDbDir(cacheDir)}`
54
+ ].join("\n") + "\n"
55
+ );
56
+ }
57
+ function runDbPath(opts) {
58
+ process.stdout.write(`${offlineDbDir(resolveCacheDir(opts.cacheDir))}
59
+ `);
60
+ }
61
+ export {
62
+ runDbPath,
63
+ runDbStatus,
64
+ runDbUpdate
65
+ };
66
+ //# sourceMappingURL=db-3KKJNIY5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/db.ts"],"sourcesContent":["import ora from 'ora';\nimport {\n offlineDbDir,\n readOfflineMeta,\n resolveCacheDir,\n updateOfflineDatabase,\n} from '@lockhawk/core';\n\ninterface DbOptions {\n cacheDir?: string;\n force?: boolean;\n}\n\n/** `db update` β€” download/refresh the offline OSV database. */\nexport async function runDbUpdate(opts: DbOptions): Promise<void> {\n const cacheDir = resolveCacheDir(opts.cacheDir);\n const useSpinner = Boolean(process.stderr.isTTY) && !process.env.CI;\n const spinner = useSpinner\n ? ora({ stream: process.stderr, text: 'Updating database…' }).start()\n : undefined;\n try {\n const { status, meta } = await updateOfflineDatabase({\n cacheDir,\n nowIso: new Date().toISOString(),\n force: opts.force,\n onProgress: (message) => {\n if (spinner) spinner.text = message;\n else process.stderr.write(`${message}\\n`);\n },\n });\n const summary = `${status === 'updated' ? 'Updated' : 'Already up to date'} β€” ${meta.recordCount} advisories across ${meta.packageCount} packages.`;\n if (spinner) spinner.succeed(summary);\n else process.stderr.write(`${summary}\\n`);\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n if (spinner) spinner.fail(`Database update failed: ${message}`);\n else process.stderr.write(`Database update failed: ${message}\\n`);\n process.exitCode = 3;\n }\n}\n\n/** `db status` β€” report freshness of the offline database. */\nexport async function runDbStatus(opts: DbOptions): Promise<void> {\n const cacheDir = resolveCacheDir(opts.cacheDir);\n const meta = await readOfflineMeta(cacheDir);\n if (!meta) {\n process.stdout.write('No offline database found. Run `lockhawk db update` to create one.\\n');\n return;\n }\n const ageHours = Math.round((Date.now() - Date.parse(meta.lastUpdated)) / 3_600_000);\n process.stdout.write(\n [\n `Ecosystem: ${meta.ecosystem}`,\n `Source: ${meta.source}`,\n `Advisories: ${meta.recordCount}`,\n `Packages: ${meta.packageCount}`,\n `Last updated: ${meta.lastUpdated} (${ageHours}h ago)`,\n `Location: ${offlineDbDir(cacheDir)}`,\n ].join('\\n') + '\\n',\n );\n}\n\n/** `db path` β€” print the offline database directory. */\nexport function runDbPath(opts: DbOptions): void {\n process.stdout.write(`${offlineDbDir(resolveCacheDir(opts.cacheDir))}\\n`);\n}\n"],"mappings":";;;AAAA,OAAO,SAAS;AAChB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAQP,eAAsB,YAAY,MAAgC;AAChE,QAAM,WAAW,gBAAgB,KAAK,QAAQ;AAC9C,QAAM,aAAa,QAAQ,QAAQ,OAAO,KAAK,KAAK,CAAC,QAAQ,IAAI;AACjE,QAAM,UAAU,aACZ,IAAI,EAAE,QAAQ,QAAQ,QAAQ,MAAM,0BAAqB,CAAC,EAAE,MAAM,IAClE;AACJ,MAAI;AACF,UAAM,EAAE,QAAQ,KAAK,IAAI,MAAM,sBAAsB;AAAA,MACnD;AAAA,MACA,SAAQ,oBAAI,KAAK,GAAE,YAAY;AAAA,MAC/B,OAAO,KAAK;AAAA,MACZ,YAAY,CAAC,YAAY;AACvB,YAAI,QAAS,SAAQ,OAAO;AAAA,YACvB,SAAQ,OAAO,MAAM,GAAG,OAAO;AAAA,CAAI;AAAA,MAC1C;AAAA,IACF,CAAC;AACD,UAAM,UAAU,GAAG,WAAW,YAAY,YAAY,oBAAoB,WAAM,KAAK,WAAW,sBAAsB,KAAK,YAAY;AACvI,QAAI,QAAS,SAAQ,QAAQ,OAAO;AAAA,QAC/B,SAAQ,OAAO,MAAM,GAAG,OAAO;AAAA,CAAI;AAAA,EAC1C,SAAS,KAAK;AACZ,UAAM,UAAU,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAC/D,QAAI,QAAS,SAAQ,KAAK,2BAA2B,OAAO,EAAE;AAAA,QACzD,SAAQ,OAAO,MAAM,2BAA2B,OAAO;AAAA,CAAI;AAChE,YAAQ,WAAW;AAAA,EACrB;AACF;AAGA,eAAsB,YAAY,MAAgC;AAChE,QAAM,WAAW,gBAAgB,KAAK,QAAQ;AAC9C,QAAM,OAAO,MAAM,gBAAgB,QAAQ;AAC3C,MAAI,CAAC,MAAM;AACT,YAAQ,OAAO,MAAM,sEAAsE;AAC3F;AAAA,EACF;AACA,QAAM,WAAW,KAAK,OAAO,KAAK,IAAI,IAAI,KAAK,MAAM,KAAK,WAAW,KAAK,IAAS;AACnF,UAAQ,OAAO;AAAA,IACb;AAAA,MACE,iBAAiB,KAAK,SAAS;AAAA,MAC/B,iBAAiB,KAAK,MAAM;AAAA,MAC5B,iBAAiB,KAAK,WAAW;AAAA,MACjC,iBAAiB,KAAK,YAAY;AAAA,MAClC,iBAAiB,KAAK,WAAW,KAAK,QAAQ;AAAA,MAC9C,iBAAiB,aAAa,QAAQ,CAAC;AAAA,IACzC,EAAE,KAAK,IAAI,IAAI;AAAA,EACjB;AACF;AAGO,SAAS,UAAU,MAAuB;AAC/C,UAAQ,OAAO,MAAM,GAAG,aAAa,gBAAgB,KAAK,QAAQ,CAAC,CAAC;AAAA,CAAI;AAC1E;","names":[]}
package/dist/index.js ADDED
@@ -0,0 +1,305 @@
1
+ #!/usr/bin/env node
2
+
3
+ // src/index.ts
4
+ import { Command, Option } from "commander";
5
+
6
+ // src/commands/scan.ts
7
+ import { writeFileSync } from "fs";
8
+ import { join as join2, resolve } from "path";
9
+ import ora from "ora";
10
+ import { LockfileError, scan, shouldFail } from "@lockhawk/core";
11
+
12
+ // src/report/render.ts
13
+ import { toHtml, toJson, toJunit, toSarifString } from "@lockhawk/core";
14
+
15
+ // src/report/table.ts
16
+ import chalk from "chalk";
17
+ import Table from "cli-table3";
18
+ var paint = {
19
+ critical: (s) => chalk.bgRed.white.bold(` ${s} `),
20
+ high: (s) => chalk.hex("#d9822b").bold(s),
21
+ medium: (s) => chalk.yellow(s),
22
+ low: (s) => chalk.blue(s),
23
+ unknown: (s) => chalk.gray(s),
24
+ none: (s) => chalk.green(s)
25
+ };
26
+ function renderTable(result) {
27
+ const lines = [];
28
+ const { summary, target, stats, database } = result;
29
+ lines.push(
30
+ chalk.bold(`
31
+ lockhawk`) + chalk.dim(
32
+ ` \xB7 ${target.root.name}${target.root.version ? `@${target.root.version}` : ""} \xB7 ${target.manager} \xB7 ${stats.totalPackages} packages`
33
+ )
34
+ );
35
+ for (const warning of database.warnings) lines.push(chalk.yellow(`\u26A0 ${warning}`));
36
+ if (result.findings.length === 0) {
37
+ lines.push(chalk.green.bold("\n\u2713 No known vulnerabilities found.\n"));
38
+ lines.push(chalk.dim(footer(result)));
39
+ return lines.join("\n");
40
+ }
41
+ const table = new Table({
42
+ head: ["Severity", "Package", "Advisory", "Fixed in", "Path"].map((h) => chalk.dim(h)),
43
+ style: { head: [], border: [] },
44
+ colWidths: [12, 26, 22, 12, 40],
45
+ wordWrap: true
46
+ });
47
+ for (const f of result.findings) {
48
+ const sev = f.severity;
49
+ const sevText = `${sev.level}${sev.score ? ` ${sev.score}` : ""}`;
50
+ const path = f.dependencyPaths[0]?.join(" \u203A ") ?? f.packageName;
51
+ table.push([
52
+ paint[sev.level](sevText),
53
+ `${f.packageName}
54
+ ${chalk.dim(f.version)}${f.direct ? chalk.dim(" (direct)") : ""}`,
55
+ f.id,
56
+ f.fixedVersions[0] ?? chalk.dim("none"),
57
+ chalk.dim(path)
58
+ ]);
59
+ }
60
+ lines.push("");
61
+ lines.push(table.toString());
62
+ lines.push("");
63
+ lines.push(summaryLine(summary));
64
+ lines.push(chalk.dim(footer(result)));
65
+ return lines.join("\n");
66
+ }
67
+ function summaryLine(summary) {
68
+ const parts = [];
69
+ if (summary.critical) parts.push(paint.critical(`${summary.critical} critical`));
70
+ if (summary.high) parts.push(paint.high(`${summary.high} high`));
71
+ if (summary.medium) parts.push(paint.medium(`${summary.medium} medium`));
72
+ if (summary.low) parts.push(paint.low(`${summary.low} low`));
73
+ if (summary.unknown) parts.push(paint.unknown(`${summary.unknown} unknown`));
74
+ return chalk.bold(
75
+ `Found ${summary.total} ${summary.total === 1 ? "vulnerability" : "vulnerabilities"}`
76
+ ) + (parts.length ? ` (${parts.join(", ")})` : "") + chalk.dim(` \xB7 ${summary.fixable} fixable`);
77
+ }
78
+ function footer(result) {
79
+ const age = result.database.ageHours !== void 0 ? `, ${result.database.ageHours}h old` : "";
80
+ return `
81
+ Data from OSV.dev \xB7 database: ${result.database.source}${age} \xB7 scanned in ${result.stats.durationMs ?? 0}ms`;
82
+ }
83
+
84
+ // src/report/shell.ts
85
+ import { readFile } from "fs/promises";
86
+ import { fileURLToPath } from "url";
87
+ import { dirname, join } from "path";
88
+ var cached;
89
+ async function loadReportShell() {
90
+ if (cached !== void 0) return cached ?? void 0;
91
+ try {
92
+ const here = dirname(fileURLToPath(import.meta.url));
93
+ cached = await readFile(join(here, "report-shell.html"), "utf8");
94
+ } catch {
95
+ cached = null;
96
+ }
97
+ return cached ?? void 0;
98
+ }
99
+
100
+ // src/report/render.ts
101
+ async function renderResult(result, format) {
102
+ switch (format) {
103
+ case "json":
104
+ return toJson(result);
105
+ case "sarif":
106
+ return toSarifString(result);
107
+ case "junit":
108
+ return toJunit(result);
109
+ case "html":
110
+ return toHtml(result, await loadReportShell());
111
+ default:
112
+ return renderTable(result);
113
+ }
114
+ }
115
+
116
+ // src/config.ts
117
+ import { existsSync, readFileSync } from "fs";
118
+ import { cosmiconfigSync } from "cosmiconfig";
119
+ function loadFileConfig(cwd) {
120
+ try {
121
+ const result = cosmiconfigSync("lockhawk").search(cwd);
122
+ return result?.config ?? {};
123
+ } catch {
124
+ return {};
125
+ }
126
+ }
127
+ function readIgnoreFile(path, now = /* @__PURE__ */ new Date()) {
128
+ if (!existsSync(path)) return [];
129
+ const ids = [];
130
+ for (const raw of readFileSync(path, "utf8").split(/\r?\n/)) {
131
+ const line = raw.replace(/#.*$/, "").trim();
132
+ if (!line) continue;
133
+ const [id, expiry] = line.split(/\s+/);
134
+ if (!id) continue;
135
+ if (expiry) {
136
+ const when = Date.parse(expiry);
137
+ if (!Number.isNaN(when) && when < now.getTime()) continue;
138
+ }
139
+ ids.push(id);
140
+ }
141
+ return ids;
142
+ }
143
+
144
+ // src/commands/scan.ts
145
+ var EXIT = { OK: 0, FINDINGS: 1, USAGE: 2, INTERNAL: 3, NETWORK: 4 };
146
+ async function runScan(pathArg, cli) {
147
+ const dir = resolve(pathArg || ".");
148
+ const fileConfig = loadFileConfig(dir);
149
+ const mode = cli.offline ? "offline" : cli.online ? "online" : fileConfig.mode ?? "auto";
150
+ const format = cli.format ?? "table";
151
+ const failOn = cli.failOn ?? fileConfig.failOn ?? "high";
152
+ const ignore = [
153
+ ...cli.ignore ?? [],
154
+ ...fileConfig.ignore ?? [],
155
+ ...readIgnoreFile(cli.ignoreFile ?? join2(dir, ".lockhawkignore"))
156
+ ];
157
+ const useSpinner = format === "table" && Boolean(process.stderr.isTTY) && !process.env.CI;
158
+ const spinner = useSpinner ? ora({ stream: process.stderr, text: "Scanning\u2026" }).start() : void 0;
159
+ const options = {
160
+ path: dir,
161
+ mode,
162
+ cacheDir: cli.cacheDir,
163
+ cacheTtlHours: cli.cacheTtl,
164
+ noCache: cli.cache === false,
165
+ concurrency: cli.concurrency,
166
+ prodOnly: cli.prodOnly ?? fileConfig.prodOnly,
167
+ ignore,
168
+ strictNetwork: cli.strictNetwork,
169
+ severityThreshold: cli.severityThreshold ?? fileConfig.severityThreshold,
170
+ onProgress: (message) => {
171
+ if (spinner) spinner.text = message;
172
+ }
173
+ };
174
+ let result;
175
+ try {
176
+ result = await scan(options);
177
+ } catch (err) {
178
+ spinner?.stop();
179
+ const message = err instanceof Error ? err.message : String(err);
180
+ process.stderr.write(`lockhawk: ${message}
181
+ `);
182
+ if (err instanceof LockfileError) process.exitCode = EXIT.USAGE;
183
+ else process.exitCode = cli.strictNetwork ? EXIT.NETWORK : EXIT.INTERNAL;
184
+ return;
185
+ }
186
+ spinner?.stop();
187
+ const rendered = await renderResult(result, format);
188
+ if (cli.output) {
189
+ writeFileSync(cli.output, rendered.endsWith("\n") ? rendered : `${rendered}
190
+ `);
191
+ process.stderr.write(`Report written to ${cli.output}
192
+ ${briefSummary(result)}
193
+ `);
194
+ } else {
195
+ process.stdout.write(`${rendered}
196
+ `);
197
+ }
198
+ process.exitCode = shouldFail(result.summary, failOn) ? EXIT.FINDINGS : EXIT.OK;
199
+ }
200
+ function briefSummary(result) {
201
+ const s = result.summary;
202
+ if (s.total === 0) return "\u2713 No known vulnerabilities found.";
203
+ const parts = ["critical", "high", "medium", "low", "unknown"].filter((level) => s[level] > 0).map((level) => `${s[level]} ${level}`);
204
+ return `Found ${s.total} ${s.total === 1 ? "vulnerability" : "vulnerabilities"} (${parts.join(", ")}).`;
205
+ }
206
+
207
+ // src/commands/report.ts
208
+ import { readFileSync as readFileSync2, writeFileSync as writeFileSync2 } from "fs";
209
+ async function runReport(opts) {
210
+ let result;
211
+ try {
212
+ result = JSON.parse(readFileSync2(opts.input, "utf8"));
213
+ } catch (err) {
214
+ process.stderr.write(
215
+ `lockhawk: could not read ${opts.input}: ${err instanceof Error ? err.message : err}
216
+ `
217
+ );
218
+ process.exitCode = 2;
219
+ return;
220
+ }
221
+ const rendered = await renderResult(result, opts.format ?? "html");
222
+ if (opts.output) {
223
+ writeFileSync2(opts.output, rendered.endsWith("\n") ? rendered : `${rendered}
224
+ `);
225
+ process.stderr.write(`Report written to ${opts.output}
226
+ `);
227
+ } else {
228
+ process.stdout.write(`${rendered}
229
+ `);
230
+ }
231
+ }
232
+
233
+ // src/commands/serve.ts
234
+ import { createServer } from "http";
235
+ import { readFileSync as readFileSync3 } from "fs";
236
+ import { resolve as resolve2 } from "path";
237
+ import open from "open";
238
+ import { scan as scan2, toHtml as toHtml2, toJson as toJson2 } from "@lockhawk/core";
239
+ async function runServe(pathArg, opts) {
240
+ let result;
241
+ if (opts.input) {
242
+ result = JSON.parse(readFileSync3(opts.input, "utf8"));
243
+ } else {
244
+ const mode = opts.offline ? "offline" : opts.online ? "online" : "auto";
245
+ process.stderr.write("Scanning\u2026\n");
246
+ result = await scan2({ path: resolve2(pathArg || "."), mode });
247
+ }
248
+ const html = toHtml2(result, await loadReportShell());
249
+ const json = toJson2(result);
250
+ const server = createServer((req, res) => {
251
+ if (req.url && req.url.startsWith("/api/result")) {
252
+ res.setHeader("content-type", "application/json");
253
+ res.end(json);
254
+ return;
255
+ }
256
+ res.setHeader("content-type", "text/html; charset=utf-8");
257
+ res.end(html);
258
+ });
259
+ const port = opts.port ?? 7777;
260
+ server.listen(port, () => {
261
+ const url = `http://localhost:${port}`;
262
+ process.stderr.write(
263
+ `
264
+ lockhawk dashboard running at ${url}
265
+ ${summaryLine2(result)}
266
+ Press Ctrl+C to stop.
267
+ `
268
+ );
269
+ if (opts.open !== false) void open(url).catch(() => void 0);
270
+ });
271
+ }
272
+ function summaryLine2(result) {
273
+ const s = result.summary;
274
+ return s.total === 0 ? "\u2713 No known vulnerabilities found." : `${s.total} findings \u2014 ${s.critical} critical, ${s.high} high, ${s.medium} medium, ${s.low} low.`;
275
+ }
276
+
277
+ // src/index.ts
278
+ var program = new Command();
279
+ program.name("lockhawk").description(
280
+ "Fast, free, accurate npm dependency vulnerability scanner (local + CI/CD), powered by OSV.dev"
281
+ ).version("0.1.0");
282
+ var severityChoices = ["none", "low", "medium", "high", "critical"];
283
+ program.command("scan", { isDefault: true }).description("Scan a project for vulnerable dependencies").argument("[path]", "project directory to scan", ".").addOption(
284
+ new Option("-f, --format <format>", "output format").choices(["table", "json", "sarif", "html", "junit"]).default("table")
285
+ ).option("-o, --output <file>", "write the report to a file instead of stdout").addOption(
286
+ new Option("--severity-threshold <level>", "minimum severity to report").choices(
287
+ severityChoices
288
+ )
289
+ ).addOption(
290
+ new Option("--fail-on <level>", "minimum severity that causes a non-zero exit").choices(severityChoices).default("high")
291
+ ).option("--offline", "use only the local offline database (no network)").option("--online", "force live OSV.dev queries").option("--strict-network", "fail the scan on network errors instead of degrading gracefully").option("--prod-only", "ignore dev dependencies").option("--ignore <ids...>", "advisory ids to suppress").option("--ignore-file <path>", "path to a .lockhawkignore file").option("--cache-dir <dir>", "override the cache directory").option("--cache-ttl <hours>", "cache freshness window in hours", (v) => Number(v)).option("--no-cache", "bypass the on-disk cache").option("--concurrency <n>", "max concurrent OSV requests", (v) => Number(v)).action((path, opts) => runScan(path, opts));
292
+ var db = program.command("db").description("Manage the offline OSV database");
293
+ db.command("update").description("Download or refresh the offline npm advisory database").option("--cache-dir <dir>", "override the cache directory").option("--force", "ignore conditional caching and re-download").action((opts) => import("./db-3KKJNIY5.js").then((m) => m.runDbUpdate(opts)));
294
+ db.command("status").description("Show offline database freshness").option("--cache-dir <dir>", "override the cache directory").action((opts) => import("./db-3KKJNIY5.js").then((m) => m.runDbStatus(opts)));
295
+ db.command("path").description("Print the offline database directory").option("--cache-dir <dir>", "override the cache directory").action((opts) => import("./db-3KKJNIY5.js").then((m) => m.runDbPath(opts)));
296
+ program.command("report").description("Re-render a saved JSON result into another format").requiredOption("-i, --input <file>", "path to a JSON scan result").addOption(
297
+ new Option("-f, --format <format>", "output format").choices(["table", "json", "sarif", "html", "junit"]).default("html")
298
+ ).option("-o, --output <file>", "write the report to a file instead of stdout").action((opts) => runReport(opts));
299
+ program.command("serve").description("Run a scan and open an interactive dashboard locally").argument("[path]", "project directory to scan", ".").option("-i, --input <file>", "serve a saved JSON result instead of scanning").option("-p, --port <port>", "port to listen on", (v) => Number(v), 7777).option("--no-open", "do not open the browser automatically").option("--offline", "use only the local offline database").option("--online", "force live OSV.dev queries").action((path, opts) => runServe(path, opts));
300
+ program.parseAsync().catch((err) => {
301
+ process.stderr.write(`lockhawk: ${err instanceof Error ? err.message : String(err)}
302
+ `);
303
+ process.exitCode = 3;
304
+ });
305
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/commands/scan.ts","../src/report/render.ts","../src/report/table.ts","../src/report/shell.ts","../src/config.ts","../src/commands/report.ts","../src/commands/serve.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport { runScan } from './commands/scan.js';\nimport type { ScanCliOptions } from './commands/scan.js';\nimport type { Format } from './report/render.js';\nimport { runReport } from './commands/report.js';\nimport { runServe } from './commands/serve.js';\n\nconst program = new Command();\n\nprogram\n .name('lockhawk')\n .description(\n 'Fast, free, accurate npm dependency vulnerability scanner (local + CI/CD), powered by OSV.dev',\n )\n .version('0.1.0');\n\nconst severityChoices = ['none', 'low', 'medium', 'high', 'critical'];\n\nprogram\n .command('scan', { isDefault: true })\n .description('Scan a project for vulnerable dependencies')\n .argument('[path]', 'project directory to scan', '.')\n .addOption(\n new Option('-f, --format <format>', 'output format')\n .choices(['table', 'json', 'sarif', 'html', 'junit'])\n .default('table'),\n )\n .option('-o, --output <file>', 'write the report to a file instead of stdout')\n .addOption(\n new Option('--severity-threshold <level>', 'minimum severity to report').choices(\n severityChoices,\n ),\n )\n .addOption(\n new Option('--fail-on <level>', 'minimum severity that causes a non-zero exit')\n .choices(severityChoices)\n .default('high'),\n )\n .option('--offline', 'use only the local offline database (no network)')\n .option('--online', 'force live OSV.dev queries')\n .option('--strict-network', 'fail the scan on network errors instead of degrading gracefully')\n .option('--prod-only', 'ignore dev dependencies')\n .option('--ignore <ids...>', 'advisory ids to suppress')\n .option('--ignore-file <path>', 'path to a .lockhawkignore file')\n .option('--cache-dir <dir>', 'override the cache directory')\n .option('--cache-ttl <hours>', 'cache freshness window in hours', (v) => Number(v))\n .option('--no-cache', 'bypass the on-disk cache')\n .option('--concurrency <n>', 'max concurrent OSV requests', (v) => Number(v))\n .action((path: string, opts: ScanCliOptions & { format: Format }) => runScan(path, opts));\n\nconst db = program.command('db').description('Manage the offline OSV database');\ndb.command('update')\n .description('Download or refresh the offline npm advisory database')\n .option('--cache-dir <dir>', 'override the cache directory')\n .option('--force', 'ignore conditional caching and re-download')\n .action((opts) => import('./commands/db.js').then((m) => m.runDbUpdate(opts)));\ndb.command('status')\n .description('Show offline database freshness')\n .option('--cache-dir <dir>', 'override the cache directory')\n .action((opts) => import('./commands/db.js').then((m) => m.runDbStatus(opts)));\ndb.command('path')\n .description('Print the offline database directory')\n .option('--cache-dir <dir>', 'override the cache directory')\n .action((opts) => import('./commands/db.js').then((m) => m.runDbPath(opts)));\n\nprogram\n .command('report')\n .description('Re-render a saved JSON result into another format')\n .requiredOption('-i, --input <file>', 'path to a JSON scan result')\n .addOption(\n new Option('-f, --format <format>', 'output format')\n .choices(['table', 'json', 'sarif', 'html', 'junit'])\n .default('html'),\n )\n .option('-o, --output <file>', 'write the report to a file instead of stdout')\n .action((opts) => runReport(opts));\n\nprogram\n .command('serve')\n .description('Run a scan and open an interactive dashboard locally')\n .argument('[path]', 'project directory to scan', '.')\n .option('-i, --input <file>', 'serve a saved JSON result instead of scanning')\n .option('-p, --port <port>', 'port to listen on', (v) => Number(v), 7777)\n .option('--no-open', 'do not open the browser automatically')\n .option('--offline', 'use only the local offline database')\n .option('--online', 'force live OSV.dev queries')\n .action((path: string, opts) => runServe(path, opts));\n\nprogram.parseAsync().catch((err) => {\n process.stderr.write(`lockhawk: ${err instanceof Error ? err.message : String(err)}\\n`);\n process.exitCode = 3;\n});\n","import { writeFileSync } from 'node:fs';\nimport { join, resolve } from 'node:path';\nimport ora from 'ora';\nimport { LockfileError, scan, shouldFail } from '@lockhawk/core';\nimport type { ScanOptions, ScanResult, Severity, SourceMode } from '@lockhawk/core';\nimport { renderResult } from '../report/render.js';\nimport type { Format } from '../report/render.js';\nimport { loadFileConfig, readIgnoreFile } from '../config.js';\n\nexport interface ScanCliOptions {\n format?: Format;\n output?: string;\n severityThreshold?: Severity;\n failOn?: Severity;\n offline?: boolean;\n online?: boolean;\n strictNetwork?: boolean;\n prodOnly?: boolean;\n ignore?: string[];\n ignoreFile?: string;\n cacheDir?: string;\n cacheTtl?: number;\n cache?: boolean; // commander sets false for --no-cache\n concurrency?: number;\n}\n\n/** Stable exit-code contract (documented for CI). */\nexport const EXIT = { OK: 0, FINDINGS: 1, USAGE: 2, INTERNAL: 3, NETWORK: 4 } as const;\n\nexport async function runScan(pathArg: string, cli: ScanCliOptions): Promise<void> {\n const dir = resolve(pathArg || '.');\n const fileConfig = loadFileConfig(dir);\n\n const mode: SourceMode = cli.offline\n ? 'offline'\n : cli.online\n ? 'online'\n : (fileConfig.mode ?? 'auto');\n const format: Format = cli.format ?? 'table';\n const failOn: Severity = cli.failOn ?? fileConfig.failOn ?? 'high';\n\n const ignore = [\n ...(cli.ignore ?? []),\n ...(fileConfig.ignore ?? []),\n ...readIgnoreFile(cli.ignoreFile ?? join(dir, '.lockhawkignore')),\n ];\n\n const useSpinner = format === 'table' && Boolean(process.stderr.isTTY) && !process.env.CI;\n const spinner = useSpinner\n ? ora({ stream: process.stderr, text: 'Scanning…' }).start()\n : undefined;\n\n const options: ScanOptions = {\n path: dir,\n mode,\n cacheDir: cli.cacheDir,\n cacheTtlHours: cli.cacheTtl,\n noCache: cli.cache === false,\n concurrency: cli.concurrency,\n prodOnly: cli.prodOnly ?? fileConfig.prodOnly,\n ignore,\n strictNetwork: cli.strictNetwork,\n severityThreshold: cli.severityThreshold ?? fileConfig.severityThreshold,\n onProgress: (message) => {\n if (spinner) spinner.text = message;\n },\n };\n\n let result: ScanResult;\n try {\n result = await scan(options);\n } catch (err) {\n spinner?.stop();\n const message = err instanceof Error ? err.message : String(err);\n process.stderr.write(`lockhawk: ${message}\\n`);\n if (err instanceof LockfileError) process.exitCode = EXIT.USAGE;\n else process.exitCode = cli.strictNetwork ? EXIT.NETWORK : EXIT.INTERNAL;\n return;\n }\n spinner?.stop();\n\n const rendered = await renderResult(result, format);\n if (cli.output) {\n writeFileSync(cli.output, rendered.endsWith('\\n') ? rendered : `${rendered}\\n`);\n process.stderr.write(`Report written to ${cli.output}\\n${briefSummary(result)}\\n`);\n } else {\n process.stdout.write(`${rendered}\\n`);\n }\n\n process.exitCode = shouldFail(result.summary, failOn) ? EXIT.FINDINGS : EXIT.OK;\n}\n\nfunction briefSummary(result: ScanResult): string {\n const s = result.summary;\n if (s.total === 0) return 'βœ“ No known vulnerabilities found.';\n const parts = (['critical', 'high', 'medium', 'low', 'unknown'] as const)\n .filter((level) => s[level] > 0)\n .map((level) => `${s[level]} ${level}`);\n return `Found ${s.total} ${s.total === 1 ? 'vulnerability' : 'vulnerabilities'} (${parts.join(', ')}).`;\n}\n","import { toHtml, toJson, toJunit, toSarifString } from '@lockhawk/core';\nimport type { ScanResult } from '@lockhawk/core';\nimport { renderTable } from './table.js';\nimport { loadReportShell } from './shell.js';\n\nexport type Format = 'table' | 'json' | 'sarif' | 'html' | 'junit';\n\n/** Render a scan result into the requested output format. */\nexport async function renderResult(result: ScanResult, format: Format): Promise<string> {\n switch (format) {\n case 'json':\n return toJson(result);\n case 'sarif':\n return toSarifString(result);\n case 'junit':\n return toJunit(result);\n case 'html':\n return toHtml(result, await loadReportShell());\n default:\n return renderTable(result);\n }\n}\n","import chalk from 'chalk';\nimport Table from 'cli-table3';\nimport type { ScanResult, Severity } from '@lockhawk/core';\n\nconst paint: Record<Severity, (s: string) => string> = {\n critical: (s) => chalk.bgRed.white.bold(` ${s} `),\n high: (s) => chalk.hex('#d9822b').bold(s),\n medium: (s) => chalk.yellow(s),\n low: (s) => chalk.blue(s),\n unknown: (s) => chalk.gray(s),\n none: (s) => chalk.green(s),\n};\n\n/** Render a scan result as a colorized terminal report. */\nexport function renderTable(result: ScanResult): string {\n const lines: string[] = [];\n const { summary, target, stats, database } = result;\n\n lines.push(\n chalk.bold(`\\nlockhawk`) +\n chalk.dim(\n ` Β· ${target.root.name}${target.root.version ? `@${target.root.version}` : ''} Β· ${target.manager} Β· ${stats.totalPackages} packages`,\n ),\n );\n\n for (const warning of database.warnings) lines.push(chalk.yellow(`⚠ ${warning}`));\n\n if (result.findings.length === 0) {\n lines.push(chalk.green.bold('\\nβœ“ No known vulnerabilities found.\\n'));\n lines.push(chalk.dim(footer(result)));\n return lines.join('\\n');\n }\n\n const table = new Table({\n head: ['Severity', 'Package', 'Advisory', 'Fixed in', 'Path'].map((h) => chalk.dim(h)),\n style: { head: [], border: [] },\n colWidths: [12, 26, 22, 12, 40],\n wordWrap: true,\n });\n\n for (const f of result.findings) {\n const sev = f.severity;\n const sevText = `${sev.level}${sev.score ? ` ${sev.score}` : ''}`;\n const path = f.dependencyPaths[0]?.join(' β€Ί ') ?? f.packageName;\n table.push([\n paint[sev.level](sevText),\n `${f.packageName}\\n${chalk.dim(f.version)}${f.direct ? chalk.dim(' (direct)') : ''}`,\n f.id,\n f.fixedVersions[0] ?? chalk.dim('none'),\n chalk.dim(path),\n ]);\n }\n\n lines.push('');\n lines.push(table.toString());\n lines.push('');\n lines.push(summaryLine(summary));\n lines.push(chalk.dim(footer(result)));\n return lines.join('\\n');\n}\n\nfunction summaryLine(summary: ScanResult['summary']): string {\n const parts: string[] = [];\n if (summary.critical) parts.push(paint.critical(`${summary.critical} critical`));\n if (summary.high) parts.push(paint.high(`${summary.high} high`));\n if (summary.medium) parts.push(paint.medium(`${summary.medium} medium`));\n if (summary.low) parts.push(paint.low(`${summary.low} low`));\n if (summary.unknown) parts.push(paint.unknown(`${summary.unknown} unknown`));\n return (\n chalk.bold(\n `Found ${summary.total} ${summary.total === 1 ? 'vulnerability' : 'vulnerabilities'}`,\n ) +\n (parts.length ? ` (${parts.join(', ')})` : '') +\n chalk.dim(` Β· ${summary.fixable} fixable`)\n );\n}\n\nfunction footer(result: ScanResult): string {\n const age = result.database.ageHours !== undefined ? `, ${result.database.ageHours}h old` : '';\n return `\\nData from OSV.dev Β· database: ${result.database.source}${age} Β· scanned in ${result.stats.durationMs ?? 0}ms`;\n}\n","import { readFile } from 'node:fs/promises';\nimport { fileURLToPath } from 'node:url';\nimport { dirname, join } from 'node:path';\n\n/**\n * Load the prebuilt report-UI shell (the single-file React app) that the HTML\n * reporter injects scan data into. The shell is copied next to the CLI bundle\n * at build time (M6). If it is absent, `undefined` is returned and the core\n * HTML reporter falls back to its built-in template β€” so `--format html` always\n * works, even before the UI is built.\n */\nlet cached: string | null | undefined;\n\nexport async function loadReportShell(): Promise<string | undefined> {\n if (cached !== undefined) return cached ?? undefined;\n try {\n const here = dirname(fileURLToPath(import.meta.url));\n cached = await readFile(join(here, 'report-shell.html'), 'utf8');\n } catch {\n cached = null;\n }\n return cached ?? undefined;\n}\n","import { existsSync, readFileSync } from 'node:fs';\nimport { cosmiconfigSync } from 'cosmiconfig';\nimport type { Severity, SourceMode } from '@lockhawk/core';\n\n/** Configuration resolvable from a config file (`.lockhawkrc`, `package.json#lockhawk`, …). */\nexport interface FileConfig {\n mode?: SourceMode;\n failOn?: Severity;\n severityThreshold?: Severity;\n prodOnly?: boolean;\n ignore?: string[];\n concurrency?: number;\n cacheTtlHours?: number;\n}\n\n/** Load a config file by searching upward from `cwd`. Returns `{}` if none found. */\nexport function loadFileConfig(cwd: string): FileConfig {\n try {\n const result = cosmiconfigSync('lockhawk').search(cwd);\n return (result?.config as FileConfig) ?? {};\n } catch {\n return {};\n }\n}\n\n/**\n * Parse a `.lockhawkignore` file. Each non-comment line is an advisory id with an\n * optional expiry date (`GHSA-xxxx 2026-12-31`); expired entries are dropped so\n * suppressions don't silently outlive their review.\n */\nexport function readIgnoreFile(path: string, now: Date = new Date()): string[] {\n if (!existsSync(path)) return [];\n const ids: string[] = [];\n for (const raw of readFileSync(path, 'utf8').split(/\\r?\\n/)) {\n const line = raw.replace(/#.*$/, '').trim();\n if (!line) continue;\n const [id, expiry] = line.split(/\\s+/);\n if (!id) continue;\n if (expiry) {\n const when = Date.parse(expiry);\n if (!Number.isNaN(when) && when < now.getTime()) continue; // expired β†’ no longer ignored\n }\n ids.push(id);\n }\n return ids;\n}\n","import { readFileSync, writeFileSync } from 'node:fs';\nimport type { ScanResult } from '@lockhawk/core';\nimport { renderResult } from '../report/render.js';\nimport type { Format } from '../report/render.js';\n\ninterface ReportOptions {\n input: string;\n format?: Format;\n output?: string;\n}\n\n/** `report` β€” re-render a previously saved JSON result into another format. */\nexport async function runReport(opts: ReportOptions): Promise<void> {\n let result: ScanResult;\n try {\n result = JSON.parse(readFileSync(opts.input, 'utf8')) as ScanResult;\n } catch (err) {\n process.stderr.write(\n `lockhawk: could not read ${opts.input}: ${err instanceof Error ? err.message : err}\\n`,\n );\n process.exitCode = 2;\n return;\n }\n\n const rendered = await renderResult(result, opts.format ?? 'html');\n if (opts.output) {\n writeFileSync(opts.output, rendered.endsWith('\\n') ? rendered : `${rendered}\\n`);\n process.stderr.write(`Report written to ${opts.output}\\n`);\n } else {\n process.stdout.write(`${rendered}\\n`);\n }\n}\n","import { createServer } from 'node:http';\nimport { readFileSync } from 'node:fs';\nimport { resolve } from 'node:path';\nimport open from 'open';\nimport { scan, toHtml, toJson } from '@lockhawk/core';\nimport type { ScanResult, SourceMode } from '@lockhawk/core';\nimport { loadReportShell } from '../report/shell.js';\n\ninterface ServeOptions {\n input?: string;\n port?: number;\n open?: boolean; // commander sets false for --no-open\n offline?: boolean;\n online?: boolean;\n}\n\n/** `serve` β€” run a scan (or load a saved result) and serve the dashboard locally. */\nexport async function runServe(pathArg: string, opts: ServeOptions): Promise<void> {\n let result: ScanResult;\n if (opts.input) {\n result = JSON.parse(readFileSync(opts.input, 'utf8')) as ScanResult;\n } else {\n const mode: SourceMode = opts.offline ? 'offline' : opts.online ? 'online' : 'auto';\n process.stderr.write('Scanning…\\n');\n result = await scan({ path: resolve(pathArg || '.'), mode });\n }\n\n const html = toHtml(result, await loadReportShell());\n const json = toJson(result);\n\n const server = createServer((req, res) => {\n if (req.url && req.url.startsWith('/api/result')) {\n res.setHeader('content-type', 'application/json');\n res.end(json);\n return;\n }\n res.setHeader('content-type', 'text/html; charset=utf-8');\n res.end(html);\n });\n\n const port = opts.port ?? 7777;\n server.listen(port, () => {\n const url = `http://localhost:${port}`;\n process.stderr.write(\n `\\nlockhawk dashboard running at ${url}\\n${summaryLine(result)}\\nPress Ctrl+C to stop.\\n`,\n );\n if (opts.open !== false) void open(url).catch(() => undefined);\n });\n}\n\nfunction summaryLine(result: ScanResult): string {\n const s = result.summary;\n return s.total === 0\n ? 'βœ“ No known vulnerabilities found.'\n : `${s.total} findings β€” ${s.critical} critical, ${s.high} high, ${s.medium} medium, ${s.low} low.`;\n}\n"],"mappings":";;;AAAA,SAAS,SAAS,cAAc;;;ACAhC,SAAS,qBAAqB;AAC9B,SAAS,QAAAA,OAAM,eAAe;AAC9B,OAAO,SAAS;AAChB,SAAS,eAAe,MAAM,kBAAkB;;;ACHhD,SAAS,QAAQ,QAAQ,SAAS,qBAAqB;;;ACAvD,OAAO,WAAW;AAClB,OAAO,WAAW;AAGlB,IAAM,QAAiD;AAAA,EACrD,UAAU,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,IAAI,CAAC,GAAG;AAAA,EAChD,MAAM,CAAC,MAAM,MAAM,IAAI,SAAS,EAAE,KAAK,CAAC;AAAA,EACxC,QAAQ,CAAC,MAAM,MAAM,OAAO,CAAC;AAAA,EAC7B,KAAK,CAAC,MAAM,MAAM,KAAK,CAAC;AAAA,EACxB,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC;AAAA,EAC5B,MAAM,CAAC,MAAM,MAAM,MAAM,CAAC;AAC5B;AAGO,SAAS,YAAY,QAA4B;AACtD,QAAM,QAAkB,CAAC;AACzB,QAAM,EAAE,SAAS,QAAQ,OAAO,SAAS,IAAI;AAE7C,QAAM;AAAA,IACJ,MAAM,KAAK;AAAA,SAAY,IACrB,MAAM;AAAA,MACJ,SAAM,OAAO,KAAK,IAAI,GAAG,OAAO,KAAK,UAAU,IAAI,OAAO,KAAK,OAAO,KAAK,EAAE,SAAM,OAAO,OAAO,SAAM,MAAM,aAAa;AAAA,IAC5H;AAAA,EACJ;AAEA,aAAW,WAAW,SAAS,SAAU,OAAM,KAAK,MAAM,OAAO,UAAK,OAAO,EAAE,CAAC;AAEhF,MAAI,OAAO,SAAS,WAAW,GAAG;AAChC,UAAM,KAAK,MAAM,MAAM,KAAK,4CAAuC,CAAC;AACpE,UAAM,KAAK,MAAM,IAAI,OAAO,MAAM,CAAC,CAAC;AACpC,WAAO,MAAM,KAAK,IAAI;AAAA,EACxB;AAEA,QAAM,QAAQ,IAAI,MAAM;AAAA,IACtB,MAAM,CAAC,YAAY,WAAW,YAAY,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,CAAC;AAAA,IACrF,OAAO,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,EAAE;AAAA,IAC9B,WAAW,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE;AAAA,IAC9B,UAAU;AAAA,EACZ,CAAC;AAED,aAAW,KAAK,OAAO,UAAU;AAC/B,UAAM,MAAM,EAAE;AACd,UAAM,UAAU,GAAG,IAAI,KAAK,GAAG,IAAI,QAAQ,IAAI,IAAI,KAAK,KAAK,EAAE;AAC/D,UAAM,OAAO,EAAE,gBAAgB,CAAC,GAAG,KAAK,UAAK,KAAK,EAAE;AACpD,UAAM,KAAK;AAAA,MACT,MAAM,IAAI,KAAK,EAAE,OAAO;AAAA,MACxB,GAAG,EAAE,WAAW;AAAA,EAAK,MAAM,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,SAAS,MAAM,IAAI,WAAW,IAAI,EAAE;AAAA,MAClF,EAAE;AAAA,MACF,EAAE,cAAc,CAAC,KAAK,MAAM,IAAI,MAAM;AAAA,MACtC,MAAM,IAAI,IAAI;AAAA,IAChB,CAAC;AAAA,EACH;AAEA,QAAM,KAAK,EAAE;AACb,QAAM,KAAK,MAAM,SAAS,CAAC;AAC3B,QAAM,KAAK,EAAE;AACb,QAAM,KAAK,YAAY,OAAO,CAAC;AAC/B,QAAM,KAAK,MAAM,IAAI,OAAO,MAAM,CAAC,CAAC;AACpC,SAAO,MAAM,KAAK,IAAI;AACxB;AAEA,SAAS,YAAY,SAAwC;AAC3D,QAAM,QAAkB,CAAC;AACzB,MAAI,QAAQ,SAAU,OAAM,KAAK,MAAM,SAAS,GAAG,QAAQ,QAAQ,WAAW,CAAC;AAC/E,MAAI,QAAQ,KAAM,OAAM,KAAK,MAAM,KAAK,GAAG,QAAQ,IAAI,OAAO,CAAC;AAC/D,MAAI,QAAQ,OAAQ,OAAM,KAAK,MAAM,OAAO,GAAG,QAAQ,MAAM,SAAS,CAAC;AACvE,MAAI,QAAQ,IAAK,OAAM,KAAK,MAAM,IAAI,GAAG,QAAQ,GAAG,MAAM,CAAC;AAC3D,MAAI,QAAQ,QAAS,OAAM,KAAK,MAAM,QAAQ,GAAG,QAAQ,OAAO,UAAU,CAAC;AAC3E,SACE,MAAM;AAAA,IACJ,SAAS,QAAQ,KAAK,IAAI,QAAQ,UAAU,IAAI,kBAAkB,iBAAiB;AAAA,EACrF,KACC,MAAM,SAAS,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM,MAC3C,MAAM,IAAI,SAAM,QAAQ,OAAO,UAAU;AAE7C;AAEA,SAAS,OAAO,QAA4B;AAC1C,QAAM,MAAM,OAAO,SAAS,aAAa,SAAY,KAAK,OAAO,SAAS,QAAQ,UAAU;AAC5F,SAAO;AAAA,mCAAmC,OAAO,SAAS,MAAM,GAAG,GAAG,oBAAiB,OAAO,MAAM,cAAc,CAAC;AACrH;;;AChFA,SAAS,gBAAgB;AACzB,SAAS,qBAAqB;AAC9B,SAAS,SAAS,YAAY;AAS9B,IAAI;AAEJ,eAAsB,kBAA+C;AACnE,MAAI,WAAW,OAAW,QAAO,UAAU;AAC3C,MAAI;AACF,UAAM,OAAO,QAAQ,cAAc,YAAY,GAAG,CAAC;AACnD,aAAS,MAAM,SAAS,KAAK,MAAM,mBAAmB,GAAG,MAAM;AAAA,EACjE,QAAQ;AACN,aAAS;AAAA,EACX;AACA,SAAO,UAAU;AACnB;;;AFdA,eAAsB,aAAa,QAAoB,QAAiC;AACtF,UAAQ,QAAQ;AAAA,IACd,KAAK;AACH,aAAO,OAAO,MAAM;AAAA,IACtB,KAAK;AACH,aAAO,cAAc,MAAM;AAAA,IAC7B,KAAK;AACH,aAAO,QAAQ,MAAM;AAAA,IACvB,KAAK;AACH,aAAO,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAAA,IAC/C;AACE,aAAO,YAAY,MAAM;AAAA,EAC7B;AACF;;;AGrBA,SAAS,YAAY,oBAAoB;AACzC,SAAS,uBAAuB;AAezB,SAAS,eAAe,KAAyB;AACtD,MAAI;AACF,UAAM,SAAS,gBAAgB,UAAU,EAAE,OAAO,GAAG;AACrD,WAAQ,QAAQ,UAAyB,CAAC;AAAA,EAC5C,QAAQ;AACN,WAAO,CAAC;AAAA,EACV;AACF;AAOO,SAAS,eAAe,MAAc,MAAY,oBAAI,KAAK,GAAa;AAC7E,MAAI,CAAC,WAAW,IAAI,EAAG,QAAO,CAAC;AAC/B,QAAM,MAAgB,CAAC;AACvB,aAAW,OAAO,aAAa,MAAM,MAAM,EAAE,MAAM,OAAO,GAAG;AAC3D,UAAM,OAAO,IAAI,QAAQ,QAAQ,EAAE,EAAE,KAAK;AAC1C,QAAI,CAAC,KAAM;AACX,UAAM,CAAC,IAAI,MAAM,IAAI,KAAK,MAAM,KAAK;AACrC,QAAI,CAAC,GAAI;AACT,QAAI,QAAQ;AACV,YAAM,OAAO,KAAK,MAAM,MAAM;AAC9B,UAAI,CAAC,OAAO,MAAM,IAAI,KAAK,OAAO,IAAI,QAAQ,EAAG;AAAA,IACnD;AACA,QAAI,KAAK,EAAE;AAAA,EACb;AACA,SAAO;AACT;;;AJlBO,IAAM,OAAO,EAAE,IAAI,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,EAAE;AAE5E,eAAsB,QAAQ,SAAiB,KAAoC;AACjF,QAAM,MAAM,QAAQ,WAAW,GAAG;AAClC,QAAM,aAAa,eAAe,GAAG;AAErC,QAAM,OAAmB,IAAI,UACzB,YACA,IAAI,SACF,WACC,WAAW,QAAQ;AAC1B,QAAM,SAAiB,IAAI,UAAU;AACrC,QAAM,SAAmB,IAAI,UAAU,WAAW,UAAU;AAE5D,QAAM,SAAS;AAAA,IACb,GAAI,IAAI,UAAU,CAAC;AAAA,IACnB,GAAI,WAAW,UAAU,CAAC;AAAA,IAC1B,GAAG,eAAe,IAAI,cAAcC,MAAK,KAAK,iBAAiB,CAAC;AAAA,EAClE;AAEA,QAAM,aAAa,WAAW,WAAW,QAAQ,QAAQ,OAAO,KAAK,KAAK,CAAC,QAAQ,IAAI;AACvF,QAAM,UAAU,aACZ,IAAI,EAAE,QAAQ,QAAQ,QAAQ,MAAM,iBAAY,CAAC,EAAE,MAAM,IACzD;AAEJ,QAAM,UAAuB;AAAA,IAC3B,MAAM;AAAA,IACN;AAAA,IACA,UAAU,IAAI;AAAA,IACd,eAAe,IAAI;AAAA,IACnB,SAAS,IAAI,UAAU;AAAA,IACvB,aAAa,IAAI;AAAA,IACjB,UAAU,IAAI,YAAY,WAAW;AAAA,IACrC;AAAA,IACA,eAAe,IAAI;AAAA,IACnB,mBAAmB,IAAI,qBAAqB,WAAW;AAAA,IACvD,YAAY,CAAC,YAAY;AACvB,UAAI,QAAS,SAAQ,OAAO;AAAA,IAC9B;AAAA,EACF;AAEA,MAAI;AACJ,MAAI;AACF,aAAS,MAAM,KAAK,OAAO;AAAA,EAC7B,SAAS,KAAK;AACZ,aAAS,KAAK;AACd,UAAM,UAAU,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAC/D,YAAQ,OAAO,MAAM,aAAa,OAAO;AAAA,CAAI;AAC7C,QAAI,eAAe,cAAe,SAAQ,WAAW,KAAK;AAAA,QACrD,SAAQ,WAAW,IAAI,gBAAgB,KAAK,UAAU,KAAK;AAChE;AAAA,EACF;AACA,WAAS,KAAK;AAEd,QAAM,WAAW,MAAM,aAAa,QAAQ,MAAM;AAClD,MAAI,IAAI,QAAQ;AACd,kBAAc,IAAI,QAAQ,SAAS,SAAS,IAAI,IAAI,WAAW,GAAG,QAAQ;AAAA,CAAI;AAC9E,YAAQ,OAAO,MAAM,qBAAqB,IAAI,MAAM;AAAA,EAAK,aAAa,MAAM,CAAC;AAAA,CAAI;AAAA,EACnF,OAAO;AACL,YAAQ,OAAO,MAAM,GAAG,QAAQ;AAAA,CAAI;AAAA,EACtC;AAEA,UAAQ,WAAW,WAAW,OAAO,SAAS,MAAM,IAAI,KAAK,WAAW,KAAK;AAC/E;AAEA,SAAS,aAAa,QAA4B;AAChD,QAAM,IAAI,OAAO;AACjB,MAAI,EAAE,UAAU,EAAG,QAAO;AAC1B,QAAM,QAAS,CAAC,YAAY,QAAQ,UAAU,OAAO,SAAS,EAC3D,OAAO,CAAC,UAAU,EAAE,KAAK,IAAI,CAAC,EAC9B,IAAI,CAAC,UAAU,GAAG,EAAE,KAAK,CAAC,IAAI,KAAK,EAAE;AACxC,SAAO,SAAS,EAAE,KAAK,IAAI,EAAE,UAAU,IAAI,kBAAkB,iBAAiB,KAAK,MAAM,KAAK,IAAI,CAAC;AACrG;;;AKnGA,SAAS,gBAAAC,eAAc,iBAAAC,sBAAqB;AAY5C,eAAsB,UAAU,MAAoC;AAClE,MAAI;AACJ,MAAI;AACF,aAAS,KAAK,MAAMC,cAAa,KAAK,OAAO,MAAM,CAAC;AAAA,EACtD,SAAS,KAAK;AACZ,YAAQ,OAAO;AAAA,MACb,4BAA4B,KAAK,KAAK,KAAK,eAAe,QAAQ,IAAI,UAAU,GAAG;AAAA;AAAA,IACrF;AACA,YAAQ,WAAW;AACnB;AAAA,EACF;AAEA,QAAM,WAAW,MAAM,aAAa,QAAQ,KAAK,UAAU,MAAM;AACjE,MAAI,KAAK,QAAQ;AACf,IAAAC,eAAc,KAAK,QAAQ,SAAS,SAAS,IAAI,IAAI,WAAW,GAAG,QAAQ;AAAA,CAAI;AAC/E,YAAQ,OAAO,MAAM,qBAAqB,KAAK,MAAM;AAAA,CAAI;AAAA,EAC3D,OAAO;AACL,YAAQ,OAAO,MAAM,GAAG,QAAQ;AAAA,CAAI;AAAA,EACtC;AACF;;;AC/BA,SAAS,oBAAoB;AAC7B,SAAS,gBAAAC,qBAAoB;AAC7B,SAAS,WAAAC,gBAAe;AACxB,OAAO,UAAU;AACjB,SAAS,QAAAC,OAAM,UAAAC,SAAQ,UAAAC,eAAc;AAarC,eAAsB,SAAS,SAAiB,MAAmC;AACjF,MAAI;AACJ,MAAI,KAAK,OAAO;AACd,aAAS,KAAK,MAAMC,cAAa,KAAK,OAAO,MAAM,CAAC;AAAA,EACtD,OAAO;AACL,UAAM,OAAmB,KAAK,UAAU,YAAY,KAAK,SAAS,WAAW;AAC7E,YAAQ,OAAO,MAAM,kBAAa;AAClC,aAAS,MAAMC,MAAK,EAAE,MAAMC,SAAQ,WAAW,GAAG,GAAG,KAAK,CAAC;AAAA,EAC7D;AAEA,QAAM,OAAOC,QAAO,QAAQ,MAAM,gBAAgB,CAAC;AACnD,QAAM,OAAOC,QAAO,MAAM;AAE1B,QAAM,SAAS,aAAa,CAAC,KAAK,QAAQ;AACxC,QAAI,IAAI,OAAO,IAAI,IAAI,WAAW,aAAa,GAAG;AAChD,UAAI,UAAU,gBAAgB,kBAAkB;AAChD,UAAI,IAAI,IAAI;AACZ;AAAA,IACF;AACA,QAAI,UAAU,gBAAgB,0BAA0B;AACxD,QAAI,IAAI,IAAI;AAAA,EACd,CAAC;AAED,QAAM,OAAO,KAAK,QAAQ;AAC1B,SAAO,OAAO,MAAM,MAAM;AACxB,UAAM,MAAM,oBAAoB,IAAI;AACpC,YAAQ,OAAO;AAAA,MACb;AAAA,gCAAmC,GAAG;AAAA,EAAKC,aAAY,MAAM,CAAC;AAAA;AAAA;AAAA,IAChE;AACA,QAAI,KAAK,SAAS,MAAO,MAAK,KAAK,GAAG,EAAE,MAAM,MAAM,MAAS;AAAA,EAC/D,CAAC;AACH;AAEA,SAASA,aAAY,QAA4B;AAC/C,QAAM,IAAI,OAAO;AACjB,SAAO,EAAE,UAAU,IACf,2CACA,GAAG,EAAE,KAAK,oBAAe,EAAE,QAAQ,cAAc,EAAE,IAAI,UAAU,EAAE,MAAM,YAAY,EAAE,GAAG;AAChG;;;APhDA,IAAM,UAAU,IAAI,QAAQ;AAE5B,QACG,KAAK,UAAU,EACf;AAAA,EACC;AACF,EACC,QAAQ,OAAO;AAElB,IAAM,kBAAkB,CAAC,QAAQ,OAAO,UAAU,QAAQ,UAAU;AAEpE,QACG,QAAQ,QAAQ,EAAE,WAAW,KAAK,CAAC,EACnC,YAAY,4CAA4C,EACxD,SAAS,UAAU,6BAA6B,GAAG,EACnD;AAAA,EACC,IAAI,OAAO,yBAAyB,eAAe,EAChD,QAAQ,CAAC,SAAS,QAAQ,SAAS,QAAQ,OAAO,CAAC,EACnD,QAAQ,OAAO;AACpB,EACC,OAAO,uBAAuB,8CAA8C,EAC5E;AAAA,EACC,IAAI,OAAO,gCAAgC,4BAA4B,EAAE;AAAA,IACvE;AAAA,EACF;AACF,EACC;AAAA,EACC,IAAI,OAAO,qBAAqB,8CAA8C,EAC3E,QAAQ,eAAe,EACvB,QAAQ,MAAM;AACnB,EACC,OAAO,aAAa,kDAAkD,EACtE,OAAO,YAAY,4BAA4B,EAC/C,OAAO,oBAAoB,iEAAiE,EAC5F,OAAO,eAAe,yBAAyB,EAC/C,OAAO,qBAAqB,0BAA0B,EACtD,OAAO,wBAAwB,gCAAgC,EAC/D,OAAO,qBAAqB,8BAA8B,EAC1D,OAAO,uBAAuB,mCAAmC,CAAC,MAAM,OAAO,CAAC,CAAC,EACjF,OAAO,cAAc,0BAA0B,EAC/C,OAAO,qBAAqB,+BAA+B,CAAC,MAAM,OAAO,CAAC,CAAC,EAC3E,OAAO,CAAC,MAAc,SAA8C,QAAQ,MAAM,IAAI,CAAC;AAE1F,IAAM,KAAK,QAAQ,QAAQ,IAAI,EAAE,YAAY,iCAAiC;AAC9E,GAAG,QAAQ,QAAQ,EAChB,YAAY,uDAAuD,EACnE,OAAO,qBAAqB,8BAA8B,EAC1D,OAAO,WAAW,4CAA4C,EAC9D,OAAO,CAAC,SAAS,OAAO,kBAAkB,EAAE,KAAK,CAAC,MAAM,EAAE,YAAY,IAAI,CAAC,CAAC;AAC/E,GAAG,QAAQ,QAAQ,EAChB,YAAY,iCAAiC,EAC7C,OAAO,qBAAqB,8BAA8B,EAC1D,OAAO,CAAC,SAAS,OAAO,kBAAkB,EAAE,KAAK,CAAC,MAAM,EAAE,YAAY,IAAI,CAAC,CAAC;AAC/E,GAAG,QAAQ,MAAM,EACd,YAAY,sCAAsC,EAClD,OAAO,qBAAqB,8BAA8B,EAC1D,OAAO,CAAC,SAAS,OAAO,kBAAkB,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,CAAC;AAE7E,QACG,QAAQ,QAAQ,EAChB,YAAY,mDAAmD,EAC/D,eAAe,sBAAsB,4BAA4B,EACjE;AAAA,EACC,IAAI,OAAO,yBAAyB,eAAe,EAChD,QAAQ,CAAC,SAAS,QAAQ,SAAS,QAAQ,OAAO,CAAC,EACnD,QAAQ,MAAM;AACnB,EACC,OAAO,uBAAuB,8CAA8C,EAC5E,OAAO,CAAC,SAAS,UAAU,IAAI,CAAC;AAEnC,QACG,QAAQ,OAAO,EACf,YAAY,sDAAsD,EAClE,SAAS,UAAU,6BAA6B,GAAG,EACnD,OAAO,sBAAsB,+CAA+C,EAC5E,OAAO,qBAAqB,qBAAqB,CAAC,MAAM,OAAO,CAAC,GAAG,IAAI,EACvE,OAAO,aAAa,uCAAuC,EAC3D,OAAO,aAAa,qCAAqC,EACzD,OAAO,YAAY,4BAA4B,EAC/C,OAAO,CAAC,MAAc,SAAS,SAAS,MAAM,IAAI,CAAC;AAEtD,QAAQ,WAAW,EAAE,MAAM,CAAC,QAAQ;AAClC,UAAQ,OAAO,MAAM,aAAa,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG,CAAC;AAAA,CAAI;AACtF,UAAQ,WAAW;AACrB,CAAC;","names":["join","join","readFileSync","writeFileSync","readFileSync","writeFileSync","readFileSync","resolve","scan","toHtml","toJson","readFileSync","scan","resolve","toHtml","toJson","summaryLine"]}
@@ -0,0 +1,53 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>lockhawk report</title>
7
+ <!--LOCKHAWK_DATA-->
8
+ <script type="module" crossorigin>(function(){const x=document.createElement("link").relList;if(x&&x.supports&&x.supports("modulepreload"))return;for(const I of document.querySelectorAll('link[rel="modulepreload"]'))z(I);new MutationObserver(I=>{for(const M of I)if(M.type==="childList")for(const F of M.addedNodes)F.tagName==="LINK"&&F.rel==="modulepreload"&&z(F)}).observe(document,{childList:!0,subtree:!0});function h(I){const M={};return I.integrity&&(M.integrity=I.integrity),I.referrerPolicy&&(M.referrerPolicy=I.referrerPolicy),I.crossOrigin==="use-credentials"?M.credentials="include":I.crossOrigin==="anonymous"?M.credentials="omit":M.credentials="same-origin",M}function z(I){if(I.ep)return;I.ep=!0;const M=h(I);fetch(I.href,M)}})();var ju={exports:{}},Sr={},Pu={exports:{}},A={};/**
9
+ * @license React
10
+ * react.production.min.js
11
+ *
12
+ * Copyright (c) Facebook, Inc. and its affiliates.
13
+ *
14
+ * This source code is licensed under the MIT license found in the
15
+ * LICENSE file in the root directory of this source tree.
16
+ */var La;function Uf(){if(La)return A;La=1;var v=Symbol.for("react.element"),x=Symbol.for("react.portal"),h=Symbol.for("react.fragment"),z=Symbol.for("react.strict_mode"),I=Symbol.for("react.profiler"),M=Symbol.for("react.provider"),F=Symbol.for("react.context"),V=Symbol.for("react.forward_ref"),Y=Symbol.for("react.suspense"),pe=Symbol.for("react.memo"),he=Symbol.for("react.lazy"),b=Symbol.iterator;function H(c){return c===null||typeof c!="object"?null:(c=b&&c[b]||c["@@iterator"],typeof c=="function"?c:null)}var ne={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},We=Object.assign,re={};function Z(c,g,U){this.props=c,this.context=g,this.refs=re,this.updater=U||ne}Z.prototype.isReactComponent={},Z.prototype.setState=function(c,g){if(typeof c!="object"&&typeof c!="function"&&c!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,c,g,"setState")},Z.prototype.forceUpdate=function(c){this.updater.enqueueForceUpdate(this,c,"forceUpdate")};function vt(){}vt.prototype=Z.prototype;function st(c,g,U){this.props=c,this.context=g,this.refs=re,this.updater=U||ne}var qe=st.prototype=new vt;qe.constructor=st,We(qe,Z.prototype),qe.isPureReactComponent=!0;var xe=Array.isArray,be=Object.prototype.hasOwnProperty,je={current:null},ze={key:!0,ref:!0,__self:!0,__source:!0};function Qe(c,g,U){var $,W={},Q=null,J=null;if(g!=null)for($ in g.ref!==void 0&&(J=g.ref),g.key!==void 0&&(Q=""+g.key),g)be.call(g,$)&&!ze.hasOwnProperty($)&&(W[$]=g[$]);var X=arguments.length-2;if(X===1)W.children=U;else if(1<X){for(var le=Array(X),Ae=0;Ae<X;Ae++)le[Ae]=arguments[Ae+2];W.children=le}if(c&&c.defaultProps)for($ in X=c.defaultProps,X)W[$]===void 0&&(W[$]=X[$]);return{$$typeof:v,type:c,key:Q,ref:J,props:W,_owner:je.current}}function _t(c,g){return{$$typeof:v,type:c.type,key:g,ref:c.ref,props:c.props,_owner:c._owner}}function yt(c){return typeof c=="object"&&c!==null&&c.$$typeof===v}function Kt(c){var g={"=":"=0",":":"=2"};return"$"+c.replace(/[=:]/g,function(U){return g[U]})}var at=/\/+/g;function Ue(c,g){return typeof c=="object"&&c!==null&&c.key!=null?Kt(""+c.key):g.toString(36)}function et(c,g,U,$,W){var Q=typeof c;(Q==="undefined"||Q==="boolean")&&(c=null);var J=!1;if(c===null)J=!0;else switch(Q){case"string":case"number":J=!0;break;case"object":switch(c.$$typeof){case v:case x:J=!0}}if(J)return J=c,W=W(J),c=$===""?"."+Ue(J,0):$,xe(W)?(U="",c!=null&&(U=c.replace(at,"$&/")+"/"),et(W,g,U,"",function(Ae){return Ae})):W!=null&&(yt(W)&&(W=_t(W,U+(!W.key||J&&J.key===W.key?"":(""+W.key).replace(at,"$&/")+"/")+c)),g.push(W)),1;if(J=0,$=$===""?".":$+":",xe(c))for(var X=0;X<c.length;X++){Q=c[X];var le=$+Ue(Q,X);J+=et(Q,g,U,le,W)}else if(le=H(c),typeof le=="function")for(c=le.call(c),X=0;!(Q=c.next()).done;)Q=Q.value,le=$+Ue(Q,X++),J+=et(Q,g,U,le,W);else if(Q==="object")throw g=String(c),Error("Objects are not valid as a React child (found: "+(g==="[object Object]"?"object with keys {"+Object.keys(c).join(", ")+"}":g)+"). If you meant to render a collection of children, use an array instead.");return J}function ct(c,g,U){if(c==null)return c;var $=[],W=0;return et(c,$,"","",function(Q){return g.call(U,Q,W++)}),$}function Te(c){if(c._status===-1){var g=c._result;g=g(),g.then(function(U){(c._status===0||c._status===-1)&&(c._status=1,c._result=U)},function(U){(c._status===0||c._status===-1)&&(c._status=2,c._result=U)}),c._status===-1&&(c._status=0,c._result=g)}if(c._status===1)return c._result.default;throw c._result}var se={current:null},E={transition:null},O={ReactCurrentDispatcher:se,ReactCurrentBatchConfig:E,ReactCurrentOwner:je};function _(){throw Error("act(...) is not supported in production builds of React.")}return A.Children={map:ct,forEach:function(c,g,U){ct(c,function(){g.apply(this,arguments)},U)},count:function(c){var g=0;return ct(c,function(){g++}),g},toArray:function(c){return ct(c,function(g){return g})||[]},only:function(c){if(!yt(c))throw Error("React.Children.only expected to receive a single React element child.");return c}},A.Component=Z,A.Fragment=h,A.Profiler=I,A.PureComponent=st,A.StrictMode=z,A.Suspense=Y,A.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=O,A.act=_,A.cloneElement=function(c,g,U){if(c==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+c+".");var $=We({},c.props),W=c.key,Q=c.ref,J=c._owner;if(g!=null){if(g.ref!==void 0&&(Q=g.ref,J=je.current),g.key!==void 0&&(W=""+g.key),c.type&&c.type.defaultProps)var X=c.type.defaultProps;for(le in g)be.call(g,le)&&!ze.hasOwnProperty(le)&&($[le]=g[le]===void 0&&X!==void 0?X[le]:g[le])}var le=arguments.length-2;if(le===1)$.children=U;else if(1<le){X=Array(le);for(var Ae=0;Ae<le;Ae++)X[Ae]=arguments[Ae+2];$.children=X}return{$$typeof:v,type:c.type,key:W,ref:Q,props:$,_owner:J}},A.createContext=function(c){return c={$$typeof:F,_currentValue:c,_currentValue2:c,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},c.Provider={$$typeof:M,_context:c},c.Consumer=c},A.createElement=Qe,A.createFactory=function(c){var g=Qe.bind(null,c);return g.type=c,g},A.createRef=function(){return{current:null}},A.forwardRef=function(c){return{$$typeof:V,render:c}},A.isValidElement=yt,A.lazy=function(c){return{$$typeof:he,_payload:{_status:-1,_result:c},_init:Te}},A.memo=function(c,g){return{$$typeof:pe,type:c,compare:g===void 0?null:g}},A.startTransition=function(c){var g=E.transition;E.transition={};try{c()}finally{E.transition=g}},A.unstable_act=_,A.useCallback=function(c,g){return se.current.useCallback(c,g)},A.useContext=function(c){return se.current.useContext(c)},A.useDebugValue=function(){},A.useDeferredValue=function(c){return se.current.useDeferredValue(c)},A.useEffect=function(c,g){return se.current.useEffect(c,g)},A.useId=function(){return se.current.useId()},A.useImperativeHandle=function(c,g,U){return se.current.useImperativeHandle(c,g,U)},A.useInsertionEffect=function(c,g){return se.current.useInsertionEffect(c,g)},A.useLayoutEffect=function(c,g){return se.current.useLayoutEffect(c,g)},A.useMemo=function(c,g){return se.current.useMemo(c,g)},A.useReducer=function(c,g,U){return se.current.useReducer(c,g,U)},A.useRef=function(c){return se.current.useRef(c)},A.useState=function(c){return se.current.useState(c)},A.useSyncExternalStore=function(c,g,U){return se.current.useSyncExternalStore(c,g,U)},A.useTransition=function(){return se.current.useTransition()},A.version="18.3.1",A}var za;function Ru(){return za||(za=1,Pu.exports=Uf()),Pu.exports}/**
17
+ * @license React
18
+ * react-jsx-runtime.production.min.js
19
+ *
20
+ * Copyright (c) Facebook, Inc. and its affiliates.
21
+ *
22
+ * This source code is licensed under the MIT license found in the
23
+ * LICENSE file in the root directory of this source tree.
24
+ */var Ta;function Af(){if(Ta)return Sr;Ta=1;var v=Ru(),x=Symbol.for("react.element"),h=Symbol.for("react.fragment"),z=Object.prototype.hasOwnProperty,I=v.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,M={key:!0,ref:!0,__self:!0,__source:!0};function F(V,Y,pe){var he,b={},H=null,ne=null;pe!==void 0&&(H=""+pe),Y.key!==void 0&&(H=""+Y.key),Y.ref!==void 0&&(ne=Y.ref);for(he in Y)z.call(Y,he)&&!M.hasOwnProperty(he)&&(b[he]=Y[he]);if(V&&V.defaultProps)for(he in Y=V.defaultProps,Y)b[he]===void 0&&(b[he]=Y[he]);return{$$typeof:x,type:V,key:H,ref:ne,props:b,_owner:I.current}}return Sr.Fragment=h,Sr.jsx=F,Sr.jsxs=F,Sr}var Ra;function Vf(){return Ra||(Ra=1,ju.exports=Af()),ju.exports}var p=Vf(),Mn=Ru(),Rl={},Lu={exports:{}},Fe={},zu={exports:{}},Tu={};/**
25
+ * @license React
26
+ * scheduler.production.min.js
27
+ *
28
+ * Copyright (c) Facebook, Inc. and its affiliates.
29
+ *
30
+ * This source code is licensed under the MIT license found in the
31
+ * LICENSE file in the root directory of this source tree.
32
+ */var Ia;function $f(){return Ia||(Ia=1,(function(v){function x(E,O){var _=E.length;E.push(O);e:for(;0<_;){var c=_-1>>>1,g=E[c];if(0<I(g,O))E[c]=O,E[_]=g,_=c;else break e}}function h(E){return E.length===0?null:E[0]}function z(E){if(E.length===0)return null;var O=E[0],_=E.pop();if(_!==O){E[0]=_;e:for(var c=0,g=E.length,U=g>>>1;c<U;){var $=2*(c+1)-1,W=E[$],Q=$+1,J=E[Q];if(0>I(W,_))Q<g&&0>I(J,W)?(E[c]=J,E[Q]=_,c=Q):(E[c]=W,E[$]=_,c=$);else if(Q<g&&0>I(J,_))E[c]=J,E[Q]=_,c=Q;else break e}}return O}function I(E,O){var _=E.sortIndex-O.sortIndex;return _!==0?_:E.id-O.id}if(typeof performance=="object"&&typeof performance.now=="function"){var M=performance;v.unstable_now=function(){return M.now()}}else{var F=Date,V=F.now();v.unstable_now=function(){return F.now()-V}}var Y=[],pe=[],he=1,b=null,H=3,ne=!1,We=!1,re=!1,Z=typeof setTimeout=="function"?setTimeout:null,vt=typeof clearTimeout=="function"?clearTimeout:null,st=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function qe(E){for(var O=h(pe);O!==null;){if(O.callback===null)z(pe);else if(O.startTime<=E)z(pe),O.sortIndex=O.expirationTime,x(Y,O);else break;O=h(pe)}}function xe(E){if(re=!1,qe(E),!We)if(h(Y)!==null)We=!0,Te(be);else{var O=h(pe);O!==null&&se(xe,O.startTime-E)}}function be(E,O){We=!1,re&&(re=!1,vt(Qe),Qe=-1),ne=!0;var _=H;try{for(qe(O),b=h(Y);b!==null&&(!(b.expirationTime>O)||E&&!Kt());){var c=b.callback;if(typeof c=="function"){b.callback=null,H=b.priorityLevel;var g=c(b.expirationTime<=O);O=v.unstable_now(),typeof g=="function"?b.callback=g:b===h(Y)&&z(Y),qe(O)}else z(Y);b=h(Y)}if(b!==null)var U=!0;else{var $=h(pe);$!==null&&se(xe,$.startTime-O),U=!1}return U}finally{b=null,H=_,ne=!1}}var je=!1,ze=null,Qe=-1,_t=5,yt=-1;function Kt(){return!(v.unstable_now()-yt<_t)}function at(){if(ze!==null){var E=v.unstable_now();yt=E;var O=!0;try{O=ze(!0,E)}finally{O?Ue():(je=!1,ze=null)}}else je=!1}var Ue;if(typeof st=="function")Ue=function(){st(at)};else if(typeof MessageChannel<"u"){var et=new MessageChannel,ct=et.port2;et.port1.onmessage=at,Ue=function(){ct.postMessage(null)}}else Ue=function(){Z(at,0)};function Te(E){ze=E,je||(je=!0,Ue())}function se(E,O){Qe=Z(function(){E(v.unstable_now())},O)}v.unstable_IdlePriority=5,v.unstable_ImmediatePriority=1,v.unstable_LowPriority=4,v.unstable_NormalPriority=3,v.unstable_Profiling=null,v.unstable_UserBlockingPriority=2,v.unstable_cancelCallback=function(E){E.callback=null},v.unstable_continueExecution=function(){We||ne||(We=!0,Te(be))},v.unstable_forceFrameRate=function(E){0>E||125<E?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):_t=0<E?Math.floor(1e3/E):5},v.unstable_getCurrentPriorityLevel=function(){return H},v.unstable_getFirstCallbackNode=function(){return h(Y)},v.unstable_next=function(E){switch(H){case 1:case 2:case 3:var O=3;break;default:O=H}var _=H;H=O;try{return E()}finally{H=_}},v.unstable_pauseExecution=function(){},v.unstable_requestPaint=function(){},v.unstable_runWithPriority=function(E,O){switch(E){case 1:case 2:case 3:case 4:case 5:break;default:E=3}var _=H;H=E;try{return O()}finally{H=_}},v.unstable_scheduleCallback=function(E,O,_){var c=v.unstable_now();switch(typeof _=="object"&&_!==null?(_=_.delay,_=typeof _=="number"&&0<_?c+_:c):_=c,E){case 1:var g=-1;break;case 2:g=250;break;case 5:g=1073741823;break;case 4:g=1e4;break;default:g=5e3}return g=_+g,E={id:he++,callback:O,priorityLevel:E,startTime:_,expirationTime:g,sortIndex:-1},_>c?(E.sortIndex=_,x(pe,E),h(Y)===null&&E===h(pe)&&(re?(vt(Qe),Qe=-1):re=!0,se(xe,_-c))):(E.sortIndex=g,x(Y,E),We||ne||(We=!0,Te(be))),E},v.unstable_shouldYield=Kt,v.unstable_wrapCallback=function(E){var O=H;return function(){var _=H;H=O;try{return E.apply(this,arguments)}finally{H=_}}}})(Tu)),Tu}var Ma;function Hf(){return Ma||(Ma=1,zu.exports=$f()),zu.exports}/**
33
+ * @license React
34
+ * react-dom.production.min.js
35
+ *
36
+ * Copyright (c) Facebook, Inc. and its affiliates.
37
+ *
38
+ * This source code is licensed under the MIT license found in the
39
+ * LICENSE file in the root directory of this source tree.
40
+ */var Oa;function Bf(){if(Oa)return Fe;Oa=1;var v=Ru(),x=Hf();function h(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var z=new Set,I={};function M(e,t){F(e,t),F(e+"Capture",t)}function F(e,t){for(I[e]=t,e=0;e<t.length;e++)z.add(t[e])}var V=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Y=Object.prototype.hasOwnProperty,pe=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,he={},b={};function H(e){return Y.call(b,e)?!0:Y.call(he,e)?!1:pe.test(e)?b[e]=!0:(he[e]=!0,!1)}function ne(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function We(e,t,n,r){if(t===null||typeof t>"u"||ne(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function re(e,t,n,r,l,i,u){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=u}var Z={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Z[e]=new re(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Z[t]=new re(t,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){Z[e]=new re(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Z[e]=new re(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Z[e]=new re(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){Z[e]=new re(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){Z[e]=new re(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){Z[e]=new re(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){Z[e]=new re(e,5,!1,e.toLowerCase(),null,!1,!1)});var vt=/[\-:]([a-z])/g;function st(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(vt,st);Z[t]=new re(t,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(vt,st);Z[t]=new re(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(vt,st);Z[t]=new re(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){Z[e]=new re(e,1,!1,e.toLowerCase(),null,!1,!1)}),Z.xlinkHref=new re("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){Z[e]=new re(e,1,!1,e.toLowerCase(),null,!0,!0)});function qe(e,t,n,r){var l=Z.hasOwnProperty(t)?Z[t]:null;(l!==null?l.type!==0:r||!(2<t.length)||t[0]!=="o"&&t[0]!=="O"||t[1]!=="n"&&t[1]!=="N")&&(We(t,n,l,r)&&(n=null),r||l===null?H(t)&&(n===null?e.removeAttribute(t):e.setAttribute(t,""+n)):l.mustUseProperty?e[l.propertyName]=n===null?l.type===3?!1:"":n:(t=l.attributeName,r=l.attributeNamespace,n===null?e.removeAttribute(t):(l=l.type,n=l===3||l===4&&n===!0?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}var xe=v.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,be=Symbol.for("react.element"),je=Symbol.for("react.portal"),ze=Symbol.for("react.fragment"),Qe=Symbol.for("react.strict_mode"),_t=Symbol.for("react.profiler"),yt=Symbol.for("react.provider"),Kt=Symbol.for("react.context"),at=Symbol.for("react.forward_ref"),Ue=Symbol.for("react.suspense"),et=Symbol.for("react.suspense_list"),ct=Symbol.for("react.memo"),Te=Symbol.for("react.lazy"),se=Symbol.for("react.offscreen"),E=Symbol.iterator;function O(e){return e===null||typeof e!="object"?null:(e=E&&e[E]||e["@@iterator"],typeof e=="function"?e:null)}var _=Object.assign,c;function g(e){if(c===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);c=t&&t[1]||""}return`
41
+ `+c+e}var U=!1;function $(e,t){if(!e||U)return"";U=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(t,[])}catch(m){var r=m}Reflect.construct(e,[],t)}else{try{t.call()}catch(m){r=m}e.call(t.prototype)}else{try{throw Error()}catch(m){r=m}e()}}catch(m){if(m&&r&&typeof m.stack=="string"){for(var l=m.stack.split(`
42
+ `),i=r.stack.split(`
43
+ `),u=l.length-1,o=i.length-1;1<=u&&0<=o&&l[u]!==i[o];)o--;for(;1<=u&&0<=o;u--,o--)if(l[u]!==i[o]){if(u!==1||o!==1)do if(u--,o--,0>o||l[u]!==i[o]){var s=`
44
+ `+l[u].replace(" at new "," at ");return e.displayName&&s.includes("<anonymous>")&&(s=s.replace("<anonymous>",e.displayName)),s}while(1<=u&&0<=o);break}}}finally{U=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?g(e):""}function W(e){switch(e.tag){case 5:return g(e.type);case 16:return g("Lazy");case 13:return g("Suspense");case 19:return g("SuspenseList");case 0:case 2:case 15:return e=$(e.type,!1),e;case 11:return e=$(e.type.render,!1),e;case 1:return e=$(e.type,!0),e;default:return""}}function Q(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case ze:return"Fragment";case je:return"Portal";case _t:return"Profiler";case Qe:return"StrictMode";case Ue:return"Suspense";case et:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Kt:return(e.displayName||"Context")+".Consumer";case yt:return(e._context.displayName||"Context")+".Provider";case at:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ct:return t=e.displayName||null,t!==null?t:Q(e.type)||"Memo";case Te:t=e._payload,e=e._init;try{return Q(e(t))}catch{}}return null}function J(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Q(t);case 8:return t===Qe?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function X(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function le(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Ae(e){var t=le(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var l=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(u){r=""+u,i.call(this,u)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(u){r=""+u},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function xr(e){e._valueTracker||(e._valueTracker=Ae(e))}function Mu(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=le(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Er(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Ml(e,t){var n=t.checked;return _({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Ou(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=X(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Du(e,t){t=t.checked,t!=null&&qe(e,"checked",t,!1)}function Ol(e,t){Du(e,t);var n=X(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Dl(e,t.type,n):t.hasOwnProperty("defaultValue")&&Dl(e,t.type,X(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Fu(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Dl(e,t,n){(t!=="number"||Er(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var On=Array.isArray;function an(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l<n.length;l++)t["$"+n[l]]=!0;for(n=0;n<e.length;n++)l=t.hasOwnProperty("$"+e[n].value),e[n].selected!==l&&(e[n].selected=l),l&&r&&(e[n].defaultSelected=!0)}else{for(n=""+X(n),t=null,l=0;l<e.length;l++){if(e[l].value===n){e[l].selected=!0,r&&(e[l].defaultSelected=!0);return}t!==null||e[l].disabled||(t=e[l])}t!==null&&(t.selected=!0)}}function Fl(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(h(91));return _({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function Uu(e,t){var n=t.value;if(n==null){if(n=t.children,t=t.defaultValue,n!=null){if(t!=null)throw Error(h(92));if(On(n)){if(1<n.length)throw Error(h(93));n=n[0]}t=n}t==null&&(t=""),n=t}e._wrapperState={initialValue:X(n)}}function Au(e,t){var n=X(t.value),r=X(t.defaultValue);n!=null&&(n=""+n,n!==e.value&&(e.value=n),t.defaultValue==null&&e.defaultValue!==n&&(e.defaultValue=n)),r!=null&&(e.defaultValue=""+r)}function Vu(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}function $u(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Ul(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?$u(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var Nr,Hu=(function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,n,r,l){MSApp.execUnsafeLocalFunction(function(){return e(t,n,r,l)})}:e})(function(e,t){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=t;else{for(Nr=Nr||document.createElement("div"),Nr.innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=Nr.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Dn(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Fn={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},$a=["Webkit","ms","Moz","O"];Object.keys(Fn).forEach(function(e){$a.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Fn[t]=Fn[e]})});function Bu(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Fn.hasOwnProperty(e)&&Fn[e]?(""+t).trim():t+"px"}function Wu(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,l=Bu(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,l):e[n]=l}}var Ha=_({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Al(e,t){if(t){if(Ha[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(h(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(h(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(h(61))}if(t.style!=null&&typeof t.style!="object")throw Error(h(62))}}function Vl(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var $l=null;function Hl(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Bl=null,cn=null,fn=null;function Qu(e){if(e=ir(e)){if(typeof Bl!="function")throw Error(h(280));var t=e.stateNode;t&&(t=Yr(t),Bl(e.stateNode,e.type,t))}}function Ku(e){cn?fn?fn.push(e):fn=[e]:cn=e}function Yu(){if(cn){var e=cn,t=fn;if(fn=cn=null,Qu(e),t)for(e=0;e<t.length;e++)Qu(t[e])}}function Xu(e,t){return e(t)}function Gu(){}var Wl=!1;function Zu(e,t,n){if(Wl)return e(t,n);Wl=!0;try{return Xu(e,t,n)}finally{Wl=!1,(cn!==null||fn!==null)&&(Gu(),Yu())}}function Un(e,t){var n=e.stateNode;if(n===null)return null;var r=Yr(n);if(r===null)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(e=e.type,r=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!r;break e;default:e=!1}if(e)return null;if(n&&typeof n!="function")throw Error(h(231,t,typeof n));return n}var Ql=!1;if(V)try{var An={};Object.defineProperty(An,"passive",{get:function(){Ql=!0}}),window.addEventListener("test",An,An),window.removeEventListener("test",An,An)}catch{Ql=!1}function Ba(e,t,n,r,l,i,u,o,s){var m=Array.prototype.slice.call(arguments,3);try{t.apply(n,m)}catch(w){this.onError(w)}}var Vn=!1,Cr=null,_r=!1,Kl=null,Wa={onError:function(e){Vn=!0,Cr=e}};function Qa(e,t,n,r,l,i,u,o,s){Vn=!1,Cr=null,Ba.apply(Wa,arguments)}function Ka(e,t,n,r,l,i,u,o,s){if(Qa.apply(this,arguments),Vn){if(Vn){var m=Cr;Vn=!1,Cr=null}else throw Error(h(198));_r||(_r=!0,Kl=m)}}function Yt(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,(t.flags&4098)!==0&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function Ju(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function qu(e){if(Yt(e)!==e)throw Error(h(188))}function Ya(e){var t=e.alternate;if(!t){if(t=Yt(e),t===null)throw Error(h(188));return t!==e?null:e}for(var n=e,r=t;;){var l=n.return;if(l===null)break;var i=l.alternate;if(i===null){if(r=l.return,r!==null){n=r;continue}break}if(l.child===i.child){for(i=l.child;i;){if(i===n)return qu(l),e;if(i===r)return qu(l),t;i=i.sibling}throw Error(h(188))}if(n.return!==r.return)n=l,r=i;else{for(var u=!1,o=l.child;o;){if(o===n){u=!0,n=l,r=i;break}if(o===r){u=!0,r=l,n=i;break}o=o.sibling}if(!u){for(o=i.child;o;){if(o===n){u=!0,n=i,r=l;break}if(o===r){u=!0,r=i,n=l;break}o=o.sibling}if(!u)throw Error(h(189))}}if(n.alternate!==r)throw Error(h(190))}if(n.tag!==3)throw Error(h(188));return n.stateNode.current===n?e:t}function bu(e){return e=Ya(e),e!==null?eo(e):null}function eo(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=eo(e);if(t!==null)return t;e=e.sibling}return null}var to=x.unstable_scheduleCallback,no=x.unstable_cancelCallback,Xa=x.unstable_shouldYield,Ga=x.unstable_requestPaint,ce=x.unstable_now,Za=x.unstable_getCurrentPriorityLevel,Yl=x.unstable_ImmediatePriority,ro=x.unstable_UserBlockingPriority,jr=x.unstable_NormalPriority,Ja=x.unstable_LowPriority,lo=x.unstable_IdlePriority,Pr=null,ft=null;function qa(e){if(ft&&typeof ft.onCommitFiberRoot=="function")try{ft.onCommitFiberRoot(Pr,e,void 0,(e.current.flags&128)===128)}catch{}}var tt=Math.clz32?Math.clz32:tc,ba=Math.log,ec=Math.LN2;function tc(e){return e>>>=0,e===0?32:31-(ba(e)/ec|0)|0}var Lr=64,zr=4194304;function $n(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Tr(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,l=e.suspendedLanes,i=e.pingedLanes,u=n&268435455;if(u!==0){var o=u&~l;o!==0?r=$n(o):(i&=u,i!==0&&(r=$n(i)))}else u=n&~l,u!==0?r=$n(u):i!==0&&(r=$n(i));if(r===0)return 0;if(t!==0&&t!==r&&(t&l)===0&&(l=r&-r,i=t&-t,l>=i||l===16&&(i&4194240)!==0))return t;if((r&4)!==0&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0<t;)n=31-tt(t),l=1<<n,r|=e[n],t&=~l;return r}function nc(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function rc(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,l=e.expirationTimes,i=e.pendingLanes;0<i;){var u=31-tt(i),o=1<<u,s=l[u];s===-1?((o&n)===0||(o&r)!==0)&&(l[u]=nc(o,t)):s<=t&&(e.expiredLanes|=o),i&=~o}}function Xl(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function io(){var e=Lr;return Lr<<=1,(Lr&4194240)===0&&(Lr=64),e}function Gl(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Hn(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-tt(t),e[t]=n}function lc(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var l=31-tt(n),i=1<<l;t[l]=0,r[l]=-1,e[l]=-1,n&=~i}}function Zl(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-tt(n),l=1<<r;l&t|e[r]&t&&(e[r]|=t),n&=~l}}var G=0;function uo(e){return e&=-e,1<e?4<e?(e&268435455)!==0?16:536870912:4:1}var oo,Jl,so,ao,co,ql=!1,Rr=[],jt=null,Pt=null,Lt=null,Bn=new Map,Wn=new Map,zt=[],ic="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function fo(e,t){switch(e){case"focusin":case"focusout":jt=null;break;case"dragenter":case"dragleave":Pt=null;break;case"mouseover":case"mouseout":Lt=null;break;case"pointerover":case"pointerout":Bn.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Wn.delete(t.pointerId)}}function Qn(e,t,n,r,l,i){return e===null||e.nativeEvent!==i?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:i,targetContainers:[l]},t!==null&&(t=ir(t),t!==null&&Jl(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,l!==null&&t.indexOf(l)===-1&&t.push(l),e)}function uc(e,t,n,r,l){switch(t){case"focusin":return jt=Qn(jt,e,t,n,r,l),!0;case"dragenter":return Pt=Qn(Pt,e,t,n,r,l),!0;case"mouseover":return Lt=Qn(Lt,e,t,n,r,l),!0;case"pointerover":var i=l.pointerId;return Bn.set(i,Qn(Bn.get(i)||null,e,t,n,r,l)),!0;case"gotpointercapture":return i=l.pointerId,Wn.set(i,Qn(Wn.get(i)||null,e,t,n,r,l)),!0}return!1}function po(e){var t=Xt(e.target);if(t!==null){var n=Yt(t);if(n!==null){if(t=n.tag,t===13){if(t=Ju(n),t!==null){e.blockedOn=t,co(e.priority,function(){so(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Ir(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=ei(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);$l=r,n.target.dispatchEvent(r),$l=null}else return t=ir(n),t!==null&&Jl(t),e.blockedOn=n,!1;t.shift()}return!0}function ho(e,t,n){Ir(e)&&n.delete(t)}function oc(){ql=!1,jt!==null&&Ir(jt)&&(jt=null),Pt!==null&&Ir(Pt)&&(Pt=null),Lt!==null&&Ir(Lt)&&(Lt=null),Bn.forEach(ho),Wn.forEach(ho)}function Kn(e,t){e.blockedOn===t&&(e.blockedOn=null,ql||(ql=!0,x.unstable_scheduleCallback(x.unstable_NormalPriority,oc)))}function Yn(e){function t(l){return Kn(l,e)}if(0<Rr.length){Kn(Rr[0],e);for(var n=1;n<Rr.length;n++){var r=Rr[n];r.blockedOn===e&&(r.blockedOn=null)}}for(jt!==null&&Kn(jt,e),Pt!==null&&Kn(Pt,e),Lt!==null&&Kn(Lt,e),Bn.forEach(t),Wn.forEach(t),n=0;n<zt.length;n++)r=zt[n],r.blockedOn===e&&(r.blockedOn=null);for(;0<zt.length&&(n=zt[0],n.blockedOn===null);)po(n),n.blockedOn===null&&zt.shift()}var dn=xe.ReactCurrentBatchConfig,Mr=!0;function sc(e,t,n,r){var l=G,i=dn.transition;dn.transition=null;try{G=1,bl(e,t,n,r)}finally{G=l,dn.transition=i}}function ac(e,t,n,r){var l=G,i=dn.transition;dn.transition=null;try{G=4,bl(e,t,n,r)}finally{G=l,dn.transition=i}}function bl(e,t,n,r){if(Mr){var l=ei(e,t,n,r);if(l===null)yi(e,t,r,Or,n),fo(e,r);else if(uc(l,e,t,n,r))r.stopPropagation();else if(fo(e,r),t&4&&-1<ic.indexOf(e)){for(;l!==null;){var i=ir(l);if(i!==null&&oo(i),i=ei(e,t,n,r),i===null&&yi(e,t,r,Or,n),i===l)break;l=i}l!==null&&r.stopPropagation()}else yi(e,t,r,null,n)}}var Or=null;function ei(e,t,n,r){if(Or=null,e=Hl(r),e=Xt(e),e!==null)if(t=Yt(e),t===null)e=null;else if(n=t.tag,n===13){if(e=Ju(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Or=e,null}function mo(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Za()){case Yl:return 1;case ro:return 4;case jr:case Ja:return 16;case lo:return 536870912;default:return 16}default:return 16}}var Tt=null,ti=null,Dr=null;function vo(){if(Dr)return Dr;var e,t=ti,n=t.length,r,l="value"in Tt?Tt.value:Tt.textContent,i=l.length;for(e=0;e<n&&t[e]===l[e];e++);var u=n-e;for(r=1;r<=u&&t[n-r]===l[i-r];r++);return Dr=l.slice(e,1<r?1-r:void 0)}function Fr(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function Ur(){return!0}function yo(){return!1}function Ve(e){function t(n,r,l,i,u){this._reactName=n,this._targetInst=l,this.type=r,this.nativeEvent=i,this.target=u,this.currentTarget=null;for(var o in e)e.hasOwnProperty(o)&&(n=e[o],this[o]=n?n(i):i[o]);return this.isDefaultPrevented=(i.defaultPrevented!=null?i.defaultPrevented:i.returnValue===!1)?Ur:yo,this.isPropagationStopped=yo,this}return _(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var n=this.nativeEvent;n&&(n.preventDefault?n.preventDefault():typeof n.returnValue!="unknown"&&(n.returnValue=!1),this.isDefaultPrevented=Ur)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=Ur)},persist:function(){},isPersistent:Ur}),t}var pn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},ni=Ve(pn),Xn=_({},pn,{view:0,detail:0}),cc=Ve(Xn),ri,li,Gn,Ar=_({},Xn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:ui,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==Gn&&(Gn&&e.type==="mousemove"?(ri=e.screenX-Gn.screenX,li=e.screenY-Gn.screenY):li=ri=0,Gn=e),ri)},movementY:function(e){return"movementY"in e?e.movementY:li}}),go=Ve(Ar),fc=_({},Ar,{dataTransfer:0}),dc=Ve(fc),pc=_({},Xn,{relatedTarget:0}),ii=Ve(pc),hc=_({},pn,{animationName:0,elapsedTime:0,pseudoElement:0}),mc=Ve(hc),vc=_({},pn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),yc=Ve(vc),gc=_({},pn,{data:0}),wo=Ve(gc),wc={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Sc={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},kc={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function xc(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=kc[e])?!!t[e]:!1}function ui(){return xc}var Ec=_({},Xn,{key:function(e){if(e.key){var t=wc[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=Fr(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?Sc[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:ui,charCode:function(e){return e.type==="keypress"?Fr(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?Fr(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),Nc=Ve(Ec),Cc=_({},Ar,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),So=Ve(Cc),_c=_({},Xn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:ui}),jc=Ve(_c),Pc=_({},pn,{propertyName:0,elapsedTime:0,pseudoElement:0}),Lc=Ve(Pc),zc=_({},Ar,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Tc=Ve(zc),Rc=[9,13,27,32],oi=V&&"CompositionEvent"in window,Zn=null;V&&"documentMode"in document&&(Zn=document.documentMode);var Ic=V&&"TextEvent"in window&&!Zn,ko=V&&(!oi||Zn&&8<Zn&&11>=Zn),xo=" ",Eo=!1;function No(e,t){switch(e){case"keyup":return Rc.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Co(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var hn=!1;function Mc(e,t){switch(e){case"compositionend":return Co(t);case"keypress":return t.which!==32?null:(Eo=!0,xo);case"textInput":return e=t.data,e===xo&&Eo?null:e;default:return null}}function Oc(e,t){if(hn)return e==="compositionend"||!oi&&No(e,t)?(e=vo(),Dr=ti=Tt=null,hn=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return ko&&t.locale!=="ko"?null:t.data;default:return null}}var Dc={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function _o(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!Dc[e.type]:t==="textarea"}function jo(e,t,n,r){Ku(r),t=Wr(t,"onChange"),0<t.length&&(n=new ni("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Jn=null,qn=null;function Fc(e){Qo(e,0)}function Vr(e){var t=wn(e);if(Mu(t))return e}function Uc(e,t){if(e==="change")return t}var Po=!1;if(V){var si;if(V){var ai="oninput"in document;if(!ai){var Lo=document.createElement("div");Lo.setAttribute("oninput","return;"),ai=typeof Lo.oninput=="function"}si=ai}else si=!1;Po=si&&(!document.documentMode||9<document.documentMode)}function zo(){Jn&&(Jn.detachEvent("onpropertychange",To),qn=Jn=null)}function To(e){if(e.propertyName==="value"&&Vr(qn)){var t=[];jo(t,qn,e,Hl(e)),Zu(Fc,t)}}function Ac(e,t,n){e==="focusin"?(zo(),Jn=t,qn=n,Jn.attachEvent("onpropertychange",To)):e==="focusout"&&zo()}function Vc(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return Vr(qn)}function $c(e,t){if(e==="click")return Vr(t)}function Hc(e,t){if(e==="input"||e==="change")return Vr(t)}function Bc(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var nt=typeof Object.is=="function"?Object.is:Bc;function bn(e,t){if(nt(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var l=n[r];if(!Y.call(t,l)||!nt(e[l],t[l]))return!1}return!0}function Ro(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Io(e,t){var n=Ro(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Ro(n)}}function Mo(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Mo(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Oo(){for(var e=window,t=Er();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Er(e.document)}return t}function ci(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Wc(e){var t=Oo(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Mo(n.ownerDocument.documentElement,n)){if(r!==null&&ci(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=n.textContent.length,i=Math.min(r.start,l);r=r.end===void 0?i:Math.min(r.end,l),!e.extend&&i>r&&(l=r,r=i,i=l),l=Io(n,i);var u=Io(n,r);l&&u&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==u.node||e.focusOffset!==u.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(u.node,u.offset)):(t.setEnd(u.node,u.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n<t.length;n++)e=t[n],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var Qc=V&&"documentMode"in document&&11>=document.documentMode,mn=null,fi=null,er=null,di=!1;function Do(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;di||mn==null||mn!==Er(r)||(r=mn,"selectionStart"in r&&ci(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),er&&bn(er,r)||(er=r,r=Wr(fi,"onSelect"),0<r.length&&(t=new ni("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=mn)))}function $r(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var vn={animationend:$r("Animation","AnimationEnd"),animationiteration:$r("Animation","AnimationIteration"),animationstart:$r("Animation","AnimationStart"),transitionend:$r("Transition","TransitionEnd")},pi={},Fo={};V&&(Fo=document.createElement("div").style,"AnimationEvent"in window||(delete vn.animationend.animation,delete vn.animationiteration.animation,delete vn.animationstart.animation),"TransitionEvent"in window||delete vn.transitionend.transition);function Hr(e){if(pi[e])return pi[e];if(!vn[e])return e;var t=vn[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in Fo)return pi[e]=t[n];return e}var Uo=Hr("animationend"),Ao=Hr("animationiteration"),Vo=Hr("animationstart"),$o=Hr("transitionend"),Ho=new Map,Bo="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Rt(e,t){Ho.set(e,t),M(t,[e])}for(var hi=0;hi<Bo.length;hi++){var mi=Bo[hi],Kc=mi.toLowerCase(),Yc=mi[0].toUpperCase()+mi.slice(1);Rt(Kc,"on"+Yc)}Rt(Uo,"onAnimationEnd"),Rt(Ao,"onAnimationIteration"),Rt(Vo,"onAnimationStart"),Rt("dblclick","onDoubleClick"),Rt("focusin","onFocus"),Rt("focusout","onBlur"),Rt($o,"onTransitionEnd"),F("onMouseEnter",["mouseout","mouseover"]),F("onMouseLeave",["mouseout","mouseover"]),F("onPointerEnter",["pointerout","pointerover"]),F("onPointerLeave",["pointerout","pointerover"]),M("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),M("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),M("onBeforeInput",["compositionend","keypress","textInput","paste"]),M("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),M("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),M("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var tr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Xc=new Set("cancel close invalid load scroll toggle".split(" ").concat(tr));function Wo(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,Ka(r,t,void 0,e),e.currentTarget=null}function Qo(e,t){t=(t&4)!==0;for(var n=0;n<e.length;n++){var r=e[n],l=r.event;r=r.listeners;e:{var i=void 0;if(t)for(var u=r.length-1;0<=u;u--){var o=r[u],s=o.instance,m=o.currentTarget;if(o=o.listener,s!==i&&l.isPropagationStopped())break e;Wo(l,o,m),i=s}else for(u=0;u<r.length;u++){if(o=r[u],s=o.instance,m=o.currentTarget,o=o.listener,s!==i&&l.isPropagationStopped())break e;Wo(l,o,m),i=s}}}if(_r)throw e=Kl,_r=!1,Kl=null,e}function ee(e,t){var n=t[Ei];n===void 0&&(n=t[Ei]=new Set);var r=e+"__bubble";n.has(r)||(Ko(t,e,2,!1),n.add(r))}function vi(e,t,n){var r=0;t&&(r|=4),Ko(n,e,r,t)}var Br="_reactListening"+Math.random().toString(36).slice(2);function nr(e){if(!e[Br]){e[Br]=!0,z.forEach(function(n){n!=="selectionchange"&&(Xc.has(n)||vi(n,!1,e),vi(n,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Br]||(t[Br]=!0,vi("selectionchange",!1,t))}}function Ko(e,t,n,r){switch(mo(t)){case 1:var l=sc;break;case 4:l=ac;break;default:l=bl}n=l.bind(null,t,n,e),l=void 0,!Ql||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(l=!0),r?l!==void 0?e.addEventListener(t,n,{capture:!0,passive:l}):e.addEventListener(t,n,!0):l!==void 0?e.addEventListener(t,n,{passive:l}):e.addEventListener(t,n,!1)}function yi(e,t,n,r,l){var i=r;if((t&1)===0&&(t&2)===0&&r!==null)e:for(;;){if(r===null)return;var u=r.tag;if(u===3||u===4){var o=r.stateNode.containerInfo;if(o===l||o.nodeType===8&&o.parentNode===l)break;if(u===4)for(u=r.return;u!==null;){var s=u.tag;if((s===3||s===4)&&(s=u.stateNode.containerInfo,s===l||s.nodeType===8&&s.parentNode===l))return;u=u.return}for(;o!==null;){if(u=Xt(o),u===null)return;if(s=u.tag,s===5||s===6){r=i=u;continue e}o=o.parentNode}}r=r.return}Zu(function(){var m=i,w=Hl(n),S=[];e:{var y=Ho.get(e);if(y!==void 0){var N=ni,j=e;switch(e){case"keypress":if(Fr(n)===0)break e;case"keydown":case"keyup":N=Nc;break;case"focusin":j="focus",N=ii;break;case"focusout":j="blur",N=ii;break;case"beforeblur":case"afterblur":N=ii;break;case"click":if(n.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":N=go;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":N=dc;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":N=jc;break;case Uo:case Ao:case Vo:N=mc;break;case $o:N=Lc;break;case"scroll":N=cc;break;case"wheel":N=Tc;break;case"copy":case"cut":case"paste":N=yc;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":N=So}var P=(t&4)!==0,fe=!P&&e==="scroll",f=P?y!==null?y+"Capture":null:y;P=[];for(var a=m,d;a!==null;){d=a;var k=d.stateNode;if(d.tag===5&&k!==null&&(d=k,f!==null&&(k=Un(a,f),k!=null&&P.push(rr(a,k,d)))),fe)break;a=a.return}0<P.length&&(y=new N(y,j,null,n,w),S.push({event:y,listeners:P}))}}if((t&7)===0){e:{if(y=e==="mouseover"||e==="pointerover",N=e==="mouseout"||e==="pointerout",y&&n!==$l&&(j=n.relatedTarget||n.fromElement)&&(Xt(j)||j[gt]))break e;if((N||y)&&(y=w.window===w?w:(y=w.ownerDocument)?y.defaultView||y.parentWindow:window,N?(j=n.relatedTarget||n.toElement,N=m,j=j?Xt(j):null,j!==null&&(fe=Yt(j),j!==fe||j.tag!==5&&j.tag!==6)&&(j=null)):(N=null,j=m),N!==j)){if(P=go,k="onMouseLeave",f="onMouseEnter",a="mouse",(e==="pointerout"||e==="pointerover")&&(P=So,k="onPointerLeave",f="onPointerEnter",a="pointer"),fe=N==null?y:wn(N),d=j==null?y:wn(j),y=new P(k,a+"leave",N,n,w),y.target=fe,y.relatedTarget=d,k=null,Xt(w)===m&&(P=new P(f,a+"enter",j,n,w),P.target=d,P.relatedTarget=fe,k=P),fe=k,N&&j)t:{for(P=N,f=j,a=0,d=P;d;d=yn(d))a++;for(d=0,k=f;k;k=yn(k))d++;for(;0<a-d;)P=yn(P),a--;for(;0<d-a;)f=yn(f),d--;for(;a--;){if(P===f||f!==null&&P===f.alternate)break t;P=yn(P),f=yn(f)}P=null}else P=null;N!==null&&Yo(S,y,N,P,!1),j!==null&&fe!==null&&Yo(S,fe,j,P,!0)}}e:{if(y=m?wn(m):window,N=y.nodeName&&y.nodeName.toLowerCase(),N==="select"||N==="input"&&y.type==="file")var L=Uc;else if(_o(y))if(Po)L=Hc;else{L=Vc;var T=Ac}else(N=y.nodeName)&&N.toLowerCase()==="input"&&(y.type==="checkbox"||y.type==="radio")&&(L=$c);if(L&&(L=L(e,m))){jo(S,L,n,w);break e}T&&T(e,y,m),e==="focusout"&&(T=y._wrapperState)&&T.controlled&&y.type==="number"&&Dl(y,"number",y.value)}switch(T=m?wn(m):window,e){case"focusin":(_o(T)||T.contentEditable==="true")&&(mn=T,fi=m,er=null);break;case"focusout":er=fi=mn=null;break;case"mousedown":di=!0;break;case"contextmenu":case"mouseup":case"dragend":di=!1,Do(S,n,w);break;case"selectionchange":if(Qc)break;case"keydown":case"keyup":Do(S,n,w)}var R;if(oi)e:{switch(e){case"compositionstart":var D="onCompositionStart";break e;case"compositionend":D="onCompositionEnd";break e;case"compositionupdate":D="onCompositionUpdate";break e}D=void 0}else hn?No(e,n)&&(D="onCompositionEnd"):e==="keydown"&&n.keyCode===229&&(D="onCompositionStart");D&&(ko&&n.locale!=="ko"&&(hn||D!=="onCompositionStart"?D==="onCompositionEnd"&&hn&&(R=vo()):(Tt=w,ti="value"in Tt?Tt.value:Tt.textContent,hn=!0)),T=Wr(m,D),0<T.length&&(D=new wo(D,e,null,n,w),S.push({event:D,listeners:T}),R?D.data=R:(R=Co(n),R!==null&&(D.data=R)))),(R=Ic?Mc(e,n):Oc(e,n))&&(m=Wr(m,"onBeforeInput"),0<m.length&&(w=new wo("onBeforeInput","beforeinput",null,n,w),S.push({event:w,listeners:m}),w.data=R))}Qo(S,t)})}function rr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Wr(e,t){for(var n=t+"Capture",r=[];e!==null;){var l=e,i=l.stateNode;l.tag===5&&i!==null&&(l=i,i=Un(e,n),i!=null&&r.unshift(rr(e,i,l)),i=Un(e,t),i!=null&&r.push(rr(e,i,l))),e=e.return}return r}function yn(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function Yo(e,t,n,r,l){for(var i=t._reactName,u=[];n!==null&&n!==r;){var o=n,s=o.alternate,m=o.stateNode;if(s!==null&&s===r)break;o.tag===5&&m!==null&&(o=m,l?(s=Un(n,i),s!=null&&u.unshift(rr(n,s,o))):l||(s=Un(n,i),s!=null&&u.push(rr(n,s,o)))),n=n.return}u.length!==0&&e.push({event:t,listeners:u})}var Gc=/\r\n?/g,Zc=/\u0000|\uFFFD/g;function Xo(e){return(typeof e=="string"?e:""+e).replace(Gc,`
45
+ `).replace(Zc,"")}function Qr(e,t,n){if(t=Xo(t),Xo(e)!==t&&n)throw Error(h(425))}function Kr(){}var gi=null,wi=null;function Si(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var ki=typeof setTimeout=="function"?setTimeout:void 0,Jc=typeof clearTimeout=="function"?clearTimeout:void 0,Go=typeof Promise=="function"?Promise:void 0,qc=typeof queueMicrotask=="function"?queueMicrotask:typeof Go<"u"?function(e){return Go.resolve(null).then(e).catch(bc)}:ki;function bc(e){setTimeout(function(){throw e})}function xi(e,t){var n=t,r=0;do{var l=n.nextSibling;if(e.removeChild(n),l&&l.nodeType===8)if(n=l.data,n==="/$"){if(r===0){e.removeChild(l),Yn(t);return}r--}else n!=="$"&&n!=="$?"&&n!=="$!"||r++;n=l}while(n);Yn(t)}function It(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?")break;if(t==="/$")return null}}return e}function Zo(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="$"||n==="$!"||n==="$?"){if(t===0)return e;t--}else n==="/$"&&t++}e=e.previousSibling}return null}var gn=Math.random().toString(36).slice(2),dt="__reactFiber$"+gn,lr="__reactProps$"+gn,gt="__reactContainer$"+gn,Ei="__reactEvents$"+gn,ef="__reactListeners$"+gn,tf="__reactHandles$"+gn;function Xt(e){var t=e[dt];if(t)return t;for(var n=e.parentNode;n;){if(t=n[gt]||n[dt]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=Zo(e);e!==null;){if(n=e[dt])return n;e=Zo(e)}return t}e=n,n=e.parentNode}return null}function ir(e){return e=e[dt]||e[gt],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function wn(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(h(33))}function Yr(e){return e[lr]||null}var Ni=[],Sn=-1;function Mt(e){return{current:e}}function te(e){0>Sn||(e.current=Ni[Sn],Ni[Sn]=null,Sn--)}function q(e,t){Sn++,Ni[Sn]=e.current,e.current=t}var Ot={},Ee=Mt(Ot),Re=Mt(!1),Gt=Ot;function kn(e,t){var n=e.type.contextTypes;if(!n)return Ot;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var l={},i;for(i in n)l[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function Ie(e){return e=e.childContextTypes,e!=null}function Xr(){te(Re),te(Ee)}function Jo(e,t,n){if(Ee.current!==Ot)throw Error(h(168));q(Ee,t),q(Re,n)}function qo(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var l in r)if(!(l in t))throw Error(h(108,J(e)||"Unknown",l));return _({},n,r)}function Gr(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ot,Gt=Ee.current,q(Ee,e),q(Re,Re.current),!0}function bo(e,t,n){var r=e.stateNode;if(!r)throw Error(h(169));n?(e=qo(e,t,Gt),r.__reactInternalMemoizedMergedChildContext=e,te(Re),te(Ee),q(Ee,e)):te(Re),q(Re,n)}var wt=null,Zr=!1,Ci=!1;function es(e){wt===null?wt=[e]:wt.push(e)}function nf(e){Zr=!0,es(e)}function Dt(){if(!Ci&&wt!==null){Ci=!0;var e=0,t=G;try{var n=wt;for(G=1;e<n.length;e++){var r=n[e];do r=r(!0);while(r!==null)}wt=null,Zr=!1}catch(l){throw wt!==null&&(wt=wt.slice(e+1)),to(Yl,Dt),l}finally{G=t,Ci=!1}}return null}var xn=[],En=0,Jr=null,qr=0,Ke=[],Ye=0,Zt=null,St=1,kt="";function Jt(e,t){xn[En++]=qr,xn[En++]=Jr,Jr=e,qr=t}function ts(e,t,n){Ke[Ye++]=St,Ke[Ye++]=kt,Ke[Ye++]=Zt,Zt=e;var r=St;e=kt;var l=32-tt(r)-1;r&=~(1<<l),n+=1;var i=32-tt(t)+l;if(30<i){var u=l-l%5;i=(r&(1<<u)-1).toString(32),r>>=u,l-=u,St=1<<32-tt(t)+l|n<<l|r,kt=i+e}else St=1<<i|n<<l|r,kt=e}function _i(e){e.return!==null&&(Jt(e,1),ts(e,1,0))}function ji(e){for(;e===Jr;)Jr=xn[--En],xn[En]=null,qr=xn[--En],xn[En]=null;for(;e===Zt;)Zt=Ke[--Ye],Ke[Ye]=null,kt=Ke[--Ye],Ke[Ye]=null,St=Ke[--Ye],Ke[Ye]=null}var $e=null,He=null,ie=!1,rt=null;function ns(e,t){var n=Je(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,t=e.deletions,t===null?(e.deletions=[n],e.flags|=16):t.push(n)}function rs(e,t){switch(e.tag){case 5:var n=e.type;return t=t.nodeType!==1||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,$e=e,He=It(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,$e=e,He=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(n=Zt!==null?{id:St,overflow:kt}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},n=Je(18,null,null,0),n.stateNode=t,n.return=e,e.child=n,$e=e,He=null,!0):!1;default:return!1}}function Pi(e){return(e.mode&1)!==0&&(e.flags&128)===0}function Li(e){if(ie){var t=He;if(t){var n=t;if(!rs(e,t)){if(Pi(e))throw Error(h(418));t=It(n.nextSibling);var r=$e;t&&rs(e,t)?ns(r,n):(e.flags=e.flags&-4097|2,ie=!1,$e=e)}}else{if(Pi(e))throw Error(h(418));e.flags=e.flags&-4097|2,ie=!1,$e=e}}}function ls(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;$e=e}function br(e){if(e!==$e)return!1;if(!ie)return ls(e),ie=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!=="head"&&t!=="body"&&!Si(e.type,e.memoizedProps)),t&&(t=He)){if(Pi(e))throw is(),Error(h(418));for(;t;)ns(e,t),t=It(t.nextSibling)}if(ls(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(h(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"){if(t===0){He=It(e.nextSibling);break e}t--}else n!=="$"&&n!=="$!"&&n!=="$?"||t++}e=e.nextSibling}He=null}}else He=$e?It(e.stateNode.nextSibling):null;return!0}function is(){for(var e=He;e;)e=It(e.nextSibling)}function Nn(){He=$e=null,ie=!1}function zi(e){rt===null?rt=[e]:rt.push(e)}var rf=xe.ReactCurrentBatchConfig;function ur(e,t,n){if(e=n.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(n._owner){if(n=n._owner,n){if(n.tag!==1)throw Error(h(309));var r=n.stateNode}if(!r)throw Error(h(147,e));var l=r,i=""+e;return t!==null&&t.ref!==null&&typeof t.ref=="function"&&t.ref._stringRef===i?t.ref:(t=function(u){var o=l.refs;u===null?delete o[i]:o[i]=u},t._stringRef=i,t)}if(typeof e!="string")throw Error(h(284));if(!n._owner)throw Error(h(290,e))}return e}function el(e,t){throw e=Object.prototype.toString.call(t),Error(h(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function us(e){var t=e._init;return t(e._payload)}function os(e){function t(f,a){if(e){var d=f.deletions;d===null?(f.deletions=[a],f.flags|=16):d.push(a)}}function n(f,a){if(!e)return null;for(;a!==null;)t(f,a),a=a.sibling;return null}function r(f,a){for(f=new Map;a!==null;)a.key!==null?f.set(a.key,a):f.set(a.index,a),a=a.sibling;return f}function l(f,a){return f=Wt(f,a),f.index=0,f.sibling=null,f}function i(f,a,d){return f.index=d,e?(d=f.alternate,d!==null?(d=d.index,d<a?(f.flags|=2,a):d):(f.flags|=2,a)):(f.flags|=1048576,a)}function u(f){return e&&f.alternate===null&&(f.flags|=2),f}function o(f,a,d,k){return a===null||a.tag!==6?(a=ku(d,f.mode,k),a.return=f,a):(a=l(a,d),a.return=f,a)}function s(f,a,d,k){var L=d.type;return L===ze?w(f,a,d.props.children,k,d.key):a!==null&&(a.elementType===L||typeof L=="object"&&L!==null&&L.$$typeof===Te&&us(L)===a.type)?(k=l(a,d.props),k.ref=ur(f,a,d),k.return=f,k):(k=Nl(d.type,d.key,d.props,null,f.mode,k),k.ref=ur(f,a,d),k.return=f,k)}function m(f,a,d,k){return a===null||a.tag!==4||a.stateNode.containerInfo!==d.containerInfo||a.stateNode.implementation!==d.implementation?(a=xu(d,f.mode,k),a.return=f,a):(a=l(a,d.children||[]),a.return=f,a)}function w(f,a,d,k,L){return a===null||a.tag!==7?(a=un(d,f.mode,k,L),a.return=f,a):(a=l(a,d),a.return=f,a)}function S(f,a,d){if(typeof a=="string"&&a!==""||typeof a=="number")return a=ku(""+a,f.mode,d),a.return=f,a;if(typeof a=="object"&&a!==null){switch(a.$$typeof){case be:return d=Nl(a.type,a.key,a.props,null,f.mode,d),d.ref=ur(f,null,a),d.return=f,d;case je:return a=xu(a,f.mode,d),a.return=f,a;case Te:var k=a._init;return S(f,k(a._payload),d)}if(On(a)||O(a))return a=un(a,f.mode,d,null),a.return=f,a;el(f,a)}return null}function y(f,a,d,k){var L=a!==null?a.key:null;if(typeof d=="string"&&d!==""||typeof d=="number")return L!==null?null:o(f,a,""+d,k);if(typeof d=="object"&&d!==null){switch(d.$$typeof){case be:return d.key===L?s(f,a,d,k):null;case je:return d.key===L?m(f,a,d,k):null;case Te:return L=d._init,y(f,a,L(d._payload),k)}if(On(d)||O(d))return L!==null?null:w(f,a,d,k,null);el(f,d)}return null}function N(f,a,d,k,L){if(typeof k=="string"&&k!==""||typeof k=="number")return f=f.get(d)||null,o(a,f,""+k,L);if(typeof k=="object"&&k!==null){switch(k.$$typeof){case be:return f=f.get(k.key===null?d:k.key)||null,s(a,f,k,L);case je:return f=f.get(k.key===null?d:k.key)||null,m(a,f,k,L);case Te:var T=k._init;return N(f,a,d,T(k._payload),L)}if(On(k)||O(k))return f=f.get(d)||null,w(a,f,k,L,null);el(a,k)}return null}function j(f,a,d,k){for(var L=null,T=null,R=a,D=a=0,we=null;R!==null&&D<d.length;D++){R.index>D?(we=R,R=null):we=R.sibling;var K=y(f,R,d[D],k);if(K===null){R===null&&(R=we);break}e&&R&&K.alternate===null&&t(f,R),a=i(K,a,D),T===null?L=K:T.sibling=K,T=K,R=we}if(D===d.length)return n(f,R),ie&&Jt(f,D),L;if(R===null){for(;D<d.length;D++)R=S(f,d[D],k),R!==null&&(a=i(R,a,D),T===null?L=R:T.sibling=R,T=R);return ie&&Jt(f,D),L}for(R=r(f,R);D<d.length;D++)we=N(R,f,D,d[D],k),we!==null&&(e&&we.alternate!==null&&R.delete(we.key===null?D:we.key),a=i(we,a,D),T===null?L=we:T.sibling=we,T=we);return e&&R.forEach(function(Qt){return t(f,Qt)}),ie&&Jt(f,D),L}function P(f,a,d,k){var L=O(d);if(typeof L!="function")throw Error(h(150));if(d=L.call(d),d==null)throw Error(h(151));for(var T=L=null,R=a,D=a=0,we=null,K=d.next();R!==null&&!K.done;D++,K=d.next()){R.index>D?(we=R,R=null):we=R.sibling;var Qt=y(f,R,K.value,k);if(Qt===null){R===null&&(R=we);break}e&&R&&Qt.alternate===null&&t(f,R),a=i(Qt,a,D),T===null?L=Qt:T.sibling=Qt,T=Qt,R=we}if(K.done)return n(f,R),ie&&Jt(f,D),L;if(R===null){for(;!K.done;D++,K=d.next())K=S(f,K.value,k),K!==null&&(a=i(K,a,D),T===null?L=K:T.sibling=K,T=K);return ie&&Jt(f,D),L}for(R=r(f,R);!K.done;D++,K=d.next())K=N(R,f,D,K.value,k),K!==null&&(e&&K.alternate!==null&&R.delete(K.key===null?D:K.key),a=i(K,a,D),T===null?L=K:T.sibling=K,T=K);return e&&R.forEach(function(Ff){return t(f,Ff)}),ie&&Jt(f,D),L}function fe(f,a,d,k){if(typeof d=="object"&&d!==null&&d.type===ze&&d.key===null&&(d=d.props.children),typeof d=="object"&&d!==null){switch(d.$$typeof){case be:e:{for(var L=d.key,T=a;T!==null;){if(T.key===L){if(L=d.type,L===ze){if(T.tag===7){n(f,T.sibling),a=l(T,d.props.children),a.return=f,f=a;break e}}else if(T.elementType===L||typeof L=="object"&&L!==null&&L.$$typeof===Te&&us(L)===T.type){n(f,T.sibling),a=l(T,d.props),a.ref=ur(f,T,d),a.return=f,f=a;break e}n(f,T);break}else t(f,T);T=T.sibling}d.type===ze?(a=un(d.props.children,f.mode,k,d.key),a.return=f,f=a):(k=Nl(d.type,d.key,d.props,null,f.mode,k),k.ref=ur(f,a,d),k.return=f,f=k)}return u(f);case je:e:{for(T=d.key;a!==null;){if(a.key===T)if(a.tag===4&&a.stateNode.containerInfo===d.containerInfo&&a.stateNode.implementation===d.implementation){n(f,a.sibling),a=l(a,d.children||[]),a.return=f,f=a;break e}else{n(f,a);break}else t(f,a);a=a.sibling}a=xu(d,f.mode,k),a.return=f,f=a}return u(f);case Te:return T=d._init,fe(f,a,T(d._payload),k)}if(On(d))return j(f,a,d,k);if(O(d))return P(f,a,d,k);el(f,d)}return typeof d=="string"&&d!==""||typeof d=="number"?(d=""+d,a!==null&&a.tag===6?(n(f,a.sibling),a=l(a,d),a.return=f,f=a):(n(f,a),a=ku(d,f.mode,k),a.return=f,f=a),u(f)):n(f,a)}return fe}var Cn=os(!0),ss=os(!1),tl=Mt(null),nl=null,_n=null,Ti=null;function Ri(){Ti=_n=nl=null}function Ii(e){var t=tl.current;te(tl),e._currentValue=t}function Mi(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function jn(e,t){nl=e,Ti=_n=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(Me=!0),e.firstContext=null)}function Xe(e){var t=e._currentValue;if(Ti!==e)if(e={context:e,memoizedValue:t,next:null},_n===null){if(nl===null)throw Error(h(308));_n=e,nl.dependencies={lanes:0,firstContext:e}}else _n=_n.next=e;return t}var qt=null;function Oi(e){qt===null?qt=[e]:qt.push(e)}function as(e,t,n,r){var l=t.interleaved;return l===null?(n.next=n,Oi(t)):(n.next=l.next,l.next=n),t.interleaved=n,xt(e,r)}function xt(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var Ft=!1;function Di(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function cs(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Et(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Ut(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,(B&2)!==0){var l=r.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),r.pending=t,xt(e,n)}return l=r.interleaved,l===null?(t.next=t,Oi(r)):(t.next=l.next,l.next=t),r.interleaved=t,xt(e,n)}function rl(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Zl(e,n)}}function fs(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var l=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var u={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?l=i=u:i=i.next=u,n=n.next}while(n!==null);i===null?l=i=t:i=i.next=t}else l=i=t;n={baseState:r.baseState,firstBaseUpdate:l,lastBaseUpdate:i,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function ll(e,t,n,r){var l=e.updateQueue;Ft=!1;var i=l.firstBaseUpdate,u=l.lastBaseUpdate,o=l.shared.pending;if(o!==null){l.shared.pending=null;var s=o,m=s.next;s.next=null,u===null?i=m:u.next=m,u=s;var w=e.alternate;w!==null&&(w=w.updateQueue,o=w.lastBaseUpdate,o!==u&&(o===null?w.firstBaseUpdate=m:o.next=m,w.lastBaseUpdate=s))}if(i!==null){var S=l.baseState;u=0,w=m=s=null,o=i;do{var y=o.lane,N=o.eventTime;if((r&y)===y){w!==null&&(w=w.next={eventTime:N,lane:0,tag:o.tag,payload:o.payload,callback:o.callback,next:null});e:{var j=e,P=o;switch(y=t,N=n,P.tag){case 1:if(j=P.payload,typeof j=="function"){S=j.call(N,S,y);break e}S=j;break e;case 3:j.flags=j.flags&-65537|128;case 0:if(j=P.payload,y=typeof j=="function"?j.call(N,S,y):j,y==null)break e;S=_({},S,y);break e;case 2:Ft=!0}}o.callback!==null&&o.lane!==0&&(e.flags|=64,y=l.effects,y===null?l.effects=[o]:y.push(o))}else N={eventTime:N,lane:y,tag:o.tag,payload:o.payload,callback:o.callback,next:null},w===null?(m=w=N,s=S):w=w.next=N,u|=y;if(o=o.next,o===null){if(o=l.shared.pending,o===null)break;y=o,o=y.next,y.next=null,l.lastBaseUpdate=y,l.shared.pending=null}}while(!0);if(w===null&&(s=S),l.baseState=s,l.firstBaseUpdate=m,l.lastBaseUpdate=w,t=l.shared.interleaved,t!==null){l=t;do u|=l.lane,l=l.next;while(l!==t)}else i===null&&(l.shared.lanes=0);tn|=u,e.lanes=u,e.memoizedState=S}}function ds(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;t<e.length;t++){var r=e[t],l=r.callback;if(l!==null){if(r.callback=null,r=n,typeof l!="function")throw Error(h(191,l));l.call(r)}}}var or={},pt=Mt(or),sr=Mt(or),ar=Mt(or);function bt(e){if(e===or)throw Error(h(174));return e}function Fi(e,t){switch(q(ar,t),q(sr,e),q(pt,or),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:Ul(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=Ul(t,e)}te(pt),q(pt,t)}function Pn(){te(pt),te(sr),te(ar)}function ps(e){bt(ar.current);var t=bt(pt.current),n=Ul(t,e.type);t!==n&&(q(sr,e),q(pt,n))}function Ui(e){sr.current===e&&(te(pt),te(sr))}var ue=Mt(0);function il(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if((t.flags&128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Ai=[];function Vi(){for(var e=0;e<Ai.length;e++)Ai[e]._workInProgressVersionPrimary=null;Ai.length=0}var ul=xe.ReactCurrentDispatcher,$i=xe.ReactCurrentBatchConfig,en=0,oe=null,me=null,ye=null,ol=!1,cr=!1,fr=0,lf=0;function Ne(){throw Error(h(321))}function Hi(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!nt(e[n],t[n]))return!1;return!0}function Bi(e,t,n,r,l,i){if(en=i,oe=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,ul.current=e===null||e.memoizedState===null?af:cf,e=n(r,l),cr){i=0;do{if(cr=!1,fr=0,25<=i)throw Error(h(301));i+=1,ye=me=null,t.updateQueue=null,ul.current=ff,e=n(r,l)}while(cr)}if(ul.current=cl,t=me!==null&&me.next!==null,en=0,ye=me=oe=null,ol=!1,t)throw Error(h(300));return e}function Wi(){var e=fr!==0;return fr=0,e}function ht(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return ye===null?oe.memoizedState=ye=e:ye=ye.next=e,ye}function Ge(){if(me===null){var e=oe.alternate;e=e!==null?e.memoizedState:null}else e=me.next;var t=ye===null?oe.memoizedState:ye.next;if(t!==null)ye=t,me=e;else{if(e===null)throw Error(h(310));me=e,e={memoizedState:me.memoizedState,baseState:me.baseState,baseQueue:me.baseQueue,queue:me.queue,next:null},ye===null?oe.memoizedState=ye=e:ye=ye.next=e}return ye}function dr(e,t){return typeof t=="function"?t(e):t}function Qi(e){var t=Ge(),n=t.queue;if(n===null)throw Error(h(311));n.lastRenderedReducer=e;var r=me,l=r.baseQueue,i=n.pending;if(i!==null){if(l!==null){var u=l.next;l.next=i.next,i.next=u}r.baseQueue=l=i,n.pending=null}if(l!==null){i=l.next,r=r.baseState;var o=u=null,s=null,m=i;do{var w=m.lane;if((en&w)===w)s!==null&&(s=s.next={lane:0,action:m.action,hasEagerState:m.hasEagerState,eagerState:m.eagerState,next:null}),r=m.hasEagerState?m.eagerState:e(r,m.action);else{var S={lane:w,action:m.action,hasEagerState:m.hasEagerState,eagerState:m.eagerState,next:null};s===null?(o=s=S,u=r):s=s.next=S,oe.lanes|=w,tn|=w}m=m.next}while(m!==null&&m!==i);s===null?u=r:s.next=o,nt(r,t.memoizedState)||(Me=!0),t.memoizedState=r,t.baseState=u,t.baseQueue=s,n.lastRenderedState=r}if(e=n.interleaved,e!==null){l=e;do i=l.lane,oe.lanes|=i,tn|=i,l=l.next;while(l!==e)}else l===null&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function Ki(e){var t=Ge(),n=t.queue;if(n===null)throw Error(h(311));n.lastRenderedReducer=e;var r=n.dispatch,l=n.pending,i=t.memoizedState;if(l!==null){n.pending=null;var u=l=l.next;do i=e(i,u.action),u=u.next;while(u!==l);nt(i,t.memoizedState)||(Me=!0),t.memoizedState=i,t.baseQueue===null&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function hs(){}function ms(e,t){var n=oe,r=Ge(),l=t(),i=!nt(r.memoizedState,l);if(i&&(r.memoizedState=l,Me=!0),r=r.queue,Yi(gs.bind(null,n,r,e),[e]),r.getSnapshot!==t||i||ye!==null&&ye.memoizedState.tag&1){if(n.flags|=2048,pr(9,ys.bind(null,n,r,l,t),void 0,null),ge===null)throw Error(h(349));(en&30)!==0||vs(n,t,l)}return l}function vs(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=oe.updateQueue,t===null?(t={lastEffect:null,stores:null},oe.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function ys(e,t,n,r){t.value=n,t.getSnapshot=r,ws(t)&&Ss(e)}function gs(e,t,n){return n(function(){ws(t)&&Ss(e)})}function ws(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!nt(e,n)}catch{return!0}}function Ss(e){var t=xt(e,1);t!==null&&ot(t,e,1,-1)}function ks(e){var t=ht();return typeof e=="function"&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:dr,lastRenderedState:e},t.queue=e,e=e.dispatch=sf.bind(null,oe,e),[t.memoizedState,e]}function pr(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},t=oe.updateQueue,t===null?(t={lastEffect:null,stores:null},oe.updateQueue=t,t.lastEffect=e.next=e):(n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e)),e}function xs(){return Ge().memoizedState}function sl(e,t,n,r){var l=ht();oe.flags|=e,l.memoizedState=pr(1|t,n,void 0,r===void 0?null:r)}function al(e,t,n,r){var l=Ge();r=r===void 0?null:r;var i=void 0;if(me!==null){var u=me.memoizedState;if(i=u.destroy,r!==null&&Hi(r,u.deps)){l.memoizedState=pr(t,n,i,r);return}}oe.flags|=e,l.memoizedState=pr(1|t,n,i,r)}function Es(e,t){return sl(8390656,8,e,t)}function Yi(e,t){return al(2048,8,e,t)}function Ns(e,t){return al(4,2,e,t)}function Cs(e,t){return al(4,4,e,t)}function _s(e,t){if(typeof t=="function")return e=e(),t(e),function(){t(null)};if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function js(e,t,n){return n=n!=null?n.concat([e]):null,al(4,4,_s.bind(null,t,e),n)}function Xi(){}function Ps(e,t){var n=Ge();t=t===void 0?null:t;var r=n.memoizedState;return r!==null&&t!==null&&Hi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ls(e,t){var n=Ge();t=t===void 0?null:t;var r=n.memoizedState;return r!==null&&t!==null&&Hi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function zs(e,t,n){return(en&21)===0?(e.baseState&&(e.baseState=!1,Me=!0),e.memoizedState=n):(nt(n,t)||(n=io(),oe.lanes|=n,tn|=n,e.baseState=!0),t)}function uf(e,t){var n=G;G=n!==0&&4>n?n:4,e(!0);var r=$i.transition;$i.transition={};try{e(!1),t()}finally{G=n,$i.transition=r}}function Ts(){return Ge().memoizedState}function of(e,t,n){var r=Ht(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Rs(e))Is(t,n);else if(n=as(e,t,n,r),n!==null){var l=Le();ot(n,e,r,l),Ms(n,t,r)}}function sf(e,t,n){var r=Ht(e),l={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Rs(e))Is(t,l);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var u=t.lastRenderedState,o=i(u,n);if(l.hasEagerState=!0,l.eagerState=o,nt(o,u)){var s=t.interleaved;s===null?(l.next=l,Oi(t)):(l.next=s.next,s.next=l),t.interleaved=l;return}}catch{}finally{}n=as(e,t,l,r),n!==null&&(l=Le(),ot(n,e,r,l),Ms(n,t,r))}}function Rs(e){var t=e.alternate;return e===oe||t!==null&&t===oe}function Is(e,t){cr=ol=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Ms(e,t,n){if((n&4194240)!==0){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Zl(e,n)}}var cl={readContext:Xe,useCallback:Ne,useContext:Ne,useEffect:Ne,useImperativeHandle:Ne,useInsertionEffect:Ne,useLayoutEffect:Ne,useMemo:Ne,useReducer:Ne,useRef:Ne,useState:Ne,useDebugValue:Ne,useDeferredValue:Ne,useTransition:Ne,useMutableSource:Ne,useSyncExternalStore:Ne,useId:Ne,unstable_isNewReconciler:!1},af={readContext:Xe,useCallback:function(e,t){return ht().memoizedState=[e,t===void 0?null:t],e},useContext:Xe,useEffect:Es,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,sl(4194308,4,_s.bind(null,t,e),n)},useLayoutEffect:function(e,t){return sl(4194308,4,e,t)},useInsertionEffect:function(e,t){return sl(4,2,e,t)},useMemo:function(e,t){var n=ht();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=ht();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=of.bind(null,oe,e),[r.memoizedState,e]},useRef:function(e){var t=ht();return e={current:e},t.memoizedState=e},useState:ks,useDebugValue:Xi,useDeferredValue:function(e){return ht().memoizedState=e},useTransition:function(){var e=ks(!1),t=e[0];return e=uf.bind(null,e[1]),ht().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=oe,l=ht();if(ie){if(n===void 0)throw Error(h(407));n=n()}else{if(n=t(),ge===null)throw Error(h(349));(en&30)!==0||vs(r,t,n)}l.memoizedState=n;var i={value:n,getSnapshot:t};return l.queue=i,Es(gs.bind(null,r,i,e),[e]),r.flags|=2048,pr(9,ys.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=ht(),t=ge.identifierPrefix;if(ie){var n=kt,r=St;n=(r&~(1<<32-tt(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=fr++,0<n&&(t+="H"+n.toString(32)),t+=":"}else n=lf++,t=":"+t+"r"+n.toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},cf={readContext:Xe,useCallback:Ps,useContext:Xe,useEffect:Yi,useImperativeHandle:js,useInsertionEffect:Ns,useLayoutEffect:Cs,useMemo:Ls,useReducer:Qi,useRef:xs,useState:function(){return Qi(dr)},useDebugValue:Xi,useDeferredValue:function(e){var t=Ge();return zs(t,me.memoizedState,e)},useTransition:function(){var e=Qi(dr)[0],t=Ge().memoizedState;return[e,t]},useMutableSource:hs,useSyncExternalStore:ms,useId:Ts,unstable_isNewReconciler:!1},ff={readContext:Xe,useCallback:Ps,useContext:Xe,useEffect:Yi,useImperativeHandle:js,useInsertionEffect:Ns,useLayoutEffect:Cs,useMemo:Ls,useReducer:Ki,useRef:xs,useState:function(){return Ki(dr)},useDebugValue:Xi,useDeferredValue:function(e){var t=Ge();return me===null?t.memoizedState=e:zs(t,me.memoizedState,e)},useTransition:function(){var e=Ki(dr)[0],t=Ge().memoizedState;return[e,t]},useMutableSource:hs,useSyncExternalStore:ms,useId:Ts,unstable_isNewReconciler:!1};function lt(e,t){if(e&&e.defaultProps){t=_({},t),e=e.defaultProps;for(var n in e)t[n]===void 0&&(t[n]=e[n]);return t}return t}function Gi(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:_({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var fl={isMounted:function(e){return(e=e._reactInternals)?Yt(e)===e:!1},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=Le(),l=Ht(e),i=Et(r,l);i.payload=t,n!=null&&(i.callback=n),t=Ut(e,i,l),t!==null&&(ot(t,e,l,r),rl(t,e,l))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=Le(),l=Ht(e),i=Et(r,l);i.tag=1,i.payload=t,n!=null&&(i.callback=n),t=Ut(e,i,l),t!==null&&(ot(t,e,l,r),rl(t,e,l))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=Le(),r=Ht(e),l=Et(n,r);l.tag=2,t!=null&&(l.callback=t),t=Ut(e,l,r),t!==null&&(ot(t,e,r,n),rl(t,e,r))}};function Os(e,t,n,r,l,i,u){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(r,i,u):t.prototype&&t.prototype.isPureReactComponent?!bn(n,r)||!bn(l,i):!0}function Ds(e,t,n){var r=!1,l=Ot,i=t.contextType;return typeof i=="object"&&i!==null?i=Xe(i):(l=Ie(t)?Gt:Ee.current,r=t.contextTypes,i=(r=r!=null)?kn(e,l):Ot),t=new t(n,i),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=fl,e.stateNode=t,t._reactInternals=e,r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=l,e.__reactInternalMemoizedMaskedChildContext=i),t}function Fs(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&fl.enqueueReplaceState(t,t.state,null)}function Zi(e,t,n,r){var l=e.stateNode;l.props=n,l.state=e.memoizedState,l.refs={},Di(e);var i=t.contextType;typeof i=="object"&&i!==null?l.context=Xe(i):(i=Ie(t)?Gt:Ee.current,l.context=kn(e,i)),l.state=e.memoizedState,i=t.getDerivedStateFromProps,typeof i=="function"&&(Gi(e,t,i,n),l.state=e.memoizedState),typeof t.getDerivedStateFromProps=="function"||typeof l.getSnapshotBeforeUpdate=="function"||typeof l.UNSAFE_componentWillMount!="function"&&typeof l.componentWillMount!="function"||(t=l.state,typeof l.componentWillMount=="function"&&l.componentWillMount(),typeof l.UNSAFE_componentWillMount=="function"&&l.UNSAFE_componentWillMount(),t!==l.state&&fl.enqueueReplaceState(l,l.state,null),ll(e,n,l,r),l.state=e.memoizedState),typeof l.componentDidMount=="function"&&(e.flags|=4194308)}function Ln(e,t){try{var n="",r=t;do n+=W(r),r=r.return;while(r);var l=n}catch(i){l=`
46
+ Error generating stack: `+i.message+`
47
+ `+i.stack}return{value:e,source:t,stack:l,digest:null}}function Ji(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function qi(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var df=typeof WeakMap=="function"?WeakMap:Map;function Us(e,t,n){n=Et(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){gl||(gl=!0,pu=r),qi(e,t)},n}function As(e,t,n){n=Et(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var l=t.value;n.payload=function(){return r(l)},n.callback=function(){qi(e,t)}}var i=e.stateNode;return i!==null&&typeof i.componentDidCatch=="function"&&(n.callback=function(){qi(e,t),typeof r!="function"&&(Vt===null?Vt=new Set([this]):Vt.add(this));var u=t.stack;this.componentDidCatch(t.value,{componentStack:u!==null?u:""})}),n}function Vs(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new df;var l=new Set;r.set(t,l)}else l=r.get(t),l===void 0&&(l=new Set,r.set(t,l));l.has(n)||(l.add(n),e=_f.bind(null,e,t,n),t.then(e,e))}function $s(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function Hs(e,t,n,r,l){return(e.mode&1)===0?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=Et(-1,1),t.tag=2,Ut(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=l,e)}var pf=xe.ReactCurrentOwner,Me=!1;function Pe(e,t,n,r){t.child=e===null?ss(t,null,n,r):Cn(t,e.child,n,r)}function Bs(e,t,n,r,l){n=n.render;var i=t.ref;return jn(t,l),r=Bi(e,t,n,r,i,l),n=Wi(),e!==null&&!Me?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~l,Nt(e,t,l)):(ie&&n&&_i(t),t.flags|=1,Pe(e,t,r,l),t.child)}function Ws(e,t,n,r,l){if(e===null){var i=n.type;return typeof i=="function"&&!Su(i)&&i.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=i,Qs(e,t,i,r,l)):(e=Nl(n.type,null,r,t,t.mode,l),e.ref=t.ref,e.return=t,t.child=e)}if(i=e.child,(e.lanes&l)===0){var u=i.memoizedProps;if(n=n.compare,n=n!==null?n:bn,n(u,r)&&e.ref===t.ref)return Nt(e,t,l)}return t.flags|=1,e=Wt(i,r),e.ref=t.ref,e.return=t,t.child=e}function Qs(e,t,n,r,l){if(e!==null){var i=e.memoizedProps;if(bn(i,r)&&e.ref===t.ref)if(Me=!1,t.pendingProps=r=i,(e.lanes&l)!==0)(e.flags&131072)!==0&&(Me=!0);else return t.lanes=e.lanes,Nt(e,t,l)}return bi(e,t,n,r,l)}function Ks(e,t,n){var r=t.pendingProps,l=r.children,i=e!==null?e.memoizedState:null;if(r.mode==="hidden")if((t.mode&1)===0)t.memoizedState={baseLanes:0,cachePool:null,transitions:null},q(Tn,Be),Be|=n;else{if((n&1073741824)===0)return e=i!==null?i.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,q(Tn,Be),Be|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=i!==null?i.baseLanes:n,q(Tn,Be),Be|=r}else i!==null?(r=i.baseLanes|n,t.memoizedState=null):r=n,q(Tn,Be),Be|=r;return Pe(e,t,l,n),t.child}function Ys(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function bi(e,t,n,r,l){var i=Ie(n)?Gt:Ee.current;return i=kn(t,i),jn(t,l),n=Bi(e,t,n,r,i,l),r=Wi(),e!==null&&!Me?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~l,Nt(e,t,l)):(ie&&r&&_i(t),t.flags|=1,Pe(e,t,n,l),t.child)}function Xs(e,t,n,r,l){if(Ie(n)){var i=!0;Gr(t)}else i=!1;if(jn(t,l),t.stateNode===null)pl(e,t),Ds(t,n,r),Zi(t,n,r,l),r=!0;else if(e===null){var u=t.stateNode,o=t.memoizedProps;u.props=o;var s=u.context,m=n.contextType;typeof m=="object"&&m!==null?m=Xe(m):(m=Ie(n)?Gt:Ee.current,m=kn(t,m));var w=n.getDerivedStateFromProps,S=typeof w=="function"||typeof u.getSnapshotBeforeUpdate=="function";S||typeof u.UNSAFE_componentWillReceiveProps!="function"&&typeof u.componentWillReceiveProps!="function"||(o!==r||s!==m)&&Fs(t,u,r,m),Ft=!1;var y=t.memoizedState;u.state=y,ll(t,r,u,l),s=t.memoizedState,o!==r||y!==s||Re.current||Ft?(typeof w=="function"&&(Gi(t,n,w,r),s=t.memoizedState),(o=Ft||Os(t,n,o,r,y,s,m))?(S||typeof u.UNSAFE_componentWillMount!="function"&&typeof u.componentWillMount!="function"||(typeof u.componentWillMount=="function"&&u.componentWillMount(),typeof u.UNSAFE_componentWillMount=="function"&&u.UNSAFE_componentWillMount()),typeof u.componentDidMount=="function"&&(t.flags|=4194308)):(typeof u.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=s),u.props=r,u.state=s,u.context=m,r=o):(typeof u.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{u=t.stateNode,cs(e,t),o=t.memoizedProps,m=t.type===t.elementType?o:lt(t.type,o),u.props=m,S=t.pendingProps,y=u.context,s=n.contextType,typeof s=="object"&&s!==null?s=Xe(s):(s=Ie(n)?Gt:Ee.current,s=kn(t,s));var N=n.getDerivedStateFromProps;(w=typeof N=="function"||typeof u.getSnapshotBeforeUpdate=="function")||typeof u.UNSAFE_componentWillReceiveProps!="function"&&typeof u.componentWillReceiveProps!="function"||(o!==S||y!==s)&&Fs(t,u,r,s),Ft=!1,y=t.memoizedState,u.state=y,ll(t,r,u,l);var j=t.memoizedState;o!==S||y!==j||Re.current||Ft?(typeof N=="function"&&(Gi(t,n,N,r),j=t.memoizedState),(m=Ft||Os(t,n,m,r,y,j,s)||!1)?(w||typeof u.UNSAFE_componentWillUpdate!="function"&&typeof u.componentWillUpdate!="function"||(typeof u.componentWillUpdate=="function"&&u.componentWillUpdate(r,j,s),typeof u.UNSAFE_componentWillUpdate=="function"&&u.UNSAFE_componentWillUpdate(r,j,s)),typeof u.componentDidUpdate=="function"&&(t.flags|=4),typeof u.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof u.componentDidUpdate!="function"||o===e.memoizedProps&&y===e.memoizedState||(t.flags|=4),typeof u.getSnapshotBeforeUpdate!="function"||o===e.memoizedProps&&y===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=j),u.props=r,u.state=j,u.context=s,r=m):(typeof u.componentDidUpdate!="function"||o===e.memoizedProps&&y===e.memoizedState||(t.flags|=4),typeof u.getSnapshotBeforeUpdate!="function"||o===e.memoizedProps&&y===e.memoizedState||(t.flags|=1024),r=!1)}return eu(e,t,n,r,i,l)}function eu(e,t,n,r,l,i){Ys(e,t);var u=(t.flags&128)!==0;if(!r&&!u)return l&&bo(t,n,!1),Nt(e,t,i);r=t.stateNode,pf.current=t;var o=u&&typeof n.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&u?(t.child=Cn(t,e.child,null,i),t.child=Cn(t,null,o,i)):Pe(e,t,o,i),t.memoizedState=r.state,l&&bo(t,n,!0),t.child}function Gs(e){var t=e.stateNode;t.pendingContext?Jo(e,t.pendingContext,t.pendingContext!==t.context):t.context&&Jo(e,t.context,!1),Fi(e,t.containerInfo)}function Zs(e,t,n,r,l){return Nn(),zi(l),t.flags|=256,Pe(e,t,n,r),t.child}var tu={dehydrated:null,treeContext:null,retryLane:0};function nu(e){return{baseLanes:e,cachePool:null,transitions:null}}function Js(e,t,n){var r=t.pendingProps,l=ue.current,i=!1,u=(t.flags&128)!==0,o;if((o=u)||(o=e!==null&&e.memoizedState===null?!1:(l&2)!==0),o?(i=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(l|=1),q(ue,l&1),e===null)return Li(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?((t.mode&1)===0?t.lanes=1:e.data==="$!"?t.lanes=8:t.lanes=1073741824,null):(u=r.children,e=r.fallback,i?(r=t.mode,i=t.child,u={mode:"hidden",children:u},(r&1)===0&&i!==null?(i.childLanes=0,i.pendingProps=u):i=Cl(u,r,0,null),e=un(e,r,n,null),i.return=t,e.return=t,i.sibling=e,t.child=i,t.child.memoizedState=nu(n),t.memoizedState=tu,e):ru(t,u));if(l=e.memoizedState,l!==null&&(o=l.dehydrated,o!==null))return hf(e,t,u,r,o,l,n);if(i){i=r.fallback,u=t.mode,l=e.child,o=l.sibling;var s={mode:"hidden",children:r.children};return(u&1)===0&&t.child!==l?(r=t.child,r.childLanes=0,r.pendingProps=s,t.deletions=null):(r=Wt(l,s),r.subtreeFlags=l.subtreeFlags&14680064),o!==null?i=Wt(o,i):(i=un(i,u,n,null),i.flags|=2),i.return=t,r.return=t,r.sibling=i,t.child=r,r=i,i=t.child,u=e.child.memoizedState,u=u===null?nu(n):{baseLanes:u.baseLanes|n,cachePool:null,transitions:u.transitions},i.memoizedState=u,i.childLanes=e.childLanes&~n,t.memoizedState=tu,r}return i=e.child,e=i.sibling,r=Wt(i,{mode:"visible",children:r.children}),(t.mode&1)===0&&(r.lanes=n),r.return=t,r.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=r,t.memoizedState=null,r}function ru(e,t){return t=Cl({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function dl(e,t,n,r){return r!==null&&zi(r),Cn(t,e.child,null,n),e=ru(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function hf(e,t,n,r,l,i,u){if(n)return t.flags&256?(t.flags&=-257,r=Ji(Error(h(422))),dl(e,t,u,r)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(i=r.fallback,l=t.mode,r=Cl({mode:"visible",children:r.children},l,0,null),i=un(i,l,u,null),i.flags|=2,r.return=t,i.return=t,r.sibling=i,t.child=r,(t.mode&1)!==0&&Cn(t,e.child,null,u),t.child.memoizedState=nu(u),t.memoizedState=tu,i);if((t.mode&1)===0)return dl(e,t,u,null);if(l.data==="$!"){if(r=l.nextSibling&&l.nextSibling.dataset,r)var o=r.dgst;return r=o,i=Error(h(419)),r=Ji(i,r,void 0),dl(e,t,u,r)}if(o=(u&e.childLanes)!==0,Me||o){if(r=ge,r!==null){switch(u&-u){case 4:l=2;break;case 16:l=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:l=32;break;case 536870912:l=268435456;break;default:l=0}l=(l&(r.suspendedLanes|u))!==0?0:l,l!==0&&l!==i.retryLane&&(i.retryLane=l,xt(e,l),ot(r,e,l,-1))}return wu(),r=Ji(Error(h(421))),dl(e,t,u,r)}return l.data==="$?"?(t.flags|=128,t.child=e.child,t=jf.bind(null,e),l._reactRetry=t,null):(e=i.treeContext,He=It(l.nextSibling),$e=t,ie=!0,rt=null,e!==null&&(Ke[Ye++]=St,Ke[Ye++]=kt,Ke[Ye++]=Zt,St=e.id,kt=e.overflow,Zt=t),t=ru(t,r.children),t.flags|=4096,t)}function qs(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Mi(e.return,t,n)}function lu(e,t,n,r,l){var i=e.memoizedState;i===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:l}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=l)}function bs(e,t,n){var r=t.pendingProps,l=r.revealOrder,i=r.tail;if(Pe(e,t,r.children,n),r=ue.current,(r&2)!==0)r=r&1|2,t.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&qs(e,n,t);else if(e.tag===19)qs(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(q(ue,r),(t.mode&1)===0)t.memoizedState=null;else switch(l){case"forwards":for(n=t.child,l=null;n!==null;)e=n.alternate,e!==null&&il(e)===null&&(l=n),n=n.sibling;n=l,n===null?(l=t.child,t.child=null):(l=n.sibling,n.sibling=null),lu(t,!1,l,n,i);break;case"backwards":for(n=null,l=t.child,t.child=null;l!==null;){if(e=l.alternate,e!==null&&il(e)===null){t.child=l;break}e=l.sibling,l.sibling=n,n=l,l=e}lu(t,!0,n,null,i);break;case"together":lu(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function pl(e,t){(t.mode&1)===0&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Nt(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),tn|=t.lanes,(n&t.childLanes)===0)return null;if(e!==null&&t.child!==e.child)throw Error(h(153));if(t.child!==null){for(e=t.child,n=Wt(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=Wt(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function mf(e,t,n){switch(t.tag){case 3:Gs(t),Nn();break;case 5:ps(t);break;case 1:Ie(t.type)&&Gr(t);break;case 4:Fi(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,l=t.memoizedProps.value;q(tl,r._currentValue),r._currentValue=l;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?(q(ue,ue.current&1),t.flags|=128,null):(n&t.child.childLanes)!==0?Js(e,t,n):(q(ue,ue.current&1),e=Nt(e,t,n),e!==null?e.sibling:null);q(ue,ue.current&1);break;case 19:if(r=(n&t.childLanes)!==0,(e.flags&128)!==0){if(r)return bs(e,t,n);t.flags|=128}if(l=t.memoizedState,l!==null&&(l.rendering=null,l.tail=null,l.lastEffect=null),q(ue,ue.current),r)break;return null;case 22:case 23:return t.lanes=0,Ks(e,t,n)}return Nt(e,t,n)}var ea,iu,ta,na;ea=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},iu=function(){},ta=function(e,t,n,r){var l=e.memoizedProps;if(l!==r){e=t.stateNode,bt(pt.current);var i=null;switch(n){case"input":l=Ml(e,l),r=Ml(e,r),i=[];break;case"select":l=_({},l,{value:void 0}),r=_({},r,{value:void 0}),i=[];break;case"textarea":l=Fl(e,l),r=Fl(e,r),i=[];break;default:typeof l.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=Kr)}Al(n,r);var u;n=null;for(m in l)if(!r.hasOwnProperty(m)&&l.hasOwnProperty(m)&&l[m]!=null)if(m==="style"){var o=l[m];for(u in o)o.hasOwnProperty(u)&&(n||(n={}),n[u]="")}else m!=="dangerouslySetInnerHTML"&&m!=="children"&&m!=="suppressContentEditableWarning"&&m!=="suppressHydrationWarning"&&m!=="autoFocus"&&(I.hasOwnProperty(m)?i||(i=[]):(i=i||[]).push(m,null));for(m in r){var s=r[m];if(o=l?.[m],r.hasOwnProperty(m)&&s!==o&&(s!=null||o!=null))if(m==="style")if(o){for(u in o)!o.hasOwnProperty(u)||s&&s.hasOwnProperty(u)||(n||(n={}),n[u]="");for(u in s)s.hasOwnProperty(u)&&o[u]!==s[u]&&(n||(n={}),n[u]=s[u])}else n||(i||(i=[]),i.push(m,n)),n=s;else m==="dangerouslySetInnerHTML"?(s=s?s.__html:void 0,o=o?o.__html:void 0,s!=null&&o!==s&&(i=i||[]).push(m,s)):m==="children"?typeof s!="string"&&typeof s!="number"||(i=i||[]).push(m,""+s):m!=="suppressContentEditableWarning"&&m!=="suppressHydrationWarning"&&(I.hasOwnProperty(m)?(s!=null&&m==="onScroll"&&ee("scroll",e),i||o===s||(i=[])):(i=i||[]).push(m,s))}n&&(i=i||[]).push("style",n);var m=i;(t.updateQueue=m)&&(t.flags|=4)}},na=function(e,t,n,r){n!==r&&(t.flags|=4)};function hr(e,t){if(!ie)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Ce(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var l=e.child;l!==null;)n|=l.lanes|l.childLanes,r|=l.subtreeFlags&14680064,r|=l.flags&14680064,l.return=e,l=l.sibling;else for(l=e.child;l!==null;)n|=l.lanes|l.childLanes,r|=l.subtreeFlags,r|=l.flags,l.return=e,l=l.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function vf(e,t,n){var r=t.pendingProps;switch(ji(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ce(t),null;case 1:return Ie(t.type)&&Xr(),Ce(t),null;case 3:return r=t.stateNode,Pn(),te(Re),te(Ee),Vi(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(br(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,rt!==null&&(vu(rt),rt=null))),iu(e,t),Ce(t),null;case 5:Ui(t);var l=bt(ar.current);if(n=t.type,e!==null&&t.stateNode!=null)ta(e,t,n,r,l),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(h(166));return Ce(t),null}if(e=bt(pt.current),br(t)){r=t.stateNode,n=t.type;var i=t.memoizedProps;switch(r[dt]=t,r[lr]=i,e=(t.mode&1)!==0,n){case"dialog":ee("cancel",r),ee("close",r);break;case"iframe":case"object":case"embed":ee("load",r);break;case"video":case"audio":for(l=0;l<tr.length;l++)ee(tr[l],r);break;case"source":ee("error",r);break;case"img":case"image":case"link":ee("error",r),ee("load",r);break;case"details":ee("toggle",r);break;case"input":Ou(r,i),ee("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!i.multiple},ee("invalid",r);break;case"textarea":Uu(r,i),ee("invalid",r)}Al(n,i),l=null;for(var u in i)if(i.hasOwnProperty(u)){var o=i[u];u==="children"?typeof o=="string"?r.textContent!==o&&(i.suppressHydrationWarning!==!0&&Qr(r.textContent,o,e),l=["children",o]):typeof o=="number"&&r.textContent!==""+o&&(i.suppressHydrationWarning!==!0&&Qr(r.textContent,o,e),l=["children",""+o]):I.hasOwnProperty(u)&&o!=null&&u==="onScroll"&&ee("scroll",r)}switch(n){case"input":xr(r),Fu(r,i,!0);break;case"textarea":xr(r),Vu(r);break;case"select":case"option":break;default:typeof i.onClick=="function"&&(r.onclick=Kr)}r=l,t.updateQueue=r,r!==null&&(t.flags|=4)}else{u=l.nodeType===9?l:l.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=$u(n)),e==="http://www.w3.org/1999/xhtml"?n==="script"?(e=u.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=u.createElement(n,{is:r.is}):(e=u.createElement(n),n==="select"&&(u=e,r.multiple?u.multiple=!0:r.size&&(u.size=r.size))):e=u.createElementNS(e,n),e[dt]=t,e[lr]=r,ea(e,t,!1,!1),t.stateNode=e;e:{switch(u=Vl(n,r),n){case"dialog":ee("cancel",e),ee("close",e),l=r;break;case"iframe":case"object":case"embed":ee("load",e),l=r;break;case"video":case"audio":for(l=0;l<tr.length;l++)ee(tr[l],e);l=r;break;case"source":ee("error",e),l=r;break;case"img":case"image":case"link":ee("error",e),ee("load",e),l=r;break;case"details":ee("toggle",e),l=r;break;case"input":Ou(e,r),l=Ml(e,r),ee("invalid",e);break;case"option":l=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},l=_({},r,{value:void 0}),ee("invalid",e);break;case"textarea":Uu(e,r),l=Fl(e,r),ee("invalid",e);break;default:l=r}Al(n,l),o=l;for(i in o)if(o.hasOwnProperty(i)){var s=o[i];i==="style"?Wu(e,s):i==="dangerouslySetInnerHTML"?(s=s?s.__html:void 0,s!=null&&Hu(e,s)):i==="children"?typeof s=="string"?(n!=="textarea"||s!=="")&&Dn(e,s):typeof s=="number"&&Dn(e,""+s):i!=="suppressContentEditableWarning"&&i!=="suppressHydrationWarning"&&i!=="autoFocus"&&(I.hasOwnProperty(i)?s!=null&&i==="onScroll"&&ee("scroll",e):s!=null&&qe(e,i,s,u))}switch(n){case"input":xr(e),Fu(e,r,!1);break;case"textarea":xr(e),Vu(e);break;case"option":r.value!=null&&e.setAttribute("value",""+X(r.value));break;case"select":e.multiple=!!r.multiple,i=r.value,i!=null?an(e,!!r.multiple,i,!1):r.defaultValue!=null&&an(e,!!r.multiple,r.defaultValue,!0);break;default:typeof l.onClick=="function"&&(e.onclick=Kr)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return Ce(t),null;case 6:if(e&&t.stateNode!=null)na(e,t,e.memoizedProps,r);else{if(typeof r!="string"&&t.stateNode===null)throw Error(h(166));if(n=bt(ar.current),bt(pt.current),br(t)){if(r=t.stateNode,n=t.memoizedProps,r[dt]=t,(i=r.nodeValue!==n)&&(e=$e,e!==null))switch(e.tag){case 3:Qr(r.nodeValue,n,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&Qr(r.nodeValue,n,(e.mode&1)!==0)}i&&(t.flags|=4)}else r=(n.nodeType===9?n:n.ownerDocument).createTextNode(r),r[dt]=t,t.stateNode=r}return Ce(t),null;case 13:if(te(ue),r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(ie&&He!==null&&(t.mode&1)!==0&&(t.flags&128)===0)is(),Nn(),t.flags|=98560,i=!1;else if(i=br(t),r!==null&&r.dehydrated!==null){if(e===null){if(!i)throw Error(h(318));if(i=t.memoizedState,i=i!==null?i.dehydrated:null,!i)throw Error(h(317));i[dt]=t}else Nn(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Ce(t),i=!1}else rt!==null&&(vu(rt),rt=null),i=!0;if(!i)return t.flags&65536?t:null}return(t.flags&128)!==0?(t.lanes=n,t):(r=r!==null,r!==(e!==null&&e.memoizedState!==null)&&r&&(t.child.flags|=8192,(t.mode&1)!==0&&(e===null||(ue.current&1)!==0?ve===0&&(ve=3):wu())),t.updateQueue!==null&&(t.flags|=4),Ce(t),null);case 4:return Pn(),iu(e,t),e===null&&nr(t.stateNode.containerInfo),Ce(t),null;case 10:return Ii(t.type._context),Ce(t),null;case 17:return Ie(t.type)&&Xr(),Ce(t),null;case 19:if(te(ue),i=t.memoizedState,i===null)return Ce(t),null;if(r=(t.flags&128)!==0,u=i.rendering,u===null)if(r)hr(i,!1);else{if(ve!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(u=il(e),u!==null){for(t.flags|=128,hr(i,!1),r=u.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;n!==null;)i=n,e=r,i.flags&=14680066,u=i.alternate,u===null?(i.childLanes=0,i.lanes=e,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=u.childLanes,i.lanes=u.lanes,i.child=u.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=u.memoizedProps,i.memoizedState=u.memoizedState,i.updateQueue=u.updateQueue,i.type=u.type,e=u.dependencies,i.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return q(ue,ue.current&1|2),t.child}e=e.sibling}i.tail!==null&&ce()>Rn&&(t.flags|=128,r=!0,hr(i,!1),t.lanes=4194304)}else{if(!r)if(e=il(u),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),hr(i,!0),i.tail===null&&i.tailMode==="hidden"&&!u.alternate&&!ie)return Ce(t),null}else 2*ce()-i.renderingStartTime>Rn&&n!==1073741824&&(t.flags|=128,r=!0,hr(i,!1),t.lanes=4194304);i.isBackwards?(u.sibling=t.child,t.child=u):(n=i.last,n!==null?n.sibling=u:t.child=u,i.last=u)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=ce(),t.sibling=null,n=ue.current,q(ue,r?n&1|2:n&1),t):(Ce(t),null);case 22:case 23:return gu(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&(t.mode&1)!==0?(Be&1073741824)!==0&&(Ce(t),t.subtreeFlags&6&&(t.flags|=8192)):Ce(t),null;case 24:return null;case 25:return null}throw Error(h(156,t.tag))}function yf(e,t){switch(ji(t),t.tag){case 1:return Ie(t.type)&&Xr(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Pn(),te(Re),te(Ee),Vi(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return Ui(t),null;case 13:if(te(ue),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(h(340));Nn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return te(ue),null;case 4:return Pn(),null;case 10:return Ii(t.type._context),null;case 22:case 23:return gu(),null;case 24:return null;default:return null}}var hl=!1,_e=!1,gf=typeof WeakSet=="function"?WeakSet:Set,C=null;function zn(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){ae(e,t,r)}else n.current=null}function uu(e,t,n){try{n()}catch(r){ae(e,t,r)}}var ra=!1;function wf(e,t){if(gi=Mr,e=Oo(),ci(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var l=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var u=0,o=-1,s=-1,m=0,w=0,S=e,y=null;t:for(;;){for(var N;S!==n||l!==0&&S.nodeType!==3||(o=u+l),S!==i||r!==0&&S.nodeType!==3||(s=u+r),S.nodeType===3&&(u+=S.nodeValue.length),(N=S.firstChild)!==null;)y=S,S=N;for(;;){if(S===e)break t;if(y===n&&++m===l&&(o=u),y===i&&++w===r&&(s=u),(N=S.nextSibling)!==null)break;S=y,y=S.parentNode}S=N}n=o===-1||s===-1?null:{start:o,end:s}}else n=null}n=n||{start:0,end:0}}else n=null;for(wi={focusedElem:e,selectionRange:n},Mr=!1,C=t;C!==null;)if(t=C,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,C=e;else for(;C!==null;){t=C;try{var j=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(j!==null){var P=j.memoizedProps,fe=j.memoizedState,f=t.stateNode,a=f.getSnapshotBeforeUpdate(t.elementType===t.type?P:lt(t.type,P),fe);f.__reactInternalSnapshotBeforeUpdate=a}break;case 3:var d=t.stateNode.containerInfo;d.nodeType===1?d.textContent="":d.nodeType===9&&d.documentElement&&d.removeChild(d.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(h(163))}}catch(k){ae(t,t.return,k)}if(e=t.sibling,e!==null){e.return=t.return,C=e;break}C=t.return}return j=ra,ra=!1,j}function mr(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var i=l.destroy;l.destroy=void 0,i!==void 0&&uu(t,n,i)}l=l.next}while(l!==r)}}function ml(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function ou(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function la(e){var t=e.alternate;t!==null&&(e.alternate=null,la(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[dt],delete t[lr],delete t[Ei],delete t[ef],delete t[tf])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function ia(e){return e.tag===5||e.tag===3||e.tag===4}function ua(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||ia(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function su(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Kr));else if(r!==4&&(e=e.child,e!==null))for(su(e,t,n),e=e.sibling;e!==null;)su(e,t,n),e=e.sibling}function au(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(au(e,t,n),e=e.sibling;e!==null;)au(e,t,n),e=e.sibling}var Se=null,it=!1;function At(e,t,n){for(n=n.child;n!==null;)oa(e,t,n),n=n.sibling}function oa(e,t,n){if(ft&&typeof ft.onCommitFiberUnmount=="function")try{ft.onCommitFiberUnmount(Pr,n)}catch{}switch(n.tag){case 5:_e||zn(n,t);case 6:var r=Se,l=it;Se=null,At(e,t,n),Se=r,it=l,Se!==null&&(it?(e=Se,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Se.removeChild(n.stateNode));break;case 18:Se!==null&&(it?(e=Se,n=n.stateNode,e.nodeType===8?xi(e.parentNode,n):e.nodeType===1&&xi(e,n),Yn(e)):xi(Se,n.stateNode));break;case 4:r=Se,l=it,Se=n.stateNode.containerInfo,it=!0,At(e,t,n),Se=r,it=l;break;case 0:case 11:case 14:case 15:if(!_e&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var i=l,u=i.destroy;i=i.tag,u!==void 0&&((i&2)!==0||(i&4)!==0)&&uu(n,t,u),l=l.next}while(l!==r)}At(e,t,n);break;case 1:if(!_e&&(zn(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(o){ae(n,t,o)}At(e,t,n);break;case 21:At(e,t,n);break;case 22:n.mode&1?(_e=(r=_e)||n.memoizedState!==null,At(e,t,n),_e=r):At(e,t,n);break;default:At(e,t,n)}}function sa(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new gf),t.forEach(function(r){var l=Pf.bind(null,e,r);n.has(r)||(n.add(r),r.then(l,l))})}}function ut(e,t){var n=t.deletions;if(n!==null)for(var r=0;r<n.length;r++){var l=n[r];try{var i=e,u=t,o=u;e:for(;o!==null;){switch(o.tag){case 5:Se=o.stateNode,it=!1;break e;case 3:Se=o.stateNode.containerInfo,it=!0;break e;case 4:Se=o.stateNode.containerInfo,it=!0;break e}o=o.return}if(Se===null)throw Error(h(160));oa(i,u,l),Se=null,it=!1;var s=l.alternate;s!==null&&(s.return=null),l.return=null}catch(m){ae(l,t,m)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)aa(t,e),t=t.sibling}function aa(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(ut(t,e),mt(e),r&4){try{mr(3,e,e.return),ml(3,e)}catch(P){ae(e,e.return,P)}try{mr(5,e,e.return)}catch(P){ae(e,e.return,P)}}break;case 1:ut(t,e),mt(e),r&512&&n!==null&&zn(n,n.return);break;case 5:if(ut(t,e),mt(e),r&512&&n!==null&&zn(n,n.return),e.flags&32){var l=e.stateNode;try{Dn(l,"")}catch(P){ae(e,e.return,P)}}if(r&4&&(l=e.stateNode,l!=null)){var i=e.memoizedProps,u=n!==null?n.memoizedProps:i,o=e.type,s=e.updateQueue;if(e.updateQueue=null,s!==null)try{o==="input"&&i.type==="radio"&&i.name!=null&&Du(l,i),Vl(o,u);var m=Vl(o,i);for(u=0;u<s.length;u+=2){var w=s[u],S=s[u+1];w==="style"?Wu(l,S):w==="dangerouslySetInnerHTML"?Hu(l,S):w==="children"?Dn(l,S):qe(l,w,S,m)}switch(o){case"input":Ol(l,i);break;case"textarea":Au(l,i);break;case"select":var y=l._wrapperState.wasMultiple;l._wrapperState.wasMultiple=!!i.multiple;var N=i.value;N!=null?an(l,!!i.multiple,N,!1):y!==!!i.multiple&&(i.defaultValue!=null?an(l,!!i.multiple,i.defaultValue,!0):an(l,!!i.multiple,i.multiple?[]:"",!1))}l[lr]=i}catch(P){ae(e,e.return,P)}}break;case 6:if(ut(t,e),mt(e),r&4){if(e.stateNode===null)throw Error(h(162));l=e.stateNode,i=e.memoizedProps;try{l.nodeValue=i}catch(P){ae(e,e.return,P)}}break;case 3:if(ut(t,e),mt(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{Yn(t.containerInfo)}catch(P){ae(e,e.return,P)}break;case 4:ut(t,e),mt(e);break;case 13:ut(t,e),mt(e),l=e.child,l.flags&8192&&(i=l.memoizedState!==null,l.stateNode.isHidden=i,!i||l.alternate!==null&&l.alternate.memoizedState!==null||(du=ce())),r&4&&sa(e);break;case 22:if(w=n!==null&&n.memoizedState!==null,e.mode&1?(_e=(m=_e)||w,ut(t,e),_e=m):ut(t,e),mt(e),r&8192){if(m=e.memoizedState!==null,(e.stateNode.isHidden=m)&&!w&&(e.mode&1)!==0)for(C=e,w=e.child;w!==null;){for(S=C=w;C!==null;){switch(y=C,N=y.child,y.tag){case 0:case 11:case 14:case 15:mr(4,y,y.return);break;case 1:zn(y,y.return);var j=y.stateNode;if(typeof j.componentWillUnmount=="function"){r=y,n=y.return;try{t=r,j.props=t.memoizedProps,j.state=t.memoizedState,j.componentWillUnmount()}catch(P){ae(r,n,P)}}break;case 5:zn(y,y.return);break;case 22:if(y.memoizedState!==null){da(S);continue}}N!==null?(N.return=y,C=N):da(S)}w=w.sibling}e:for(w=null,S=e;;){if(S.tag===5){if(w===null){w=S;try{l=S.stateNode,m?(i=l.style,typeof i.setProperty=="function"?i.setProperty("display","none","important"):i.display="none"):(o=S.stateNode,s=S.memoizedProps.style,u=s!=null&&s.hasOwnProperty("display")?s.display:null,o.style.display=Bu("display",u))}catch(P){ae(e,e.return,P)}}}else if(S.tag===6){if(w===null)try{S.stateNode.nodeValue=m?"":S.memoizedProps}catch(P){ae(e,e.return,P)}}else if((S.tag!==22&&S.tag!==23||S.memoizedState===null||S===e)&&S.child!==null){S.child.return=S,S=S.child;continue}if(S===e)break e;for(;S.sibling===null;){if(S.return===null||S.return===e)break e;w===S&&(w=null),S=S.return}w===S&&(w=null),S.sibling.return=S.return,S=S.sibling}}break;case 19:ut(t,e),mt(e),r&4&&sa(e);break;case 21:break;default:ut(t,e),mt(e)}}function mt(e){var t=e.flags;if(t&2){try{e:{for(var n=e.return;n!==null;){if(ia(n)){var r=n;break e}n=n.return}throw Error(h(160))}switch(r.tag){case 5:var l=r.stateNode;r.flags&32&&(Dn(l,""),r.flags&=-33);var i=ua(e);au(e,i,l);break;case 3:case 4:var u=r.stateNode.containerInfo,o=ua(e);su(e,o,u);break;default:throw Error(h(161))}}catch(s){ae(e,e.return,s)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function Sf(e,t,n){C=e,ca(e)}function ca(e,t,n){for(var r=(e.mode&1)!==0;C!==null;){var l=C,i=l.child;if(l.tag===22&&r){var u=l.memoizedState!==null||hl;if(!u){var o=l.alternate,s=o!==null&&o.memoizedState!==null||_e;o=hl;var m=_e;if(hl=u,(_e=s)&&!m)for(C=l;C!==null;)u=C,s=u.child,u.tag===22&&u.memoizedState!==null?pa(l):s!==null?(s.return=u,C=s):pa(l);for(;i!==null;)C=i,ca(i),i=i.sibling;C=l,hl=o,_e=m}fa(e)}else(l.subtreeFlags&8772)!==0&&i!==null?(i.return=l,C=i):fa(e)}}function fa(e){for(;C!==null;){var t=C;if((t.flags&8772)!==0){var n=t.alternate;try{if((t.flags&8772)!==0)switch(t.tag){case 0:case 11:case 15:_e||ml(5,t);break;case 1:var r=t.stateNode;if(t.flags&4&&!_e)if(n===null)r.componentDidMount();else{var l=t.elementType===t.type?n.memoizedProps:lt(t.type,n.memoizedProps);r.componentDidUpdate(l,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var i=t.updateQueue;i!==null&&ds(t,i,r);break;case 3:var u=t.updateQueue;if(u!==null){if(n=null,t.child!==null)switch(t.child.tag){case 5:n=t.child.stateNode;break;case 1:n=t.child.stateNode}ds(t,u,n)}break;case 5:var o=t.stateNode;if(n===null&&t.flags&4){n=o;var s=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":s.autoFocus&&n.focus();break;case"img":s.src&&(n.src=s.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var m=t.alternate;if(m!==null){var w=m.memoizedState;if(w!==null){var S=w.dehydrated;S!==null&&Yn(S)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(h(163))}_e||t.flags&512&&ou(t)}catch(y){ae(t,t.return,y)}}if(t===e){C=null;break}if(n=t.sibling,n!==null){n.return=t.return,C=n;break}C=t.return}}function da(e){for(;C!==null;){var t=C;if(t===e){C=null;break}var n=t.sibling;if(n!==null){n.return=t.return,C=n;break}C=t.return}}function pa(e){for(;C!==null;){var t=C;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{ml(4,t)}catch(s){ae(t,n,s)}break;case 1:var r=t.stateNode;if(typeof r.componentDidMount=="function"){var l=t.return;try{r.componentDidMount()}catch(s){ae(t,l,s)}}var i=t.return;try{ou(t)}catch(s){ae(t,i,s)}break;case 5:var u=t.return;try{ou(t)}catch(s){ae(t,u,s)}}}catch(s){ae(t,t.return,s)}if(t===e){C=null;break}var o=t.sibling;if(o!==null){o.return=t.return,C=o;break}C=t.return}}var kf=Math.ceil,vl=xe.ReactCurrentDispatcher,cu=xe.ReactCurrentOwner,Ze=xe.ReactCurrentBatchConfig,B=0,ge=null,de=null,ke=0,Be=0,Tn=Mt(0),ve=0,vr=null,tn=0,yl=0,fu=0,yr=null,Oe=null,du=0,Rn=1/0,Ct=null,gl=!1,pu=null,Vt=null,wl=!1,$t=null,Sl=0,gr=0,hu=null,kl=-1,xl=0;function Le(){return(B&6)!==0?ce():kl!==-1?kl:kl=ce()}function Ht(e){return(e.mode&1)===0?1:(B&2)!==0&&ke!==0?ke&-ke:rf.transition!==null?(xl===0&&(xl=io()),xl):(e=G,e!==0||(e=window.event,e=e===void 0?16:mo(e.type)),e)}function ot(e,t,n,r){if(50<gr)throw gr=0,hu=null,Error(h(185));Hn(e,n,r),((B&2)===0||e!==ge)&&(e===ge&&((B&2)===0&&(yl|=n),ve===4&&Bt(e,ke)),De(e,r),n===1&&B===0&&(t.mode&1)===0&&(Rn=ce()+500,Zr&&Dt()))}function De(e,t){var n=e.callbackNode;rc(e,t);var r=Tr(e,e===ge?ke:0);if(r===0)n!==null&&no(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(n!=null&&no(n),t===1)e.tag===0?nf(ma.bind(null,e)):es(ma.bind(null,e)),qc(function(){(B&6)===0&&Dt()}),n=null;else{switch(uo(r)){case 1:n=Yl;break;case 4:n=ro;break;case 16:n=jr;break;case 536870912:n=lo;break;default:n=jr}n=Ea(n,ha.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function ha(e,t){if(kl=-1,xl=0,(B&6)!==0)throw Error(h(327));var n=e.callbackNode;if(In()&&e.callbackNode!==n)return null;var r=Tr(e,e===ge?ke:0);if(r===0)return null;if((r&30)!==0||(r&e.expiredLanes)!==0||t)t=El(e,r);else{t=r;var l=B;B|=2;var i=ya();(ge!==e||ke!==t)&&(Ct=null,Rn=ce()+500,rn(e,t));do try{Nf();break}catch(o){va(e,o)}while(!0);Ri(),vl.current=i,B=l,de!==null?t=0:(ge=null,ke=0,t=ve)}if(t!==0){if(t===2&&(l=Xl(e),l!==0&&(r=l,t=mu(e,l))),t===1)throw n=vr,rn(e,0),Bt(e,r),De(e,ce()),n;if(t===6)Bt(e,r);else{if(l=e.current.alternate,(r&30)===0&&!xf(l)&&(t=El(e,r),t===2&&(i=Xl(e),i!==0&&(r=i,t=mu(e,i))),t===1))throw n=vr,rn(e,0),Bt(e,r),De(e,ce()),n;switch(e.finishedWork=l,e.finishedLanes=r,t){case 0:case 1:throw Error(h(345));case 2:ln(e,Oe,Ct);break;case 3:if(Bt(e,r),(r&130023424)===r&&(t=du+500-ce(),10<t)){if(Tr(e,0)!==0)break;if(l=e.suspendedLanes,(l&r)!==r){Le(),e.pingedLanes|=e.suspendedLanes&l;break}e.timeoutHandle=ki(ln.bind(null,e,Oe,Ct),t);break}ln(e,Oe,Ct);break;case 4:if(Bt(e,r),(r&4194240)===r)break;for(t=e.eventTimes,l=-1;0<r;){var u=31-tt(r);i=1<<u,u=t[u],u>l&&(l=u),r&=~i}if(r=l,r=ce()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*kf(r/1960))-r,10<r){e.timeoutHandle=ki(ln.bind(null,e,Oe,Ct),r);break}ln(e,Oe,Ct);break;case 5:ln(e,Oe,Ct);break;default:throw Error(h(329))}}}return De(e,ce()),e.callbackNode===n?ha.bind(null,e):null}function mu(e,t){var n=yr;return e.current.memoizedState.isDehydrated&&(rn(e,t).flags|=256),e=El(e,t),e!==2&&(t=Oe,Oe=n,t!==null&&vu(t)),e}function vu(e){Oe===null?Oe=e:Oe.push.apply(Oe,e)}function xf(e){for(var t=e;;){if(t.flags&16384){var n=t.updateQueue;if(n!==null&&(n=n.stores,n!==null))for(var r=0;r<n.length;r++){var l=n[r],i=l.getSnapshot;l=l.value;try{if(!nt(i(),l))return!1}catch{return!1}}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Bt(e,t){for(t&=~fu,t&=~yl,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-tt(t),r=1<<n;e[n]=-1,t&=~r}}function ma(e){if((B&6)!==0)throw Error(h(327));In();var t=Tr(e,0);if((t&1)===0)return De(e,ce()),null;var n=El(e,t);if(e.tag!==0&&n===2){var r=Xl(e);r!==0&&(t=r,n=mu(e,r))}if(n===1)throw n=vr,rn(e,0),Bt(e,t),De(e,ce()),n;if(n===6)throw Error(h(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,ln(e,Oe,Ct),De(e,ce()),null}function yu(e,t){var n=B;B|=1;try{return e(t)}finally{B=n,B===0&&(Rn=ce()+500,Zr&&Dt())}}function nn(e){$t!==null&&$t.tag===0&&(B&6)===0&&In();var t=B;B|=1;var n=Ze.transition,r=G;try{if(Ze.transition=null,G=1,e)return e()}finally{G=r,Ze.transition=n,B=t,(B&6)===0&&Dt()}}function gu(){Be=Tn.current,te(Tn)}function rn(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(n!==-1&&(e.timeoutHandle=-1,Jc(n)),de!==null)for(n=de.return;n!==null;){var r=n;switch(ji(r),r.tag){case 1:r=r.type.childContextTypes,r!=null&&Xr();break;case 3:Pn(),te(Re),te(Ee),Vi();break;case 5:Ui(r);break;case 4:Pn();break;case 13:te(ue);break;case 19:te(ue);break;case 10:Ii(r.type._context);break;case 22:case 23:gu()}n=n.return}if(ge=e,de=e=Wt(e.current,null),ke=Be=t,ve=0,vr=null,fu=yl=tn=0,Oe=yr=null,qt!==null){for(t=0;t<qt.length;t++)if(n=qt[t],r=n.interleaved,r!==null){n.interleaved=null;var l=r.next,i=n.pending;if(i!==null){var u=i.next;i.next=l,r.next=u}n.pending=r}qt=null}return e}function va(e,t){do{var n=de;try{if(Ri(),ul.current=cl,ol){for(var r=oe.memoizedState;r!==null;){var l=r.queue;l!==null&&(l.pending=null),r=r.next}ol=!1}if(en=0,ye=me=oe=null,cr=!1,fr=0,cu.current=null,n===null||n.return===null){ve=1,vr=t,de=null;break}e:{var i=e,u=n.return,o=n,s=t;if(t=ke,o.flags|=32768,s!==null&&typeof s=="object"&&typeof s.then=="function"){var m=s,w=o,S=w.tag;if((w.mode&1)===0&&(S===0||S===11||S===15)){var y=w.alternate;y?(w.updateQueue=y.updateQueue,w.memoizedState=y.memoizedState,w.lanes=y.lanes):(w.updateQueue=null,w.memoizedState=null)}var N=$s(u);if(N!==null){N.flags&=-257,Hs(N,u,o,i,t),N.mode&1&&Vs(i,m,t),t=N,s=m;var j=t.updateQueue;if(j===null){var P=new Set;P.add(s),t.updateQueue=P}else j.add(s);break e}else{if((t&1)===0){Vs(i,m,t),wu();break e}s=Error(h(426))}}else if(ie&&o.mode&1){var fe=$s(u);if(fe!==null){(fe.flags&65536)===0&&(fe.flags|=256),Hs(fe,u,o,i,t),zi(Ln(s,o));break e}}i=s=Ln(s,o),ve!==4&&(ve=2),yr===null?yr=[i]:yr.push(i),i=u;do{switch(i.tag){case 3:i.flags|=65536,t&=-t,i.lanes|=t;var f=Us(i,s,t);fs(i,f);break e;case 1:o=s;var a=i.type,d=i.stateNode;if((i.flags&128)===0&&(typeof a.getDerivedStateFromError=="function"||d!==null&&typeof d.componentDidCatch=="function"&&(Vt===null||!Vt.has(d)))){i.flags|=65536,t&=-t,i.lanes|=t;var k=As(i,o,t);fs(i,k);break e}}i=i.return}while(i!==null)}wa(n)}catch(L){t=L,de===n&&n!==null&&(de=n=n.return);continue}break}while(!0)}function ya(){var e=vl.current;return vl.current=cl,e===null?cl:e}function wu(){(ve===0||ve===3||ve===2)&&(ve=4),ge===null||(tn&268435455)===0&&(yl&268435455)===0||Bt(ge,ke)}function El(e,t){var n=B;B|=2;var r=ya();(ge!==e||ke!==t)&&(Ct=null,rn(e,t));do try{Ef();break}catch(l){va(e,l)}while(!0);if(Ri(),B=n,vl.current=r,de!==null)throw Error(h(261));return ge=null,ke=0,ve}function Ef(){for(;de!==null;)ga(de)}function Nf(){for(;de!==null&&!Xa();)ga(de)}function ga(e){var t=xa(e.alternate,e,Be);e.memoizedProps=e.pendingProps,t===null?wa(e):de=t,cu.current=null}function wa(e){var t=e;do{var n=t.alternate;if(e=t.return,(t.flags&32768)===0){if(n=vf(n,t,Be),n!==null){de=n;return}}else{if(n=yf(n,t),n!==null){n.flags&=32767,de=n;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{ve=6,de=null;return}}if(t=t.sibling,t!==null){de=t;return}de=t=e}while(t!==null);ve===0&&(ve=5)}function ln(e,t,n){var r=G,l=Ze.transition;try{Ze.transition=null,G=1,Cf(e,t,n,r)}finally{Ze.transition=l,G=r}return null}function Cf(e,t,n,r){do In();while($t!==null);if((B&6)!==0)throw Error(h(327));n=e.finishedWork;var l=e.finishedLanes;if(n===null)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(h(177));e.callbackNode=null,e.callbackPriority=0;var i=n.lanes|n.childLanes;if(lc(e,i),e===ge&&(de=ge=null,ke=0),(n.subtreeFlags&2064)===0&&(n.flags&2064)===0||wl||(wl=!0,Ea(jr,function(){return In(),null})),i=(n.flags&15990)!==0,(n.subtreeFlags&15990)!==0||i){i=Ze.transition,Ze.transition=null;var u=G;G=1;var o=B;B|=4,cu.current=null,wf(e,n),aa(n,e),Wc(wi),Mr=!!gi,wi=gi=null,e.current=n,Sf(n),Ga(),B=o,G=u,Ze.transition=i}else e.current=n;if(wl&&(wl=!1,$t=e,Sl=l),i=e.pendingLanes,i===0&&(Vt=null),qa(n.stateNode),De(e,ce()),t!==null)for(r=e.onRecoverableError,n=0;n<t.length;n++)l=t[n],r(l.value,{componentStack:l.stack,digest:l.digest});if(gl)throw gl=!1,e=pu,pu=null,e;return(Sl&1)!==0&&e.tag!==0&&In(),i=e.pendingLanes,(i&1)!==0?e===hu?gr++:(gr=0,hu=e):gr=0,Dt(),null}function In(){if($t!==null){var e=uo(Sl),t=Ze.transition,n=G;try{if(Ze.transition=null,G=16>e?16:e,$t===null)var r=!1;else{if(e=$t,$t=null,Sl=0,(B&6)!==0)throw Error(h(331));var l=B;for(B|=4,C=e.current;C!==null;){var i=C,u=i.child;if((C.flags&16)!==0){var o=i.deletions;if(o!==null){for(var s=0;s<o.length;s++){var m=o[s];for(C=m;C!==null;){var w=C;switch(w.tag){case 0:case 11:case 15:mr(8,w,i)}var S=w.child;if(S!==null)S.return=w,C=S;else for(;C!==null;){w=C;var y=w.sibling,N=w.return;if(la(w),w===m){C=null;break}if(y!==null){y.return=N,C=y;break}C=N}}}var j=i.alternate;if(j!==null){var P=j.child;if(P!==null){j.child=null;do{var fe=P.sibling;P.sibling=null,P=fe}while(P!==null)}}C=i}}if((i.subtreeFlags&2064)!==0&&u!==null)u.return=i,C=u;else e:for(;C!==null;){if(i=C,(i.flags&2048)!==0)switch(i.tag){case 0:case 11:case 15:mr(9,i,i.return)}var f=i.sibling;if(f!==null){f.return=i.return,C=f;break e}C=i.return}}var a=e.current;for(C=a;C!==null;){u=C;var d=u.child;if((u.subtreeFlags&2064)!==0&&d!==null)d.return=u,C=d;else e:for(u=a;C!==null;){if(o=C,(o.flags&2048)!==0)try{switch(o.tag){case 0:case 11:case 15:ml(9,o)}}catch(L){ae(o,o.return,L)}if(o===u){C=null;break e}var k=o.sibling;if(k!==null){k.return=o.return,C=k;break e}C=o.return}}if(B=l,Dt(),ft&&typeof ft.onPostCommitFiberRoot=="function")try{ft.onPostCommitFiberRoot(Pr,e)}catch{}r=!0}return r}finally{G=n,Ze.transition=t}}return!1}function Sa(e,t,n){t=Ln(n,t),t=Us(e,t,1),e=Ut(e,t,1),t=Le(),e!==null&&(Hn(e,1,t),De(e,t))}function ae(e,t,n){if(e.tag===3)Sa(e,e,n);else for(;t!==null;){if(t.tag===3){Sa(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof r.componentDidCatch=="function"&&(Vt===null||!Vt.has(r))){e=Ln(n,e),e=As(t,e,1),t=Ut(t,e,1),e=Le(),t!==null&&(Hn(t,1,e),De(t,e));break}}t=t.return}}function _f(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),t=Le(),e.pingedLanes|=e.suspendedLanes&n,ge===e&&(ke&n)===n&&(ve===4||ve===3&&(ke&130023424)===ke&&500>ce()-du?rn(e,0):fu|=n),De(e,t)}function ka(e,t){t===0&&((e.mode&1)===0?t=1:(t=zr,zr<<=1,(zr&130023424)===0&&(zr=4194304)));var n=Le();e=xt(e,t),e!==null&&(Hn(e,t,n),De(e,n))}function jf(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),ka(e,n)}function Pf(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(h(314))}r!==null&&r.delete(t),ka(e,n)}var xa;xa=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Re.current)Me=!0;else{if((e.lanes&n)===0&&(t.flags&128)===0)return Me=!1,mf(e,t,n);Me=(e.flags&131072)!==0}else Me=!1,ie&&(t.flags&1048576)!==0&&ts(t,qr,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;pl(e,t),e=t.pendingProps;var l=kn(t,Ee.current);jn(t,n),l=Bi(null,t,r,e,l,n);var i=Wi();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Ie(r)?(i=!0,Gr(t)):i=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,Di(t),l.updater=fl,t.stateNode=l,l._reactInternals=t,Zi(t,r,e,n),t=eu(null,t,r,!0,i,n)):(t.tag=0,ie&&i&&_i(t),Pe(null,t,l,n),t=t.child),t;case 16:r=t.elementType;e:{switch(pl(e,t),e=t.pendingProps,l=r._init,r=l(r._payload),t.type=r,l=t.tag=zf(r),e=lt(r,e),l){case 0:t=bi(null,t,r,e,n);break e;case 1:t=Xs(null,t,r,e,n);break e;case 11:t=Bs(null,t,r,e,n);break e;case 14:t=Ws(null,t,r,lt(r.type,e),n);break e}throw Error(h(306,r,""))}return t;case 0:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:lt(r,l),bi(e,t,r,l,n);case 1:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:lt(r,l),Xs(e,t,r,l,n);case 3:e:{if(Gs(t),e===null)throw Error(h(387));r=t.pendingProps,i=t.memoizedState,l=i.element,cs(e,t),ll(t,r,null,n);var u=t.memoizedState;if(r=u.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:u.cache,pendingSuspenseBoundaries:u.pendingSuspenseBoundaries,transitions:u.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){l=Ln(Error(h(423)),t),t=Zs(e,t,r,n,l);break e}else if(r!==l){l=Ln(Error(h(424)),t),t=Zs(e,t,r,n,l);break e}else for(He=It(t.stateNode.containerInfo.firstChild),$e=t,ie=!0,rt=null,n=ss(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Nn(),r===l){t=Nt(e,t,n);break e}Pe(e,t,r,n)}t=t.child}return t;case 5:return ps(t),e===null&&Li(t),r=t.type,l=t.pendingProps,i=e!==null?e.memoizedProps:null,u=l.children,Si(r,l)?u=null:i!==null&&Si(r,i)&&(t.flags|=32),Ys(e,t),Pe(e,t,u,n),t.child;case 6:return e===null&&Li(t),null;case 13:return Js(e,t,n);case 4:return Fi(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Cn(t,null,r,n):Pe(e,t,r,n),t.child;case 11:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:lt(r,l),Bs(e,t,r,l,n);case 7:return Pe(e,t,t.pendingProps,n),t.child;case 8:return Pe(e,t,t.pendingProps.children,n),t.child;case 12:return Pe(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,l=t.pendingProps,i=t.memoizedProps,u=l.value,q(tl,r._currentValue),r._currentValue=u,i!==null)if(nt(i.value,u)){if(i.children===l.children&&!Re.current){t=Nt(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var o=i.dependencies;if(o!==null){u=i.child;for(var s=o.firstContext;s!==null;){if(s.context===r){if(i.tag===1){s=Et(-1,n&-n),s.tag=2;var m=i.updateQueue;if(m!==null){m=m.shared;var w=m.pending;w===null?s.next=s:(s.next=w.next,w.next=s),m.pending=s}}i.lanes|=n,s=i.alternate,s!==null&&(s.lanes|=n),Mi(i.return,n,t),o.lanes|=n;break}s=s.next}}else if(i.tag===10)u=i.type===t.type?null:i.child;else if(i.tag===18){if(u=i.return,u===null)throw Error(h(341));u.lanes|=n,o=u.alternate,o!==null&&(o.lanes|=n),Mi(u,n,t),u=i.sibling}else u=i.child;if(u!==null)u.return=i;else for(u=i;u!==null;){if(u===t){u=null;break}if(i=u.sibling,i!==null){i.return=u.return,u=i;break}u=u.return}i=u}Pe(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,r=t.pendingProps.children,jn(t,n),l=Xe(l),r=r(l),t.flags|=1,Pe(e,t,r,n),t.child;case 14:return r=t.type,l=lt(r,t.pendingProps),l=lt(r.type,l),Ws(e,t,r,l,n);case 15:return Qs(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:lt(r,l),pl(e,t),t.tag=1,Ie(r)?(e=!0,Gr(t)):e=!1,jn(t,n),Ds(t,r,l),Zi(t,r,l,n),eu(null,t,r,!0,e,n);case 19:return bs(e,t,n);case 22:return Ks(e,t,n)}throw Error(h(156,t.tag))};function Ea(e,t){return to(e,t)}function Lf(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Je(e,t,n,r){return new Lf(e,t,n,r)}function Su(e){return e=e.prototype,!(!e||!e.isReactComponent)}function zf(e){if(typeof e=="function")return Su(e)?1:0;if(e!=null){if(e=e.$$typeof,e===at)return 11;if(e===ct)return 14}return 2}function Wt(e,t){var n=e.alternate;return n===null?(n=Je(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Nl(e,t,n,r,l,i){var u=2;if(r=e,typeof e=="function")Su(e)&&(u=1);else if(typeof e=="string")u=5;else e:switch(e){case ze:return un(n.children,l,i,t);case Qe:u=8,l|=8;break;case _t:return e=Je(12,n,t,l|2),e.elementType=_t,e.lanes=i,e;case Ue:return e=Je(13,n,t,l),e.elementType=Ue,e.lanes=i,e;case et:return e=Je(19,n,t,l),e.elementType=et,e.lanes=i,e;case se:return Cl(n,l,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case yt:u=10;break e;case Kt:u=9;break e;case at:u=11;break e;case ct:u=14;break e;case Te:u=16,r=null;break e}throw Error(h(130,e==null?e:typeof e,""))}return t=Je(u,n,t,l),t.elementType=e,t.type=r,t.lanes=i,t}function un(e,t,n,r){return e=Je(7,e,r,t),e.lanes=n,e}function Cl(e,t,n,r){return e=Je(22,e,r,t),e.elementType=se,e.lanes=n,e.stateNode={isHidden:!1},e}function ku(e,t,n){return e=Je(6,e,null,t),e.lanes=n,e}function xu(e,t,n){return t=Je(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Tf(e,t,n,r,l){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Gl(0),this.expirationTimes=Gl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Gl(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function Eu(e,t,n,r,l,i,u,o,s){return e=new Tf(e,t,n,o,s),t===1?(t=1,i===!0&&(t|=8)):t=0,i=Je(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Di(i),e}function Rf(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:je,key:r==null?null:""+r,children:e,containerInfo:t,implementation:n}}function Na(e){if(!e)return Ot;e=e._reactInternals;e:{if(Yt(e)!==e||e.tag!==1)throw Error(h(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Ie(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(t!==null);throw Error(h(171))}if(e.tag===1){var n=e.type;if(Ie(n))return qo(e,n,t)}return t}function Ca(e,t,n,r,l,i,u,o,s){return e=Eu(n,r,!0,e,l,i,u,o,s),e.context=Na(null),n=e.current,r=Le(),l=Ht(n),i=Et(r,l),i.callback=t??null,Ut(n,i,l),e.current.lanes=l,Hn(e,l,r),De(e,r),e}function _l(e,t,n,r){var l=t.current,i=Le(),u=Ht(l);return n=Na(n),t.context===null?t.context=n:t.pendingContext=n,t=Et(i,u),t.payload={element:e},r=r===void 0?null:r,r!==null&&(t.callback=r),e=Ut(l,t,u),e!==null&&(ot(e,l,u,i),rl(e,l,u)),u}function jl(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function _a(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function Nu(e,t){_a(e,t),(e=e.alternate)&&_a(e,t)}function If(){return null}var ja=typeof reportError=="function"?reportError:function(e){console.error(e)};function Cu(e){this._internalRoot=e}Pl.prototype.render=Cu.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(h(409));_l(e,t,null,null)},Pl.prototype.unmount=Cu.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;nn(function(){_l(null,e,null,null)}),t[gt]=null}};function Pl(e){this._internalRoot=e}Pl.prototype.unstable_scheduleHydration=function(e){if(e){var t=ao();e={blockedOn:null,target:e,priority:t};for(var n=0;n<zt.length&&t!==0&&t<zt[n].priority;n++);zt.splice(n,0,e),n===0&&po(e)}};function _u(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function Ll(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function Pa(){}function Mf(e,t,n,r,l){if(l){if(typeof r=="function"){var i=r;r=function(){var m=jl(u);i.call(m)}}var u=Ca(t,r,e,0,null,!1,!1,"",Pa);return e._reactRootContainer=u,e[gt]=u.current,nr(e.nodeType===8?e.parentNode:e),nn(),u}for(;l=e.lastChild;)e.removeChild(l);if(typeof r=="function"){var o=r;r=function(){var m=jl(s);o.call(m)}}var s=Eu(e,0,!1,null,null,!1,!1,"",Pa);return e._reactRootContainer=s,e[gt]=s.current,nr(e.nodeType===8?e.parentNode:e),nn(function(){_l(t,s,n,r)}),s}function zl(e,t,n,r,l){var i=n._reactRootContainer;if(i){var u=i;if(typeof l=="function"){var o=l;l=function(){var s=jl(u);o.call(s)}}_l(t,u,e,l)}else u=Mf(n,t,e,l,r);return jl(u)}oo=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=$n(t.pendingLanes);n!==0&&(Zl(t,n|1),De(t,ce()),(B&6)===0&&(Rn=ce()+500,Dt()))}break;case 13:nn(function(){var r=xt(e,1);if(r!==null){var l=Le();ot(r,e,1,l)}}),Nu(e,1)}},Jl=function(e){if(e.tag===13){var t=xt(e,134217728);if(t!==null){var n=Le();ot(t,e,134217728,n)}Nu(e,134217728)}},so=function(e){if(e.tag===13){var t=Ht(e),n=xt(e,t);if(n!==null){var r=Le();ot(n,e,t,r)}Nu(e,t)}},ao=function(){return G},co=function(e,t){var n=G;try{return G=e,t()}finally{G=n}},Bl=function(e,t,n){switch(t){case"input":if(Ol(e,n),t=n.name,n.type==="radio"&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var l=Yr(r);if(!l)throw Error(h(90));Mu(r),Ol(r,l)}}}break;case"textarea":Au(e,n);break;case"select":t=n.value,t!=null&&an(e,!!n.multiple,t,!1)}},Xu=yu,Gu=nn;var Of={usingClientEntryPoint:!1,Events:[ir,wn,Yr,Ku,Yu,yu]},wr={findFiberByHostInstance:Xt,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},Df={bundleType:wr.bundleType,version:wr.version,rendererPackageName:wr.rendererPackageName,rendererConfig:wr.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:xe.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=bu(e),e===null?null:e.stateNode},findFiberByHostInstance:wr.findFiberByHostInstance||If,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Tl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Tl.isDisabled&&Tl.supportsFiber)try{Pr=Tl.inject(Df),ft=Tl}catch{}}return Fe.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Of,Fe.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!_u(t))throw Error(h(200));return Rf(e,t,null,n)},Fe.createRoot=function(e,t){if(!_u(e))throw Error(h(299));var n=!1,r="",l=ja;return t!=null&&(t.unstable_strictMode===!0&&(n=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onRecoverableError!==void 0&&(l=t.onRecoverableError)),t=Eu(e,1,!1,null,null,n,!1,r,l),e[gt]=t.current,nr(e.nodeType===8?e.parentNode:e),new Cu(t)},Fe.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(h(188)):(e=Object.keys(e).join(","),Error(h(268,e)));return e=bu(t),e=e===null?null:e.stateNode,e},Fe.flushSync=function(e){return nn(e)},Fe.hydrate=function(e,t,n){if(!Ll(t))throw Error(h(200));return zl(null,e,t,!0,n)},Fe.hydrateRoot=function(e,t,n){if(!_u(e))throw Error(h(405));var r=n!=null&&n.hydratedSources||null,l=!1,i="",u=ja;if(n!=null&&(n.unstable_strictMode===!0&&(l=!0),n.identifierPrefix!==void 0&&(i=n.identifierPrefix),n.onRecoverableError!==void 0&&(u=n.onRecoverableError)),t=Ca(t,null,e,1,n??null,l,!1,i,u),e[gt]=t.current,nr(e),r)for(e=0;e<r.length;e++)n=r[e],l=n._getVersion,l=l(n._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[n,l]:t.mutableSourceEagerHydrationData.push(n,l);return new Pl(t)},Fe.render=function(e,t,n){if(!Ll(t))throw Error(h(200));return zl(null,e,t,!1,n)},Fe.unmountComponentAtNode=function(e){if(!Ll(e))throw Error(h(40));return e._reactRootContainer?(nn(function(){zl(null,null,e,!1,function(){e._reactRootContainer=null,e[gt]=null})}),!0):!1},Fe.unstable_batchedUpdates=yu,Fe.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Ll(n))throw Error(h(200));if(e==null||e._reactInternals===void 0)throw Error(h(38));return zl(e,t,n,!1,r)},Fe.version="18.3.1-next-f1338f8080-20240426",Fe}var Da;function Wf(){if(Da)return Lu.exports;Da=1;function v(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(v)}catch(x){console.error(x)}}return v(),Lu.exports=Bf(),Lu.exports}var Fa;function Qf(){if(Fa)return Rl;Fa=1;var v=Wf();return Rl.createRoot=v.createRoot,Rl.hydrateRoot=v.hydrateRoot,Rl}var Kf=Qf();const Ua={AV:"Attack Vector",AC:"Attack Complexity",PR:"Privileges Required",UI:"User Interaction",S:"Scope",C:"Confidentiality",I:"Integrity",A:"Availability",AT:"Attack Requirements",VC:"Confidentiality (Vuln.)",VI:"Integrity (Vuln.)",VA:"Availability (Vuln.)",SC:"Confidentiality (Subseq.)",SI:"Integrity (Subseq.)",SA:"Availability (Subseq.)"},on={H:"High",L:"Low",N:"None"},Aa={S:"Safety",H:"High",L:"Low",N:"None"},Yf={AV:{N:"Network",A:"Adjacent",L:"Local",P:"Physical"},AC:{L:"Low",H:"High"},AT:{N:"None",P:"Present"},PR:{N:"None",L:"Low",H:"High"},UI:{N:"None",R:"Required",P:"Passive",A:"Active"},S:{U:"Unchanged",C:"Changed"},C:on,I:on,A:on,VC:on,VI:on,VA:on,SC:on,SI:Aa,SA:Aa},Xf={AV:["N"],AC:["L"],AT:["N"],PR:["N"],UI:["N"],S:["C"],C:["H"],I:["H"],A:["H"],VC:["H"],VI:["H"],VA:["H"],SC:["H","S"],SI:["H","S"],SA:["H","S"]};function Gf(v){if(!v)return[];const x=[];for(const h of v.split("/").slice(1)){const[z,I]=h.split(":");if(!z||!I||!Ua[z])continue;const M=Yf[z]?.[I]??I,F=Xf[z]?.includes(I)??!1;x.push({key:z,label:Ua[z],code:I,value:M,hot:F})}return x}const Il=["critical","high","medium","low","unknown"],sn={critical:"var(--crit)",high:"var(--high)",medium:"var(--med)",low:"var(--low)",unknown:"var(--unknown)",none:"var(--brand)"};function Zf({result:v}){const[x,h]=Mn.useState(""),[z,I]=Mn.useState(new Set),[M,F]=Mn.useState("all"),[V,Y]=Mn.useState(v.findings[0]?.id??null),pe=Mn.useMemo(()=>{const H=x.trim().toLowerCase();return v.findings.filter(ne=>!(z.size&&!z.has(ne.severity.level)||M==="prod"&&ne.scope==="dev"||H&&!`${ne.packageName} ${ne.id} ${ne.summary} ${ne.aliases.join(" ")}`.toLowerCase().includes(H)))},[v.findings,x,z,M]),he=pe.find(H=>H.id===V)??pe[0]??null,b=H=>{const ne=new Set(z);ne.has(H)?ne.delete(H):ne.add(H),I(ne)};return p.jsxs("div",{className:"shell",children:[p.jsx(Jf,{result:v}),p.jsx(qf,{result:v}),v.findings.length===0?p.jsx(rd,{}):p.jsxs(p.Fragment,{children:[p.jsx(bf,{query:x,setQuery:h,active:z,toggle:b,scope:M,setScope:F,summary:v.summary}),p.jsxs("div",{className:"workspace",children:[p.jsx(ed,{findings:pe,selectedId:he?.id??null,onSelect:Y}),p.jsx(td,{finding:he,manager:v.target.manager})]})]}),p.jsx(nd,{warnings:v.database.warnings}),p.jsx(ld,{result:v})]})}function Jf({result:v}){const{target:x,stats:h,database:z}=v,I=z.ageHours;return p.jsxs("header",{className:"masthead",children:[p.jsxs("div",{className:"brand",children:[p.jsx("span",{className:"glyph",children:p.jsx(Va,{})}),p.jsxs("div",{children:[p.jsxs("div",{className:"wordmark",children:["lock",p.jsx("b",{children:"hawk"})]}),p.jsx("div",{className:"tagline",children:"dependency vulnerability report"})]})]}),p.jsxs("div",{className:"meta-grid",children:[p.jsx(kr,{k:"Project",v:`${x.root.name}${x.root.version?`@${x.root.version}`:""}`}),p.jsx(kr,{k:"Manager",v:x.manager}),p.jsx(kr,{k:"Packages",v:String(h.totalPackages)}),p.jsx(kr,{k:"Direct",v:String(h.directDependencies)}),p.jsx(kr,{k:"Database",v:`${z.source}${I!==void 0?` Β· ${I}h`:""}`,tone:z.stale?"warn":"ok"})]})]})}function kr({k:v,v:x,tone:h}){return p.jsxs("div",{className:"meta-cell",children:[p.jsx("div",{className:"k",children:v}),p.jsx("div",{className:`v${h?` ${h}`:""}`,children:x})]})}function qf({result:v}){const{summary:x}=v,h=Il.find(M=>x[M]>0)??"none",z=sn[h],I=x.total===0?"CLEAR":h==="critical"||h==="high"?"AT RISK":"REVIEW";return p.jsxs("section",{className:"threat",style:sd(h),children:[p.jsxs("div",{className:"verdict",style:{"--accent":z,"--accent-glow":Iu(h)},children:[p.jsx("span",{className:"pulse"}),p.jsx("div",{className:"label",children:"Threat assessment"}),p.jsx("div",{className:"level",children:I}),p.jsx("div",{className:"sub",children:x.total===0?"No known vulnerabilities in the dependency tree.":`${x.total} ${x.total===1?"finding":"findings"} across ${x.vulnerablePackages} ${x.vulnerablePackages===1?"package":"packages"} Β· ${x.fixable} fixable`})]}),p.jsxs("div",{className:"gauges",children:[Il.map(M=>p.jsxs("div",{className:`gauge${x[M]===0?" zero":""}`,style:{"--c":sn[M]},children:[p.jsx("div",{className:"n",children:x[M]}),p.jsx("div",{className:"t",children:M})]},M)),p.jsxs("div",{className:"bar",children:[Il.map(M=>x[M]>0?p.jsx("span",{style:{flexGrow:x[M],background:sn[M]}},M):null),x.total===0?p.jsx("span",{style:{flexGrow:1,background:"var(--brand)"}}):null]})]})]})}function bf({query:v,setQuery:x,active:h,toggle:z,scope:I,setScope:M,summary:F}){return p.jsxs("div",{className:"toolbar",children:[p.jsxs("label",{className:"search",children:[p.jsx(ad,{}),p.jsx("input",{value:v,onChange:V=>x(V.target.value),placeholder:"filter by package, advisory, summary…",spellCheck:!1})]}),p.jsx("div",{className:"chips",children:Il.map(V=>p.jsxs("button",{type:"button",className:`chip${h.has(V)?" on":""}`,style:{"--cc":sn[V]},onClick:()=>z(V),children:[p.jsx("span",{className:"dot"}),V," ",F[V]]},V))}),p.jsxs("div",{className:"scope-toggle",children:[p.jsx("button",{type:"button",className:I==="all"?"on":"",onClick:()=>M("all"),children:"all"}),p.jsx("button",{type:"button",className:I==="prod"?"on":"",onClick:()=>M("prod"),children:"prod only"})]})]})}function ed({findings:v,selectedId:x,onSelect:h}){return p.jsxs("div",{className:"list",children:[p.jsxs("div",{className:"list-head",children:[p.jsx("span",{children:"Severity"}),p.jsx("span",{children:"Package"}),p.jsx("span",{children:"Advisory"}),p.jsx("span",{style:{textAlign:"right"},children:"Fix"})]}),v.length===0?p.jsx("div",{className:"empty",children:"No findings match the current filters."}):v.map((z,I)=>p.jsxs("div",{className:`row${z.id===x?" sel":""}`,style:{"--c":sn[z.severity.level],animationDelay:`${Math.min(I,12)*.025}s`},onClick:()=>h(z.id),children:[p.jsxs("div",{children:[p.jsxs("span",{className:"sev-tag",children:[p.jsx("span",{className:"blip"}),z.severity.level]}),z.severity.score!==void 0?p.jsx("div",{className:"sev-score",children:z.severity.score.toFixed(1)}):null]}),p.jsxs("div",{className:"pkg",children:[p.jsx("div",{className:"name",children:z.packageName}),p.jsxs("div",{className:"ver",children:[z.version,z.direct?" Β· direct":""]})]}),p.jsxs("div",{children:[p.jsx("div",{className:"adv",children:z.id}),p.jsx("span",{className:"tagline-scope",children:z.scope})]}),p.jsx("div",{className:`fix ${z.fixedVersions[0]?"has":"none"}`,children:z.fixedVersions[0]??"β€”"})]},z.id))]})}function td({finding:v,manager:x}){if(!v)return p.jsx("aside",{className:"detail",children:p.jsxs("div",{className:"detail-empty",children:[p.jsx(Va,{}),p.jsx("div",{children:"Select a finding to inspect its CVSS breakdown, dependency path and fix."})]})});const h=v.severity,z=sn[h.level],I=Gf(h.vector),M=v.dependencyPaths[0]??[`${v.packageName}@${v.version}`];return p.jsxs("aside",{className:"detail",style:{"--accent":z,"--accent-glow":Iu(h.level)},children:[p.jsxs("div",{className:"detail-top",children:[p.jsxs("span",{className:"sev-tag",style:{"--c":z},children:[p.jsx("span",{className:"blip"}),h.level,h.score!==void 0?` Β· ${h.score.toFixed(1)}`:""]}),p.jsx("h2",{children:v.summary}),p.jsxs("div",{className:"pkgline",children:[p.jsx("b",{children:v.packageName}),"@",v.version," Β· ",v.scope,v.direct?" Β· direct":" Β· transitive"]})]}),p.jsxs("div",{className:"detail-body",children:[p.jsx("div",{className:"sec id-chips",children:[v.id,...v.aliases].map(F=>p.jsx("span",{className:"idc",children:F},F))}),v.details||v.summary?p.jsxs("div",{className:"sec",children:[p.jsx("h3",{children:"Description"}),p.jsx("p",{className:"desc",children:v.details??v.summary})]}):null,h.source==="cvss"&&h.score!==void 0?p.jsxs("div",{className:"sec",children:[p.jsxs("h3",{children:["CVSS ",h.cvssVersion?.replace("CVSS:","")??""]}),p.jsxs("div",{className:"score-readout",children:[p.jsx("span",{className:"big",children:h.score.toFixed(1)}),p.jsx("span",{className:"of",children:"/ 10"}),p.jsx("span",{className:"src",children:h.cvssVersion??"cvss"})]}),I.length?p.jsx("div",{className:"cvss-grid",children:I.map(F=>p.jsxs("div",{className:`cvss-metric${F.hot?" hot":""}`,children:[p.jsx("div",{className:"ml",children:F.label}),p.jsx("div",{className:"mv",children:F.value})]},F.key))}):null,h.vector?p.jsx("div",{className:"vector",children:h.vector}):null]}):p.jsxs("div",{className:"sec",children:[p.jsx("h3",{children:"Severity"}),p.jsxs("p",{className:"desc",children:["Rated ",p.jsx("b",{style:{color:z},children:h.level})," from the advisory database (no CVSS vector provided)."]})]}),p.jsxs("div",{className:"sec",children:[p.jsx("h3",{children:"Dependency path"}),p.jsx("div",{className:"path",children:M.map((F,V)=>p.jsxs("span",{style:{display:"contents"},children:[p.jsx("span",{className:`node${V===0?" root":""}${V===M.length-1?" leaf":""}`,children:F}),V<M.length-1?p.jsx("span",{className:"arrow",children:"β€Ί"}):null]},`${F}-${V}`))})]}),p.jsxs("div",{className:"sec",children:[p.jsx("h3",{children:"Mitigation"}),p.jsxs("div",{className:`fixbox${v.fixedVersions.length?"":" nofix"}`,children:[v.fixedVersions.length?p.jsxs("div",{className:"fixv",children:["Fixed in ",v.fixedVersions.join(", ")]}):null,p.jsx("div",{className:"rec",dangerouslySetInnerHTML:{__html:id(v)}})]})]}),v.references.length?p.jsxs("div",{className:"sec",children:[p.jsx("h3",{children:"References"}),p.jsx("div",{className:"refs",children:v.references.map(F=>{const V=od(F);return V?p.jsx("a",{href:V,target:"_blank",rel:"noopener noreferrer",children:F},F):p.jsx("span",{children:F},F)})})]}):null]})]})}function nd({warnings:v}){return v.length?p.jsx("div",{className:"warnings",children:v.map(x=>p.jsxs("div",{className:"warning",children:[p.jsx(fd,{}),p.jsx("span",{children:x})]},x))}):null}function rd(){return p.jsxs("div",{className:"clean",children:[p.jsx("div",{className:"ring",children:p.jsx(cd,{})}),p.jsx("h2",{children:"No known vulnerabilities"}),p.jsx("p",{children:"Every scanned dependency is clear against the OSV.dev database."})]})}function ld({result:v}){return p.jsxs("footer",{className:"foot",children:[p.jsxs("span",{children:["lockhawk v",v.tool.version]}),p.jsx("span",{children:"data: OSV.dev"}),p.jsxs("span",{children:["scanned ",new Date(v.scannedAt).toLocaleString()]}),v.stats.durationMs!==void 0?p.jsxs("span",{children:[v.stats.durationMs,"ms"]}):null,v.stats.unscannable>0?p.jsxs("span",{children:[v.stats.unscannable," unscannable"]}):null]})}function id(v,x){const h=v.recommendation??"No mitigation guidance available.";return ud(h).replace(/`([^`]+)`/g,"<code>$1</code>")}function ud(v){return v.replace(/[&<>]/g,x=>({"&":"&amp;","<":"&lt;",">":"&gt;"})[x])}function od(v){try{const x=new URL(v);return x.protocol==="http:"||x.protocol==="https:"?v:void 0}catch{return}}function Iu(v){return{critical:"rgba(255,77,109,0.20)",high:"rgba(255,159,69,0.18)",medium:"rgba(245,203,92,0.16)",low:"rgba(92,200,255,0.16)",unknown:"rgba(139,149,167,0.12)",none:"rgba(52,226,160,0.16)"}[v]}function sd(v){return{"--accent":sn[v],"--accent-glow":Iu(v)}}function Va(){return p.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",children:[p.jsx("path",{d:"M12 2 4 5v6c0 5 3.5 8.5 8 11 4.5-2.5 8-6 8-11V5l-8-3Z"}),p.jsx("path",{d:"m9 12 2 2 4-4"})]})}function ad(){return p.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",children:[p.jsx("circle",{cx:"11",cy:"11",r:"7"}),p.jsx("path",{d:"m20 20-3.5-3.5"})]})}function cd(){return p.jsx("svg",{width:"26",height:"26",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round",children:p.jsx("path",{d:"m5 13 4 4 10-10"})})}function fd(){return p.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",style:{flex:"none",marginTop:1},children:[p.jsx("path",{d:"M12 3 2 20h20L12 3Z"}),p.jsx("path",{d:"M12 10v4M12 17h.01"})]})}async function dd(){if(typeof window<"u"&&window.__SCAN_RESULT__)return window.__SCAN_RESULT__;try{const v=await fetch("/api/result");if(v.ok)return await v.json()}catch{}throw new Error("No scan data")}async function pd(){const v=Kf.createRoot(document.getElementById("root"));try{const x=await dd();v.render(p.jsx(Mn.StrictMode,{children:p.jsx(Zf,{result:x})}))}catch{v.render(p.jsxs("div",{className:"boot-error",children:[p.jsx("h1",{children:"No scan data"}),p.jsx("p",{children:"This report was opened without an embedded scan result."})]}))}}pd();</script>
48
+ <style rel="stylesheet" crossorigin>:root{--bg: #080a0f;--bg-2: #0b0e15;--panel: #10141d;--panel-2: #141925;--panel-hi: #1a2030;--line: #222a39;--line-soft: #181d28;--text: #e7ebf3;--text-dim: #97a1b4;--text-faint: #5d6779;--brand: #34e2a0;--crit: #ff4d6d;--high: #ff9f45;--med: #f5cb5c;--low: #5cc8ff;--unknown: #8b95a7;--mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Monaco, "Cascadia Code", "Roboto Mono", Consolas, monospace;--sans: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--radius: 12px;--radius-sm: 8px;--shadow: 0 18px 50px -20px rgba(0, 0, 0, .8)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--sans);color:var(--text);background-color:var(--bg);background-image:radial-gradient(1200px 520px at 78% -8%,rgba(52,226,160,.08),transparent 60%),radial-gradient(900px 480px at 8% -4%,rgba(92,200,255,.05),transparent 55%),linear-gradient(var(--line-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);background-size:100% 100%,100% 100%,44px 44px,44px 44px;background-position:0 0,0 0,-1px -1px,-1px -1px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.mono{font-family:var(--mono)}.shell{max-width:1320px;margin:0 auto;padding:28px clamp(16px,4vw,40px) 80px}.masthead{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:18px;padding-bottom:22px;border-bottom:1px solid var(--line);animation:rise .5s both}.brand{display:flex;align-items:center;gap:14px}.brand .glyph{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(150deg,#34e2a038,#34e2a00a);border:1px solid rgba(52,226,160,.35);box-shadow:inset 0 0 18px #34e2a01f}.brand .glyph svg{width:22px;height:22px}.brand .wordmark{font-family:var(--mono);font-size:17px;letter-spacing:.14em;text-transform:uppercase;font-weight:600}.brand .wordmark b{color:var(--brand);font-weight:600}.brand .tagline{font-size:11px;color:var(--text-faint);letter-spacing:.1em;text-transform:uppercase;margin-top:2px}.meta-grid{display:flex;flex-wrap:wrap;gap:26px}.meta-cell .k{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-faint)}.meta-cell .v{font-family:var(--mono);font-size:13.5px;color:var(--text);margin-top:3px}.meta-cell .v.ok{color:var(--brand)}.meta-cell .v.warn{color:var(--high)}.threat{display:grid;grid-template-columns:minmax(260px,320px) 1fr;gap:20px;margin-top:26px;animation:rise .5s .05s both}@media(max-width:860px){.threat{grid-template-columns:1fr}}.verdict{position:relative;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg,var(--panel-2),var(--panel));padding:22px 24px;overflow:hidden;box-shadow:var(--shadow)}.verdict:before{content:"";position:absolute;inset:0;background:radial-gradient(120% 80% at 0% 0%,var(--accent-glow, transparent),transparent 60%);opacity:.5;pointer-events:none}.verdict .label{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-faint)}.verdict .level{font-family:var(--mono);font-size:34px;font-weight:600;letter-spacing:.01em;margin:6px 0 2px;color:var(--accent, var(--text));text-transform:uppercase}.verdict .sub{color:var(--text-dim);font-size:13px}.verdict .pulse{position:absolute;top:22px;right:22px;width:10px;height:10px;border-radius:50%;background:var(--accent, var(--brand));box-shadow:0 0 0 0 var(--accent, var(--brand));animation:pulse 2.4s infinite}.gauges{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}@media(max-width:620px){.gauges{grid-template-columns:repeat(2,1fr)}}.gauge{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);padding:14px 15px 13px;position:relative;overflow:hidden;animation:rise .4s both}.gauge:after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--c);opacity:.9}.gauge .n{font-family:var(--mono);font-size:30px;font-weight:600;line-height:1;color:var(--c)}.gauge.zero .n{color:var(--text-faint)}.gauge .t{margin-top:8px;font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--text-dim)}.bar{grid-column:1 / -1;display:flex;height:10px;border-radius:999px;overflow:hidden;background:var(--panel);border:1px solid var(--line)}.bar span{display:block;height:100%;transition:flex-grow .4s ease}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:28px 0 14px;animation:rise .5s .1s both}.search{flex:1 1 240px;display:flex;align-items:center;gap:9px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);padding:9px 13px}.search:focus-within{border-color:#34e2a080;box-shadow:0 0 0 3px #34e2a01a}.search svg{width:15px;height:15px;color:var(--text-faint);flex:none}.search input{background:none;border:none;outline:none;color:var(--text);font-family:var(--mono);font-size:13px;width:100%}.search input::placeholder{color:var(--text-faint)}.chips{display:flex;gap:7px;flex-wrap:wrap}.chip{font-family:var(--mono);font-size:11px;letter-spacing:.05em;text-transform:uppercase;padding:7px 11px;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--text-dim);cursor:pointer;transition:all .15s ease;user-select:none}.chip:hover{border-color:var(--cc, var(--line));color:var(--text)}.chip.on{color:#06080c;background:var(--cc, var(--brand));border-color:var(--cc, var(--brand));font-weight:600}.chip .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--cc);margin-right:6px;vertical-align:middle}.chip.on .dot{background:#06080c}.scope-toggle{margin-left:auto;display:flex;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}.scope-toggle button{background:var(--panel);border:none;color:var(--text-dim);font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:8px 12px;cursor:pointer}.scope-toggle button+button{border-left:1px solid var(--line)}.scope-toggle button.on{background:var(--panel-hi);color:var(--text)}.workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,460px);gap:18px;align-items:start}@media(max-width:1040px){.workspace{grid-template-columns:1fr}}.list{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);overflow:hidden}.list-head,.row{display:grid;grid-template-columns:96px minmax(0,1.4fr) minmax(0,1fr) 88px;gap:12px;align-items:center;padding:0 16px}.list-head{height:38px;border-bottom:1px solid var(--line);background:var(--panel-2)}.list-head span{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint)}.row{min-height:60px;padding-top:11px;padding-bottom:11px;border-bottom:1px solid var(--line-soft);cursor:pointer;position:relative;transition:background .12s ease;animation:rowin .32s both}.row:last-child{border-bottom:none}.row:hover{background:var(--panel-2)}.row.sel{background:var(--panel-hi)}.row.sel:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--c)}.sev-tag{font-family:var(--mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;display:inline-flex;align-items:center;gap:7px;color:var(--c)}.sev-tag .blip{width:8px;height:8px;border-radius:2px;background:var(--c);box-shadow:0 0 8px var(--c)}.sev-score{font-size:10px;color:var(--text-faint);margin-top:3px;font-family:var(--mono)}.pkg .name{font-family:var(--mono);font-size:13.5px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pkg .ver{font-family:var(--mono);font-size:11px;color:var(--text-faint);margin-top:2px}.adv{font-family:var(--mono);font-size:12px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tagline-scope{display:inline-block;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);border:1px solid var(--line);border-radius:4px;padding:1px 5px;margin-top:4px}.fix{font-family:var(--mono);font-size:12px;text-align:right}.fix.has{color:var(--brand)}.fix.none{color:var(--text-faint)}.detail{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg,var(--panel-2),var(--panel));position:sticky;top:22px;overflow:hidden;box-shadow:var(--shadow)}.detail-top{padding:20px 22px 18px;border-bottom:1px solid var(--line);position:relative}.detail-top:before{content:"";position:absolute;inset:0;background:radial-gradient(130% 90% at 100% 0%,var(--accent-glow, transparent),transparent 55%);pointer-events:none}.detail .sev-tag{font-size:12px}.detail h2{font-size:17px;margin:12px 0 4px;line-height:1.3;font-weight:600}.detail .pkgline{font-family:var(--mono);font-size:13px;color:var(--text-dim)}.detail .pkgline b{color:var(--text);font-weight:600}.detail-body{padding:20px 22px 24px;max-height:calc(100vh - 220px);overflow-y:auto}.sec{margin-bottom:22px}.sec>h3{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-faint);margin:0 0 10px}.desc{font-size:13.5px;line-height:1.6;color:var(--text-dim)}.score-readout{display:flex;align-items:baseline;gap:10px;margin-bottom:12px}.score-readout .big{font-family:var(--mono);font-size:32px;font-weight:600;color:var(--accent, var(--text));line-height:1}.score-readout .of{font-family:var(--mono);font-size:13px;color:var(--text-faint)}.score-readout .src{margin-left:auto;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint)}.cvss-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.cvss-metric{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);padding:9px 11px}.cvss-metric .ml{font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint)}.cvss-metric .mv{font-family:var(--mono);font-size:13px;color:var(--text);margin-top:3px}.cvss-metric.hot .mv{color:var(--high)}.vector{font-family:var(--mono);font-size:11px;color:var(--text-faint);word-break:break-all;margin-top:10px}.path{display:flex;flex-wrap:wrap;align-items:center;gap:4px;font-family:var(--mono);font-size:12px}.path .node{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:5px 9px;color:var(--text-dim)}.path .node.root{color:var(--text);border-color:var(--line)}.path .node.leaf{color:var(--accent, var(--crit));border-color:var(--accent, var(--crit));box-shadow:0 0 0 1px var(--accent-glow, transparent)}.path .arrow{color:var(--text-faint)}.fixbox{border:1px solid rgba(52,226,160,.3);background:#34e2a00f;border-radius:var(--radius-sm);padding:13px 15px}.fixbox.nofix{border-color:var(--line);background:var(--panel)}.fixbox .fixv{font-family:var(--mono);font-size:14px;color:var(--brand);margin-bottom:6px}.fixbox .rec{font-size:13px;line-height:1.55;color:var(--text-dim)}.fixbox .rec code{background:#ffffff0f;padding:1px 5px;border-radius:4px;font-family:var(--mono);font-size:12px;color:var(--text)}.refs{display:flex;flex-direction:column;gap:6px}.refs a{font-family:var(--mono);font-size:12px;color:var(--low);text-decoration:none;border-bottom:1px solid transparent;word-break:break-all}.refs a:hover{border-bottom-color:var(--low)}.id-chips{display:flex;flex-wrap:wrap;gap:6px}.id-chips .idc{font-family:var(--mono);font-size:11px;padding:3px 8px;border-radius:5px;border:1px solid var(--line);color:var(--text-dim);background:var(--panel)}.detail-empty{padding:60px 30px;text-align:center;color:var(--text-faint)}.detail-empty svg{width:30px;height:30px;opacity:.5;margin-bottom:12px}.clean{border:1px solid rgba(52,226,160,.3);border-radius:var(--radius);background:linear-gradient(180deg,rgba(52,226,160,.07),var(--panel));padding:56px 30px;text-align:center;margin-top:22px}.clean .ring{width:56px;height:56px;border-radius:50%;border:2px solid var(--brand);display:grid;place-items:center;margin:0 auto 16px;color:var(--brand);box-shadow:0 0 30px #34e2a040}.clean h2{margin:0 0 6px;font-size:20px}.clean p{color:var(--text-dim);margin:0}.empty{padding:50px 20px;text-align:center;color:var(--text-faint);font-family:var(--mono);font-size:13px}.warnings{margin-top:16px;display:flex;flex-direction:column;gap:8px}.warning{display:flex;gap:9px;align-items:flex-start;border:1px solid rgba(245,203,92,.3);background:#f5cb5c0f;border-radius:var(--radius-sm);padding:10px 13px;font-size:12.5px;color:var(--med)}.foot{margin-top:36px;padding-top:18px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:8px 18px;font-family:var(--mono);font-size:11px;color:var(--text-faint);letter-spacing:.04em}.boot-error{display:grid;place-items:center;height:100%;text-align:center;color:var(--text-dim);font-family:var(--mono)}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes rowin{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes pulse{0%{box-shadow:0 0 0 0 var(--accent, var(--brand));opacity:1}70%{box-shadow:0 0 0 9px transparent;opacity:.85}to{box-shadow:0 0 0 0 transparent;opacity:1}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line);border-radius:6px;border:2px solid var(--panel)}</style>
49
+ </head>
50
+ <body>
51
+ <div id="root"></div>
52
+ </body>
53
+ </html>
package/package.json ADDED
@@ -0,0 +1,75 @@
1
+ {
2
+ "name": "lockhawk",
3
+ "version": "0.2.0",
4
+ "description": "Fast, free, accurate npm dependency vulnerability scanner for local + CI/CD, powered by OSV.dev",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/lockhawk/lockhawk.git",
10
+ "directory": "packages/cli"
11
+ },
12
+ "homepage": "https://github.com/lockhawk/lockhawk#readme",
13
+ "bugs": "https://github.com/lockhawk/lockhawk/issues",
14
+ "publishConfig": {
15
+ "access": "public"
16
+ },
17
+ "bin": {
18
+ "lockhawk": "./dist/index.js"
19
+ },
20
+ "files": [
21
+ "dist"
22
+ ],
23
+ "keywords": [
24
+ "security",
25
+ "vulnerability",
26
+ "vulnerability-scanner",
27
+ "dependency-scanner",
28
+ "dependency-scanning",
29
+ "sca",
30
+ "software-composition-analysis",
31
+ "supply-chain-security",
32
+ "devsecops",
33
+ "appsec",
34
+ "audit",
35
+ "npm-audit",
36
+ "scanner",
37
+ "osv",
38
+ "osv-scanner",
39
+ "cve",
40
+ "ghsa",
41
+ "cvss",
42
+ "sarif",
43
+ "junit",
44
+ "ci",
45
+ "ci-cd",
46
+ "dashboard",
47
+ "npm",
48
+ "yarn",
49
+ "pnpm",
50
+ "lockfile",
51
+ "dependencies"
52
+ ],
53
+ "dependencies": {
54
+ "chalk": "^5.3.0",
55
+ "cli-table3": "^0.6.5",
56
+ "commander": "^12.1.0",
57
+ "cosmiconfig": "^9.0.0",
58
+ "open": "^10.1.0",
59
+ "ora": "^8.1.1",
60
+ "@lockhawk/core": "0.2.0"
61
+ },
62
+ "devDependencies": {
63
+ "@types/node": "^22.10.2",
64
+ "tsup": "^8.3.5",
65
+ "typescript": "^5.7.2",
66
+ "vitest": "^2.1.8",
67
+ "@lockhawk/report-ui": "0.1.0"
68
+ },
69
+ "scripts": {
70
+ "build": "tsup && node scripts/copy-shell.mjs",
71
+ "dev": "tsup --watch",
72
+ "test": "vitest run",
73
+ "typecheck": "tsc --noEmit"
74
+ }
75
+ }