@morphixai/mxenv 0.0.0-stage → 0.12.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 +21 -0
- package/README.md +18 -2
- package/SECURITY.md +22 -0
- package/dist/SKILL.md +115 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +2009 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +18 -0
- package/package.json +67 -4
package/dist/cli.js
ADDED
|
@@ -0,0 +1,2009 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __create = Object.create;
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
18
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
19
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
20
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
21
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
22
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
23
|
+
mod
|
|
24
|
+
));
|
|
25
|
+
|
|
26
|
+
// src/cli.ts
|
|
27
|
+
var import_cross_spawn = __toESM(require("cross-spawn"));
|
|
28
|
+
var import_fs5 = require("fs");
|
|
29
|
+
var import_os4 = require("os");
|
|
30
|
+
var import_path5 = require("path");
|
|
31
|
+
var import_mxenv_core3 = require("@morphixai/mxenv-core");
|
|
32
|
+
|
|
33
|
+
// src/editor.ts
|
|
34
|
+
var import_child_process2 = require("child_process");
|
|
35
|
+
var import_http = require("http");
|
|
36
|
+
var import_fs2 = require("fs");
|
|
37
|
+
var import_os2 = require("os");
|
|
38
|
+
var import_path2 = require("path");
|
|
39
|
+
var import_crypto = require("crypto");
|
|
40
|
+
var import_mxenv_core2 = require("@morphixai/mxenv-core");
|
|
41
|
+
|
|
42
|
+
// src/migrate.ts
|
|
43
|
+
var import_child_process = require("child_process");
|
|
44
|
+
var import_fs = require("fs");
|
|
45
|
+
var import_os = require("os");
|
|
46
|
+
var import_path = require("path");
|
|
47
|
+
var import_dotenv = require("dotenv");
|
|
48
|
+
var import_mxenv_core = require("@morphixai/mxenv-core");
|
|
49
|
+
function resolveUnitFile(rawFile, baseDir, homeDir) {
|
|
50
|
+
const expanded = (0, import_mxenv_core.expandHomePath)(rawFile, homeDir);
|
|
51
|
+
return (0, import_path.isAbsolute)(expanded) ? expanded : (0, import_path.resolve)(baseDir, expanded);
|
|
52
|
+
}
|
|
53
|
+
function snapshotValues(unit) {
|
|
54
|
+
const values = {};
|
|
55
|
+
for (const file of unit.files) Object.assign(values, (0, import_mxenv_core.parseEnvFile)(file));
|
|
56
|
+
return values;
|
|
57
|
+
}
|
|
58
|
+
function declaredUnits(loaded, scope, homeDir) {
|
|
59
|
+
const units = [];
|
|
60
|
+
for (const [name, source] of Object.entries(loaded.config.sources || {})) {
|
|
61
|
+
if (source.provider !== "local") continue;
|
|
62
|
+
const files = source.files.map((file) => resolveUnitFile(file, loaded.baseDir, homeDir)).filter(import_fs.existsSync);
|
|
63
|
+
if (!files.length) continue;
|
|
64
|
+
const probe = {
|
|
65
|
+
name,
|
|
66
|
+
kind: "declared",
|
|
67
|
+
scope,
|
|
68
|
+
baseDir: loaded.baseDir,
|
|
69
|
+
configPath: loaded.path,
|
|
70
|
+
source,
|
|
71
|
+
files,
|
|
72
|
+
keyNames: []
|
|
73
|
+
};
|
|
74
|
+
units.push({ ...probe, keyNames: Object.keys(snapshotValues(probe)).sort() });
|
|
75
|
+
}
|
|
76
|
+
return units;
|
|
77
|
+
}
|
|
78
|
+
function discoverPlaintextUnits(layers, homeDir = (0, import_os.homedir)()) {
|
|
79
|
+
const units = [];
|
|
80
|
+
if ((0, import_fs.existsSync)(layers.globalEnvFile) && !(0, import_mxenv_core.isDotenvxEncrypted)(layers.globalEnvFile)) {
|
|
81
|
+
const source = { provider: "local", files: [layers.globalEnvFile], optional: true };
|
|
82
|
+
const probe = {
|
|
83
|
+
name: import_mxenv_core.GLOBAL_DOTENV_SOURCE,
|
|
84
|
+
kind: "global-implicit",
|
|
85
|
+
scope: null,
|
|
86
|
+
baseDir: (0, import_path.dirname)(layers.globalEnvFile),
|
|
87
|
+
configPath: null,
|
|
88
|
+
source,
|
|
89
|
+
files: [layers.globalEnvFile],
|
|
90
|
+
keyNames: []
|
|
91
|
+
};
|
|
92
|
+
units.push({ ...probe, keyNames: Object.keys(snapshotValues(probe)).sort() });
|
|
93
|
+
}
|
|
94
|
+
units.push(...declaredUnits(layers.global, "global", homeDir));
|
|
95
|
+
units.push(...declaredUnits(layers.project, "project", homeDir));
|
|
96
|
+
return units;
|
|
97
|
+
}
|
|
98
|
+
function legacyPlaintextHints(layers, units, homeDir = (0, import_os.homedir)()) {
|
|
99
|
+
const covered = new Set(units.flatMap((unit) => unit.files));
|
|
100
|
+
const legacyFiles = layers.project.config.envFiles || [".env.local"];
|
|
101
|
+
return legacyFiles.map((file) => resolveUnitFile(file, layers.project.baseDir, homeDir)).filter((file) => (0, import_fs.existsSync)(file) && !covered.has(file) && !(0, import_mxenv_core.isDotenvxEncrypted)(file));
|
|
102
|
+
}
|
|
103
|
+
var BACKUP_MARK = ".mxenv-backup-";
|
|
104
|
+
var LEGACY_BACKUP_MARK = ".mx-env-backup-";
|
|
105
|
+
function backupFile(file, stamp) {
|
|
106
|
+
const backup = `${file}${BACKUP_MARK}${stamp}`;
|
|
107
|
+
(0, import_fs.copyFileSync)(file, backup);
|
|
108
|
+
(0, import_fs.chmodSync)(backup, 384);
|
|
109
|
+
return backup;
|
|
110
|
+
}
|
|
111
|
+
function backupOriginalPath(backup) {
|
|
112
|
+
const at = Math.max(backup.lastIndexOf(BACKUP_MARK), backup.lastIndexOf(LEGACY_BACKUP_MARK));
|
|
113
|
+
return at >= 0 ? backup.slice(0, at) : "";
|
|
114
|
+
}
|
|
115
|
+
function restoreBackups(backups, renamedTo) {
|
|
116
|
+
const failed = [];
|
|
117
|
+
for (const backup of backups) {
|
|
118
|
+
const original = backupOriginalPath(backup);
|
|
119
|
+
const target = original && renamedTo.get(original) || original;
|
|
120
|
+
try {
|
|
121
|
+
if (!target || !(0, import_fs.existsSync)(backup)) continue;
|
|
122
|
+
if ((0, import_fs.existsSync)(target) && (0, import_fs.readFileSync)(target).equals((0, import_fs.readFileSync)(backup))) continue;
|
|
123
|
+
(0, import_fs.copyFileSync)(backup, target);
|
|
124
|
+
if (original && target !== original && (0, import_fs.existsSync)(original)) {
|
|
125
|
+
try {
|
|
126
|
+
(0, import_fs.rmSync)(original);
|
|
127
|
+
} catch {
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
} catch {
|
|
131
|
+
if (target) failed.push(target);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return failed;
|
|
135
|
+
}
|
|
136
|
+
function withRestoreOutcome(message, failed, backups) {
|
|
137
|
+
if (failed.length) {
|
|
138
|
+
return `${message} RESTORE FAILED for: ${failed.join(", ")} \u2014 restore manually from the .mxenv-backup-* file backups${backups.length ? ` (${backups.join(", ")})` : ""}.`;
|
|
139
|
+
}
|
|
140
|
+
return `${message} Plaintext and configuration were restored from backup${backups.length ? ` (${backups.join(", ")})` : ""}.`;
|
|
141
|
+
}
|
|
142
|
+
function equivalent(expected, actual, presenceOnly) {
|
|
143
|
+
const expectedKeys = Object.keys(expected).sort();
|
|
144
|
+
const actualKeys = Object.keys(actual).sort();
|
|
145
|
+
if (expectedKeys.length !== actualKeys.length) return false;
|
|
146
|
+
return expectedKeys.every((key, index) => key === actualKeys[index] && (presenceOnly.has(key) || expected[key] === actual[key]));
|
|
147
|
+
}
|
|
148
|
+
function existingDeclaredFiles(unit, homeDir) {
|
|
149
|
+
const existing = new Set(unit.files);
|
|
150
|
+
return unit.source.files.filter((file) => existing.has(resolveUnitFile(file, unit.baseDir, homeDir)));
|
|
151
|
+
}
|
|
152
|
+
function droppedDeclaredFiles(unit, homeDir) {
|
|
153
|
+
const existing = new Set(unit.files);
|
|
154
|
+
return unit.source.files.filter((file) => !existing.has(resolveUnitFile(file, unit.baseDir, homeDir)));
|
|
155
|
+
}
|
|
156
|
+
function rewriteDeclaredSource(unit, newSource, stamp, backups, renamedTo) {
|
|
157
|
+
let configPath = unit.configPath;
|
|
158
|
+
backups.push(backupFile(configPath, stamp));
|
|
159
|
+
const parsed = JSON.parse((0, import_fs.readFileSync)(configPath, "utf8"));
|
|
160
|
+
parsed.sources[unit.name] = newSource;
|
|
161
|
+
const targetPath = (0, import_path.resolve)((0, import_path.dirname)(configPath), import_mxenv_core.CONFIG_FILE);
|
|
162
|
+
if ((0, import_path.basename)(configPath) !== import_mxenv_core.CONFIG_FILE && !(0, import_fs.existsSync)(targetPath)) {
|
|
163
|
+
(0, import_fs.renameSync)(configPath, targetPath);
|
|
164
|
+
renamedTo.set(configPath, targetPath);
|
|
165
|
+
configPath = targetPath;
|
|
166
|
+
}
|
|
167
|
+
(0, import_fs.writeFileSync)(configPath, `${JSON.stringify(parsed, null, 2)}
|
|
168
|
+
`);
|
|
169
|
+
}
|
|
170
|
+
function gitIgnoreWarnings(paths) {
|
|
171
|
+
const warnings = [];
|
|
172
|
+
for (const path of paths) {
|
|
173
|
+
try {
|
|
174
|
+
(0, import_child_process.execFileSync)("git", ["rev-parse", "--is-inside-work-tree"], { cwd: (0, import_path.dirname)(path), stdio: ["ignore", "ignore", "ignore"] });
|
|
175
|
+
} catch {
|
|
176
|
+
continue;
|
|
177
|
+
}
|
|
178
|
+
try {
|
|
179
|
+
(0, import_child_process.execFileSync)("git", ["check-ignore", "-q", path], { cwd: (0, import_path.dirname)(path), stdio: ["ignore", "ignore", "ignore"] });
|
|
180
|
+
} catch (error) {
|
|
181
|
+
if (error?.status === 1) {
|
|
182
|
+
warnings.push(`[mxenv] WARNING: ${path} is inside a git repository and NOT git-ignored \u2014 this file holds the decryption key and must never be committed.`);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return warnings;
|
|
187
|
+
}
|
|
188
|
+
async function reloadViaKeychain(unit, newSource, homeDir) {
|
|
189
|
+
const entry = {
|
|
190
|
+
name: unit.name,
|
|
191
|
+
source: newSource,
|
|
192
|
+
baseDir: unit.baseDir,
|
|
193
|
+
globalImplicit: unit.kind === "global-implicit"
|
|
194
|
+
};
|
|
195
|
+
const loaded = await (0, import_mxenv_core.loadSource)(entry, { homeDir, environment: { ...process.env } });
|
|
196
|
+
return loaded.values;
|
|
197
|
+
}
|
|
198
|
+
function verificationEnv() {
|
|
199
|
+
return {
|
|
200
|
+
...process.env.HOME ? { HOME: process.env.HOME } : {},
|
|
201
|
+
...process.env.SYSTEMROOT ? { SYSTEMROOT: process.env.SYSTEMROOT } : {},
|
|
202
|
+
...process.env.TMPDIR ? { TMPDIR: process.env.TMPDIR } : {},
|
|
203
|
+
...process.env.TMP ? { TMP: process.env.TMP } : {},
|
|
204
|
+
...process.env.TEMP ? { TEMP: process.env.TEMP } : {},
|
|
205
|
+
PATH: [(0, import_path.dirname)(process.execPath), process.env.PATH || ""].filter(Boolean).join(import_path.delimiter),
|
|
206
|
+
DOTENVX_NO_NATIVE: "true"
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
function decryptValues(command, files) {
|
|
210
|
+
const values = {};
|
|
211
|
+
for (const file of files) {
|
|
212
|
+
const output = (0, import_child_process.execFileSync)(command, ["decrypt", "-f", file, "--stdout", "--no-native"], {
|
|
213
|
+
encoding: "utf8",
|
|
214
|
+
cwd: (0, import_path.dirname)(file),
|
|
215
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
216
|
+
env: verificationEnv()
|
|
217
|
+
});
|
|
218
|
+
const markerKeys = new Set(Object.keys((0, import_mxenv_core.parseEnvFile)(file)).filter((key) => key.startsWith("DOTENV_PUBLIC_KEY")));
|
|
219
|
+
for (const [key, value] of Object.entries((0, import_dotenv.parse)(output))) {
|
|
220
|
+
if (!markerKeys.has(key)) values[key] = value;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
return values;
|
|
224
|
+
}
|
|
225
|
+
async function migrateToDotenvx(unit, stamp, homeDir, backups, renamedTo) {
|
|
226
|
+
const snapshot = snapshotValues(unit);
|
|
227
|
+
for (const file of unit.files) backups.push(backupFile(file, stamp));
|
|
228
|
+
const candidateKeysFiles = [...new Set(unit.files.map((file) => (0, import_path.join)((0, import_path.dirname)(file), ".env.keys")))];
|
|
229
|
+
const preExistingKeys = new Set(candidateKeysFiles.filter(import_fs.existsSync));
|
|
230
|
+
for (const keysFile of preExistingKeys) backups.push(backupFile(keysFile, stamp));
|
|
231
|
+
try {
|
|
232
|
+
let command;
|
|
233
|
+
try {
|
|
234
|
+
command = (0, import_mxenv_core.ensureCommand)("dotenvx", unit.name, "dotenvx");
|
|
235
|
+
} catch {
|
|
236
|
+
throw new Error("the dotenvx CLI is required; install it (e.g. `npm i -g @dotenvx/dotenvx`) or migrate to another target.");
|
|
237
|
+
}
|
|
238
|
+
for (const file of unit.files) {
|
|
239
|
+
for (const key of Object.keys((0, import_mxenv_core.parseEnvFile)(file))) {
|
|
240
|
+
if (key.startsWith("DOTENV_PUBLIC_KEY")) {
|
|
241
|
+
throw new Error(`dotenvx reserves the DOTENV_PUBLIC_KEY* prefix; rename key "${key}" in ${file} before migrating.`);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
(0, import_child_process.execFileSync)(command, ["encrypt", "-f", file, "--no-native"], { cwd: (0, import_path.dirname)(file), stdio: ["ignore", "ignore", "ignore"] });
|
|
245
|
+
const keysFile = (0, import_path.join)((0, import_path.dirname)(file), ".env.keys");
|
|
246
|
+
if ((0, import_fs.existsSync)(keysFile)) (0, import_fs.chmodSync)(keysFile, 384);
|
|
247
|
+
}
|
|
248
|
+
const keysFiles = candidateKeysFiles.filter(import_fs.existsSync);
|
|
249
|
+
const values = decryptValues(command, unit.files);
|
|
250
|
+
const presenceOnly = new Set(Object.keys(verificationEnv()));
|
|
251
|
+
if (!equivalent(snapshot, values, presenceOnly)) {
|
|
252
|
+
const diffKeys = [.../* @__PURE__ */ new Set([...Object.keys(snapshot), ...Object.keys(values)])].filter((key) => !presenceOnly.has(key) && snapshot[key] !== values[key]).sort();
|
|
253
|
+
throw new Error(
|
|
254
|
+
`post-migration verification failed: decrypted values differ from the plaintext snapshot for: ${diffKeys.join(", ")}. dotenvx expands $name sequences during loading \u2014 if a listed key holds a $ sequence, migration would change what consumers see and is refused; edit that value first.`
|
|
255
|
+
);
|
|
256
|
+
}
|
|
257
|
+
const warnings = [];
|
|
258
|
+
if (unit.kind === "declared") {
|
|
259
|
+
const newSource = {
|
|
260
|
+
provider: "dotenvx",
|
|
261
|
+
files: existingDeclaredFiles(unit, homeDir),
|
|
262
|
+
...unit.source.override ? { override: true } : {},
|
|
263
|
+
...unit.source.optional ? { optional: true } : {}
|
|
264
|
+
};
|
|
265
|
+
rewriteDeclaredSource(unit, newSource, stamp, backups, renamedTo);
|
|
266
|
+
for (const dropped of droppedDeclaredFiles(unit, homeDir)) {
|
|
267
|
+
warnings.push(`[mxenv] Warning: declared file "${dropped}" did not exist at migration time and was dropped from the rewritten source; re-add it to the config if it returns.`);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
return { warnings: [...warnings, ...gitIgnoreWarnings(keysFiles)] };
|
|
271
|
+
} catch (error) {
|
|
272
|
+
const failed = restoreBackups(backups, renamedTo);
|
|
273
|
+
for (const keysFile of candidateKeysFiles) {
|
|
274
|
+
if (!preExistingKeys.has(keysFile) && (0, import_fs.existsSync)(keysFile)) (0, import_fs.rmSync)(keysFile);
|
|
275
|
+
}
|
|
276
|
+
const message = error instanceof Error ? error.message : "unknown failure";
|
|
277
|
+
throw new Error(withRestoreOutcome(message, failed, backups));
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
function snapshotCovered(expected, actual) {
|
|
281
|
+
return Object.keys(expected).every((key) => actual[key] === expected[key]);
|
|
282
|
+
}
|
|
283
|
+
async function migrateToKeychain(unit, service, stamp, homeDir, backups, renamedTo) {
|
|
284
|
+
if (process.platform !== "darwin") throw new Error("the os-keychain target is supported on macOS only; use --to dotenvx on this machine.");
|
|
285
|
+
const keytar = await (0, import_mxenv_core.loadKeytar)();
|
|
286
|
+
if (!keytar) throw new Error('the os-keychain target needs the optional native module "keytar"; reinstall @morphixai/mxenv or use --to dotenvx.');
|
|
287
|
+
const snapshot = snapshotValues(unit);
|
|
288
|
+
for (const file of unit.files) backups.push(backupFile(file, stamp));
|
|
289
|
+
const preExisting = new Map((await keytar.findCredentials(service)).map(({ account, password }) => [account, password]));
|
|
290
|
+
try {
|
|
291
|
+
for (const [key, value] of Object.entries(snapshot)) await keytar.setPassword(service, key, value);
|
|
292
|
+
const newSource = {
|
|
293
|
+
provider: "os-keychain",
|
|
294
|
+
service,
|
|
295
|
+
...unit.source.override ? { override: true } : {}
|
|
296
|
+
};
|
|
297
|
+
const values = await reloadViaKeychain(unit, newSource, homeDir);
|
|
298
|
+
if (!snapshotCovered(snapshot, values)) {
|
|
299
|
+
throw new Error("post-migration verification failed: keychain values differ from the plaintext snapshot.");
|
|
300
|
+
}
|
|
301
|
+
const foreign = Object.keys(values).filter((key) => !(key in snapshot));
|
|
302
|
+
const warnings = foreign.length ? [`[mxenv] Warning: keychain service "${service}" also holds ${foreign.length} unrelated account(s) (e.g. "${foreign[0]}"); verify the service is not shared unexpectedly.`] : [];
|
|
303
|
+
rewriteDeclaredSource(unit, newSource, stamp, backups, renamedTo);
|
|
304
|
+
for (const file of unit.files) (0, import_fs.rmSync)(file);
|
|
305
|
+
return { warnings };
|
|
306
|
+
} catch (error) {
|
|
307
|
+
const failed = restoreBackups(backups, renamedTo);
|
|
308
|
+
for (const key of Object.keys(snapshot)) {
|
|
309
|
+
if (preExisting.has(key)) {
|
|
310
|
+
await keytar.setPassword(service, key, preExisting.get(key)).catch(() => {
|
|
311
|
+
});
|
|
312
|
+
} else {
|
|
313
|
+
await keytar.deletePassword(service, key).catch(() => {
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
const message = error instanceof Error ? error.message : "unknown failure";
|
|
318
|
+
throw new Error(withRestoreOutcome(message, failed, backups));
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
async function executeUnit(unit, target, options = {}, homeDir = (0, import_os.homedir)()) {
|
|
322
|
+
if (unit.kind === "global-implicit" && target === "keychain") {
|
|
323
|
+
return {
|
|
324
|
+
unit,
|
|
325
|
+
status: "skipped",
|
|
326
|
+
backups: [],
|
|
327
|
+
warnings: [],
|
|
328
|
+
detail: "the global implicit file cannot migrate to os-keychain (its loading does not go through profiles); use --to dotenvx for it."
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
const stamp = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
|
|
332
|
+
const backups = [];
|
|
333
|
+
const renamedTo = /* @__PURE__ */ new Map();
|
|
334
|
+
if (!unit.keyNames.length) {
|
|
335
|
+
return { unit, status: "skipped", backups: [], warnings: [], detail: "no keys in the file(s); nothing to migrate." };
|
|
336
|
+
}
|
|
337
|
+
try {
|
|
338
|
+
const { warnings } = target === "dotenvx" ? await migrateToDotenvx(unit, stamp, homeDir, backups, renamedTo) : await migrateToKeychain(unit, options.service || `mxenv:${unit.name}`, stamp, homeDir, backups, renamedTo);
|
|
339
|
+
return { unit, status: "migrated", backups, warnings, detail: "" };
|
|
340
|
+
} catch (error) {
|
|
341
|
+
const message = error instanceof Error ? error.message : "unknown failure";
|
|
342
|
+
return { unit, status: "failed", backups, warnings: [], detail: message };
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
function copyTree(src, dest) {
|
|
346
|
+
(0, import_fs.mkdirSync)(dest, { recursive: true });
|
|
347
|
+
(0, import_fs.chmodSync)(dest, (0, import_fs.statSync)(src).mode & 4095);
|
|
348
|
+
for (const entry of (0, import_fs.readdirSync)(src, { withFileTypes: true })) {
|
|
349
|
+
const from = (0, import_path.join)(src, entry.name);
|
|
350
|
+
const to = (0, import_path.join)(dest, entry.name);
|
|
351
|
+
if (entry.isSymbolicLink()) {
|
|
352
|
+
(0, import_fs.symlinkSync)((0, import_fs.readlinkSync)(from), to);
|
|
353
|
+
} else if (entry.isDirectory()) {
|
|
354
|
+
copyTree(from, to);
|
|
355
|
+
} else {
|
|
356
|
+
(0, import_fs.copyFileSync)(from, to);
|
|
357
|
+
(0, import_fs.chmodSync)(to, (0, import_fs.statSync)(from).mode & 4095);
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
async function composeGlobalLibrary(homeDir, allowInsecureGlobal) {
|
|
362
|
+
const cwd = (0, import_fs.mkdtempSync)((0, import_path.join)((0, import_os.tmpdir)(), "mxenv-home-verify-"));
|
|
363
|
+
try {
|
|
364
|
+
const layers = (0, import_mxenv_core.loadConfigLayers)({ cwd, homeDir });
|
|
365
|
+
const composition = await (0, import_mxenv_core.composeEnvironment)(layers, {
|
|
366
|
+
homeDir,
|
|
367
|
+
baseEnvironment: verificationEnv(),
|
|
368
|
+
allowInsecureGlobal
|
|
369
|
+
});
|
|
370
|
+
const environment = { ...composition.environment };
|
|
371
|
+
return Object.fromEntries(Object.keys(composition.provenance).map((key) => [key, environment[key]]));
|
|
372
|
+
} finally {
|
|
373
|
+
(0, import_fs.rmSync)(cwd, { recursive: true, force: true });
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
function keyDiff(expected, actual) {
|
|
377
|
+
const names = /* @__PURE__ */ new Set([...Object.keys(expected), ...Object.keys(actual)]);
|
|
378
|
+
return [...names].filter((key) => expected[key] !== actual[key]).sort();
|
|
379
|
+
}
|
|
380
|
+
function sweepStalePartials(homeDir, targetDir) {
|
|
381
|
+
const prefix = `${(0, import_path.basename)(targetDir)}.partial-`;
|
|
382
|
+
for (const name of (0, import_fs.readdirSync)(homeDir)) {
|
|
383
|
+
if (!name.startsWith(prefix)) continue;
|
|
384
|
+
try {
|
|
385
|
+
(0, import_fs.rmSync)((0, import_path.join)(homeDir, name), { recursive: true, force: true });
|
|
386
|
+
} catch {
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
function rewriteRcBlocksForMigration(homeDir) {
|
|
391
|
+
const updated = [];
|
|
392
|
+
const failures = [];
|
|
393
|
+
let found = false;
|
|
394
|
+
for (const name of [".zshrc", ".bashrc"]) {
|
|
395
|
+
const rcPath = (0, import_path.join)(homeDir, name);
|
|
396
|
+
let existing;
|
|
397
|
+
try {
|
|
398
|
+
existing = (0, import_fs.readFileSync)(rcPath, "utf8");
|
|
399
|
+
} catch {
|
|
400
|
+
continue;
|
|
401
|
+
}
|
|
402
|
+
if (!(0, import_mxenv_core.hasRcBlock)(existing)) continue;
|
|
403
|
+
found = true;
|
|
404
|
+
try {
|
|
405
|
+
const replaced = (0, import_mxenv_core.replaceRcBlocks)(existing, homeDir);
|
|
406
|
+
if (replaced !== existing) {
|
|
407
|
+
const tmp = `${rcPath}.mxenv-${process.pid}.tmp`;
|
|
408
|
+
(0, import_fs.writeFileSync)(tmp, replaced.endsWith("\n") ? replaced : `${replaced}
|
|
409
|
+
`);
|
|
410
|
+
(0, import_fs.chmodSync)(tmp, (0, import_fs.statSync)(rcPath).mode);
|
|
411
|
+
(0, import_fs.renameSync)(tmp, rcPath);
|
|
412
|
+
}
|
|
413
|
+
updated.push(rcPath);
|
|
414
|
+
} catch (error) {
|
|
415
|
+
failures.push(`${rcPath} (${error instanceof Error ? error.message : "unknown failure"})`);
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
return { updated, failures, found };
|
|
419
|
+
}
|
|
420
|
+
async function migrateHome(homeDir = (0, import_os.homedir)(), options = {}) {
|
|
421
|
+
(0, import_mxenv_core.suppressLegacyHomeHint)();
|
|
422
|
+
const legacyDir = (0, import_path.resolve)(homeDir, import_mxenv_core.LEGACY_GLOBAL_CONFIG_DIR);
|
|
423
|
+
const targetDir = (0, import_path.resolve)(homeDir, import_mxenv_core.GLOBAL_CONFIG_DIR);
|
|
424
|
+
const markerName = ".mxenv-verify-pending";
|
|
425
|
+
const markerPath = (0, import_path.join)(targetDir, markerName);
|
|
426
|
+
const allowInsecureGlobal = options.allowInsecureGlobal ?? false;
|
|
427
|
+
const backupsOnDisk = () => (0, import_fs.readdirSync)(homeDir).filter((name) => name.startsWith(`${import_mxenv_core.LEGACY_GLOBAL_CONFIG_DIR}.backup-`)).sort();
|
|
428
|
+
if ((0, import_fs.existsSync)(targetDir)) {
|
|
429
|
+
if ((0, import_fs.existsSync)(markerPath)) {
|
|
430
|
+
let backupDir2 = "";
|
|
431
|
+
try {
|
|
432
|
+
backupDir2 = (0, import_fs.readFileSync)(markerPath, "utf8").trim();
|
|
433
|
+
} catch {
|
|
434
|
+
}
|
|
435
|
+
if (!backupDir2 || !(0, import_fs.existsSync)(backupDir2)) {
|
|
436
|
+
const candidates = backupsOnDisk();
|
|
437
|
+
backupDir2 = candidates.length ? (0, import_path.resolve)(homeDir, candidates[candidates.length - 1]) : "";
|
|
438
|
+
}
|
|
439
|
+
try {
|
|
440
|
+
(0, import_fs.rmSync)(targetDir, { recursive: true, force: true });
|
|
441
|
+
} catch (error) {
|
|
442
|
+
return {
|
|
443
|
+
status: "failed",
|
|
444
|
+
exitCode: 1,
|
|
445
|
+
keyNames: [],
|
|
446
|
+
detail: `interrupted migration detected (verification pending) but the incomplete ${targetDir} cannot be removed: ${error instanceof Error ? error.message : "unknown failure"} \u2014 remove it by hand, restore the matching ${import_mxenv_core.LEGACY_GLOBAL_CONFIG_DIR}.backup-<ts> directory backup to ${legacyDir}, then re-run.`
|
|
447
|
+
};
|
|
448
|
+
}
|
|
449
|
+
if (!(0, import_fs.existsSync)(legacyDir) && backupDir2 && (0, import_fs.existsSync)(backupDir2)) {
|
|
450
|
+
try {
|
|
451
|
+
(0, import_fs.renameSync)(backupDir2, legacyDir);
|
|
452
|
+
} catch (error) {
|
|
453
|
+
return {
|
|
454
|
+
status: "failed",
|
|
455
|
+
exitCode: 1,
|
|
456
|
+
keyNames: [],
|
|
457
|
+
detail: `interrupted migration detected (verification pending); restoring the directory backup ${backupDir2} failed: ${error instanceof Error ? error.message : "unknown failure"} \u2014 rename it to ${legacyDir} by hand, then re-run.`
|
|
458
|
+
};
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
if (!(0, import_fs.existsSync)(legacyDir)) {
|
|
462
|
+
return {
|
|
463
|
+
status: "failed",
|
|
464
|
+
exitCode: 1,
|
|
465
|
+
keyNames: [],
|
|
466
|
+
detail: `interrupted migration detected (verification pending) but neither ${legacyDir} nor a directory backup to restore from was found \u2014 resolve by hand, then re-run.`
|
|
467
|
+
};
|
|
468
|
+
}
|
|
469
|
+
} else if ((0, import_fs.existsSync)(legacyDir)) {
|
|
470
|
+
return {
|
|
471
|
+
status: "conflict",
|
|
472
|
+
exitCode: 1,
|
|
473
|
+
keyNames: [],
|
|
474
|
+
detail: `both ${targetDir} and ${legacyDir} exist \u2014 refusing to overwrite (no writes made). Resolve by hand: inspect both, keep what you need in ${targetDir}, then rename ${legacyDir} away and re-run.`
|
|
475
|
+
};
|
|
476
|
+
} else {
|
|
477
|
+
return { status: "noop", exitCode: 0, keyNames: [], detail: `already migrated: ${targetDir} is in use.` };
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
if (!(0, import_fs.existsSync)(legacyDir)) {
|
|
481
|
+
const orphans = backupsOnDisk();
|
|
482
|
+
if (orphans.length) {
|
|
483
|
+
return {
|
|
484
|
+
status: "failed",
|
|
485
|
+
exitCode: 1,
|
|
486
|
+
keyNames: [],
|
|
487
|
+
detail: `nothing at ${legacyDir} or ${targetDir}, but directory backup(s) hold the global library: ${orphans.join(", ")} \u2014 a previous restore likely failed; restore manually by renaming the right backup to ${legacyDir}, then re-run.`
|
|
488
|
+
};
|
|
489
|
+
}
|
|
490
|
+
return { status: "noop", exitCode: 0, keyNames: [], detail: `nothing to migrate: no legacy ${legacyDir} found.` };
|
|
491
|
+
}
|
|
492
|
+
sweepStalePartials(homeDir, targetDir);
|
|
493
|
+
let before;
|
|
494
|
+
try {
|
|
495
|
+
before = await composeGlobalLibrary(homeDir, allowInsecureGlobal);
|
|
496
|
+
} catch (error) {
|
|
497
|
+
return {
|
|
498
|
+
status: "failed",
|
|
499
|
+
exitCode: 1,
|
|
500
|
+
keyNames: [],
|
|
501
|
+
detail: `cannot load the global library before migrating: ${error instanceof Error ? error.message : "unknown failure"}; nothing was changed.`
|
|
502
|
+
};
|
|
503
|
+
}
|
|
504
|
+
const cleanup = (path) => {
|
|
505
|
+
try {
|
|
506
|
+
(0, import_fs.rmSync)(path, { recursive: true, force: true });
|
|
507
|
+
return null;
|
|
508
|
+
} catch (error) {
|
|
509
|
+
return `cleanup incomplete for ${path} (${error instanceof Error ? error.message : "unknown failure"}) \u2014 remove it by hand`;
|
|
510
|
+
}
|
|
511
|
+
};
|
|
512
|
+
const stamp = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
|
|
513
|
+
const backupDir = (0, import_path.resolve)(homeDir, `${import_mxenv_core.LEGACY_GLOBAL_CONFIG_DIR}.backup-${stamp}`);
|
|
514
|
+
const partialDir = `${targetDir}.partial-${stamp}`;
|
|
515
|
+
try {
|
|
516
|
+
copyTree(legacyDir, partialDir);
|
|
517
|
+
(0, import_fs.writeFileSync)((0, import_path.join)(partialDir, markerName), `${backupDir}
|
|
518
|
+
`);
|
|
519
|
+
(0, import_fs.renameSync)(partialDir, targetDir);
|
|
520
|
+
} catch (error) {
|
|
521
|
+
const cleanupIssue = cleanup(partialDir);
|
|
522
|
+
return {
|
|
523
|
+
status: "failed",
|
|
524
|
+
exitCode: 1,
|
|
525
|
+
keyNames: [],
|
|
526
|
+
detail: `copy failed: ${error instanceof Error ? error.message : "unknown failure"}; ${cleanupIssue ?? `removed partial copy`}, original preserved at ${legacyDir}.`
|
|
527
|
+
};
|
|
528
|
+
}
|
|
529
|
+
try {
|
|
530
|
+
(0, import_fs.renameSync)(legacyDir, backupDir);
|
|
531
|
+
} catch (error) {
|
|
532
|
+
const cleanupIssue = [cleanup(partialDir), cleanup(targetDir)].find(Boolean) ?? null;
|
|
533
|
+
return {
|
|
534
|
+
status: "failed",
|
|
535
|
+
exitCode: 1,
|
|
536
|
+
keyNames: [],
|
|
537
|
+
detail: `backup rename failed: ${error instanceof Error ? error.message : "unknown failure"}; ${cleanupIssue ?? `removed partial copy`}, original preserved at ${legacyDir}.`
|
|
538
|
+
};
|
|
539
|
+
}
|
|
540
|
+
const restoreFromBackup = (why) => {
|
|
541
|
+
let restored = false;
|
|
542
|
+
try {
|
|
543
|
+
(0, import_fs.renameSync)(backupDir, legacyDir);
|
|
544
|
+
restored = true;
|
|
545
|
+
} catch {
|
|
546
|
+
}
|
|
547
|
+
const cleanupIssue = cleanup(targetDir);
|
|
548
|
+
return {
|
|
549
|
+
status: "failed",
|
|
550
|
+
exitCode: 1,
|
|
551
|
+
keyNames: [],
|
|
552
|
+
detail: `verification failed: ${why}; ${restored ? `restored from backup ${backupDir} (directory backup)` : `RESTORE FAILED \u2014 restore manually by renaming the directory backup ${backupDir} to ${legacyDir}`}; ${cleanupIssue ?? `removed partial ${targetDir}`}.`
|
|
553
|
+
};
|
|
554
|
+
};
|
|
555
|
+
let after;
|
|
556
|
+
try {
|
|
557
|
+
after = await composeGlobalLibrary(homeDir, allowInsecureGlobal);
|
|
558
|
+
} catch (error) {
|
|
559
|
+
return restoreFromBackup(error instanceof Error ? error.message : "unknown failure");
|
|
560
|
+
}
|
|
561
|
+
const diff = keyDiff(before, after);
|
|
562
|
+
if (diff.length) {
|
|
563
|
+
return restoreFromBackup(
|
|
564
|
+
`keys differ after migration: ${diff.join(", ")} \u2014 likely a source in the global config explicitly references the legacy path (${legacyDir}/\u2026); fix those references (values stay in place) and re-run`
|
|
565
|
+
);
|
|
566
|
+
}
|
|
567
|
+
try {
|
|
568
|
+
(0, import_fs.rmSync)(markerPath);
|
|
569
|
+
} catch {
|
|
570
|
+
}
|
|
571
|
+
const rc = rewriteRcBlocksForMigration(homeDir);
|
|
572
|
+
const rcSummary = rc.updated.length ? `; rc PATH block rewired in ${rc.updated.join(", ")}` : "";
|
|
573
|
+
const rcHint = !rc.found || rc.failures.length ? `[mxenv] shim PATH wiring: run \`mxenv-cli shell-init --write\` to point your rc block at ${(0, import_mxenv_core.shimsDir)(homeDir)}${rc.failures.length ? ` (rc rewrite failed: ${rc.failures.join("; ")})` : " (no marked rc block found)"}.` : void 0;
|
|
574
|
+
return {
|
|
575
|
+
status: "migrated",
|
|
576
|
+
exitCode: 0,
|
|
577
|
+
keyNames: Object.keys(before).sort(),
|
|
578
|
+
detail: `global directory migrated: ${legacyDir} -> ${targetDir} (${Object.keys(before).length} keys verified equivalent)${rcSummary}.`,
|
|
579
|
+
backupPath: backupDir,
|
|
580
|
+
rcHint
|
|
581
|
+
};
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
// src/editor-ui/generated/clientAssets.ts
|
|
585
|
+
var EDITOR_CLIENT_JS = '"use strict";(()=>{var Vb=Object.create;var rv=Object.defineProperty;var Yb=Object.getOwnPropertyDescriptor;var qb=Object.getOwnPropertyNames;var Gb=Object.getPrototypeOf,Xb=Object.prototype.hasOwnProperty;var fv=t=>{throw TypeError(t)};var En=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Qb=(t,e,n,l)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of qb(e))!Xb.call(t,a)&&a!==n&&rv(t,a,{get:()=>e[a],enumerable:!(l=Yb(e,a))||l.enumerable});return t};var D=(t,e,n)=>(n=t!=null?Vb(Gb(t)):{},Qb(e||!t||!t.__esModule?rv(n,"default",{value:t,enumerable:!0}):n,t));var sv=(t,e,n)=>e.has(t)||fv("Cannot "+n);var ne=(t,e,n)=>(sv(t,e,"read from private field"),n?n.call(t):e.get(t)),dv=(t,e,n)=>e.has(t)?fv("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),qr=(t,e,n,l)=>(sv(t,e,"write to private field"),l?l.call(t,n):e.set(t,n),n);var Ev=En(Rt=>{"use strict";function Zr(t,e){var n=t.length;t.push(e);t:for(;0<n;){var l=n-1>>>1,a=t[l];if(0<pu(a,e))t[l]=e,t[n]=a,n=l;else break t}}function Tn(t){return t.length===0?null:t[0]}function yu(t){if(t.length===0)return null;var e=t[0],n=t.pop();if(n!==e){t[0]=n;t:for(var l=0,a=t.length,i=a>>>1;l<i;){var o=2*(l+1)-1,u=t[o],c=o+1,r=t[c];if(0>pu(u,n))c<a&&0>pu(r,u)?(t[l]=r,t[c]=n,l=c):(t[l]=u,t[o]=n,l=o);else if(c<a&&0>pu(r,n))t[l]=r,t[c]=n,l=c;else break t}}return e}function pu(t,e){var n=t.sortIndex-e.sortIndex;return n!==0?n:t.id-e.id}Rt.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(mv=performance,Rt.unstable_now=function(){return mv.now()}):(Gr=Date,vv=Gr.now(),Rt.unstable_now=function(){return Gr.now()-vv});var mv,Gr,vv,Qn=[],vl=[],Zb=1,Xe=null,le=3,Kr=!1,Wi=!1,$i=!1,Pr=!1,gv=typeof setTimeout=="function"?setTimeout:null,yv=typeof clearTimeout=="function"?clearTimeout:null,hv=typeof setImmediate!="undefined"?setImmediate:null;function gu(t){for(var e=Tn(vl);e!==null;){if(e.callback===null)yu(vl);else if(e.startTime<=t)yu(vl),e.sortIndex=e.expirationTime,Zr(Qn,e);else break;e=Tn(vl)}}function Jr(t){if($i=!1,gu(t),!Wi)if(Tn(Qn)!==null)Wi=!0,Va||(Va=!0,ja());else{var e=Tn(vl);e!==null&&Ir(Jr,e.startTime-t)}}var Va=!1,to=-1,Sv=5,bv=-1;function Rv(){return Pr?!0:!(Rt.unstable_now()-bv<Sv)}function Xr(){if(Pr=!1,Va){var t=Rt.unstable_now();bv=t;var e=!0;try{t:{Wi=!1,$i&&($i=!1,yv(to),to=-1),Kr=!0;var n=le;try{e:{for(gu(t),Xe=Tn(Qn);Xe!==null&&!(Xe.expirationTime>t&&Rv());){var l=Xe.callback;if(typeof l=="function"){Xe.callback=null,le=Xe.priorityLevel;var a=l(Xe.expirationTime<=t);if(t=Rt.unstable_now(),typeof a=="function"){Xe.callback=a,gu(t),e=!0;break e}Xe===Tn(Qn)&&yu(Qn),gu(t)}else yu(Qn);Xe=Tn(Qn)}if(Xe!==null)e=!0;else{var i=Tn(vl);i!==null&&Ir(Jr,i.startTime-t),e=!1}}break t}finally{Xe=null,le=n,Kr=!1}e=void 0}}finally{e?ja():Va=!1}}}var ja;typeof hv=="function"?ja=function(){hv(Xr)}:typeof MessageChannel!="undefined"?(Qr=new MessageChannel,pv=Qr.port2,Qr.port1.onmessage=Xr,ja=function(){pv.postMessage(null)}):ja=function(){gv(Xr,0)};var Qr,pv;function Ir(t,e){to=gv(function(){t(Rt.unstable_now())},e)}Rt.unstable_IdlePriority=5;Rt.unstable_ImmediatePriority=1;Rt.unstable_LowPriority=4;Rt.unstable_NormalPriority=3;Rt.unstable_Profiling=null;Rt.unstable_UserBlockingPriority=2;Rt.unstable_cancelCallback=function(t){t.callback=null};Rt.unstable_forceFrameRate=function(t){0>t||125<t?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):Sv=0<t?Math.floor(1e3/t):5};Rt.unstable_getCurrentPriorityLevel=function(){return le};Rt.unstable_next=function(t){switch(le){case 1:case 2:case 3:var e=3;break;default:e=le}var n=le;le=e;try{return t()}finally{le=n}};Rt.unstable_requestPaint=function(){Pr=!0};Rt.unstable_runWithPriority=function(t,e){switch(t){case 1:case 2:case 3:case 4:case 5:break;default:t=3}var n=le;le=t;try{return e()}finally{le=n}};Rt.unstable_scheduleCallback=function(t,e,n){var l=Rt.unstable_now();switch(typeof n=="object"&&n!==null?(n=n.delay,n=typeof n=="number"&&0<n?l+n:l):n=l,t){case 1:var a=-1;break;case 2:a=250;break;case 5:a=1073741823;break;case 4:a=1e4;break;default:a=5e3}return a=n+a,t={id:Zb++,callback:e,priorityLevel:t,startTime:n,expirationTime:a,sortIndex:-1},n>l?(t.sortIndex=n,Zr(vl,t),Tn(Qn)===null&&t===Tn(vl)&&($i?(yv(to),to=-1):$i=!0,Ir(Jr,n-l))):(t.sortIndex=a,Zr(Qn,t),Wi||Kr||(Wi=!0,Va||(Va=!0,ja()))),t};Rt.unstable_shouldYield=Rv;Rt.unstable_wrapCallback=function(t){var e=le;return function(){var n=le;le=e;try{return t.apply(this,arguments)}finally{le=n}}}});var Cv=En((MA,Tv)=>{"use strict";Tv.exports=Ev()});var Bv=En(U=>{"use strict";var Wr=Symbol.for("react.transitional.element"),Kb=Symbol.for("react.portal"),Pb=Symbol.for("react.fragment"),Jb=Symbol.for("react.strict_mode"),Ib=Symbol.for("react.profiler"),Fb=Symbol.for("react.consumer"),kb=Symbol.for("react.context"),Wb=Symbol.for("react.forward_ref"),$b=Symbol.for("react.suspense"),tR=Symbol.for("react.memo"),xv=Symbol.for("react.lazy"),eR=Symbol.for("react.activity"),nR=Symbol.for("react.view_transition"),Ov=Symbol.iterator;function lR(t){return t===null||typeof t!="object"?null:(t=Ov&&t[Ov]||t["@@iterator"],typeof t=="function"?t:null)}var Dv={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},wv=Object.assign,Mv={};function qa(t,e,n){this.props=t,this.context=e,this.refs=Mv,this.updater=n||Dv}qa.prototype.isReactComponent={};qa.prototype.setState=function(t,e){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,e,"setState")};qa.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function zv(){}zv.prototype=qa.prototype;function $r(t,e,n){this.props=t,this.context=e,this.refs=Mv,this.updater=n||Dv}var tf=$r.prototype=new zv;tf.constructor=$r;wv(tf,qa.prototype);tf.isPureReactComponent=!0;var _v=Array.isArray;function kr(){}var mt={H:null,A:null,T:null,S:null},Uv=Object.prototype.hasOwnProperty;function ef(t,e,n){var l=n.ref;return{$$typeof:Wr,type:t,key:e,ref:l!==void 0?l:null,props:n}}function aR(t,e){return ef(t.type,e,t.props)}function nf(t){return typeof t=="object"&&t!==null&&t.$$typeof===Wr}function iR(t){var e={"=":"=0",":":"=2"};return"$"+t.replace(/[=:]/g,function(n){return e[n]})}var Av=/\\/+/g;function Fr(t,e){return typeof t=="object"&&t!==null&&t.key!=null?iR(""+t.key):e.toString(36)}function oR(t){switch(t.status){case"fulfilled":return t.value;case"rejected":throw t.reason;default:switch(typeof t.status=="string"?t.then(kr,kr):(t.status="pending",t.then(function(e){t.status==="pending"&&(t.status="fulfilled",t.value=e)},function(e){t.status==="pending"&&(t.status="rejected",t.reason=e)})),t.status){case"fulfilled":return t.value;case"rejected":throw t.reason}}throw t}function Ya(t,e,n,l,a){var i=typeof t;(i==="undefined"||i==="boolean")&&(t=null);var o=!1;if(t===null)o=!0;else switch(i){case"bigint":case"string":case"number":o=!0;break;case"object":switch(t.$$typeof){case Wr:case Kb:o=!0;break;case xv:return o=t._init,Ya(o(t._payload),e,n,l,a)}}if(o)return a=a(t),o=l===""?"."+Fr(t,0):l,_v(a)?(n="",o!=null&&(n=o.replace(Av,"$&/")+"/"),Ya(a,e,n,"",function(r){return r})):a!=null&&(nf(a)&&(a=aR(a,n+(a.key==null||t&&t.key===a.key?"":(""+a.key).replace(Av,"$&/")+"/")+o)),e.push(a)),1;o=0;var u=l===""?".":l+":";if(_v(t))for(var c=0;c<t.length;c++)l=t[c],i=u+Fr(l,c),o+=Ya(l,e,n,i,a);else if(c=lR(t),typeof c=="function")for(t=c.call(t),c=0;!(l=t.next()).done;)l=l.value,i=u+Fr(l,c++),o+=Ya(l,e,n,i,a);else if(i==="object"){if(typeof t.then=="function")return Ya(oR(t),e,n,l,a);throw e=String(t),Error("Objects are not valid as a React child (found: "+(e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e)+"). If you meant to render a collection of children, use an array instead.")}return o}function Su(t,e,n){if(t==null)return t;var l=[],a=0;return Ya(t,l,"","",function(i){return e.call(n,i,a++)}),l}function uR(t){if(t._status===-1){var e=t._result,n=e();n.then(function(l){(t._status===0||t._status===-1)&&(t._status=1,t._result=l,n.status===void 0&&(n.status="fulfilled",n.value=l))},function(l){(t._status===0||t._status===-1)&&(t._status=2,t._result=l,n.status===void 0&&(n.status="rejected",n.reason=l))}),t._status===-1&&(t._status=0,t._result=n)}if(t._status===1)return t._result.default;throw t._result}var Nv=typeof reportError=="function"?reportError:function(t){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var e=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof t=="object"&&t!==null&&typeof t.message=="string"?String(t.message):String(t),error:t});if(!window.dispatchEvent(e))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",t);return}console.error(t)};function Hv(t){var e=mt.T,n={};n.types=e!==null?e.types:null,mt.T=n;try{var l=t(),a=mt.S;a!==null&&a(n,l),typeof l=="object"&&l!==null&&typeof l.then=="function"&&l.then(kr,Nv)}catch(i){Nv(i)}finally{e!==null&&n.types!==null&&(e.types=n.types),mt.T=e}}function Lv(t){var e=mt.T;if(e!==null){var n=e.types;n===null?e.types=[t]:n.indexOf(t)===-1&&n.push(t)}else Hv(Lv.bind(null,t))}var cR={map:Su,forEach:function(t,e,n){Su(t,function(){e.apply(this,arguments)},n)},count:function(t){var e=0;return Su(t,function(){e++}),e},toArray:function(t){return Su(t,function(e){return e})||[]},only:function(t){if(!nf(t))throw Error("React.Children.only expected to receive a single React element child.");return t}};U.Activity=eR;U.Children=cR;U.Component=qa;U.Fragment=Pb;U.Profiler=Ib;U.PureComponent=$r;U.StrictMode=Jb;U.Suspense=$b;U.ViewTransition=nR;U.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=mt;U.__COMPILER_RUNTIME={__proto__:null,c:function(t){return mt.H.useMemoCache(t)}};U.addTransitionType=Lv;U.cache=function(t){return function(){return t.apply(null,arguments)}};U.cacheSignal=function(){return null};U.cloneElement=function(t,e,n){if(t==null)throw Error("The argument must be a React element, but you passed "+t+".");var l=wv({},t.props),a=t.key;if(e!=null)for(i in e.key!==void 0&&(a=""+e.key),e)!Uv.call(e,i)||i==="key"||i==="__self"||i==="__source"||i==="ref"&&e.ref===void 0||(l[i]=e[i]);var i=arguments.length-2;if(i===1)l.children=n;else if(1<i){for(var o=Array(i),u=0;u<i;u++)o[u]=arguments[u+2];l.children=o}return ef(t.type,a,l)};U.createContext=function(t){return t={$$typeof:kb,_currentValue:t,_currentValue2:t,_threadCount:0,Provider:null,Consumer:null},t.Provider=t,t.Consumer={$$typeof:Fb,_context:t},t};U.createElement=function(t,e,n){var l,a={},i=null;if(e!=null)for(l in e.key!==void 0&&(i=""+e.key),e)Uv.call(e,l)&&l!=="key"&&l!=="__self"&&l!=="__source"&&(a[l]=e[l]);var o=arguments.length-2;if(o===1)a.children=n;else if(1<o){for(var u=Array(o),c=0;c<o;c++)u[c]=arguments[c+2];a.children=u}if(t&&t.defaultProps)for(l in o=t.defaultProps,o)a[l]===void 0&&(a[l]=o[l]);return ef(t,i,a)};U.createRef=function(){return{current:null}};U.forwardRef=function(t){return{$$typeof:Wb,render:t}};U.isValidElement=nf;U.lazy=function(t){return{$$typeof:xv,_payload:{_status:-1,_result:t},_init:uR}};U.memo=function(t,e){return{$$typeof:tR,type:t,compare:e===void 0?null:e}};U.startTransition=Hv;U.unstable_useCacheRefresh=function(){return mt.H.useCacheRefresh()};U.use=function(t){return mt.H.use(t)};U.useActionState=function(t,e,n){return mt.H.useActionState(t,e,n)};U.useCallback=function(t,e){return mt.H.useCallback(t,e)};U.useContext=function(t){return mt.H.useContext(t)};U.useDebugValue=function(){};U.useDeferredValue=function(t,e){return mt.H.useDeferredValue(t,e)};U.useEffect=function(t,e){return mt.H.useEffect(t,e)};U.useEffectEvent=function(t){return mt.H.useEffectEvent(t)};U.useId=function(){return mt.H.useId()};U.useImperativeHandle=function(t,e,n){return mt.H.useImperativeHandle(t,e,n)};U.useInsertionEffect=function(t,e){return mt.H.useInsertionEffect(t,e)};U.useLayoutEffect=function(t,e){return mt.H.useLayoutEffect(t,e)};U.useMemo=function(t,e){return mt.H.useMemo(t,e)};U.useOptimistic=function(t,e){return mt.H.useOptimistic(t,e)};U.useReducer=function(t,e,n){return mt.H.useReducer(t,e,n)};U.useRef=function(t){return mt.H.useRef(t)};U.useState=function(t){return mt.H.useState(t)};U.useSyncExternalStore=function(t,e,n){return mt.H.useSyncExternalStore(t,e,n)};U.useTransition=function(){return mt.H.useTransition()};U.version="19.3.0"});var V=En((UA,jv)=>{"use strict";jv.exports=Bv()});var qv=En(ae=>{"use strict";var rR=V();function Yv(t){var e="https://react.dev/errors/"+t;if(1<arguments.length){e+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)e+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error #"+t+"; visit "+e+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function hl(){}var re={d:{f:hl,r:function(){throw Error(Yv(522))},D:hl,C:hl,L:hl,m:hl,X:hl,S:hl,M:hl},p:0,findDOMNode:null},fR=Symbol.for("react.portal"),sR=Symbol.for("react.recoverable"),Vv=Symbol.for("react.optimistic_key");function dR(t,e,n){var l=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:fR,key:l==null?null:l===Vv?Vv:""+l,children:t,containerInfo:e,implementation:n}}var eo=rR.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function bu(t,e){if(t==="font")return"";if(typeof e=="string")return e==="use-credentials"?e:""}ae.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=re;ae.browser=function(t){return{$$typeof:sR,_reason:t}};ae.createPortal=function(t,e){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)throw Error(Yv(299));return dR(t,e,null,n)};ae.flushSync=function(t){var e=eo.T,n=re.p;try{if(eo.T=null,re.p=2,t)return t()}finally{eo.T=e,re.p=n,re.d.f()}};ae.preconnect=function(t,e){typeof t=="string"&&(e?(e=e.crossOrigin,e=typeof e=="string"?e==="use-credentials"?e:"":void 0):e=null,re.d.C(t,e))};ae.prefetchDNS=function(t){typeof t=="string"&&re.d.D(t)};ae.preinit=function(t,e){if(typeof t=="string"&&e&&typeof e.as=="string"){var n=e.as,l=bu(n,e.crossOrigin),a=typeof e.integrity=="string"?e.integrity:void 0,i=typeof e.fetchPriority=="string"?e.fetchPriority:void 0;n==="style"?re.d.S(t,typeof e.precedence=="string"?e.precedence:void 0,{crossOrigin:l,integrity:a,fetchPriority:i}):n==="script"&&re.d.X(t,{crossOrigin:l,integrity:a,fetchPriority:i,nonce:typeof e.nonce=="string"?e.nonce:void 0})}};ae.preinitModule=function(t,e){if(typeof t=="string")if(typeof e=="object"&&e!==null){if(e.as==null||e.as==="script"){var n=bu(e.as,e.crossOrigin);re.d.M(t,{crossOrigin:n,integrity:typeof e.integrity=="string"?e.integrity:void 0,nonce:typeof e.nonce=="string"?e.nonce:void 0,fetchPriority:typeof e.fetchPriority=="string"?e.fetchPriority:void 0})}}else e==null&&re.d.M(t)};ae.preload=function(t,e){if(typeof t=="string"&&typeof e=="object"&&e!==null&&typeof e.as=="string"){var n=e.as,l=bu(n,e.crossOrigin);re.d.L(t,n,{crossOrigin:l,integrity:typeof e.integrity=="string"?e.integrity:void 0,nonce:typeof e.nonce=="string"?e.nonce:void 0,type:typeof e.type=="string"?e.type:void 0,fetchPriority:typeof e.fetchPriority=="string"?e.fetchPriority:void 0,referrerPolicy:typeof e.referrerPolicy=="string"?e.referrerPolicy:void 0,imageSrcSet:typeof e.imageSrcSet=="string"?e.imageSrcSet:void 0,imageSizes:typeof e.imageSizes=="string"?e.imageSizes:void 0,media:typeof e.media=="string"?e.media:void 0})}};ae.preloadModule=function(t,e){if(typeof t=="string")if(e){var n=bu(e.as,e.crossOrigin);re.d.m(t,{as:typeof e.as=="string"&&e.as!=="script"?e.as:void 0,crossOrigin:n,integrity:typeof e.integrity=="string"?e.integrity:void 0,nonce:typeof e.nonce=="string"?e.nonce:void 0,fetchPriority:typeof e.fetchPriority=="string"?e.fetchPriority:void 0})}else re.d.m(t)};ae.requestFormReset=function(t){re.d.r(t)};ae.unstable_batchedUpdates=function(t,e){return t(e)};ae.useFormState=function(t,e,n){return eo.H.useFormState(t,e,n)};ae.useFormStatus=function(){return eo.H.useHostTransitionStatus()};ae.version="19.3.0"});var Ga=En((LA,Xv)=>{"use strict";function Gv(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__=="undefined"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Gv)}catch(t){console.error(t)}}Gv(),Xv.exports=qv()});var xy=En(er=>{"use strict";var Bt=Cv(),Np=V(),mR=Ga();function O(t){var e="https://react.dev/errors/"+t;if(1<arguments.length){e+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)e+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error #"+t+"; visit "+e+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function xp(t){return!(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)}function Xo(t){for(var e=t,n=e;n&&!n.alternate;)e=n,(e.flags&4098)!==0&&(t=e.return),n=e.return;for(;e.return;)e=e.return;return e.tag===3?t:null}function Dp(t){if(t.tag===13){var e=t.memoizedState;if(e===null&&(t=t.alternate,t!==null&&(e=t.memoizedState)),e!==null)return e.dehydrated}return null}function wp(t){if(t.tag===31){var e=t.memoizedState;if(e===null&&(t=t.alternate,t!==null&&(e=t.memoizedState)),e!==null)return e.dehydrated}return null}function Qv(t){if(Xo(t)!==t)throw Error(O(188))}function vR(t){var e=t.alternate;if(!e){if(e=Xo(t),e===null)throw Error(O(188));return e!==t?null:t}for(var n=t,l=e;;){var a=n.return;if(a===null)break;var i=a.alternate;if(i===null){if(l=a.return,l!==null){n=l;continue}break}if(a.child===i.child){for(i=a.child;i;){if(i===n)return Qv(a),t;if(i===l)return Qv(a),e;i=i.sibling}throw Error(O(188))}if(n.return!==l.return)n=a,l=i;else{for(var o=!1,u=a.child;u;){if(u===n){o=!0,n=a,l=i;break}if(u===l){o=!0,l=a,n=i;break}u=u.sibling}if(!o){for(u=i.child;u;){if(u===n){o=!0,n=i,l=a;break}if(u===l){o=!0,l=i,n=a;break}u=u.sibling}if(!o)throw Error(O(189))}}if(n.alternate!==l)throw Error(O(190))}if(n.tag!==3)throw Error(O(188));return n.stateNode.current===n?t:e}function Mp(t){var e=t.tag;if(e===5||e===26||e===27||e===6)return t;for(t=t.child;t!==null;){if(e=Mp(t),e!==null)return e;t=t.sibling}return null}function Re(t,e,n,l,a,i){for(;t!==null;){if((t.tag===5||t.tag===27||t.tag===6)&&n(t,l,a,i)||(t.tag!==22||t.memoizedState===null)&&(e||t.tag!==5&&t.tag!==27)&&Re(t.child,e,n,l,a,i))return!0;t=t.sibling}return!1}function ga(t){for(t=t.return;t!==null;){if(t.tag===3||t.tag===5||t.tag===27)return t;t=t.return}return null}function Zv(t){var e=!1;for(t=t.return;t!==null&&(t.tag===4&&(e=!0),!(t.tag===3||t.tag===5||t.tag===27));)t=t.return;return e}function zp(t){var e=[null,null],n=ga(t);return n===null||Up(e,t,n.child,{foundSelf:!1}),e}function Up(t,e,n,l){for(;n!==null;){if(n===e)l.foundSelf=!0;else if(n.tag===5||n.tag===27||n.tag===6){if(l.foundSelf)return t[1]=n,!0;t[0]=n}else if((n.tag!==22||n.memoizedState===null)&&Up(t,e,n.child,l))return!0;n=n.sibling}return!1}function Lt(t){switch(t.tag){case 5:case 27:case 6:return t.stateNode;case 3:return t.stateNode.containerInfo;default:throw Error(O(559))}}var Ia=null,Hf=null;function hR(t,e,n){return t===n?!0:t===e?(Ia=t,!0):!1}function pR(t,e,n){return t===n?(Hf=t,!1):t===e?(Hf!==null&&(Ia=t),!0):!1}function Kv(t){if(t===null)return null;do t=t===null?null:t.return;while(t&&t.tag!==5&&t.tag!==27&&t.tag!==3);return t||null}function Lf(t,e,n){for(var l=0,a=t;a;a=n(a))l++;a=0;for(var i=e;i;i=n(i))a++;for(;0<l-a;)t=n(t),l--;for(;0<a-l;)e=n(e),a--;for(;l--;){if(t===e||e!==null&&t===e.alternate)return t;t=n(t),e=n(e)}return null}var ft=Object.assign,gR=Symbol.for("react.element"),Ru=Symbol.for("react.transitional.element"),co=Symbol.for("react.portal"),Fa=Symbol.for("react.fragment"),Hp=Symbol.for("react.strict_mode"),Bf=Symbol.for("react.profiler"),Lp=Symbol.for("react.consumer"),xn=Symbol.for("react.context"),Ks=Symbol.for("react.forward_ref"),jf=Symbol.for("react.suspense"),Vf=Symbol.for("react.suspense_list"),Ps=Symbol.for("react.memo"),Sl=Symbol.for("react.lazy"),Yf=Symbol.for("react.activity"),yR=Symbol.for("react.legacy_hidden"),SR=Symbol.for("react.memo_cache_sentinel"),qf=Symbol.for("react.view_transition"),bR=Symbol.for("react.recoverable"),Pv=Symbol.iterator;function no(t){return t===null||typeof t!="object"?null:(t=Pv&&t[Pv]||t["@@iterator"],typeof t=="function"?t:null)}var RR=Symbol.for("react.client.reference");function Gf(t){if(t==null)return null;if(typeof t=="function")return t.$$typeof===RR?null:t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case Fa:return"Fragment";case Bf:return"Profiler";case Hp:return"StrictMode";case jf:return"Suspense";case Vf:return"SuspenseList";case Yf:return"Activity";case qf:return"ViewTransition"}if(typeof t=="object")switch(t.$$typeof){case co:return"Portal";case xn:return t.displayName||"Context";case Lp:return(t._context.displayName||"Context")+".Consumer";case Ks:var e=t.render;return t=t.displayName,t||(t=e.displayName||e.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case Ps:return e=t.displayName||null,e!==null?e:Gf(t.type)||"Memo";case Sl:e=t._payload,t=t._init;try{return Gf(t(e))}catch{}}return null}var ro=Array.isArray,M=Np.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,W=mR.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,aa={pending:!1,data:null,method:null,action:null},Xf=[],ka=-1;function Ln(t){return{current:t}}function It(t){0>ka||(t.current=Xf[ka],Xf[ka]=null,ka--)}function pt(t,e){ka++,Xf[ka]=t.current,t.current=e}var zn=Ln(null),Ao=Ln(null),Nl=Ln(null),uc=Ln(null);function cc(t,e){switch(pt(Nl,e),pt(Ao,t),pt(zn,null),e.nodeType){case 9:case 11:t=(t=e.documentElement)&&(t=t.namespaceURI)?up(t):0;break;default:if(t=e.tagName,e=e.namespaceURI)e=up(e),t=ay(e,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}It(zn),pt(zn,t)}function gi(){It(zn),It(Ao),It(Nl)}function Qf(t){var e=t.memoizedState;e!==null&&(Ai._currentValue=e.memoizedState,pt(uc,t)),e=zn.current;var n=ay(e,t.type);e!==n&&(pt(Ao,t),pt(zn,n))}function rc(t){Ao.current===t&&(It(zn),It(Ao)),uc.current===t&&(It(uc),Ai._currentValue=aa)}var lf,Jv;function gl(t){if(lf===void 0)try{throw Error()}catch(n){var e=n.stack.trim().match(/\\n( *(at )?)/);lf=e&&e[1]||"",Jv=-1<n.stack.indexOf(`\n at`)?" (<anonymous>)":-1<n.stack.indexOf("@")?"@unknown:0:0":""}return`\n`+lf+t+Jv}var af=!1;function of(t,e){if(!t||af)return"";af=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var l={DetermineComponentFrameRoot:function(){try{if(e){var v=function(){throw Error()};if(Object.defineProperty(v.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(v,[])}catch(S){var f=S}Reflect.construct(t,[],v)}else{try{v.call()}catch(S){f=S}v=!1;try{var h=Object.getOwnPropertyDescriptor(t.prototype,"props");Object.defineProperty(t.prototype,"props",{configurable:!0,set:function(){throw Error()}}),v=!0,new t}finally{v&&(h!==void 0?Object.defineProperty(t.prototype,"props",h):delete t.prototype.props)}}}else{try{throw Error()}catch(S){f=S}(v=t())&&typeof v.catch=="function"&&v.catch(function(){})}}catch(S){if(S&&f&&typeof S.stack=="string")return[S.stack,f.stack]}return[null,null]}};l.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var a=Object.getOwnPropertyDescriptor(l.DetermineComponentFrameRoot,"name");a&&a.configurable&&Object.defineProperty(l.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var i=l.DetermineComponentFrameRoot(),o=i[0],u=i[1];if(o&&u){var c=o.split(`\n`),r=u.split(`\n`);for(a=l=0;l<c.length&&!c[l].includes("DetermineComponentFrameRoot");)l++;for(;a<r.length&&!r[a].includes("DetermineComponentFrameRoot");)a++;if(l===c.length||a===r.length)for(l=c.length-1,a=r.length-1;1<=l&&0<=a&&c[l]!==r[a];)a--;for(;1<=l&&0<=a;l--,a--)if(c[l]!==r[a]){if(l!==1||a!==1)do if(l--,a--,0>a||c[l]!==r[a]){var s=`\n`+c[l].replace(" at new "," at ");return t.displayName&&s.includes("<anonymous>")&&(s=s.replace("<anonymous>",t.displayName)),s}while(1<=l&&0<=a);break}}}finally{af=!1,Error.prepareStackTrace=n}return(n=t?t.displayName||t.name:"")?gl(n):""}function ER(t,e){switch(t.tag){case 26:case 27:case 5:return gl(t.type);case 16:return gl("Lazy");case 13:return t.child!==e&&e!==null?gl("Suspense Fallback"):gl("Suspense");case 19:return gl("SuspenseList");case 0:case 15:return of(t.type,!1);case 11:return of(t.type.render,!1);case 1:return of(t.type,!0);case 31:return gl("Activity");case 30:return gl("ViewTransition");default:return""}}function Iv(t){try{var e="",n=null;do e+=ER(t,n),n=t,t=t.return;while(t);return e}catch(l){return`\nError generating stack: `+l.message+`\n`+l.stack}}var Zf=Object.prototype.hasOwnProperty,Js=Bt.unstable_scheduleCallback,uf=Bt.unstable_cancelCallback,TR=Bt.unstable_shouldYield,CR=Bt.unstable_requestPaint,ze=Bt.unstable_now,OR=Bt.unstable_getCurrentPriorityLevel,Bp=Bt.unstable_ImmediatePriority,jp=Bt.unstable_UserBlockingPriority,fc=Bt.unstable_NormalPriority,_R=Bt.unstable_LowPriority,Vp=Bt.unstable_IdlePriority,AR=Bt.log,NR=Bt.unstable_setDisableYieldValue,Qo=null,Ue=null;function El(t){if(typeof AR=="function"&&NR(t),Ue&&typeof Ue.setStrictMode=="function")try{Ue.setStrictMode(Qo,t)}catch{}}var He=Math.clz32?Math.clz32:wR,xR=Math.log,DR=Math.LN2;function wR(t){return t>>>=0,t===0?32:31-(xR(t)/DR|0)|0}var Eu=256,Tu=262144,Cu=4194304;function $l(t){var e=t&42;if(e!==0)return e;switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return t&-t;case 262144:case 524288:case 1048576:case 2097152:return t&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return t&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return t}}function Lc(t,e,n){var l=t.pendingLanes;if(l===0)return 0;var a=0,i=t.suspendedLanes,o=t.pingedLanes;t=t.warmLanes;var u=l&134217727;return u!==0?(l=u&~i,l!==0?a=$l(l):(o&=u,o!==0?a=$l(o):n||(n=u&~t,n!==0&&(a=$l(n))))):(u=l&~i,u!==0?a=$l(u):o!==0?a=$l(o):n||(n=l&~t,n!==0&&(a=$l(n)))),a===0?0:e!==0&&e!==a&&(e&i)===0&&(i=a&-a,n=e&-e,i>=n||i===32&&(n&4194048)!==0)?e:a}function Zo(t,e){return(t.pendingLanes&~(t.suspendedLanes&~t.pingedLanes)&e)===0}function Yp(t,e){(e&8)!==0&&(e|=e&32);var n=t.entangledLanes;if(n!==0)for(t=t.entanglements,n&=e;0<n;){var l=31-He(n),a=1<<l;e|=t[l],n&=~a}return e}function MR(t,e){switch(t){case 1:case 2:case 4:case 8:case 64:return e+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function qp(){var t=Cu;return Cu<<=1,(Cu&62914560)===0&&(Cu=4194304),t}function cf(t){for(var e=[],n=0;31>n;n++)e.push(t);return e}function Ko(t,e){t.pendingLanes|=e,e!==268435456&&(t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0)}function zR(t,e,n,l,a,i){var o=t.pendingLanes;t.pendingLanes=n,t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0,t.expiredLanes&=n,t.entangledLanes&=n,t.errorRecoveryDisabledLanes&=n,t.shellSuspendCounter=0;var u=t.entanglements,c=t.expirationTimes,r=t.hiddenUpdates;for(n=o&~n;0<n;){var s=31-He(n),v=1<<s;u[s]=0,c[s]=-1;var f=r[s];if(f!==null)for(r[s]=null,s=0;s<f.length;s++){var h=f[s];h!==null&&(h.lane&=-536870913)}n&=~v}l!==0&&Gp(t,l,0),i!==0&&a===0&&t.tag!==0&&(t.suspendedLanes|=i&~(o&~e))}function Gp(t,e,n){t.pendingLanes|=e,t.suspendedLanes&=~e;var l=31-He(e);t.entangledLanes|=e,t.entanglements[l]=t.entanglements[l]|1073741824|n&261930}function Xp(t,e){var n=t.entangledLanes|=e;for(t=t.entanglements;n;){var l=31-He(n),a=1<<l;a&e|t[l]&e&&(t[l]|=e),n&=~a}}function Qp(t,e){var n=e&-e;return n=(n&42)!==0?1:Is(n),(n&(t.suspendedLanes|e))!==0?0:n}function Is(t){switch(t){case 2:t=1;break;case 8:t=4;break;case 32:t=16;break;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:t=128;break;case 268435456:t=134217728;break;default:t=0}return t}function Fs(t){return t&=-t,2<t?8<t?(t&134217727)!==0?32:268435456:8:2}function Zp(){var t=W.p;return t!==0?t:(t=window.event,t===void 0?32:_y(t.type))}function Fv(t,e){var n=W.p;try{return W.p=t,e()}finally{W.p=n}}var ll=Math.random().toString(36).slice(2),Pt="__reactFiber$"+ll,Ee="__reactProps$"+ll,Di="__reactContainer$"+ll,kv="__reactEvents$"+ll,UR="__reactListeners$"+ll,HR="__reactHandles$"+ll,Wv="__reactResources$"+ll,Po="__reactMarker$"+ll,sc="__reactLoad$"+ll;function Bc(t){delete t[Pt],delete t[Ee],delete t[UR],delete t[HR]}function na(t){var e;if(e=t[Pt])return e;for(var n=t.parentNode;n;){if(e=n[Di]||n[Pt]){if(n=e.alternate,e.child!==null||n!==null&&n.child!==null)for(t=hp(t);t!==null;){if(n=t[Pt])return n;t=hp(t)}return e}t=n,n=t.parentNode}return null}function wi(t){if(t=t[Pt]||t[Di]){var e=t.tag;if(e===5||e===6||e===13||e===31||e===26||e===27||e===3)return t}return null}function fo(t){var e=t.tag;if(e===5||e===26||e===27||e===6)return t.stateNode;throw Error(O(33))}function ui(t){var e=t[Wv];return e||(e=t[Wv]={hoistableStyles:new Map,hoistableScripts:new Map}),e}function Yt(t){t[Po]=!0}function Kp(t){t[sc]=void 0}var Pp=new Set,Jp={};function ya(t,e){yi(t,e),yi(t+"Capture",e)}function yi(t,e){for(Jp[t]=e,t=0;t<e.length;t++)Pp.add(e[t])}var LR=RegExp("^[: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]*$"),$v={},th={};function BR(t){return Zf.call(th,t)?!0:Zf.call($v,t)?!1:LR.test(t)?th[t]=!0:($v[t]=!0,!1)}var J=!1;function eh(){var t=J;return J=!1,t}function Gu(t,e,n){if(BR(e))if(n===null)t.removeAttribute(e);else{switch(typeof n){case"undefined":case"function":case"symbol":t.removeAttribute(e);return;case"boolean":var l=e.toLowerCase().slice(0,5);if(l!=="data-"&&l!=="aria-"){t.removeAttribute(e);return}}t.setAttribute(e,n)}}function Ou(t,e,n){if(n===null)t.removeAttribute(e);else{switch(typeof n){case"undefined":case"function":case"symbol":case"boolean":t.removeAttribute(e);return}t.setAttribute(e,n)}}function Zn(t,e,n,l){if(l===null)t.removeAttribute(n);else{switch(typeof l){case"undefined":case"function":case"symbol":case"boolean":t.removeAttribute(n);return}t.setAttributeNS(e,n,l)}}function xe(t){switch(typeof t){case"bigint":case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function Ip(t){var e=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function jR(t,e,n){var l=Object.getOwnPropertyDescriptor(t.constructor.prototype,e);if(!t.hasOwnProperty(e)&&typeof l!="undefined"&&typeof l.get=="function"&&typeof l.set=="function"){var a=l.get,i=l.set;return Object.defineProperty(t,e,{configurable:!0,get:function(){return a.call(this)},set:function(o){n=""+o,i.call(this,o)}}),Object.defineProperty(t,e,{enumerable:l.enumerable}),{getValue:function(){return n},setValue:function(o){n=""+o},stopTracking:function(){t._valueTracker=null,delete t[e]}}}}function Kf(t){if(!t._valueTracker){var e=Ip(t)?"checked":"value";t._valueTracker=jR(t,e,""+t[e])}}function Fp(t){if(!t)return!1;var e=t._valueTracker;if(!e)return!0;var n=e.getValue(),l="";return t&&(l=Ip(t)?t.checked?"true":"false":t.value),t=l,t!==n?(e.setValue(t),!0):!1}var VR=/[\\n"\\\\]/g;function Je(t){return t.replace(VR,function(e){return"\\\\"+e.charCodeAt(0).toString(16)+" "})}function Pf(t,e,n,l,a,i,o,u){t.name="",o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"?t.type=o:t.removeAttribute("type"),e!=null?o==="number"?(e===0&&t.value===""||t.value!=e)&&(t.value=""+xe(e)):t.value!==""+xe(e)&&(t.value=""+xe(e)):o!=="submit"&&o!=="reset"||t.removeAttribute("value"),e!=null?o==="number"&&t.value==e?rf(t,xe(t.value)):rf(t,xe(e)):n!=null?rf(t,xe(n)):l!=null&&t.removeAttribute("value"),a==null&&i!=null&&(t.defaultChecked=!!i),a!=null&&(t.checked=a&&typeof a!="function"&&typeof a!="symbol"),u!=null&&typeof u!="function"&&typeof u!="symbol"&&typeof u!="boolean"?t.name=""+xe(u):t.removeAttribute("name")}function kp(t,e,n,l,a,i,o,u){if(i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(t.type=i),e!=null||n!=null){if(!(i!=="submit"&&i!=="reset"||e!=null)){Kf(t);return}n=n!=null?""+xe(n):"",e=e!=null?""+xe(e):n,u||e===t.value||(t.value=e),t.defaultValue=e}l=l!=null?l:a,l=typeof l!="function"&&typeof l!="symbol"&&!!l,t.checked=u?t.checked:!!l,t.defaultChecked=!!l,o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"&&(t.name=o),Kf(t)}function rf(t,e){t.defaultValue!==""+e&&(t.defaultValue=""+e)}function ci(t,e,n,l){if(t=t.options,e){e={};for(var a=0;a<n.length;a++)e["$"+n[a]]=!0;for(n=0;n<t.length;n++)a=e.hasOwnProperty("$"+t[n].value),t[n].selected!==a&&(t[n].selected=a),a&&l&&(t[n].defaultSelected=!0)}else{for(n=""+xe(n),e=null,a=0;a<t.length;a++){if(t[a].value===n){t[a].selected=!0,l&&(t[a].defaultSelected=!0);return}e!==null||t[a].disabled||(e=t[a])}e!==null&&(e.selected=!0)}}function Wp(t,e,n){if(e!=null&&(e=""+xe(e),e!==t.value&&(t.value=e),n==null)){t.defaultValue!==e&&(t.defaultValue=e);return}t.defaultValue=n!=null?""+xe(n):""}function $p(t,e,n,l){if(e==null){if(l!=null){if(n!=null)throw Error(O(92));if(ro(l)){if(1<l.length)throw Error(O(93));l=l[0]}n=l}n==null&&(n=""),e=n}n=xe(e),t.defaultValue=n,l=t.textContent,l===n&&l!==""&&l!==null&&(t.value=l),Kf(t)}function Si(t,e){if(e){var n=t.firstChild;if(n&&n===t.lastChild&&n.nodeType===3){n.nodeValue=e;return}}t.textContent=e}var YR=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function nh(t,e,n){var l=e.indexOf("--")===0;n==null||typeof n=="boolean"||n===""?l?t.setProperty(e,""):e==="float"?t.cssFloat="":t[e]="":l?t.setProperty(e,n):typeof n!="number"||n===0||YR.has(e)?e==="float"?t.cssFloat=n:t[e]=(""+n).trim():t[e]=n+"px"}function tg(t,e,n){if(e!=null&&typeof e!="object")throw Error(O(62));if(t=t.style,n!=null){for(var l in n)!n.hasOwnProperty(l)||e!=null&&e.hasOwnProperty(l)||(l.indexOf("--")===0?t.setProperty(l,""):l==="float"?t.cssFloat="":t[l]="",J=!0);for(var a in e)l=e[a],e.hasOwnProperty(a)&&n[a]!==l&&(nh(t,a,l),J=!0)}else for(var i in e)e.hasOwnProperty(i)&&nh(t,i,e[i])}function ks(t){if(t.indexOf("-")===-1)return!1;switch(t){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 qR=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["maskType","mask-type"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),GR=/^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;function Xu(t){return GR.test(""+t)?"javascript:throw new Error(\'React has blocked a javascript: URL as a security precaution.\')":t}function Dn(){}var Jf=null;function Ws(t){return t=t.target||t.srcElement||window,t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===3?t.parentNode:t}var Wa=null,ri=null;function lh(t){var e=wi(t);if(e&&(t=e.stateNode)){var n=t[Ee]||null;t:switch(t=e.stateNode,e.type){case"input":if(Pf(t,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),e=n.name,n.type==="radio"&&e!=null){for(n=t;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll(\'input[name="\'+Je(""+e)+\'"][type="radio"]\'),e=0;e<n.length;e++){var l=n[e];if(l!==t&&l.form===t.form){var a=l[Ee]||null;if(!a)throw Error(O(90));Pf(l,a.value,a.defaultValue,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name)}}for(e=0;e<n.length;e++)l=n[e],l.form===t.form&&Fp(l)}break t;case"textarea":Wp(t,n.value,n.defaultValue);break t;case"select":e=n.value,e!=null&&ci(t,!!n.multiple,e,!1)}}}var ff=!1;function eg(t,e,n){if(ff)return t(e,n);ff=!0;try{var l=t(e);return l}finally{if(ff=!1,(Wa!==null||ri!==null)&&(kc(),Wa&&(e=Wa,t=ri,ri=Wa=null,lh(e),t)))for(e=0;e<t.length;e++)lh(t[e])}}function No(t,e){var n=t.stateNode;if(n===null)return null;var l=n[Ee]||null;if(l===null)return null;n=l[e];t:switch(e){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(l=!l.disabled)||(t=t.type,l=!(t==="button"||t==="input"||t==="select"||t==="textarea")),t=!l;break t;default:t=!1}if(t)return null;if(n&&typeof n!="function")throw Error(O(231,e,typeof n));return n}var kn=!(typeof window=="undefined"||typeof window.document=="undefined"||typeof window.document.createElement=="undefined"),If=!1;if(kn)try{Xa={},Object.defineProperty(Xa,"passive",{get:function(){If=!0}}),window.addEventListener("test",Xa,Xa),window.removeEventListener("test",Xa,Xa)}catch{If=!1}var Xa,Tl=null,$s=null,Qu=null;function ng(){if(Qu)return Qu;var t,e=$s,n=e.length,l,a="value"in Tl?Tl.value:Tl.textContent,i=a.length;for(t=0;t<n&&e[t]===a[t];t++);var o=n-t;for(l=1;l<=o&&e[n-l]===a[i-l];l++);return Qu=a.slice(t,1<l?1-l:void 0)}function Zu(t){var e=t.keyCode;return"charCode"in t?(t=t.charCode,t===0&&e===13&&(t=13)):t=e,t===10&&(t=13),32<=t||t===13?t:0}function _u(){return!0}function ah(){return!1}function me(t){function e(n,l,a,i,o){this._reactName=n,this._targetInst=a,this.type=l,this.nativeEvent=i,this.target=o,this.currentTarget=null;for(var u in t)t.hasOwnProperty(u)&&(n=t[u],this[u]=n?n(i):i[u]);return this.isDefaultPrevented=(i.defaultPrevented!=null?i.defaultPrevented:i.returnValue===!1)?_u:ah,this.isPropagationStopped=ah,this}return ft(e.prototype,{preventDefault:function(){this.defaultPrevented=!0;var n=this.nativeEvent;n&&(n.preventDefault?n.preventDefault():typeof n.returnValue!="unknown"&&(n.returnValue=!1),this.isDefaultPrevented=_u)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=_u)},persist:function(){},isPersistent:_u}),e}var Xl={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(t){return t.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},jc=me(Xl),Jo=ft({},Xl,{view:0,detail:0}),XR=me(Jo),sf,df,lo,Vc=ft({},Jo,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:td,button:0,buttons:0,relatedTarget:function(t){return t.relatedTarget===void 0?t.fromElement===t.srcElement?t.toElement:t.fromElement:t.relatedTarget},movementX:function(t){return"movementX"in t?t.movementX:(t!==lo&&(lo&&t.type==="mousemove"?(sf=t.screenX-lo.screenX,df=t.screenY-lo.screenY):df=sf=0,lo=t),sf)},movementY:function(t){return"movementY"in t?t.movementY:df}}),ih=me(Vc),QR=ft({},Vc,{dataTransfer:0}),ZR=me(QR),KR=ft({},Jo,{relatedTarget:0}),mf=me(KR),PR=ft({},Xl,{animationName:0,elapsedTime:0,pseudoElement:0}),JR=me(PR),IR=ft({},Xl,{clipboardData:function(t){return"clipboardData"in t?t.clipboardData:window.clipboardData}}),FR=me(IR),kR=ft({},Xl,{data:0}),oh=me(kR),WR={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},$R={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"},tE={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function eE(t){var e=this.nativeEvent;return e.getModifierState?e.getModifierState(t):(t=tE[t])?!!e[t]:!1}function td(){return eE}var nE=ft({},Jo,{key:function(t){if(t.key){var e=WR[t.key]||t.key;if(e!=="Unidentified")return e}return t.type==="keypress"?(t=Zu(t),t===13?"Enter":String.fromCharCode(t)):t.type==="keydown"||t.type==="keyup"?$R[t.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:td,charCode:function(t){return t.type==="keypress"?Zu(t):0},keyCode:function(t){return t.type==="keydown"||t.type==="keyup"?t.keyCode:0},which:function(t){return t.type==="keypress"?Zu(t):t.type==="keydown"||t.type==="keyup"?t.keyCode:0}}),lE=me(nE),aE=ft({},Vc,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),uh=me(aE),iE=ft({},Xl,{submitter:0}),oE=me(iE),uE=ft({},Jo,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:td}),cE=me(uE),rE=ft({},Xl,{propertyName:0,elapsedTime:0,pseudoElement:0}),fE=me(rE),sE=ft({},Vc,{deltaX:function(t){return"deltaX"in t?t.deltaX:"wheelDeltaX"in t?-t.wheelDeltaX:0},deltaY:function(t){return"deltaY"in t?t.deltaY:"wheelDeltaY"in t?-t.wheelDeltaY:"wheelDelta"in t?-t.wheelDelta:0},deltaZ:0,deltaMode:0}),dE=me(sE),mE=ft({},Xl,{newState:0,oldState:0,source:0}),vE=me(mE),hE=[9,13,27,32],ed=kn&&"CompositionEvent"in window,vo=null;kn&&"documentMode"in document&&(vo=document.documentMode);var pE=kn&&"TextEvent"in window&&!vo,lg=kn&&(!ed||vo&&8<vo&&11>=vo),ch=" ",rh=!1;function ag(t,e){switch(t){case"keyup":return hE.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function ig(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var $a=!1;function gE(t,e){switch(t){case"compositionend":return ig(e);case"keypress":return e.which!==32?null:(rh=!0,ch);case"textInput":return t=e.data,t===ch&&rh?null:t;default:return null}}function yE(t,e){if($a)return t==="compositionend"||!ed&&ag(t,e)?(t=ng(),Qu=$s=Tl=null,$a=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1<e.char.length)return e.char;if(e.which)return String.fromCharCode(e.which)}return null;case"compositionend":return lg&&e.locale!=="ko"?null:e.data;default:return null}}var SE={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 fh(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e==="input"?!!SE[t.type]:e==="textarea"}function og(t,e,n,l){Wa?ri?ri.push(l):ri=[l]:Wa=l,e=zc(e,"onChange"),0<e.length&&(n=new jc("onChange","change",null,n,l),t.push({event:n,listeners:e}))}var ho=null,xo=null;function bE(t){ey(t,0)}function Yc(t){var e=fo(t);if(Fp(e))return t}function sh(t,e){if(t==="change")return e}var ug=!1;kn&&(kn?(Nu="oninput"in document,Nu||(vf=document.createElement("div"),vf.setAttribute("oninput","return;"),Nu=typeof vf.oninput=="function"),Au=Nu):Au=!1,ug=Au&&(!document.documentMode||9<document.documentMode));var Au,Nu,vf;function dh(){ho&&(ho.detachEvent("onpropertychange",cg),xo=ho=null)}function cg(t){if(t.propertyName==="value"&&Yc(xo)){var e=[];og(e,xo,t,Ws(t)),eg(bE,e)}}function RE(t,e,n){t==="focusin"?(dh(),ho=e,xo=n,ho.attachEvent("onpropertychange",cg)):t==="focusout"&&dh()}function EE(t){if(t==="selectionchange"||t==="keyup"||t==="keydown")return Yc(xo)}function TE(t,e){if(t==="click")return Yc(e)}function CE(t,e){if(t==="input"||t==="change")return Yc(e)}function OE(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var Be=typeof Object.is=="function"?Object.is:OE;function Do(t,e){if(Be(t,e))return!0;if(typeof t!="object"||t===null||typeof e!="object"||e===null)return!1;var n=Object.keys(t),l=Object.keys(e);if(n.length!==l.length)return!1;for(l=0;l<n.length;l++){var a=n[l];if(!Zf.call(e,a)||!Be(t[a],e[a]))return!1}return!0}function Ff(t){if(t=t||(typeof document!="undefined"?document:void 0),typeof t=="undefined")return null;try{return t.activeElement||t.body}catch{return t.body}}function mh(t){for(;t&&t.firstChild;)t=t.firstChild;return t}function vh(t,e){var n=mh(t);t=0;for(var l;n;){if(n.nodeType===3){if(l=t+n.textContent.length,t<=e&&l>=e)return{node:n,offset:e-t};t=l}t:{for(;n;){if(n.nextSibling){n=n.nextSibling;break t}n=n.parentNode}n=void 0}n=mh(n)}}function rg(t,e){return t&&e?t===e?!0:t&&t.nodeType===3?!1:e&&e.nodeType===3?rg(t,e.parentNode):"contains"in t?t.contains(e):t.compareDocumentPosition?!!(t.compareDocumentPosition(e)&16):!1:!1}function fg(t){t=t!=null&&t.ownerDocument!=null&&t.ownerDocument.defaultView!=null?t.ownerDocument.defaultView:window;for(var e=Ff(t.document);e instanceof t.HTMLIFrameElement;){try{var n=typeof e.contentWindow.location.href=="string"}catch{n=!1}if(n)t=e.contentWindow;else break;e=Ff(t.document)}return e}function nd(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(e==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||e==="textarea"||t.contentEditable==="true")}var _E=kn&&"documentMode"in document&&11>=document.documentMode,ti=null,kf=null,po=null,Wf=!1;function hh(t,e,n){var l=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Wf||ti==null||ti!==Ff(l)||(l=ti,"selectionStart"in l&&nd(l)?l={start:l.selectionStart,end:l.selectionEnd}:(l=(l.ownerDocument&&l.ownerDocument.defaultView||window).getSelection(),l={anchorNode:l.anchorNode,anchorOffset:l.anchorOffset,focusNode:l.focusNode,focusOffset:l.focusOffset}),po&&Do(po,l)||(po=l,l=zc(kf,"onSelect"),0<l.length&&(e=new jc("onSelect","select",null,e,n),t.push({event:e,listeners:l}),e.target=ti)))}function kl(t,e){var n={};return n[t.toLowerCase()]=e.toLowerCase(),n["Webkit"+t]="webkit"+e,n["Moz"+t]="moz"+e,n}var ei={animationend:kl("Animation","AnimationEnd"),animationiteration:kl("Animation","AnimationIteration"),animationstart:kl("Animation","AnimationStart"),transitionrun:kl("Transition","TransitionRun"),transitionstart:kl("Transition","TransitionStart"),transitioncancel:kl("Transition","TransitionCancel"),transitionend:kl("Transition","TransitionEnd")},hf={},sg={};kn&&(sg=document.createElement("div").style,"AnimationEvent"in window||(delete ei.animationend.animation,delete ei.animationiteration.animation,delete ei.animationstart.animation),"TransitionEvent"in window||delete ei.transitionend.transition);function Sa(t){if(hf[t])return hf[t];if(!ei[t])return t;var e=ei[t],n;for(n in e)if(e.hasOwnProperty(n)&&n in sg)return hf[t]=e[n];return t}var dg=Sa("animationend"),mg=Sa("animationiteration"),vg=Sa("animationstart"),AE=Sa("transitionrun"),NE=Sa("transitionstart"),xE=Sa("transitioncancel"),hg=Sa("transitionend"),pg=new Map,$f="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error fullscreenChange fullscreenError 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(" ");$f.push("scrollEnd");function rn(t,e){pg.set(t,e),ya(e,[t])}var DE=0;function Wn(t,e){if(t.name!=null&&t.name!=="auto")return t.name;if(e.autoName!==null)return e.autoName;t=cn.identifierPrefix;var n=DE++;return t="_"+t+"t_"+n.toString(32)+"_",e.autoName=t}function ph(t){if(t==null||typeof t=="string")return t;var e=null,n=pi;if(n!==null)for(var l=0;l<n.length;l++){var a=t[n[l]];if(a!=null){if(a==="none")return"none";e=e==null?a:e+(" "+a)}}return e==null?t.default:e}function al(t,e){return t=ph(t),e=ph(e),e==null?t==="auto"?null:t:e==="auto"?null:e}var dc=typeof reportError=="function"?reportError:function(t){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var e=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof t=="object"&&t!==null&&typeof t.message=="string"?String(t.message):String(t),error:t});if(!window.dispatchEvent(e))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",t);return}console.error(t)},Ze=[],ni=0,ld=0;function qc(){for(var t=ni,e=ld=ni=0;e<t;){var n=Ze[e];Ze[e++]=null;var l=Ze[e];Ze[e++]=null;var a=Ze[e];Ze[e++]=null;var i=Ze[e];if(Ze[e++]=null,l!==null&&a!==null){var o=l.pending;o===null?a.next=a:(a.next=o.next,o.next=a),l.pending=a}i!==0&&gg(n,a,i)}}function Gc(t,e,n,l){Ze[ni++]=t,Ze[ni++]=e,Ze[ni++]=n,Ze[ni++]=l,ld|=l,t.lanes|=l,t=t.alternate,t!==null&&(t.lanes|=l)}function ad(t,e,n,l){return Gc(t,e,n,l),mc(t)}function ba(t,e){return Gc(t,null,null,e),mc(t)}function gg(t,e,n){t.lanes|=n;var l=t.alternate;l!==null&&(l.lanes|=n);for(var a=!1,i=t.return;i!==null;)i.childLanes|=n,l=i.alternate,l!==null&&(l.childLanes|=n),i.tag===22&&(t=i.stateNode,t===null||t._visibility&1||(a=!0)),t=i,i=i.return;return t.tag===3?(i=t.stateNode,a&&e!==null&&(a=31-He(n),t=i.hiddenUpdates,l=t[a],l===null?t[a]=[e]:l.push(e),e.lane=n|536870912),i):null}function mc(t){if(50<_o)throw _o=0,ec=null,Error(O(185));for(var e=t.return;e!==null;)t=e,e=t.return;return t.tag===3?t.stateNode:null}var li={};function wE(t,e,n,l){this.tag=t,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=l,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Se(t,e,n,l){return new wE(t,e,n,l)}function id(t){return t=t.prototype,!(!t||!t.isReactComponent)}function In(t,e){var n=t.alternate;return n===null?(n=Se(t.tag,e,t.key,t.mode),n.elementType=t.elementType,n.type=t.type,n.stateNode=t.stateNode,n.alternate=t,t.alternate=n):(n.pendingProps=e,n.type=t.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=t.flags&1206910976,n.childLanes=t.childLanes,n.lanes=t.lanes,n.child=t.child,n.memoizedProps=t.memoizedProps,n.memoizedState=t.memoizedState,n.updateQueue=t.updateQueue,e=t.dependencies,n.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},n.sibling=t.sibling,n.index=t.index,n.ref=t.ref,n.refCleanup=t.refCleanup,n}function yg(t,e){t.flags&=1206910978;var n=t.alternate;return n===null?(t.childLanes=0,t.lanes=e,t.child=null,t.subtreeFlags=0,t.memoizedProps=null,t.memoizedState=null,t.updateQueue=null,t.dependencies=null,t.stateNode=null):(t.childLanes=n.childLanes,t.lanes=n.lanes,t.child=n.child,t.subtreeFlags=0,t.deletions=null,t.memoizedProps=n.memoizedProps,t.memoizedState=n.memoizedState,t.updateQueue=n.updateQueue,t.type=n.type,e=n.dependencies,t.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),t}function Ku(t,e,n,l,a,i){var o=0;if(l=t,typeof l=="function")id(l)&&(o=1);else if(typeof l=="string")o=lC(t,n,zn.current)?26:t==="html"||t==="head"||t==="body"?27:5;else t:switch(l){case Yf:return t=Se(31,n,e,a),t.elementType=Yf,t.lanes=i,t;case Fa:return ia(n.children,a,i,e);case Hp:o=8,a|=24;break;case Bf:return t=Se(12,n,e,a|2),t.elementType=Bf,t.lanes=i,t;case jf:return t=Se(13,n,e,a),t.elementType=jf,t.lanes=i,t;case Vf:return t=Se(19,n,e,a),t.elementType=Vf,t.lanes=i,t;case yR:case qf:return t=a|32,t=Se(30,n,e,t),t.elementType=qf,t.lanes=i,t.stateNode={autoName:null,paired:null,clones:null,ref:null},t;default:if(typeof l=="object"&&l!==null)switch(l.$$typeof){case xn:o=10;break t;case Lp:o=9;break t;case Ks:o=11;break t;case Ps:o=14;break t;case Sl:o=16,l=null;break t}o=29,n=Error(O(130,t===null?"null":typeof t,"")),l=null}return e=Se(o,n,e,a),e.elementType=t,e.type=l,e.lanes=i,e}function ia(t,e,n,l){return t=Se(7,t,l,e),t.lanes=n,t}function pf(t,e,n){return t=Se(6,t,null,e),t.lanes=n,t}function Sg(t){var e=Se(18,null,null,0);return e.stateNode=t,e}function gf(t,e,n){return e=Se(4,t.children!==null?t.children:[],t.key,e),e.lanes=n,e.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},e}var gh=new WeakMap;function Ie(t,e){if(typeof t=="object"&&t!==null){var n=gh.get(t);return n!==void 0?n:(e={value:t,source:e,stack:Iv(e)},gh.set(t,e),e)}return{value:t,source:e,stack:Iv(e)}}var ai=[],ii=0,vc=null,wo=0,Ke=[],Pe=0,jl=null,wn=1,Mn="";function Pn(t,e){ai[ii++]=wo,ai[ii++]=vc,vc=t,wo=e}function bg(t,e,n){Ke[Pe++]=wn,Ke[Pe++]=Mn,Ke[Pe++]=jl,jl=t;var l=wn;t=Mn;var a=32-He(l)-1;l&=~(1<<a),n+=1;var i=32-He(e)+a;if(30<i){var o=a-a%5;i=(l&(1<<o)-1).toString(32),l>>=o,a-=o,wn=1<<32-He(e)+a|n<<a|l,Mn=i+t}else wn=1<<i|n<<a|l,Mn=t}function Xc(t){t.return!==null&&(Pn(t,1),bg(t,1,0))}function od(t){for(;t===vc;)vc=ai[--ii],ai[ii]=null,wo=ai[--ii],ai[ii]=null;for(;t===jl;)jl=Ke[--Pe],Ke[Pe]=null,Mn=Ke[--Pe],Ke[Pe]=null,wn=Ke[--Pe],Ke[Pe]=null}function Rg(t,e){Ke[Pe++]=wn,Ke[Pe++]=Mn,Ke[Pe++]=jl,wn=e.id,Mn=e.overflow,jl=t}var qt=null,ht=null,Y=!1,xl=null,Fe=!1,ts=Error(O(519));function Vl(t){var e=Error(O(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw Mo(Ie(e,t)),ts}function yh(t){var e=t.stateNode,n=t.type,l=t.memoizedProps;switch(e[Pt]=t,e[Ee]=l,n){case"dialog":G("cancel",e),G("close",e);break;case"iframe":case"object":case"embed":G("load",e);break;case"video":case"audio":for(n=0;n<Lo.length;n++)G(Lo[n],e);break;case"source":G("error",e);break;case"img":case"image":case"link":G("error",e),G("load",e);break;case"details":G("toggle",e);break;case"input":G("invalid",e),kp(e,l.value,l.defaultValue,l.checked,l.defaultChecked,l.type,l.name,!0);break;case"select":G("invalid",e);break;case"textarea":G("invalid",e),$p(e,l.value,l.defaultValue,l.children)}n=l.children,typeof n!="string"&&typeof n!="number"&&typeof n!="bigint"||e.textContent===""+n||l.suppressHydrationWarning===!0||ly(e.textContent,n)?(l.popover!=null&&(G("beforetoggle",e),G("toggle",e)),l.onScroll!=null&&G("scroll",e),l.onScrollEnd!=null&&G("scrollend",e),l.onClick!=null&&(e.onclick=Dn),e=!0):e=!1,e||Vl(t,!0)}function hc(t){for(qt=t.return;qt;)switch(qt.tag){case 5:case 31:case 13:Fe=!1;return;case 27:case 3:Fe=!0;return;default:qt=qt.return}}function Qa(t){if(t!==qt)return!1;if(!Y)return hc(t),Y=!0,!1;var e=t.tag,n;if((n=e!==3&&e!==27)&&((n=e===5)&&(n=t.type,n=!(n!=="form"&&n!=="button")||js(t.type,t.memoizedProps)),n=!n),n&&ht&&Vl(t),hc(t),e===13){if(t=t.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(O(317));ht=vp(t)}else if(e===31){if(t=t.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(O(317));ht=vp(t)}else e===27?(e=ht,Ql(t.type)?(t=Gs,Gs=null,ht=t):ht=e):ht=qt?ke(t.stateNode.nextSibling):null;return!0}function ra(){ht=qt=null,Y=!1}function yf(){var t=xl;return t!==null&&(ge===null?ge=t:ge.push.apply(ge,t),xl=null),t}function Mo(t){xl===null?xl=[t]:xl.push(t)}var es=Ln(null),Ra=null,Jn=null;function Cl(t,e,n){pt(es,e._currentValue),e._currentValue=n}function Fn(t){t._currentValue=es.current,It(es)}function Pu(t,e,n){for(;t!==null;){var l=t.alternate;if((t.childLanes&e)!==e?(t.childLanes|=e,l!==null&&(l.childLanes|=e)):l!==null&&(l.childLanes&e)!==e&&(l.childLanes|=e),t===n)break;t=t.return}}function ns(t,e,n,l){var a=t.child;for(a!==null&&(a.return=t);a!==null;){var i=a.dependencies;if(i!==null){var o=a.child;i=i.firstContext;t:for(;i!==null;){var u=i;i=a;for(var c=0;c<e.length;c++)if(u.context===e[c]){i.lanes|=n,u=i.alternate,u!==null&&(u.lanes|=n),Pu(i.return,n,t),l||(o=null);break t}i=u.next}}else if(a.tag===18){if(o=a.return,o===null)throw Error(O(341));o.lanes|=n,i=o.alternate,i!==null&&(i.lanes|=n),Pu(o,n,t),o=null}else a.tag===13&&a.memoizedState!==null&&a.memoizedState.dehydrated===null?(a.lanes|=n,o=a.alternate,o!==null&&(o.lanes|=n),Pu(a.return,n,t),o=a.child,o=o!==null?o.sibling:null):o=a.child;if(o!==null)o.return=a;else for(o=a;o!==null;){if(o===t){o=null;break}if(a=o.sibling,a!==null){a.return=o.return,o=a;break}o=o.return}a=o}}function fa(t,e,n,l){t=null;for(var a=e,i=!1;a!==null;){if(!i){if((a.flags&524288)!==0)i=!0;else if((a.flags&262144)!==0)break}if(a.tag===10){var o=a.alternate;if(o===null)throw Error(O(387));if(o=o.memoizedProps,o!==null){var u=a.type;Be(a.pendingProps.value,o.value)||(t!==null?t.push(u):t=[u])}}else if(a===uc.current){if(o=a.alternate,o===null)throw Error(O(387));o.memoizedState.memoizedState!==a.memoizedState.memoizedState&&(t!==null?t.push(Ai):t=[Ai])}a=a.return}return t!==null&&ns(e,t,n,l),e.flags|=262144,t!==null}function pc(t){for(t=t.firstContext;t!==null;){if(!Be(t.context._currentValue,t.memoizedValue))return!0;t=t.next}return!1}function sa(t){Ra=t,Jn=null,t=t.dependencies,t!==null&&(t.firstContext=null)}function Jt(t){return Eg(Ra,t)}function xu(t,e){return Ra===null&&sa(t),Eg(t,e)}function Eg(t,e){var n=e._currentValue;if(e={context:e,memoizedValue:n,next:null},Jn===null){if(t===null)throw Error(O(308));Jn=e,t.dependencies={lanes:0,firstContext:e},t.flags|=524288}else Jn=Jn.next=e;return n}var ME=typeof AbortController!="undefined"?AbortController:function(){var t=[],e=this.signal={aborted:!1,addEventListener:function(n,l){t.push(l)}};this.abort=function(){e.aborted=!0,t.forEach(function(n){return n()})}},zE=Bt.unstable_scheduleCallback,UE=Bt.unstable_NormalPriority,wt={$$typeof:xn,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function ud(){return{controller:new ME,data:new Map,refCount:0}}function Io(t){t.refCount--,t.refCount===0&&zE(UE,function(){t.controller.abort()})}function Sh(t,e){if((t.pendingLanes&4194048)!==0){var n=t.transitionTypes;for(n===null&&(n=t.transitionTypes=[]),t=0;t<e.length;t++){var l=e[t];n.indexOf(l)===-1&&n.push(l)}}}var so=null;function HE(t){var e=t.transitionTypes;return t.transitionTypes=null,e}var go=null,ls=0,da=0,fi=null;function LE(t,e){if(go===null){var n=go=[];ls=0,da=Hd(),fi={status:"pending",value:void 0,then:function(l){n.push(l)}}}return ls++,e.then(bh,bh),e}function bh(){if(--ls===0&&(so=null,go!==null)){fi!==null&&(fi.status="fulfilled");var t=go;go=null,da=0,fi=null;for(var e=0;e<t.length;e++)(0,t[e])()}}function BE(t,e){var n=[],l={status:"pending",value:null,reason:null,then:function(a){n.push(a)}};return t.then(function(){l.status="fulfilled",l.value=e;for(var a=0;a<n.length;a++)(0,n[a])(e)},function(a){for(l.status="rejected",l.reason=a,a=0;a<n.length;a++)(0,n[a])(void 0)}),l}var Rh=M.S;M.S=function(t,e){if(Y0=ze(),typeof e=="object"&&e!==null&&typeof e.then=="function"&&LE(t,e),so!==null)for(var n=Ci;n!==null;)Sh(n,so),n=n.next;if(n=t.types,n!==null){for(var l=Ci;l!==null;)Sh(l,n),l=l.next;if(da!==0){l=so,l===null&&(l=so=[]);for(var a=0;a<n.length;a++){var i=n[a];l.indexOf(i)===-1&&l.push(i)}}}Rh!==null&&Rh(t,e)};var oa=Ln(null);function cd(){var t=oa.current;return t!==null?t:rt.pooledCache}function Ju(t,e){e===null?pt(oa,oa.current):pt(oa,e.pool)}function Tg(){var t=cd();return t===null?null:{parent:wt._currentValue,pool:t}}var Mi=Error(O(460)),rd=Error(O(474)),Qc=Error(O(542)),gc={then:function(){}};function Eh(t){return t=t.status,t==="fulfilled"||t==="rejected"}function Cg(t,e,n){switch(n=t[n],n===void 0?t.push(e):n!==e&&(e.then(Dn,Dn),e=n),e.status){case"fulfilled":return e.value;case"rejected":throw t=e.reason,Ch(t),t===void 0&&!("reason"in e)?Error(O(600)):t;default:if(typeof e.status=="string")e.then(Dn,Dn);else{if(t=rt,t!==null&&100<t.shellSuspendCounter)throw Error(O(482));t=e,t.status="pending",t.then(function(l){if(e.status==="pending"){var a=e;a.status="fulfilled",a.value=l}},function(l){if(e.status==="pending"){var a=e;a.status="rejected",a.reason=l}})}switch(e.status){case"fulfilled":return e.value;case"rejected":throw t=e.reason,Ch(t),t}throw ua=e,Mi}}function ta(t){try{var e=t._init;return e(t._payload)}catch(n){throw n!==null&&typeof n=="object"&&typeof n.then=="function"?(ua=n,Mi):n}}var ua=null;function Th(){if(ua===null)throw Error(O(459));var t=ua;return ua=null,t}function Ch(t){if(t===Mi||t===Qc)throw Error(O(483))}var si=null,zo=0;function Du(t){var e=zo;return zo+=1,si===null&&(si=[]),Cg(si,t,e)}function pl(t,e){e=e.props.ref,t.ref=e!==void 0?e:null}function wu(t,e){throw e.$$typeof===gR?Error(O(525)):(t=Object.prototype.toString.call(e),Error(O(31,t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)))}function Og(t){function e(m,d){if(t){var p=m.deletions;p===null?(m.deletions=[d],m.flags|=16):p.push(d)}}function n(m,d){if(!t)return null;for(;d!==null;)e(m,d),d=d.sibling;return null}function l(m){for(var d=new Map;m!==null;)m.key===null?d.set(m.index,m):d.set(m.key,m),m=m.sibling;return d}function a(m,d){return m=In(m,d),m.index=0,m.sibling=null,m}function i(m,d,p){return m.index=p,t?(p=m.alternate,p!==null?(p=p.index,p<d?(m.flags|=2,d):p):(m.flags|=134217730,d)):(m.flags|=1048576,d)}function o(m){return t&&m.alternate===null&&(m.flags|=134217730),m}function u(m,d,p,g){return d===null||d.tag!==6?(d=pf(p,m.mode,g),d.return=m,d):(d=a(d,p),d.return=m,d)}function c(m,d,p,g){var E=p.type;return E===Fa?(m=s(m,d,p.props.children,g,p.key),pl(m,p),m):d!==null&&(d.elementType===E||typeof E=="object"&&E!==null&&E.$$typeof===Sl&&ta(E)===d.type)?(d=a(d,p.props),pl(d,p),d.return=m,d):(d=Ku(p.type,p.key,p.props,null,m.mode,g),pl(d,p),d.return=m,d)}function r(m,d,p,g){return d===null||d.tag!==4||d.stateNode.containerInfo!==p.containerInfo||d.stateNode.implementation!==p.implementation?(d=gf(p,m.mode,g),d.return=m,d):(d=a(d,p.children||[]),d.return=m,d)}function s(m,d,p,g,E){return d===null||d.tag!==7?(d=ia(p,m.mode,g,E),d.return=m,d):(d=a(d,p),d.return=m,d)}function v(m,d,p){if(typeof d=="string"&&d!==""||typeof d=="number"||typeof d=="bigint")return d=pf(""+d,m.mode,p),d.return=m,d;if(typeof d=="object"&&d!==null){switch(d.$$typeof){case Ru:return p=Ku(d.type,d.key,d.props,null,m.mode,p),pl(p,d),p.return=m,p;case co:return d=gf(d,m.mode,p),d.return=m,d;case Sl:return d=ta(d),v(m,d,p)}if(ro(d)||no(d))return d=ia(d,m.mode,p,null),d.return=m,d;if(typeof d.then=="function")return v(m,Du(d),p);if(d.$$typeof===xn)return v(m,xu(m,d),p);wu(m,d)}return null}function f(m,d,p,g){var E=d!==null?d.key:null;if(typeof p=="string"&&p!==""||typeof p=="number"||typeof p=="bigint")return E!==null?null:u(m,d,""+p,g);if(typeof p=="object"&&p!==null){switch(p.$$typeof){case Ru:return p.key===E?c(m,d,p,g):null;case co:return p.key===E?r(m,d,p,g):null;case Sl:return p=ta(p),f(m,d,p,g)}if(ro(p)||no(p))return E!==null?null:s(m,d,p,g,null);if(typeof p.then=="function")return f(m,d,Du(p),g);if(p.$$typeof===xn)return f(m,d,xu(m,p),g);wu(m,p)}return null}function h(m,d,p,g,E){if(typeof g=="string"&&g!==""||typeof g=="number"||typeof g=="bigint")return m=m.get(p)||null,u(d,m,""+g,E);if(typeof g=="object"&&g!==null){switch(g.$$typeof){case Ru:return m=m.get(g.key===null?p:g.key)||null,c(d,m,g,E);case co:return m=m.get(g.key===null?p:g.key)||null,r(d,m,g,E);case Sl:return g=ta(g),h(m,d,p,g,E)}if(ro(g)||no(g))return m=m.get(p)||null,s(d,m,g,E,null);if(typeof g.then=="function")return h(m,d,p,Du(g),E);if(g.$$typeof===xn)return h(m,d,p,xu(d,g),E);wu(d,g)}return null}function S(m,d,p,g){for(var E=null,C=null,T=d,_=d=0,N=null;T!==null&&_<p.length;_++){T.index>_?(N=T,T=null):N=T.sibling;var A=f(m,T,p[_],g);if(A===null){T===null&&(T=N);break}t&&T&&A.alternate===null&&e(m,T),d=i(A,d,_),C===null?E=A:C.sibling=A,C=A,T=N}if(_===p.length)return n(m,T),Y&&Pn(m,_),E;if(T===null){for(;_<p.length;_++)T=v(m,p[_],g),T!==null&&(d=i(T,d,_),C===null?E=T:C.sibling=T,C=T);return Y&&Pn(m,_),E}for(T=l(T);_<p.length;_++)N=h(T,m,_,p[_],g),N!==null&&(t&&(A=N.alternate,A!==null&&T.delete(A.key===null?_:A.key)),d=i(N,d,_),C===null?E=N:C.sibling=N,C=N);return t&&T.forEach(function(H){return e(m,H)}),Y&&Pn(m,_),E}function b(m,d,p,g){if(p==null)throw Error(O(151));for(var E=null,C=null,T=d,_=d=0,N=null,A=p.next();T!==null&&!A.done;_++,A=p.next()){T.index>_?(N=T,T=null):N=T.sibling;var H=f(m,T,A.value,g);if(H===null){T===null&&(T=N);break}t&&T&&H.alternate===null&&e(m,T),d=i(H,d,_),C===null?E=H:C.sibling=H,C=H,T=N}if(A.done)return n(m,T),Y&&Pn(m,_),E;if(T===null){for(;!A.done;_++,A=p.next())A=v(m,A.value,g),A!==null&&(d=i(A,d,_),C===null?E=A:C.sibling=A,C=A);return Y&&Pn(m,_),E}for(T=l(T);!A.done;_++,A=p.next())A=h(T,m,_,A.value,g),A!==null&&(t&&(N=A.alternate,N!==null&&T.delete(N.key===null?_:N.key)),d=i(A,d,_),C===null?E=A:C.sibling=A,C=A);return t&&T.forEach(function(P){return e(m,P)}),Y&&Pn(m,_),E}function R(m,d,p,g){if(typeof p=="object"&&p!==null&&p.type===Fa&&p.key===null&&p.props.ref===void 0&&(p=p.props.children),typeof p=="object"&&p!==null){switch(p.$$typeof){case Ru:t:{for(var E=p.key;d!==null;){if(d.key===E){if(E=p.type,E===Fa){if(d.tag===7){n(m,d.sibling),g=a(d,p.props.children),pl(g,p),g.return=m,m=g;break t}}else if(d.elementType===E||typeof E=="object"&&E!==null&&E.$$typeof===Sl&&ta(E)===d.type){n(m,d.sibling),g=a(d,p.props),pl(g,p),g.return=m,m=g;break t}n(m,d);break}else e(m,d);d=d.sibling}p.type===Fa?(g=ia(p.props.children,m.mode,g,p.key),pl(g,p),g.return=m,m=g):(g=Ku(p.type,p.key,p.props,null,m.mode,g),pl(g,p),g.return=m,m=g)}return o(m);case co:t:{for(E=p.key;d!==null;){if(d.key===E)if(d.tag===4&&d.stateNode.containerInfo===p.containerInfo&&d.stateNode.implementation===p.implementation){n(m,d.sibling),g=a(d,p.children||[]),g.return=m,m=g;break t}else{n(m,d);break}else e(m,d);d=d.sibling}g=gf(p,m.mode,g),g.return=m,m=g}return o(m);case Sl:return p=ta(p),R(m,d,p,g)}if(ro(p))return S(m,d,p,g);if(no(p)){if(E=no(p),typeof E!="function")throw Error(O(150));return p=E.call(p),b(m,d,p,g)}if(typeof p.then=="function")return R(m,d,Du(p),g);if(p.$$typeof===xn)return R(m,d,xu(m,p),g);wu(m,p)}return typeof p=="string"&&p!==""||typeof p=="number"||typeof p=="bigint"?(p=""+p,d!==null&&d.tag===6?(n(m,d.sibling),g=a(d,p),g.return=m,m=g):(n(m,d),g=pf(p,m.mode,g),g.return=m,m=g),o(m)):n(m,d)}return function(m,d,p,g){try{zo=0;var E=R(m,d,p,g);return si=null,E}catch(T){if(T===Mi||T===Qc)throw T;var C=Se(29,T,null,m.mode);return C.lanes=g,C.return=m,C}}}var ma=Og(!0),_g=Og(!1),bl=!1;function fd(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function as(t,e){t=t.updateQueue,e.updateQueue===t&&(e.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,callbacks:null})}function Dl(t){return{lane:t,tag:0,payload:null,callback:null,next:null}}function wl(t,e,n){var l=t.updateQueue;if(l===null)return null;if(l=l.shared,(k&2)!==0){var a=l.pending;return a===null?e.next=e:(e.next=a.next,a.next=e),l.pending=e,e=mc(t),gg(t,null,n),e}return Gc(t,l,e,n),mc(t)}function yo(t,e,n){if(e=e.updateQueue,e!==null&&(e=e.shared,(n&4194048)!==0)){var l=e.lanes;l&=t.pendingLanes,n|=l,e.lanes=n,Xp(t,n)}}function Sf(t,e){var n=t.updateQueue,l=t.alternate;if(l!==null&&(l=l.updateQueue,n===l)){var a=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};i===null?a=i=o:i=i.next=o,n=n.next}while(n!==null);i===null?a=i=e:i=i.next=e}else a=i=e;n={baseState:l.baseState,firstBaseUpdate:a,lastBaseUpdate:i,shared:l.shared,callbacks:l.callbacks},t.updateQueue=n;return}t=n.lastBaseUpdate,t===null?n.firstBaseUpdate=e:t.next=e,n.lastBaseUpdate=e}var is=!1;function So(){if(is){var t=fi;if(t!==null)throw t}}function bo(t,e,n,l){is=!1;var a=t.updateQueue;bl=!1;var i=a.firstBaseUpdate,o=a.lastBaseUpdate,u=a.shared.pending;if(u!==null){a.shared.pending=null;var c=u,r=c.next;c.next=null,o===null?i=r:o.next=r,o=c;var s=t.alternate;s!==null&&(s=s.updateQueue,u=s.lastBaseUpdate,u!==o&&(u===null?s.firstBaseUpdate=r:u.next=r,s.lastBaseUpdate=c))}if(i!==null){var v=a.baseState;o=0,s=r=c=null,u=i;do{var f=u.lane&-536870913,h=f!==u.lane;if(h?(Z&f)===f:(l&f)===f){f!==0&&f===da&&(is=!0),s!==null&&(s=s.next={lane:0,tag:u.tag,payload:u.payload,callback:null,next:null});t:{var S=t,b=u;f=e;var R=n;switch(b.tag){case 1:if(S=b.payload,typeof S=="function"){v=S.call(R,v,f);break t}v=S;break t;case 3:S.flags=S.flags&-65537|128;case 0:if(S=b.payload,f=typeof S=="function"?S.call(R,v,f):S,f==null)break t;v=ft({},v,f);break t;case 2:bl=!0}}f=u.callback,f!==null&&(t.flags|=64,h&&(t.flags|=8192),h=a.callbacks,h===null?a.callbacks=[f]:h.push(f))}else h={lane:f,tag:u.tag,payload:u.payload,callback:u.callback,next:null},s===null?(r=s=h,c=v):s=s.next=h,o|=f;if(u=u.next,u===null){if(u=a.shared.pending,u===null)break;h=u,u=h.next,h.next=null,a.lastBaseUpdate=h,a.shared.pending=null}}while(!0);s===null&&(c=v),a.baseState=c,a.firstBaseUpdate=r,a.lastBaseUpdate=s,i===null&&(a.shared.lanes=0),Gl|=o,t.lanes=o,t.memoizedState=v}}function Ag(t,e){if(typeof t!="function")throw Error(O(191,t));t.call(e)}function Ng(t,e){var n=t.callbacks;if(n!==null)for(t.callbacks=null,t=0;t<n.length;t++)Ag(n[t],e)}var Yl=Ln(null),yc=Ln(0);function Oh(t,e){t=nl,pt(yc,t),pt(Yl,e),nl=t|e.baseLanes}function os(){pt(yc,nl),pt(Yl,Yl.current)}function sd(){nl=yc.current,It(Yl),It(yc)}var Wt=Ln(null),ie=null;function Ml(t){var e=t.alternate;pt(Ft,Ft.current&1),pt(Wt,t),ie===null&&(e===null||Yl.current!==null||e.memoizedState!==null)&&(ie=t)}function us(t){pt(Ft,Ft.current),pt(Wt,t),ie===null&&(ie=t)}function xg(t){t.tag===22?(pt(Ft,Ft.current),pt(Wt,t),ie===null&&(ie=t)):zl()}function zl(){pt(Ft,Ft.current),pt(Wt,Wt.current)}function De(t){It(Wt),ie===t&&(ie=null),It(Ft)}var Ft=Ln(0);function Uo(t,e){pt(Wt,Wt.current),pt(Ft,e)}function dd(t){It(Ft),It(Wt),ie===t&&(ie=null)}function Sc(t){for(var e=t;e!==null;){if(e.tag===13){var n=e.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||qs(n)||Vd(n)))return e}else if(e.tag===19&&e.memoizedProps.revealOrder!=="independent"){if((e.flags&128)!==0)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break;for(;e.sibling===null;){if(e.return===null||e.return===t)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}var $n=0,L=null,ot=null,Dt=null,bc=!1,di=!1,va=!1,Rc=0,Ho=0,mi=null,jE=0;function At(){throw Error(O(321))}function md(t,e){if(e===null)return!1;for(var n=0;n<e.length&&n<t.length;n++)if(!Be(t[n],e[n]))return!1;return!0}function vd(t,e,n,l,a,i){return $n=i,L=e,e.memoizedState=null,e.updateQueue=null,e.lanes=0,M.H=t===null||t.memoizedState===null?o0:u0,va=!1,i=n(l,a),va=!1,di&&(i=wg(e,n,l,a)),Dg(t),i}function Dg(t){M.H=Ec;var e=ot!==null&&ot.next!==null;if($n=0,Dt=ot=L=null,bc=!1,Ho=0,mi=null,e)throw Error(O(300));t===null||Mt||(t=t.dependencies,t!==null&&pc(t)&&(Mt=!0))}function wg(t,e,n,l){L=t;var a=0;do{if(di&&(mi=null),Ho=0,di=!1,25<=a)throw Error(O(301));if(a+=1,Dt=ot=null,t.updateQueue!=null){var i=t.updateQueue;i.lastEffect=null,i.events=null,i.stores=null,i.memoCache!=null&&(i.memoCache.index=0)}M.H=KE,i=e(n,l)}while(di);return i}function VE(){var t=M.H,e=t.useState()[0];return e=typeof e.then=="function"?Fo(e):e,t=t.useState()[0],(ot!==null?ot.memoizedState:null)!==t&&(L.flags|=1024),e}function hd(){var t=Rc!==0;return Rc=0,t}function pd(t,e,n){e.updateQueue=t.updateQueue,e.flags&=-2053,t.lanes&=~n}function gd(t){if(bc){for(t=t.memoizedState;t!==null;){var e=t.queue;e!==null&&(e.pending=null),t=t.next}bc=!1}$n=0,Dt=ot=L=null,di=!1,Ho=Rc=0,mi=null}function de(){var t={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Dt===null?L.memoizedState=Dt=t:Dt=Dt.next=t,Dt}function xt(){if(ot===null){var t=L.alternate;t=t!==null?t.memoizedState:null}else t=ot.next;var e=Dt===null?L.memoizedState:Dt.next;if(e!==null)Dt=e,ot=t;else{if(t===null)throw L.alternate===null?Error(O(467)):Error(O(310));ot=t,t={memoizedState:ot.memoizedState,baseState:ot.baseState,baseQueue:ot.baseQueue,queue:ot.queue,next:null},Dt===null?L.memoizedState=Dt=t:Dt=Dt.next=t}return Dt}function Zc(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Fo(t){var e=Ho;return Ho+=1,mi===null&&(mi=[]),t=Cg(mi,t,e),e=L,(Dt===null?e.memoizedState:Dt.next)===null&&(e=e.alternate,M.H=e===null||e.memoizedState===null?o0:u0),t}function Kc(t){if(t!==null&&typeof t=="object"){if(typeof t.then=="function")return Fo(t);if(t.$$typeof===bR)return;if(t.$$typeof===xn)return Jt(t)}throw Error(O(438,String(t)))}function yd(t){var e=null,n=L.updateQueue;if(n!==null&&(e=n.memoCache),e==null){var l=L.alternate;l!==null&&(l=l.updateQueue,l!==null&&(l=l.memoCache,l!=null&&(e={data:l.data.map(function(a){return a.slice()}),index:0})))}if(e==null&&(e={data:[],index:0}),n===null&&(n=Zc(),L.updateQueue=n),n.memoCache=e,n=e.data[e.index],n===void 0)for(n=e.data[e.index]=Array(t),l=0;l<t;l++)n[l]=SR;return e.index++,n}function tl(t,e){return typeof e=="function"?e(t):e}function Iu(t){var e=xt();return Sd(e,ot,t)}function Sd(t,e,n){var l=t.queue;if(l===null)throw Error(O(311));l.lastRenderedReducer=n;var a=t.baseQueue,i=l.pending;if(i!==null){if(a!==null){var o=a.next;a.next=i.next,i.next=o}e.baseQueue=a=i,l.pending=null}if(i=t.baseState,a===null)t.memoizedState=i;else{e=a.next;var u=o=null,c=null,r=e,s=!1;do{var v=r.lane&-536870913;if(v!==r.lane?(Z&v)===v:($n&v)===v){var f=r.revertLane;if(f===0)c!==null&&(c=c.next={lane:0,revertLane:0,gesture:null,action:r.action,hasEagerState:r.hasEagerState,eagerState:r.eagerState,next:null}),v===da&&(s=!0);else if(($n&f)===f){r=r.next,f===da&&(s=!0);continue}else v={lane:0,revertLane:r.revertLane,gesture:null,action:r.action,hasEagerState:r.hasEagerState,eagerState:r.eagerState,next:null},c===null?(u=c=v,o=i):c=c.next=v,L.lanes|=f,Gl|=f;v=r.action,va&&n(i,v),i=r.hasEagerState?r.eagerState:n(i,v)}else f={lane:v,revertLane:r.revertLane,gesture:r.gesture,action:r.action,hasEagerState:r.hasEagerState,eagerState:r.eagerState,next:null},c===null?(u=c=f,o=i):c=c.next=f,L.lanes|=v,Gl|=v;r=r.next}while(r!==null&&r!==e);if(c===null?o=i:c.next=u,!Be(i,t.memoizedState)&&(Mt=!0,s&&(n=fi,n!==null)))throw n;t.memoizedState=i,t.baseState=o,t.baseQueue=c,l.lastRenderedState=i}return a===null&&(l.lanes=0),[t.memoizedState,l.dispatch]}function bf(t){var e=xt(),n=e.queue;if(n===null)throw Error(O(311));n.lastRenderedReducer=t;var l=n.dispatch,a=n.pending,i=e.memoizedState;if(a!==null){n.pending=null;var o=a=a.next;do i=t(i,o.action),o=o.next;while(o!==a);Be(i,e.memoizedState)||(Mt=!0),e.memoizedState=i,e.baseQueue===null&&(e.baseState=i),n.lastRenderedState=i}return[i,l]}function Mg(t,e,n){var l=L,a=xt(),i=Y;if(i){if(n===void 0)throw Error(O(407));n=n()}else n=e();var o=!Be((ot||a).memoizedState,n);if(o&&(a.memoizedState=n,Mt=!0),a=a.queue,bd(Hg.bind(null,l,a,t),[t]),t=a.getSnapshot!==e||o||Dt!==null&&(Dt.memoizedState.tag&1)!==0,bi(t?9:8,{destroy:void 0},Ug.bind(null,l,a,n,e),null),t){if(l.flags|=2048,rt===null)throw Error(O(349));i||($n&127)!==0||zg(l,e,n)}return n}function zg(t,e,n){t.flags|=16384,t={getSnapshot:e,value:n},e=L.updateQueue,e===null?(e=Zc(),L.updateQueue=e,e.stores=[t]):(n=e.stores,n===null?e.stores=[t]:n.push(t))}function Ug(t,e,n,l){e.value=n,e.getSnapshot=l,Lg(e)&&Bg(t)}function Hg(t,e,n){return n(function(){Lg(e)&&Bg(t)})}function Lg(t){var e=t.getSnapshot;t=t.value;try{var n=e();return!Be(t,n)}catch{return!0}}function Bg(t){var e=ba(t,2);e!==null&&be(e,t,2)}function cs(t){var e=de();if(typeof t=="function"){var n=t;if(t=n(),va){El(!0);try{n()}finally{El(!1)}}}return e.memoizedState=e.baseState=t,e.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:tl,lastRenderedState:t},e}function jg(t,e,n,l){return t.baseState=n,Sd(t,ot,typeof l=="function"?l:tl)}function YE(t,e,n,l,a){if(Jc(t))throw Error(O(485));if(t=e.action,t!==null){var i={payload:a,action:t,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(o){i.listeners.push(o)}};M.T!==null?n(!0):i.isTransition=!1,l(i),n=e.pending,n===null?(i.next=e.pending=i,Vg(e,i)):(i.next=n.next,e.pending=n.next=i)}}function Vg(t,e){var n=e.action,l=e.payload,a=t.state;if(e.isTransition){var i=M.T,o={};o.types=i!==null?i.types:null,M.T=o;try{var u=n(a,l),c=M.S;c!==null&&c(o,u),_h(t,e,u)}catch(r){rs(t,e,r)}finally{i!==null&&o.types!==null&&(i.types=o.types),M.T=i}}else try{i=n(a,l),_h(t,e,i)}catch(r){rs(t,e,r)}}function _h(t,e,n){n!==null&&typeof n=="object"&&typeof n.then=="function"?n.then(function(l){Ah(t,e,l)},function(l){return rs(t,e,l)}):Ah(t,e,n)}function Ah(t,e,n){e.status="fulfilled",e.value=n,Yg(e),t.state=n,e=t.pending,e!==null&&(n=e.next,n===e?t.pending=null:(n=n.next,e.next=n,Vg(t,n)))}function rs(t,e,n){var l=t.pending;if(t.pending=null,l!==null){l=l.next;do e.status="rejected",e.reason=n,Yg(e),e=e.next;while(e!==l)}t.action=null}function Yg(t){t=t.listeners;for(var e=0;e<t.length;e++)(0,t[e])()}function qg(t,e){return e}function Nh(t,e){if(Y){var n=rt.formState;if(n!==null){t:{var l=L;if(Y){if(ht){e:{for(var a=ht,i=Fe;a.nodeType!==8;){if(!i){a=null;break e}if(a=ke(a.nextSibling),a===null){a=null;break e}}i=a.data,a=i==="F!"||i==="F"?a:null}if(a){ht=ke(a.nextSibling),l=a.data==="F!";break t}}Vl(l)}l=!1}l&&(e=n[0])}}return n=de(),n.memoizedState=n.baseState=e,l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:qg,lastRenderedState:e},n.queue=l,n=l0.bind(null,L,l),l.dispatch=n,l=cs(!1),i=Cd.bind(null,L,!1,l.queue),l=de(),a={state:e,dispatch:null,action:t,pending:null},l.queue=a,n=YE.bind(null,L,a,i,n),a.dispatch=n,l.memoizedState=t,[e,n,!1]}function xh(t){var e=xt();return Gg(e,ot,t)}function Gg(t,e,n){if(e=Sd(t,e,qg)[0],t=Iu(tl)[0],typeof e=="object"&&e!==null&&typeof e.then=="function")try{var l=Fo(e)}catch(o){throw o===Mi?Qc:o}else l=e;e=xt();var a=e.queue,i=a.dispatch;return n!==e.memoizedState&&(L.flags|=2048,bi(9,{destroy:void 0},qE.bind(null,a,n),null)),[l,i,t]}function qE(t,e){t.action=e}function Dh(t){var e=xt(),n=ot;if(n!==null)return Gg(e,n,t);xt(),e=e.memoizedState,n=xt();var l=n.queue.dispatch;return n.memoizedState=t,[e,l,!1]}function bi(t,e,n,l){return t={tag:t,create:n,deps:l,inst:e,next:null},e=L.updateQueue,e===null&&(e=Zc(),L.updateQueue=e),n=e.lastEffect,n===null?e.lastEffect=t.next=t:(l=n.next,n.next=t,t.next=l,e.lastEffect=t),t}function Xg(){return xt().memoizedState}function Fu(t,e,n,l){var a=de();L.flags|=t,a.memoizedState=bi(1|e,{destroy:void 0},n,l===void 0?null:l)}function Pc(t,e,n,l){var a=xt();l=l===void 0?null:l;var i=a.memoizedState.inst;ot!==null&&l!==null&&md(l,ot.memoizedState.deps)?a.memoizedState=bi(e,i,n,l):(L.flags|=t,a.memoizedState=bi(1|e,i,n,l))}function wh(t,e){Fu(8390656,8,t,e)}function bd(t,e){Pc(2048,8,t,e)}function GE(t){L.flags|=4;var e=L.updateQueue;if(e===null)e=Zc(),L.updateQueue=e,e.events=[t];else{var n=e.events;n===null?e.events=[t]:n.push(t)}}function Qg(t){var e=xt().memoizedState;return GE({ref:e,nextImpl:t}),function(){if((k&2)!==0)throw Error(O(440));return e.impl.apply(void 0,arguments)}}function Zg(t,e){return Pc(4,2,t,e)}function Kg(t,e){return Pc(4,4,t,e)}function Pg(t,e){if(typeof e=="function"){t=t();var n=e(t);return function(){typeof n=="function"?n():e(null)}}if(e!=null)return t=t(),e.current=t,function(){e.current=null}}function Jg(t,e,n){n=n!=null?n.concat([t]):null,Pc(4,4,Pg.bind(null,e,t),n)}function Rd(){}function Ig(t,e){var n=xt();e=e===void 0?null:e;var l=n.memoizedState;return e!==null&&md(e,l[1])?l[0]:(n.memoizedState=[t,e],t)}function Fg(t,e){var n=xt();e=e===void 0?null:e;var l=n.memoizedState;if(e!==null&&md(e,l[1]))return l[0];if(l=t(),va){El(!0);try{t()}finally{El(!1)}}return n.memoizedState=[l,e],l}function Ed(t,e,n){return n===void 0||($n&1073741824)!==0&&(Z&261930)===0?t.memoizedState=e:(t.memoizedState=n,t=G0(),L.lanes|=t,Gl|=t,n)}function kg(t,e,n,l){return Be(n,e)?n:Yl.current!==null?(t=Ed(t,n,l),Be(t,e)||(Mt=!0),t):($n&106)===0||($n&1073741824)!==0&&(Z&261930)===0?(Mt=!0,t.memoizedState=n):(t=G0(),L.lanes|=t,Gl|=t,e)}function Wg(t,e,n,l,a){var i=W.p;W.p=i!==0&&8>i?i:8;var o=M.T,u={};u.types=o!==null?o.types:null,M.T=u,Cd(t,!1,e,n);try{var c=a(),r=M.S;if(r!==null&&r(u,c),c!==null&&typeof c=="object"&&typeof c.then=="function"){var s=BE(c,l);Ro(t,e,s,Le(t))}else Ro(t,e,l,Le(t))}catch(v){Ro(t,e,{then:function(){},status:"rejected",reason:v},Le())}finally{W.p=i,o!==null&&u.types!==null&&(o.types=u.types),M.T=o}}function XE(){}function fs(t,e,n,l){if(t.tag!==5)throw Error(O(476));var a=$g(t).queue;Wg(t,a,e,aa,n===null?XE:function(){return t0(t),n(l)})}function $g(t){var e=t.memoizedState;if(e!==null)return e;e={memoizedState:aa,baseState:aa,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:tl,lastRenderedState:aa},next:null};var n={};return e.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:tl,lastRenderedState:n},next:null},t.memoizedState=e,t=t.alternate,t!==null&&(t.memoizedState=e),e}function t0(t){var e=$g(t);e.next===null&&(e=t.alternate.memoizedState),Ro(t,e.next.queue,{},Le())}function Td(){return Jt(Ai)}function e0(){return xt().memoizedState}function n0(){return xt().memoizedState}function QE(t){for(var e=t.return;e!==null;){switch(e.tag){case 24:case 3:var n=Le();t=Dl(n);var l=wl(e,t,n);l!==null&&(be(l,e,n),yo(l,e,n)),e={cache:ud()},t.payload=e;return}e=e.return}}function ZE(t,e,n){var l=Le();n={lane:l,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Jc(t)?a0(e,n):(n=ad(t,e,n,l),n!==null&&(be(n,t,l),i0(n,e,l)))}function l0(t,e,n){var l=Le();Ro(t,e,n,l)}function Ro(t,e,n,l){var a={lane:l,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Jc(t))a0(e,a);else{var i=t.alternate;if(t.lanes===0&&(i===null||i.lanes===0)&&(i=e.lastRenderedReducer,i!==null))try{var o=e.lastRenderedState,u=i(o,n);if(a.hasEagerState=!0,a.eagerState=u,Be(u,o))return Gc(t,e,a,0),rt===null&&qc(),!1}catch{}if(n=ad(t,e,a,l),n!==null)return be(n,t,l),i0(n,e,l),!0}return!1}function Cd(t,e,n,l){if(l={lane:2,revertLane:Hd(),gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},Jc(t)){if(e)throw Error(O(479))}else e=ad(t,n,l,2),e!==null&&be(e,t,2)}function Jc(t){var e=t.alternate;return t===L||e!==null&&e===L}function a0(t,e){di=bc=!0;var n=t.pending;n===null?e.next=e:(e.next=n.next,n.next=e),t.pending=e}function i0(t,e,n){if((n&4194048)!==0){var l=e.lanes;l&=t.pendingLanes,n|=l,e.lanes=n,Xp(t,n)}}var Ec={readContext:Jt,use:Kc,useCallback:At,useContext:At,useEffect:At,useImperativeHandle:At,useLayoutEffect:At,useInsertionEffect:At,useMemo:At,useReducer:At,useRef:At,useState:At,useDebugValue:At,useDeferredValue:At,useTransition:At,useSyncExternalStore:At,useId:At,useHostTransitionStatus:At,useFormState:At,useActionState:At,useOptimistic:At,useMemoCache:At,useCacheRefresh:At,useEffectEvent:At},o0={readContext:Jt,use:Kc,useCallback:function(t,e){return de().memoizedState=[t,e===void 0?null:e],t},useContext:Jt,useEffect:wh,useImperativeHandle:function(t,e,n){n=n!=null?n.concat([t]):null,Fu(4194308,4,Pg.bind(null,e,t),n)},useLayoutEffect:function(t,e){return Fu(4194308,4,t,e)},useInsertionEffect:function(t,e){Fu(4,2,t,e)},useMemo:function(t,e){var n=de();e=e===void 0?null:e;var l=t();if(va){El(!0);try{t()}finally{El(!1)}}return n.memoizedState=[l,e],l},useReducer:function(t,e,n){var l=de();if(n!==void 0){var a=n(e);if(va){El(!0);try{n(e)}finally{El(!1)}}}else a=e;return l.memoizedState=l.baseState=a,t={pending:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:a},l.queue=t,t=t.dispatch=ZE.bind(null,L,t),[l.memoizedState,t]},useRef:function(t){var e=de();return t={current:t},e.memoizedState=t},useState:function(t){t=cs(t);var e=t.queue,n=l0.bind(null,L,e);return e.dispatch=n,[t.memoizedState,n]},useDebugValue:Rd,useDeferredValue:function(t,e){var n=de();return Ed(n,t,e)},useTransition:function(){var t=cs(!1);return t=Wg.bind(null,L,t.queue,!0,!1),de().memoizedState=t,[!1,t]},useSyncExternalStore:function(t,e,n){var l=L,a=de();if(Y){if(n===void 0)throw Error(O(407));n=n()}else{if(n=e(),rt===null)throw Error(O(349));(Z&127)!==0||zg(l,e,n)}a.memoizedState=n;var i={value:n,getSnapshot:e};return a.queue=i,wh(Hg.bind(null,l,i,t),[t]),l.flags|=2048,bi(9,{destroy:void 0},Ug.bind(null,l,i,n,e),null),n},useId:function(){var t=de(),e=rt.identifierPrefix;if(Y){var n=Mn,l=wn;n=(l&~(1<<32-He(l)-1)).toString(32)+n,e="_"+e+"R_"+n,n=Rc++,0<n&&(e+="H"+n.toString(32)),e+="_"}else n=jE++,e="_"+e+"r_"+n.toString(32)+"_";return t.memoizedState=e},useHostTransitionStatus:Td,useFormState:Nh,useActionState:Nh,useOptimistic:function(t){var e=de();e.memoizedState=e.baseState=t;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return e.queue=n,e=Cd.bind(null,L,!0,n),n.dispatch=e,[t,e]},useMemoCache:yd,useCacheRefresh:function(){return de().memoizedState=QE.bind(null,L)},useEffectEvent:function(t){var e=de(),n={impl:t};return e.memoizedState=n,function(){if((k&2)!==0)throw Error(O(440));return n.impl.apply(void 0,arguments)}}},u0={readContext:Jt,use:Kc,useCallback:Ig,useContext:Jt,useEffect:bd,useImperativeHandle:Jg,useInsertionEffect:Zg,useLayoutEffect:Kg,useMemo:Fg,useReducer:Iu,useRef:Xg,useState:function(){return Iu(tl)},useDebugValue:Rd,useDeferredValue:function(t,e){var n=xt();return kg(n,ot.memoizedState,t,e)},useTransition:function(){var t=Iu(tl)[0],e=xt().memoizedState;return[typeof t=="boolean"?t:Fo(t),e]},useSyncExternalStore:Mg,useId:e0,useHostTransitionStatus:Td,useFormState:xh,useActionState:xh,useOptimistic:function(t,e){var n=xt();return jg(n,ot,t,e)},useMemoCache:yd,useCacheRefresh:n0,useEffectEvent:Qg},KE={readContext:Jt,use:Kc,useCallback:Ig,useContext:Jt,useEffect:bd,useImperativeHandle:Jg,useInsertionEffect:Zg,useLayoutEffect:Kg,useMemo:Fg,useReducer:bf,useRef:Xg,useState:function(){return bf(tl)},useDebugValue:Rd,useDeferredValue:function(t,e){var n=xt();return ot===null?Ed(n,t,e):kg(n,ot.memoizedState,t,e)},useTransition:function(){var t=bf(tl)[0],e=xt().memoizedState;return[typeof t=="boolean"?t:Fo(t),e]},useSyncExternalStore:Mg,useId:e0,useHostTransitionStatus:Td,useFormState:Dh,useActionState:Dh,useOptimistic:function(t,e){var n=xt();return ot!==null?jg(n,ot,t,e):(n.baseState=t,[t,n.queue.dispatch])},useMemoCache:yd,useCacheRefresh:n0,useEffectEvent:Qg};function Rf(t,e,n,l){e=t.memoizedState,n=n(l,e),n=n==null?e:ft({},e,n),t.memoizedState=n,t.lanes===0&&(t.updateQueue.baseState=n)}var ss={enqueueSetState:function(t,e,n){t=t._reactInternals;var l=Le(),a=Dl(l);a.payload=e,n!=null&&(a.callback=n),e=wl(t,a,l),e!==null&&(be(e,t,l),yo(e,t,l))},enqueueReplaceState:function(t,e,n){t=t._reactInternals;var l=Le(),a=Dl(l);a.tag=1,a.payload=e,n!=null&&(a.callback=n),e=wl(t,a,l),e!==null&&(be(e,t,l),yo(e,t,l))},enqueueForceUpdate:function(t,e){t=t._reactInternals;var n=Le(),l=Dl(n);l.tag=2,e!=null&&(l.callback=e),e=wl(t,l,n),e!==null&&(be(e,t,n),yo(e,t,n))}};function Mh(t,e,n,l,a,i,o){return t=t.stateNode,typeof t.shouldComponentUpdate=="function"?t.shouldComponentUpdate(l,i,o):e.prototype&&e.prototype.isPureReactComponent?!Do(n,l)||!Do(a,i):!0}function zh(t,e,n,l){t=e.state,typeof e.componentWillReceiveProps=="function"&&e.componentWillReceiveProps(n,l),typeof e.UNSAFE_componentWillReceiveProps=="function"&&e.UNSAFE_componentWillReceiveProps(n,l),e.state!==t&&ss.enqueueReplaceState(e,e.state,null)}function ha(t,e){var n=e;if("ref"in e){n={};for(var l in e)l!=="ref"&&(n[l]=e[l])}if(t=t.defaultProps){n===e&&(n=ft({},n));for(var a in t)n[a]===void 0&&(n[a]=t[a])}return n}function c0(t){dc(t)}function r0(t){console.error(t)}function f0(t){dc(t)}function Tc(t,e){try{var n=t.onUncaughtError;n(e.value,{componentStack:e.stack})}catch(l){setTimeout(function(){throw l})}}function Uh(t,e,n){try{var l=t.onCaughtError;l(n.value,{componentStack:n.stack,errorBoundary:e.tag===1?e.stateNode:null})}catch(a){setTimeout(function(){throw a})}}function ds(t,e,n){return n=Dl(n),n.tag=3,n.payload={element:null},n.callback=function(){Tc(t,e)},n}function s0(t){return t=Dl(t),t.tag=3,t}function d0(t,e,n,l){var a=n.type.getDerivedStateFromError;if(typeof a=="function"){var i=l.value;t.payload=function(){return a(i)},t.callback=function(){Uh(e,n,l)}}var o=n.stateNode;o!==null&&typeof o.componentDidCatch=="function"&&(t.callback=function(){Uh(e,n,l),typeof a!="function"&&(Ul===null?Ul=new Set([this]):Ul.add(this));var u=l.stack;this.componentDidCatch(l.value,{componentStack:u!==null?u:""})})}function PE(t,e,n,l,a){if(n.flags|=32768,l!==null&&typeof l=="object"&&typeof l.then=="function"){if(e=n.alternate,e!==null&&fa(e,n,a,!0),n=Wt.current,n!==null){switch(n.tag){case 31:case 13:case 19:return ie===null?wc():n.alternate===null&&Nt===0&&(Nt=3),n.flags&=-257,n.flags|=65536,n.lanes=a,l===gc?n.flags|=16384:(e=n.updateQueue,e===null?n.updateQueue=new Set([l]):e.add(l),Nf(t,l,a)),!1;case 22:return n.flags|=65536,l===gc?n.flags|=16384:(e=n.updateQueue,e===null?(e={transitions:null,markerInstances:null,retryQueue:new Set([l])},n.updateQueue=e):(n=e.retryQueue,n===null?e.retryQueue=new Set([l]):n.add(l)),Nf(t,l,a)),!1}throw Error(O(435,n.tag))}return Nf(t,l,a),wc(),!1}if(Y)return e=Wt.current,e!==null?((e.flags&65536)===0&&(e.flags|=256),e.flags|=65536,e.lanes=a,l!==ts&&(t=Error(O(422),{cause:l}),Mo(Ie(t,n)))):(l!==ts&&(e=Error(O(423),{cause:l}),Mo(Ie(e,n))),t=t.current.alternate,t.flags|=65536,a&=-a,t.lanes|=a,l=Ie(l,n),a=ds(t.stateNode,l,a),Sf(t,a),Nt!==4&&(Nt=2)),!1;var i=Error(O(520),{cause:l});if(i=Ie(i,n),Oo===null?Oo=[i]:Oo.push(i),Nt!==4&&(Nt=2),e===null)return!0;l=Ie(l,n),n=e;do{switch(n.tag){case 3:return n.flags|=65536,t=a&-a,n.lanes|=t,t=ds(n.stateNode,l,t),Sf(n,t),!1;case 1:if(e=n.type,i=n.stateNode,(n.flags&128)===0&&(typeof e.getDerivedStateFromError=="function"||i!==null&&typeof i.componentDidCatch=="function"&&(Ul===null||!Ul.has(i))))return n.flags|=65536,a&=-a,n.lanes|=a,a=s0(a),d0(a,t,n,l),Sf(n,a),!1;break;case 22:if(n.memoizedState!==null)return n.flags|=65536,!1}n=n.return}while(n!==null);return!1}var Od=Error(O(461)),Mt=!1;function Ht(t,e,n,l){e.child=t===null?_g(e,null,n,l):ma(e,t.child,n,l)}function Hh(t,e,n,l,a){n=n.render;var i=e.ref;if("ref"in l){var o={};for(var u in l)u!=="ref"&&(o[u]=l[u])}else o=l;return sa(e),l=vd(t,e,n,o,i,a),u=hd(),t!==null&&!Mt?(pd(t,e,a),el(t,e,a)):(Y&&u&&Xc(e),e.flags|=1,Ht(t,e,l,a),e.child)}function Lh(t,e,n,l,a){if(t===null){var i=n.type;return typeof i=="function"&&!id(i)&&i.defaultProps===void 0&&n.compare===null?(e.tag=15,e.type=i,m0(t,e,i,l,a)):(t=Ku(n.type,null,l,e,e.mode,a),t.ref=e.ref,t.return=e,e.child=t)}if(i=t.child,!Ad(t,a)){var o=i.memoizedProps;if(n=n.compare,n=n!==null?n:Do,n(o,l)&&t.ref===e.ref)return el(t,e,a)}return e.flags|=1,t=In(i,l),t.ref=e.ref,t.return=e,e.child=t}function m0(t,e,n,l,a){if(t!==null){var i=t.memoizedProps;if(Do(i,l)&&t.ref===e.ref)if(Mt=!1,e.pendingProps=l=i,Ad(t,a))(t.flags&131072)!==0&&(Mt=!0);else return e.lanes=t.lanes,el(t,e,a)}return ms(t,e,n,l,a)}function v0(t,e,n,l){var a=l.children,i=t!==null?t.memoizedState:null;if(t===null&&e.stateNode===null&&(e.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),l.mode==="hidden"){if((e.flags&128)!==0){if(i=i!==null?i.baseLanes|n:n,t!==null){for(l=e.child=t.child,a=0;l!==null;)a=a|l.lanes|l.childLanes,l=l.sibling;l=a&~i}else l=0,e.child=null;return Bh(t,e,i,n,l)}if((n&536870912)!==0)e.memoizedState={baseLanes:0,cachePool:null},t!==null&&Ju(e,i!==null?i.cachePool:null),i!==null?Oh(e,i):os(),xg(e);else return l=e.lanes=536870912,Bh(t,e,i!==null?i.baseLanes|n:n,n,l)}else i!==null?(Ju(e,i.cachePool),Oh(e,i),zl(),e.memoizedState=null):(t!==null&&Ju(e,null),os(),zl());return Ht(t,e,a,n),e.child}function Eo(t,e){return t!==null&&t.tag===22||e.stateNode!==null||(e.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),e.sibling}function Bh(t,e,n,l,a){var i=cd();return i=i===null?null:{parent:wt._currentValue,pool:i},e.memoizedState={baseLanes:n,cachePool:i},t!==null&&Ju(e,null),os(),xg(e),t!==null&&fa(t,e,l,!0),e.childLanes=a,null}function ku(t,e){return e=Ic({mode:e.mode,children:e.children},t.mode),e.ref=t.ref,t.child=e,e.return=t,e}function jh(t,e,n){return ma(e,t.child,null,n),t=ku(e,e.pendingProps),t.flags|=2,De(e),e.memoizedState=null,t}function JE(t,e,n){var l=e.pendingProps,a=(e.flags&128)!==0;if(e.flags&=-129,t===null){if(Y){if(l.mode==="hidden")return t=ku(e,l),e.lanes=536870912,t.memoizedState={baseLanes:0,cachePool:null},Eo(null,t);if(us(e),(t=ht)?(t=vy(t,Fe),t=t!==null&&t.data==="&"?t:null,t!==null&&(e.memoizedState={dehydrated:t,treeContext:jl!==null?{id:wn,overflow:Mn}:null,retryLane:536870912,hydrationErrors:null},n=Sg(t),n.return=e,e.child=n,qt=e,ht=null)):t=null,t===null)throw Vl(e);return e.lanes=536870912,null}return ku(e,l)}var i=t.memoizedState;if(i!==null){var o=i.dehydrated;if(us(e),a)if(e.flags&256)e.flags&=-257,e=jh(t,e,n);else if(e.memoizedState!==null)e.child=t.child,e.flags|=128,e=null;else throw Error(O(558));else if(Mt||fa(t,e,n,!1),a=(n&t.childLanes)!==0,Mt||a){if(Yl.current===null){if(l=rt,l!==null&&(o=Qp(l,n),o!==0&&o!==i.retryLane))throw i.retryLane=o,ba(t,o),be(l,t,o),Od;wc()}e=jh(t,e,n)}else t=i.treeContext,ht=ke(o.nextSibling),qt=e,Y=!0,xl=null,Fe=!1,t!==null&&Rg(e,t),e=ku(e,l),e.flags|=134221824;return e}return t=In(t.child,{mode:l.mode,children:l.children}),t.ref=e.ref,e.child=t,t.return=e,t}function Ka(t,e){var n=e.ref;if(n===null)t!==null&&t.ref!==null&&(e.flags|=4194816);else{if(typeof n!="function"&&typeof n!="object")throw Error(O(284));(t===null||t.ref!==n)&&(e.flags|=4194816)}}function ms(t,e,n,l,a){return sa(e),n=vd(t,e,n,l,void 0,a),l=hd(),t!==null&&!Mt?(pd(t,e,a),el(t,e,a)):(Y&&l&&Xc(e),e.flags|=1,Ht(t,e,n,a),e.child)}function Vh(t,e,n,l,a,i){return sa(e),e.updateQueue=null,n=wg(e,l,n,a),Dg(t),l=hd(),t!==null&&!Mt?(pd(t,e,i),el(t,e,i)):(Y&&l&&Xc(e),e.flags|=1,Ht(t,e,n,i),e.child)}function Yh(t,e,n,l,a){if(sa(e),e.stateNode===null){var i=li,o=n.contextType;typeof o=="object"&&o!==null&&(i=Jt(o)),i=new n(l,i),e.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,i.updater=ss,e.stateNode=i,i._reactInternals=e,i=e.stateNode,i.props=l,i.state=e.memoizedState,i.refs={},fd(e),o=n.contextType,i.context=typeof o=="object"&&o!==null?Jt(o):li,i.state=e.memoizedState,o=n.getDerivedStateFromProps,typeof o=="function"&&(Rf(e,n,o,l),i.state=e.memoizedState),typeof n.getDerivedStateFromProps=="function"||typeof i.getSnapshotBeforeUpdate=="function"||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(o=i.state,typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount(),o!==i.state&&ss.enqueueReplaceState(i,i.state,null),bo(e,l,i,a),So(),i.state=e.memoizedState),typeof i.componentDidMount=="function"&&(e.flags|=4194308),l=!0}else if(t===null){i=e.stateNode;var u=e.memoizedProps,c=ha(n,u);i.props=c;var r=i.context,s=n.contextType;o=li,typeof s=="object"&&s!==null&&(o=Jt(s));var v=n.getDerivedStateFromProps;s=typeof v=="function"||typeof i.getSnapshotBeforeUpdate=="function",u=e.pendingProps!==u,s||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(u||r!==o)&&zh(e,i,l,o),bl=!1;var f=e.memoizedState;i.state=f,bo(e,l,i,a),So(),r=e.memoizedState,u||f!==r||bl?(typeof v=="function"&&(Rf(e,n,v,l),r=e.memoizedState),(c=bl||Mh(e,n,c,l,f,r,o))?(s||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount()),typeof i.componentDidMount=="function"&&(e.flags|=4194308)):(typeof i.componentDidMount=="function"&&(e.flags|=4194308),e.memoizedProps=l,e.memoizedState=r),i.props=l,i.state=r,i.context=o,l=c):(typeof i.componentDidMount=="function"&&(e.flags|=4194308),l=!1)}else{i=e.stateNode,as(t,e),o=e.memoizedProps,s=ha(n,o),i.props=s,v=e.pendingProps,f=i.context,r=n.contextType,c=li,typeof r=="object"&&r!==null&&(c=Jt(r)),u=n.getDerivedStateFromProps,(r=typeof u=="function"||typeof i.getSnapshotBeforeUpdate=="function")||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(o!==v||f!==c)&&zh(e,i,l,c),bl=!1,f=e.memoizedState,i.state=f,bo(e,l,i,a),So();var h=e.memoizedState;o!==v||f!==h||bl||t!==null&&t.dependencies!==null&&pc(t.dependencies)?(typeof u=="function"&&(Rf(e,n,u,l),h=e.memoizedState),(s=bl||Mh(e,n,s,l,f,h,c)||t!==null&&t.dependencies!==null&&pc(t.dependencies))?(r||typeof i.UNSAFE_componentWillUpdate!="function"&&typeof i.componentWillUpdate!="function"||(typeof i.componentWillUpdate=="function"&&i.componentWillUpdate(l,h,c),typeof i.UNSAFE_componentWillUpdate=="function"&&i.UNSAFE_componentWillUpdate(l,h,c)),typeof i.componentDidUpdate=="function"&&(e.flags|=4),typeof i.getSnapshotBeforeUpdate=="function"&&(e.flags|=1024)):(typeof i.componentDidUpdate!="function"||o===t.memoizedProps&&f===t.memoizedState||(e.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||o===t.memoizedProps&&f===t.memoizedState||(e.flags|=1024),e.memoizedProps=l,e.memoizedState=h),i.props=l,i.state=h,i.context=c,l=s):(typeof i.componentDidUpdate!="function"||o===t.memoizedProps&&f===t.memoizedState||(e.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||o===t.memoizedProps&&f===t.memoizedState||(e.flags|=1024),l=!1)}return i=l,Ka(t,e),l=(e.flags&128)!==0,i||l?(i=e.stateNode,n=l&&typeof n.getDerivedStateFromError!="function"?null:i.render(),e.flags|=1,t!==null&&l?(e.child=ma(e,t.child,null,a),e.child=ma(e,null,n,a)):Ht(t,e,n,a),e.memoizedState=i.state,t=e.child):t=el(t,e,a),t}function qh(t,e,n,l){return ra(),e.flags|=256,Ht(t,e,n,l),e.child}var vs={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function hs(t){return{baseLanes:t,cachePool:Tg()}}function ps(t,e,n){return t=t!==null?t.childLanes&~n:0,e&&(t|=Me),t}function h0(t,e,n){var l=e.pendingProps,a=!1,i=(e.flags&128)!==0,o;if((o=i)||(o=t!==null&&t.memoizedState===null?!1:(Ft.current&2)!==0),o&&(a=!0,e.flags&=-129),o=(e.flags&32)!==0,e.flags&=-33,t===null){if(Y){if(a?Ml(e):zl(),(t=ht)?(t=vy(t,Fe),t=t!==null&&t.data!=="&"?t:null,t!==null&&(e.memoizedState={dehydrated:t,treeContext:jl!==null?{id:wn,overflow:Mn}:null,retryLane:536870912,hydrationErrors:null},n=Sg(t),n.return=e,e.child=n,qt=e,ht=null)):t=null,t===null)throw Vl(e);return Vd(t)?e.lanes=32:e.lanes=536870912,null}return i=l.children,l=l.fallback,a?(zl(),a=e.mode,i=Ic({mode:"hidden",children:i},a),l=ia(l,a,n,null),i.return=e,l.return=e,i.sibling=l,e.child=i,l=e.child,l.memoizedState=hs(n),l.childLanes=ps(t,o,n),e.memoizedState=vs,Eo(null,l)):(Ml(e),_d(e,i))}var u=t.memoizedState;if(u!==null){var c=u.dehydrated;if(c!==null)return IE(t,e,i,o,l,c,u,n)}return a?(zl(),a=l.fallback,i=e.mode,u=t.child,c=u.sibling,l=In(u,{mode:"hidden",children:l.children}),l.subtreeFlags=u.subtreeFlags&1206910976,c!==null?a=In(c,a):(a=ia(a,i,n,null),a.flags|=2),a.return=e,l.return=e,l.sibling=a,e.child=l,Eo(null,l),l=e.child,a=t.child.memoizedState,a===null?a=hs(n):(i=a.cachePool,i!==null?(u=wt._currentValue,i=i.parent!==u?{parent:u,pool:u}:i):i=Tg(),a={baseLanes:a.baseLanes|n,cachePool:i}),l.memoizedState=a,l.childLanes=ps(t,o,n),e.memoizedState=vs,Eo(t.child,l)):(Ml(e),n=t.child,t=n.sibling,n=In(n,{mode:"visible",children:l.children}),n.return=e,n.sibling=null,t!==null&&(o=e.deletions,o===null?(e.deletions=[t],e.flags|=16):o.push(t)),e.child=n,e.memoizedState=null,n)}function _d(t,e){return e=Ic({mode:"visible",children:e},t.mode),e.return=t,t.child=e}function Ic(t,e){return t=Se(22,t,null,e),t.lanes=0,t}function Mu(t,e,n){return ma(e,t.child,null,n),t=_d(e,e.pendingProps.children),t.flags|=2,e.memoizedState=null,t}function IE(t,e,n,l,a,i,o,u){if(n)return e.flags&256?(Ml(e),e.flags&=-257,Mu(t,e,u)):e.memoizedState!==null?(zl(),e.child=t.child,e.flags|=128,null):(zl(),i=a.fallback,o=e.mode,a=Ic({mode:"visible",children:a.children},o),i=ia(i,o,u,null),i.flags|=2,a.return=e,i.return=e,a.sibling=i,e.child=a,ma(e,t.child,null,u),a=e.child,a.memoizedState=hs(u),a.childLanes=ps(t,l,u),e.memoizedState=vs,Eo(null,a));if(Ml(e),Vd(i)){if(l=i.nextSibling&&i.nextSibling.dataset,l)var c=l.dgst;return l=c,l!==""&&(a=Error(O(419)),a.stack="",a.digest=l,Mo({value:a,source:null,stack:null})),Mu(t,e,u)}if(Mt||fa(t,e,u,!1),l=(u&t.childLanes)!==0,Mt||l){if(Yl.current!==null)return Mu(t,e,u);if(l=rt,l!==null&&(a=Qp(l,u),a!==0&&a!==o.retryLane))throw o.retryLane=a,ba(t,a),be(l,t,a),Od;return qs(i)||wc(),Mu(t,e,u)}return qs(i)?(e.flags|=192,e.child=t.child,null):(t=o.treeContext,ht=ke(i.nextSibling),qt=e,Y=!0,xl=null,Fe=!1,t!==null&&Rg(e,t),e=_d(e,a.children),e.flags|=134221824,e)}function Gh(t,e,n){t.lanes|=e;var l=t.alternate;l!==null&&(l.lanes|=e),Pu(t.return,e,n)}function Xh(t){for(var e=null;t!==null;){var n=t.alternate;n!==null&&Sc(n)===null&&(e=t),t=t.sibling}return e}function zu(t,e,n,l,a,i){var o=t.memoizedState;o===null?t.memoizedState={isBackwards:e,rendering:null,renderingStartTime:0,last:l,tail:n,tailMode:a,treeForkCount:i}:(o.isBackwards=e,o.rendering=null,o.renderingStartTime=0,o.last=l,o.tail=n,o.tailMode=a,o.treeForkCount=i)}function Ef(t){var e=t.child;for(t.child=null;e!==null;){var n=e.sibling;e.sibling=t.child,t.child=e,e=n}}function gs(t,e,n){var l=e.pendingProps,a=l.revealOrder,i=l.tail;l=l.children;var o=Ft.current;if(e.flags&128)return Uo(e,o),null;var u=(o&2)!==0;if(u?(o=o&1|2,e.flags|=128):o&=1,Uo(e,o),a==="backwards"&&t!==null?(Ef(t),Ht(t,e,l,n),Ef(t)):Ht(t,e,l,n),l=Y?wo:0,!u&&t!==null&&(t.flags&128)!==0)t:for(t=e.child;t!==null;){if(t.tag===13)t.memoizedState!==null&&Gh(t,n,e);else if(t.tag===19)Gh(t,n,e);else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break t;for(;t.sibling===null;){if(t.return===null||t.return===e)break t;t=t.return}t.sibling.return=t.return,t=t.sibling}switch(a){case"backwards":n=Xh(e.child),n===null?(a=e.child,e.child=null):(a=n.sibling,n.sibling=null,Ef(e)),zu(e,!0,a,null,i,l);break;case"unstable_legacy-backwards":for(n=null,a=e.child,e.child=null;a!==null;){if(t=a.alternate,t!==null&&Sc(t)===null){e.child=a;break}t=a.sibling,a.sibling=n,n=a,a=t}zu(e,!0,n,null,i,l);break;case"together":zu(e,!1,null,null,void 0,l);break;case"independent":e.memoizedState=null;break;default:n=Xh(e.child),n===null?(a=e.child,e.child=null):(a=n.sibling,n.sibling=null),zu(e,!1,a,n,i,l)}return e.child}function Qh(t,e,n){var l=e.pendingProps;return Cl(e,e.type,l.value),Ht(t,e,l.children,n),e.child}function el(t,e,n){if(t!==null&&(e.dependencies=t.dependencies),Gl|=e.lanes,(n&e.childLanes)===0)if(t!==null){if(fa(t,e,n,!1),(n&e.childLanes)===0)return null}else return null;if(t!==null&&e.child!==t.child)throw Error(O(153));if(e.child!==null){for(t=e.child,n=In(t,t.pendingProps),e.child=n,n.return=e;t.sibling!==null;)t=t.sibling,n=n.sibling=In(t,t.pendingProps),n.return=e;n.sibling=null}return e.child}function Ad(t,e){return(t.lanes&e)!==0?!0:(t=t.dependencies,!!(t!==null&&pc(t)))}function FE(t,e,n){switch(e.tag){case 3:cc(e,e.stateNode.containerInfo),Cl(e,wt,t.memoizedState.cache),ra();break;case 27:case 5:Qf(e);break;case 4:cc(e,e.stateNode.containerInfo);break;case 10:Cl(e,e.type,e.memoizedProps.value);break;case 31:if(e.memoizedState!==null)return e.flags|=128,us(e),null;break;case 13:var l=e.memoizedState;if(l!==null){if(l.dehydrated!==null)return Ml(e),e.flags|=128,null;l=fa(t,e,n,!1);var a=e.child.childLanes;return l||(n&a)!==0?h0(t,e,n):(Ml(e),t=el(t,e,n),t!==null?t.sibling:null)}Ml(e);break;case 19:if(e.flags&128)return gs(t,e,n);if(a=(t.flags&128)!==0,l=(n&e.childLanes)!==0,l||(fa(t,e,n,!1),l=(n&e.childLanes)!==0),a){if(l)return gs(t,e,n);e.flags|=128}if(a=e.memoizedState,a!==null&&(a.rendering=null,a.tail=null,a.lastEffect=null),Uo(e,Ft.current),l)break;return null;case 22:return e.lanes=0,v0(t,e,n,e.pendingProps);case 24:Cl(e,wt,t.memoizedState.cache)}return el(t,e,n)}function p0(t,e,n){if(t!==null)if(t.memoizedProps!==e.pendingProps)Mt=!0;else{if(!Ad(t,n)&&(e.flags&128)===0)return Mt=!1,FE(t,e,n);Mt=(t.flags&131072)!==0}else Mt=!1,Y&&(e.flags&1048576)!==0&&bg(e,wo,e.index);switch(e.lanes=0,e.tag){case 16:t:{var l=e.pendingProps;if(t=ta(e.elementType),e.type=t,typeof t=="function")id(t)?(l=ha(t,l),e.tag=1,e=Yh(null,e,t,l,n)):(e.tag=0,e=ms(null,e,t,l,n));else{if(t!=null){var a=t.$$typeof;if(a===Ks){e.tag=11,e=Hh(null,e,t,l,n);break t}else if(a===Ps){e.tag=14,e=Lh(null,e,t,l,n);break t}else if(a===xn){e.tag=10,e.type=t,e=Qh(null,e,n);break t}}throw e=Gf(t)||t,Error(O(306,e,""))}}return e;case 0:return ms(t,e,e.type,e.pendingProps,n);case 1:return l=e.type,a=ha(l,e.pendingProps),Yh(t,e,l,a,n);case 3:t:{if(cc(e,e.stateNode.containerInfo),t===null)throw Error(O(387));l=e.pendingProps;var i=e.memoizedState;a=i.element,as(t,e),bo(e,l,null,n);var o=e.memoizedState;if(l=o.cache,Cl(e,wt,l),l!==i.cache&&ns(e,[wt],n,!0),So(),l=o.element,i.isDehydrated)if(i={element:l,isDehydrated:!1,cache:o.cache},e.updateQueue.baseState=i,e.memoizedState=i,e.flags&256){e=qh(t,e,l,n);break t}else if(l!==a){a=Ie(Error(O(424)),e),Mo(a),e=qh(t,e,l,n);break t}else for(t=e.stateNode.containerInfo,t.nodeType===9?t=t.body:t=t.nodeName==="HTML"?t.ownerDocument.body:t,ht=ke(t.firstChild),qt=e,Y=!0,xl=null,Fe=!0,n=_g(e,null,l,n),e.child=n;n;)n.flags=n.flags&-3|134221824,n=n.sibling;else{if(ra(),l===a){e=el(t,e,n);break t}Ht(t,e,l,n)}e=e.child}return e;case 26:return Ka(t,e),t===null?(n=gp(e.type,null,e.pendingProps,null))?e.memoizedState=n:Y||(e.stateNode=iy(e.type,e.pendingProps,Nl.current,e)):e.memoizedState=gp(e.type,t.memoizedProps,e.pendingProps,t.memoizedState),null;case 27:return Qf(e),t===null&&Y&&(l=e.stateNode=hy(e.type,e.pendingProps,Nl.current),qt=e,Fe=!0,a=ht,Ql(e.type)?(Gs=a,ht=ke(l.firstChild)):ht=a),Ht(t,e,e.pendingProps.children,n),Ka(t,e),t===null&&(e.flags|=4194304),e.child;case 5:return t===null&&Y&&((a=l=ht)&&(l=GT(l,e.type,e.pendingProps,Fe),l!==null?(e.stateNode=l,qt=e,ht=ke(l.firstChild),Fe=!1,a=!0):a=!1),a||Vl(e)),Qf(e),a=e.type,i=e.pendingProps,o=t!==null?t.memoizedProps:null,l=i.children,js(a,i)?l=null:o!==null&&js(a,o)&&(e.flags|=32),e.memoizedState!==null&&(a=vd(t,e,VE,null,null,n),Ai._currentValue=a),Ka(t,e),Ht(t,e,l,n),e.child;case 6:return t===null&&Y&&((t=n=ht)&&(n=XT(n,e.pendingProps,Fe),n!==null?(e.stateNode=n,qt=e,ht=null,t=!0):t=!1),t||Vl(e)),null;case 13:return h0(t,e,n);case 4:return cc(e,e.stateNode.containerInfo),l=e.pendingProps,t===null?e.child=ma(e,null,l,n):Ht(t,e,l,n),e.child;case 11:return Hh(t,e,e.type,e.pendingProps,n);case 7:return l=e.pendingProps,Ka(t,e),Ht(t,e,l,n),e.child;case 8:return Ht(t,e,e.pendingProps.children,n),e.child;case 12:return Ht(t,e,e.pendingProps.children,n),e.child;case 10:return Qh(t,e,n);case 9:return a=e.type._context,l=e.pendingProps.children,sa(e),a=Jt(a),l=l(a),e.flags|=1,Ht(t,e,l,n),e.child;case 14:return Lh(t,e,e.type,e.pendingProps,n);case 15:return m0(t,e,e.type,e.pendingProps,n);case 19:return gs(t,e,n);case 31:return JE(t,e,n);case 22:return v0(t,e,n,e.pendingProps);case 24:return sa(e),l=Jt(wt),t===null?(a=cd(),a===null&&(a=rt,i=ud(),a.pooledCache=i,i.refCount++,i!==null&&(a.pooledCacheLanes|=n),a=i),e.memoizedState={parent:l,cache:a},fd(e),Cl(e,wt,a)):((t.lanes&n)!==0&&(as(t,e),bo(e,null,null,n),So()),a=t.memoizedState,i=e.memoizedState,a.parent!==l?(a={parent:l,cache:l},e.memoizedState=a,e.lanes===0&&(e.memoizedState=e.updateQueue.baseState=a),Cl(e,wt,l)):(l=i.cache,Cl(e,wt,l),l!==a.cache&&ns(e,[wt],n,!0))),Ht(t,e,e.pendingProps.children,n),e.child;case 30:return e.stateNode===null&&(e.stateNode={autoName:null,paired:null,clones:null,ref:null}),l=e.pendingProps,l.name!=null&&l.name!=="auto"?e.flags|=t===null?18882560:18874368:Y&&Xc(e),t!==null&&t.memoizedProps.name!==l.name?e.flags|=4194816:Ka(t,e),Ht(t,e,l.children,n),e.child;case 29:throw e.pendingProps}throw Error(O(156,e.tag))}function Kn(t){t.flags|=4}function Tf(t,e,n,l,a){var i;if((i=(t.mode&32)!==0)&&(i=n===null?bp(e,l):bp(e,l)&&(l.src!==n.src||l.srcSet!==n.srcSet)),i){if(t.flags|=16777216,(a&335544128)===a)if(t.stateNode.complete)t.flags|=8192;else if(Z0())t.flags|=8192;else throw ua=gc,rd}else t.flags&=-16777217}function Zh(t,e){if(e.type!=="stylesheet"||(e.state.loading&4)!==0)t.flags&=-16777217;else if(t.flags|=16777216,!Sy(e))if(Z0())t.flags|=8192;else throw ua=gc,rd}function Uu(t,e){e!==null&&(t.flags|=4),t.flags&16384&&(e=t.tag!==22?qp():536870912,t.lanes|=e,Ri|=e)}function ao(t,e){if(!Y)switch(t.tailMode){case"visible":break;case"collapsed":for(var n=t.tail,l=null;n!==null;)n.alternate!==null&&(l=n),n=n.sibling;l===null?e||t.tail===null?t.tail=null:t.tail.sibling=null:l.sibling=null;break;default:for(e=t.tail,n=null;e!==null;)e.alternate!==null&&(n=e),e=e.sibling;n===null?t.tail=null:n.sibling=null}}function vt(t){var e=t.alternate!==null&&t.alternate.child===t.child,n=0,l=0;if(e)for(var a=t.child;a!==null;)n|=a.lanes|a.childLanes,l|=a.subtreeFlags&1206910976,l|=a.flags&1206910976,a.return=t,a=a.sibling;else for(a=t.child;a!==null;)n|=a.lanes|a.childLanes,l|=a.subtreeFlags,l|=a.flags,a.return=t,a=a.sibling;return t.subtreeFlags|=l,t.childLanes=n,e}function kE(t,e,n){var l=e.pendingProps;switch(od(e),e.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return vt(e),null;case 1:return vt(e),null;case 3:return n=e.stateNode,l=null,t!==null&&(l=t.memoizedState.cache),e.memoizedState.cache!==l&&(e.flags|=2048),Fn(wt),gi(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(t===null||t.child===null)&&(Qa(e)?Kn(e):t===null||t.memoizedState.isDehydrated&&(e.flags&256)===0||(e.flags|=1024,yf())),vt(e),null;case 26:var a=e.type,i=e.memoizedState;return t===null?(Kn(e),i!==null?(vt(e),Zh(e,i)):(vt(e),Tf(e,a,null,l,n))):i?i!==t.memoizedState?(Kn(e),vt(e),Zh(e,i)):(vt(e),e.flags&=-16777217):(t=t.memoizedProps,t!==l&&Kn(e),vt(e),Tf(e,a,t,l,n)),null;case 27:if(rc(e),n=Nl.current,a=e.type,t!==null&&e.stateNode!=null)t.memoizedProps!==l&&Kn(e);else{if(!l){if(e.stateNode===null)throw Error(O(166));return vt(e),e.subtreeFlags&=-33554433,null}t=zn.current,Qa(e)?yh(e,t):(t=hy(a,l,n),e.stateNode=t,Kn(e))}return vt(e),e.subtreeFlags&=-33554433,null;case 5:if(rc(e),a=e.type,t!==null&&e.stateNode!=null)t.memoizedProps!==l&&Kn(e);else{if(!l){if(e.stateNode===null)throw Error(O(166));return vt(e),e.subtreeFlags&=-33554433,null}if(i=zn.current,Qa(e))yh(e,i);else{var o=jo(Nl.current);switch(i){case 1:i=o.createElementNS("http://www.w3.org/2000/svg",a);break;case 2:i=o.createElementNS("http://www.w3.org/1998/Math/MathML",a);break;default:switch(a){case"svg":i=o.createElementNS("http://www.w3.org/2000/svg",a);break;case"math":i=o.createElementNS("http://www.w3.org/1998/Math/MathML",a);break;case"script":i=o.createElement("div"),i.innerHTML="<script><\\/script>",i=i.removeChild(i.firstChild);break;case"select":i=typeof l.is=="string"?o.createElement("select",{is:l.is}):o.createElement("select"),l.multiple?i.multiple=!0:l.size&&(i.size=l.size);break;default:i=typeof l.is=="string"?o.createElement(a,{is:l.is}):o.createElement(a)}}i[Pt]=e,i[Ee]=l;t:for(o=e.child;o!==null;){if(o.tag===5||o.tag===6)i.appendChild(o.stateNode);else if(o.tag!==4&&o.tag!==27&&o.child!==null){o.child.return=o,o=o.child;continue}if(o===e)break t;for(;o.sibling===null;){if(o.return===null||o.return===e)break t;o=o.return}o.sibling.return=o.return,o=o.sibling}e.stateNode=i;t:switch(kt(i,a,l),a){case"button":case"input":case"select":case"textarea":l=!!l.autoFocus;break t;case"img":l=!0;break t;default:l=!1}l&&Kn(e)}}return vt(e),e.subtreeFlags&=-33554433,Tf(e,e.type,t===null?null:t.memoizedProps,e.pendingProps,n),null;case 6:if(t&&e.stateNode!=null)t.memoizedProps!==l&&Kn(e);else{if(typeof l!="string"&&e.stateNode===null)throw Error(O(166));if(t=Nl.current,Qa(e)){if(t=e.stateNode,n=e.memoizedProps,l=null,a=qt,a!==null)switch(a.tag){case 27:case 5:l=a.memoizedProps}t[Pt]=e,t=!!(t.nodeValue===n||l!==null&&l.suppressHydrationWarning===!0||ly(t.nodeValue,n)),t||Vl(e,!0)}else t=jo(t).createTextNode(l),t[Pt]=e,e.stateNode=t}return vt(e),null;case 31:if(n=e.memoizedState,t===null||t.memoizedState!==null){if(l=Qa(e),n!==null){if(t===null){if(!l)throw Error(O(318));if(t=e.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(O(557));t[Pt]=e}else ra(),(e.flags&128)===0&&(e.memoizedState=null),e.flags|=4;vt(e),t=!1}else n=yf(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=n),t=!0;if(!t)return e.flags&256?(De(e),e):(De(e),null);if((e.flags&128)!==0)throw Error(O(558))}return vt(e),null;case 13:if(l=e.memoizedState,t===null||t.memoizedState!==null&&t.memoizedState.dehydrated!==null){if(a=Qa(e),l!==null&&l.dehydrated!==null){if(t===null){if(!a)throw Error(O(318));if(a=e.memoizedState,a=a!==null?a.dehydrated:null,!a)throw Error(O(317));a[Pt]=e}else ra(),(e.flags&128)===0&&(e.memoizedState=null),e.flags|=4;vt(e),a=!1}else a=yf(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=a),a=!0;if(!a)return e.flags&256?(De(e),e):(De(e),null)}return De(e),(e.flags&128)!==0?(e.lanes=n,e):(n=l!==null,t=t!==null&&t.memoizedState!==null,n&&(l=e.child,a=null,l.alternate!==null&&l.alternate.memoizedState!==null&&l.alternate.memoizedState.cachePool!==null&&(a=l.alternate.memoizedState.cachePool.pool),i=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(i=l.memoizedState.cachePool.pool),i!==a&&(l.flags|=2048)),n!==t&&n&&(e.child.flags|=8192),Uu(e,e.updateQueue),vt(e),null);case 4:return gi(),t===null&&Ld(e.stateNode.containerInfo),e.flags|=67108864,vt(e),null;case 10:return Fn(e.type),vt(e),null;case 19:if(dd(e),l=e.memoizedState,l===null)return vt(e),null;if(a=(e.flags&128)!==0,i=l.rendering,i===null)if(a)ao(l,!1);else{if(Nt!==0||t!==null&&(t.flags&128)!==0)for(t=e.child;t!==null;){if(i=Sc(t),i!==null){for(e.flags|=128,ao(l,!1),t=i.updateQueue,e.updateQueue=t,Uu(e,t),e.subtreeFlags=0,t=n,n=e.child;n!==null;)yg(n,t),n=n.sibling;return Uo(e,Ft.current&1|2),Y&&Pn(e,l.treeForkCount),e.child}t=t.sibling}l.tail!==null&&ze()>xc&&(e.flags|=128,a=!0,ao(l,!1),e.lanes=4194304)}else{if(!a)if(t=Sc(i),t!==null){if(e.flags|=128,a=!0,t=t.updateQueue,e.updateQueue=t,Uu(e,t),ao(l,!0),l.tail===null&&l.tailMode!=="collapsed"&&l.tailMode!=="visible"&&!i.alternate&&!Y)return vt(e),null}else 2*ze()-l.renderingStartTime>xc&&n!==536870912&&(e.flags|=128,a=!0,ao(l,!1),e.lanes=4194304);l.isBackwards?(i.sibling=e.child,e.child=i):(t=l.last,t!==null?t.sibling=i:e.child=i,l.last=i)}if(l.tail!==null){t=l.tail;t:{for(n=t;n!==null;){if(n.alternate!==null){n=!1;break t}n=n.sibling}n=!0}return l.rendering=t,l.tail=t.sibling,l.renderingStartTime=ze(),t.sibling=null,i=Ft.current,i=a?i&1|2:i&1,l.tailMode==="visible"||l.tailMode==="collapsed"||!n||Y?Uo(e,i):(n=i,pt(Wt,e),pt(Ft,n),ie===null&&(ie=e)),Y&&Pn(e,l.treeForkCount),t}return vt(e),null;case 22:case 23:return De(e),sd(),l=e.memoizedState!==null,t!==null?t.memoizedState!==null!==l&&(e.flags|=8192):l&&(e.flags|=8192),l?(n&536870912)!==0&&(e.flags&128)===0&&(vt(e),e.subtreeFlags&6&&(e.flags|=8192)):vt(e),n=e.updateQueue,n!==null&&Uu(e,n.retryQueue),n=null,t!==null&&t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(n=t.memoizedState.cachePool.pool),l=null,e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(l=e.memoizedState.cachePool.pool),l!==n&&(e.flags|=2048),t!==null&&It(oa),null;case 24:return n=null,t!==null&&(n=t.memoizedState.cache),e.memoizedState.cache!==n&&(e.flags|=2048),Fn(wt),vt(e),null;case 25:return null;case 30:return e.flags|=33554432,vt(e),null}throw Error(O(156,e.tag))}function WE(t,e){switch(od(e),e.tag){case 1:return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 3:return Fn(wt),gi(),t=e.flags,(t&65536)!==0&&(t&128)===0?(e.flags=t&-65537|128,e):null;case 26:case 27:case 5:return rc(e),null;case 31:if(e.memoizedState!==null){if(De(e),e.alternate===null)throw Error(O(340));ra()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 13:if(De(e),t=e.memoizedState,t!==null&&t.dehydrated!==null){if(e.alternate===null)throw Error(O(340));ra()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 19:return dd(e),t=e.flags,t&65536?(e.flags=t&-65537|128,t=e.memoizedState,t!==null&&(t.rendering=null,t.tail=null),e.flags|=4,e):null;case 4:return gi(),null;case 10:return Fn(e.type),null;case 22:case 23:return De(e),sd(),t!==null&&It(oa),t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 24:return Fn(wt),null;case 25:return null;default:return null}}function g0(t,e){switch(od(e),e.tag){case 3:Fn(wt),gi();break;case 26:case 27:case 5:rc(e);break;case 4:gi();break;case 31:e.memoizedState!==null&&De(e);break;case 13:De(e);break;case 19:dd(e);break;case 10:Fn(e.type);break;case 22:case 23:De(e),sd(),t!==null&&It(oa);break;case 24:Fn(wt)}}function ko(t,e){try{var n=e.updateQueue,l=n!==null?n.lastEffect:null;if(l!==null){var a=l.next;n=a;do{if((n.tag&t)===t){l=void 0;var i=n.create,o=n.inst;l=i(),o.destroy=l}n=n.next}while(n!==a)}}catch(u){lt(e,e.return,u)}}function ql(t,e,n){try{var l=e.updateQueue,a=l!==null?l.lastEffect:null;if(a!==null){var i=a.next;l=i;do{if((l.tag&t)===t){var o=l.inst,u=o.destroy;if(u!==void 0){o.destroy=void 0,a=e;var c=n,r=u;try{r()}catch(s){lt(a,c,s)}}}l=l.next}while(l!==i)}}catch(s){lt(e,e.return,s)}}function y0(t){var e=t.updateQueue;if(e!==null){var n=t.stateNode;try{Ng(e,n)}catch(l){lt(t,t.return,l)}}}function S0(t,e,n){n.props=ha(t.type,t.memoizedProps),n.state=t.memoizedState;try{n.componentWillUnmount()}catch(l){lt(t,e,l)}}function An(t,e){try{var n=t.ref;if(n!==null){switch(t.tag){case 26:case 27:case 5:var l=t.stateNode;break;case 30:var a=t.stateNode,i=Wn(t.memoizedProps,a);(a.ref===null||a.ref.name!==i)&&(a.ref=ry(i)),l=a.ref;break;case 7:if(t.stateNode===null){var o=new je(t);Re(t.child,!1,YT,o,void 0,void 0),t.stateNode=o}l=t.stateNode;break;default:l=t.stateNode}typeof n=="function"?t.refCleanup=n(l):n.current=l}}catch(u){lt(t,e,u)}}function Kt(t,e){var n=t.ref,l=t.refCleanup;if(n!==null)if(typeof l=="function")try{l()}catch(a){lt(t,e,a)}finally{t.refCleanup=null,t=t.alternate,t!=null&&(t.refCleanup=null)}else if(typeof n=="function")try{n(null)}catch(a){lt(t,e,a)}else n.current=null}function Cc(t,e){if((t.tag===5||t.tag===27||t.tag===6)&&t.alternate===null&&e!==null)for(var n=0;n<e.length;n++)my(t.stateNode,e[n])}function Kh(t){for(var e=t.return;e!==null&&(xd(e)&&my(t.stateNode,e.stateNode),!Nd(e));)e=e.return}function To(t){for(var e=t.return;e!==null&&(xd(e)&&qT(t.stateNode,e.stateNode),!Nd(e));)e=e.return}function Nd(t){return t.tag===5||t.tag===3||t.tag===27}function xd(t){return t&&t.tag===7&&t.stateNode!==null}function ys(t){var e=t.type,n=t.memoizedProps,l=t.stateNode;try{t:switch(e){case"button":case"input":case"select":case"textarea":n.autoFocus&&l.focus();break t;case"img":n.src?l.src=n.src:n.srcSet&&(l.srcset=n.srcSet)}}catch(a){lt(t,t.return,a)}}function Cf(t,e,n){try{var l=t.stateNode;ET(l,t.type,n,e),l[Ee]=e}catch(a){lt(t,t.return,a)}}function b0(t){return t.tag===5||t.tag===3||t.tag===26||t.tag===27&&Ql(t.type)||t.tag===4}function Of(t){t:for(;;){for(;t.sibling===null;){if(t.return===null||b0(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.tag===27&&Ql(t.type)||t.flags&2||t.child===null||t.tag===4)continue t;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function Ss(t,e,n,l){var a=t.tag;if(a===5||a===6)a=t.stateNode,e?(n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n).insertBefore(a,e):(e=n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n,e.appendChild(a),n=n._reactRootContainer,n!=null||e.onclick!==null||(e.onclick=Dn)),Cc(t,l),J=!0;else if(a!==4&&(a===27&&(Cc(t,l),l=null,Ql(t.type)&&(n=t.stateNode,e=null)),t=t.child,t!==null))for(Ss(t,e,n,l),t=t.sibling;t!==null;)Ss(t,e,n,l),t=t.sibling}function Oc(t,e,n,l){var a=t.tag;if(a===5||a===6)a=t.stateNode,e?n.insertBefore(a,e):n.appendChild(a),Cc(t,l),J=!0;else if(a!==4&&(a===27&&(Cc(t,l),l=null,Ql(t.type)&&(n=t.stateNode)),t=t.child,t!==null))for(Oc(t,e,n,l),t=t.sibling;t!==null;)Oc(t,e,n,l),t=t.sibling}function R0(t){var e=t.stateNode,n=t.memoizedProps;try{for(var l=t.type,a=e.attributes;a.length;)e.removeAttributeNode(a[0]);kt(e,l,n),e[Pt]=t,e[Ee]=n}catch(i){lt(t,t.return,i)}}var _c=!1,we=null;function Ph(t){(t.tag===30||(t.subtreeFlags&33554432)!==0)&&(_c=!0)}var Nn=null;function Jh(){var t=Nn;return Nn=null,t}var ye=0;function zi(t,e,n,l,a){return ye=0,E0(t.child,e,n,l,a)}function E0(t,e,n,l,a){for(var i=!1;t!==null;){if(t.tag===5){var o=t.stateNode;if(l!==null){var u=Vs(o);l.push(u),u.view&&(i=!0)}else i||Vs(o).view&&(i=!0);_c=!0,oy(o,ye===0?e:e+"_"+ye,n),ye++}else(t.tag!==22||t.memoizedState===null)&&(t.tag===30&&a||E0(t.child,e,n,l,a)&&(i=!0));t=t.sibling}return i}function Hn(t,e){for(;t!==null;)t.tag===5?uy(t.stateNode,t.memoizedProps):(t.tag!==22||t.memoizedState===null)&&(t.tag===30&&e||Hn(t.child,e)),t=t.sibling}function Wu(t){if((t.subtreeFlags&18874368)!==0)for(t=t.child;t!==null;){if((t.tag!==22||t.memoizedState===null)&&(Wu(t),t.tag===30&&(t.flags&18874368)!==0&&t.stateNode.paired)){var e=t.memoizedProps;if(e.name==null||e.name==="auto")throw Error(O(544));var n=e.name;e=al(e.default,e.share),e!=="none"&&(zi(t,n,e,null,!1)||Hn(t.child,!1))}t=t.sibling}}function bs(t,e){if(t.tag===30){var n=t.stateNode,l=t.memoizedProps,a=Wn(l,n),i=al(l.default,n.paired?l.share:l.enter);i!=="none"?zi(t,a,i,null,!1)?(Wu(t),n.paired||e||Ei(t,l.onEnter)):Hn(t.child,!1):Wu(t)}else if((t.subtreeFlags&33554432)!==0)for(t=t.child;t!==null;)bs(t,e),t=t.sibling;else Wu(t)}function Rs(t){if(we!==null&&we.size!==0){var e=we;if((t.subtreeFlags&18874368)!==0)for(t=t.child;t!==null;){if(t.tag!==22||t.memoizedState===null){if(t.tag===30&&(t.flags&18874368)!==0){var n=t.memoizedProps,l=n.name;if(l!=null&&l!=="auto"){var a=e.get(l);if(a!==void 0){var i=al(n.default,n.share);if(i!=="none"&&(zi(t,l,i,null,!1)?(i=t.stateNode,a.paired=i,i.paired=a,Ei(t,n.onShare)):Hn(t.child,!1)),e.delete(l),e.size===0)break}}}Rs(t)}t=t.sibling}}}function Es(t){if(t.tag===30){var e=t.memoizedProps,n=Wn(e,t.stateNode),l=we!==null?we.get(n):void 0,a=al(e.default,l!==void 0?e.share:e.exit);a!=="none"&&(zi(t,n,a,null,!1)?l!==void 0?(a=t.stateNode,l.paired=a,a.paired=l,we.delete(n),Ei(t,e.onShare)):Ei(t,e.onExit):Hn(t.child,!1)),we!==null&&Rs(t)}else if((t.subtreeFlags&33554432)!==0)for(t=t.child;t!==null;)Es(t),t=t.sibling;else we!==null&&Rs(t)}function T0(t){for(t=t.child;t!==null;){if(t.tag===30){var e=t.memoizedProps,n=Wn(e,t.stateNode);e=al(e.default,e.update),t.flags&=-5,e!=="none"&&zi(t,n,e,t.memoizedState=[],!1)}else(t.subtreeFlags&33554432)!==0&&T0(t);t=t.sibling}}function Ts(t){if((t.subtreeFlags&18874368)!==0)for(t=t.child;t!==null;){if(t.tag!==22||t.memoizedState===null){if(t.tag===30&&(t.flags&18874368)!==0){var e=t.stateNode;e.paired!==null&&(e.paired=null,Hn(t.child,!1))}Ts(t)}t=t.sibling}}function $u(t){if(t.tag===30)t.stateNode.paired=null,Hn(t.child,!1),Ts(t);else if((t.subtreeFlags&33554432)!==0)for(t=t.child;t!==null;)$u(t),t=t.sibling;else Ts(t)}function C0(t){for(t=t.child;t!==null;)t.tag===30?Hn(t.child,!1):(t.subtreeFlags&33554432)!==0&&C0(t),t=t.sibling}function Dd(t,e,n,l,a,i,o){for(var u=!1;e!==null;){if(e.tag===5){var c=e.stateNode;if(i!==null&&ye<i.length){var r=i[ye],s=Vs(c);(r.view||s.view)&&(u=!0);var v;if(v=(t.flags&4)===0)if(s.clip)v=!0;else{v=r.rect;var f=s.rect;v=v.y!==f.y||v.x!==f.x||v.height!==f.height||v.width!==f.width}v&&(t.flags|=4),s.abs?s=!r.abs:(r=r.rect,s=s.rect,s=r.height!==s.height||r.width!==s.width),s&&(t.flags|=32)}else t.flags|=32;(t.flags&4)!==0&&oy(c,ye===0?n:n+"_"+ye,a),u&&(t.flags&4)!==0||(Nn===null&&(Nn=[]),Nn.push(c,ye===0?l:l+"_"+ye,e.memoizedProps)),ye++}else(e.tag!==22||e.memoizedState===null)&&(e.tag===30&&o?t.flags|=e.flags&32:Dd(t,e.child,n,l,a,i,o)&&(u=!0));e=e.sibling}return u}function O0(t,e){for(t=t.child;t!==null;){if(t.tag===30){var n=t.memoizedProps,l=t.stateNode,a=Wn(n,l),i=al(n.default,n.update);if(e){l=l.clones;var o=l===null?null:l.map(NT)}else o=t.memoizedState,t.memoizedState=null;l=t;var u=t.child;ye=0,a=Dd(l,u,a,a,i,o,!1),(t.flags&4)!==0&&a&&(e||Ei(t,n.onUpdate))}else(t.subtreeFlags&33554432)!==0&&O0(t,e);t=t.sibling}}var jt=!1,$=!1,Cn=!1,_f=!1,Ih=typeof WeakSet=="function"?WeakSet:Set,Vt=null,On=!1,mo=!1,Ac=!1,Cs=!1;function $E(t,e,n){if(t=t.containerInfo,Ls=Ni,t=fg(t),nd(t)){if("selectionStart"in t)var l={start:t.selectionStart,end:t.selectionEnd};else t:{l=(l=t.ownerDocument)&&l.defaultView||window;var a=l.getSelection&&l.getSelection();if(a&&a.rangeCount!==0){l=a.anchorNode;var i=a.anchorOffset,o=a.focusNode;a=a.focusOffset;try{l.nodeType,o.nodeType}catch{l=null;break t}var u=0,c=-1,r=-1,s=0,v=0,f=t,h=null;e:for(;;){for(var S;f!==l||i!==0&&f.nodeType!==3||(c=u+i),f!==o||a!==0&&f.nodeType!==3||(r=u+a),f.nodeType===3&&(u+=f.nodeValue.length),(S=f.firstChild)!==null;)h=f,f=S;for(;;){if(f===t)break e;if(h===l&&++s===i&&(c=u),h===o&&++v===a&&(r=u),(S=f.nextSibling)!==null)break;f=h,h=f.parentNode}f=S}l=c===-1||r===-1?null:{start:c,end:r}}else l=null}l=l||{start:0,end:0}}else l=null;for(Bs={focusedElem:t,selectionRange:l},Ni=!1,n=(n&335544064)===n,Vt=e,e=n?9270:1024;Vt!==null;){if(t=Vt,n&&(l=t.deletions,l!==null))for(i=0;i<l.length;i++)n&&Es(l[i]);if(t.alternate===null&&(t.flags&2)!==0)n&&Ph(t),Hu(n);else{if(t.tag===22){if(l=t.alternate,t.memoizedState!==null){l!==null&&l.memoizedState===null&&n&&Es(l),Hu(n);continue}else if(l!==null&&l.memoizedState!==null){n&&Ph(t),Hu(n);continue}}l=t.child,(t.subtreeFlags&e)!==0&&l!==null?(l.return=t,Vt=l):(n&&T0(t),Hu(n))}}we=null}function Hu(t){for(;Vt!==null;){var e=Vt,n=t,l=e.alternate,a=e.flags;switch(e.tag){case 0:case 11:case 15:break;case 1:if((a&1024)!==0&&l!==null){n=void 0,a=l.memoizedProps,l=l.memoizedState;var i=e.stateNode;try{var o=ha(e.type,a);n=i.getSnapshotBeforeUpdate(o,l),i.__reactInternalSnapshotBeforeUpdate=n}catch(u){lt(e,e.return,u)}}break;case 3:if((a&1024)!==0){if(l=e.stateNode.containerInfo,n=l.nodeType,n===9)Ys(l);else if(n===1)switch(l.nodeName){case"HEAD":case"HTML":case"BODY":Ys(l);break;default:l.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;case 30:n&&l!==null&&(n=Wn(l.memoizedProps,l.stateNode),a=e.memoizedProps,a=al(a.default,a.update),a!=="none"&&zi(l,n,a,l.memoizedState=[],!0));break;default:if((a&1024)!==0)throw Error(O(163))}if(l=e.sibling,l!==null){l.return=e.return,Vt=l;break}Vt=e.return}}function _0(t,e,n){var l=n.flags;switch(n.tag){case 0:case 11:case 15:_n(t,n),l&4&&ko(5,n);break;case 1:if(_n(t,n),l&4)if(t=n.stateNode,e===null)try{t.componentDidMount()}catch(o){lt(n,n.return,o)}else{var a=ha(n.type,e.memoizedProps);e=e.memoizedState;try{t.componentDidUpdate(a,e,t.__reactInternalSnapshotBeforeUpdate)}catch(o){lt(n,n.return,o)}}l&64&&y0(n),l&512&&An(n,n.return);break;case 3:if(_n(t,n),l&64&&(t=n.updateQueue,t!==null)){if(e=null,n.child!==null)switch(n.child.tag){case 27:case 5:e=n.child.stateNode;break;case 1:e=n.child.stateNode}try{Ng(t,e)}catch(o){lt(n,n.return,o)}}break;case 27:e===null&&l&4&&R0(n);case 26:case 5:_n(t,n),e===null&&l&4&&ys(n),l&512&&An(n,n.return);break;case 12:_n(t,n);break;case 31:_n(t,n),l&4&&D0(t,n);break;case 13:_n(t,n),l&4&&w0(t,n),l&64&&(t=n.memoizedState,t!==null&&(t=t.dehydrated,t!==null&&(n=sT.bind(null,n),QT(t,n))));break;case 22:if(l=n.memoizedState!==null||jt,!l){var i=e!==null&&e.memoizedState!==null||$;e=jt,a=$,jt=l,($=i)&&!a?(l=2,(n.subtreeFlags&8772)!==0&&(l|=1),an(t,n,l)):_n(t,n),jt=e,$=a}break;case 30:_n(t,n),l&512&&An(n,n.return);break;case 7:l&512&&An(n,n.return);default:_n(t,n)}}function Os(t,e){for(t=t.child;t!==null;)A0(t,e),t=t.sibling}function A0(t,e){switch(t.tag){case 5:case 26:try{var n=t.stateNode;if(e){var l=n.style;typeof l.setProperty=="function"?l.setProperty("display","none","important"):l.display="none"}else{var a=t.stateNode,i=t.memoizedProps.style,o=i!=null&&i.hasOwnProperty("display")?i.display:null;a.style.display=o==null||typeof o=="boolean"?"":(""+o).trim()}}catch(c){lt(t,t.return,c)}_s(t,e);break;case 6:try{t.stateNode.nodeValue=e?"":t.memoizedProps,J=!0}catch(c){lt(t,t.return,c)}break;case 18:try{var u=t.stateNode;e?sp(u,!0):sp(t.stateNode,!1)}catch(c){lt(t,t.return,c)}break;case 22:case 23:t.memoizedState===null&&Os(t,e);break;default:Os(t,e)}}function _s(t,e){if(t.subtreeFlags&67108864)for(t=t.child;t!==null;){t:{var n=t,l=e;switch(n.tag){case 4:A0(n,l);break t;case 22:n.memoizedState===null&&_s(n,l);break t;default:_s(n,l)}}t=t.sibling}}function N0(t){var e=t.alternate;e!==null&&(t.alternate=null,N0(e)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(e=t.stateNode,e!==null&&Bc(e)),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}var Et=null,pe=!1;function ln(t,e,n){for(n=n.child;n!==null;)x0(t,e,n),n=n.sibling}function x0(t,e,n){if(Ue&&typeof Ue.onCommitFiberUnmount=="function")try{Ue.onCommitFiberUnmount(Qo,n)}catch{}switch(n.tag){case 26:$||Kt(n,e),ln(t,e,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&!$&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:$||Kt(n,e),To(n);var l=Et,a=pe;Ql(n.type)&&(Et=n.stateNode,pe=!1),ln(t,e,n),py(n.stateNode,n.type,n.memoizedProps),Et=l,pe=a;break;case 5:$||Kt(n,e),To(n);case 6:if(n.tag===6&&To(n),l=Et,a=pe,Et=null,ln(t,e,n),Et=l,pe=a,Et!==null)if(pe)try{(Et.nodeType===9?Et.body:Et.nodeName==="HTML"?Et.ownerDocument.body:Et).removeChild(n.stateNode),J=!0}catch(i){lt(n,e,i)}else try{Et.removeChild(n.stateNode),J=!0}catch(i){lt(n,e,i)}break;case 18:Et!==null&&(pe?(t=Et,fp(t.nodeType===9?t.body:t.nodeName==="HTML"?t.ownerDocument.body:t,n.stateNode),xi(t)):fp(Et,n.stateNode));break;case 4:l=Et,a=pe,Et=n.stateNode.containerInfo,pe=!0,ln(t,e,n),Et=l,pe=a;break;case 0:case 11:case 14:case 15:ql(2,n,e),$||ql(4,n,e),ln(t,e,n);break;case 1:$||(Kt(n,e),l=n.stateNode,typeof l.componentWillUnmount=="function"&&S0(n,e,l)),ln(t,e,n);break;case 21:ln(t,e,n);break;case 22:$=(l=$)||n.memoizedState!==null,ln(t,e,n),$=l;break;case 30:Kt(n,e),ln(t,e,n);break;case 7:$||Kt(n,e),ln(t,e,n);break;default:ln(t,e,n)}}function D0(t,e){if(e.memoizedState===null&&(t=e.alternate,t!==null&&(t=t.memoizedState,t!==null))){t=t.dehydrated;try{xi(t)}catch(n){lt(e,e.return,n)}}}function w0(t,e){if(e.memoizedState===null&&(t=e.alternate,t!==null&&(t=t.memoizedState,t!==null&&(t=t.dehydrated,t!==null))))try{xi(t)}catch(n){lt(e,e.return,n)}}function tT(t){switch(t.tag){case 31:case 13:case 19:var e=t.stateNode;return e===null&&(e=t.stateNode=new Ih),e;case 22:return t=t.stateNode,e=t._retryCache,e===null&&(e=t._retryCache=new Ih),e;default:throw Error(O(435,t.tag))}}function Lu(t,e){var n=tT(t);e.forEach(function(l){if(!n.has(l)){n.add(l);var a=dT.bind(null,t,l);l.then(a,a)}})}function fe(t,e,n){var l=e.deletions;if(l!==null)for(var a=0;a<l.length;a++){var i=l[a],o=t,u=e,c=u;t:for(;c!==null;){switch(c.tag){case 27:if(Ql(c.type)){Et=c.stateNode,pe=!1;break t}break;case 5:Et=c.stateNode,pe=!1;break t;case 3:case 4:Et=c.stateNode.containerInfo,pe=!0;break t}c=c.return}if(Et===null)throw Error(O(160));x0(o,u,i),Et=null,pe=!1,o=i.alternate,o!==null&&(o.return=null),i.return=null}if(e.subtreeFlags&13886)for(e=e.child;e!==null;)M0(e,t,n),e=e.sibling}var on=null;function M0(t,e,n){var l=t.alternate,a=t.flags;switch(t.tag){case 0:case 11:case 14:case 15:if(a&4&&(l=t.updateQueue,l=l!==null?l.events:null,l!==null))for(var i=0;i<l.length;i++){var o=l[i];o.ref.impl=o.nextImpl}fe(e,t,n),se(t),a&4&&(ql(3,t,t.return),ko(3,t),ql(5,t,t.return));break;case 1:fe(e,t,n),se(t),a&512&&($||l===null||Kt(l,l.return)),a&64&&jt&&(t=t.updateQueue,t!==null&&(e=t.callbacks,e!==null&&(n=t.shared.hiddenCallbacks,t.shared.hiddenCallbacks=n===null?e:n.concat(e))));break;case 26:if(i=on,fe(e,t,n),se(t),a&512&&($||l===null||Kt(l,l.return)),a&4)if(a=l!==null?l.memoizedState:null,n=t.memoizedState,l===null)if(n===null)if(t.stateNode===null)if(jt)t.stateNode=iy(t.type,t.memoizedProps,e.containerInfo,t);else{t:{e=t.type,n=t.memoizedProps,a=i.ownerDocument||i;e:switch(e){case"title":l=a.getElementsByTagName("title")[0],(!l||l[Po]||l[Pt]||l.namespaceURI==="http://www.w3.org/2000/svg"||l.hasAttribute("itemprop"))&&(l=a.createElement(e),a.head.insertBefore(l,a.querySelector("head > title"))),kt(l,e,n),l[Pt]=t,Yt(l),e=l;break t;case"link":if(i=Sp("link","href",a).get(e+(n.href||""))){for(o=0;o<i.length;o++)if(l=i[o],l.getAttribute("href")===(n.href==null||n.href===""?null:n.href)&&l.getAttribute("rel")===(n.rel==null?null:n.rel)&&l.getAttribute("title")===(n.title==null?null:n.title)&&l.getAttribute("crossorigin")===(n.crossOrigin==null?null:n.crossOrigin)){i.splice(o,1);break e}}l=a.createElement(e),kt(l,e,n),a.head.appendChild(l);break;case"meta":if(i=Sp("meta","content",a).get(e+(n.content||""))){for(o=0;o<i.length;o++)if(l=i[o],l.getAttribute("content")===(n.content==null?null:""+n.content)&&l.getAttribute("name")===(n.name==null?null:n.name)&&l.getAttribute("property")===(n.property==null?null:n.property)&&l.getAttribute("http-equiv")===(n.httpEquiv==null?null:n.httpEquiv)&&l.getAttribute("charset")===(n.charSet==null?null:n.charSet)){i.splice(o,1);break e}}l=a.createElement(e),kt(l,e,n),a.head.appendChild(l);break;default:throw Error(O(468,e))}l[Pt]=t,Yt(l),e=l}t.stateNode=e}else jt||Xs(i,t.type,t.stateNode);else t.stateNode=yp(i,n,t.memoizedProps);else a!==n?(a===null?(e=l.stateNode,e===null||$||e.parentNode.removeChild(e)):a.count--,n===null?jt||Xs(i,t.type,t.stateNode):yp(i,n,t.memoizedProps)):n===null&&t.stateNode!==null&&Cf(t,t.memoizedProps,l.memoizedProps);break;case 27:fe(e,t,n),se(t),a&512&&($||l===null||Kt(l,l.return)),l!==null&&a&4&&Cf(t,t.memoizedProps,l.memoizedProps);break;case 5:if(i=Cn,Cn=!1,fe(e,t,n),Cn=i,se(t),a&512&&($||l===null||Kt(l,l.return)),t.flags&32){e=t.stateNode;try{Si(e,""),J=!0}catch(s){lt(t,t.return,s)}}a&4&&t.stateNode!=null&&(e=t.memoizedProps,Cf(t,e,l!==null?l.memoizedProps:e)),a&1024&&(_f=!0);break;case 6:if(fe(e,t,n),se(t),a&4){if(t.stateNode===null)throw Error(O(162));e=t.memoizedProps,n=t.stateNode;try{n.nodeValue=e,J=!0}catch(s){lt(t,t.return,s)}}break;case 3:if(J=!1,lc=null,i=on,on=Vo(e.containerInfo),fe(e,t,n),on=i,se(t),a&4&&l!==null&&l.memoizedState.isDehydrated)try{xi(e.containerInfo)}catch(s){lt(t,t.return,s)}_f&&(_f=!1,z0(t)),J=!1;break;case 4:a=Cn,Cn=jt,l=eh(),i=on,on=Vo(t.stateNode.containerInfo),fe(e,t,n),se(t),on=i,J&&mo&&(Ac=!0),J=l,Cn=a;break;case 12:fe(e,t,n),se(t);break;case 31:fe(e,t,n),se(t),a&4&&(e=t.updateQueue,e!==null&&(t.updateQueue=null,Lu(t,e)));break;case 13:fe(e,t,n),se(t),t.child.flags&8192&&t.memoizedState!==null!=(l!==null&&l.memoizedState!==null)&&(Fc=ze()),a&4&&(e=t.updateQueue,e!==null&&(t.updateQueue=null,Lu(t,e)));break;case 22:i=t.memoizedState!==null,o=l!==null&&l.memoizedState!==null;var u=jt,c=$,r=Cn;jt=u||i,Cn=r||i,$=c||o,fe(e,t,n),$=c,Cn=r,jt=u,se(t),a&8192&&(e=t.stateNode,e._visibility=i?e._visibility&-2:e._visibility|1,!i||l===null||o||jt||$||(e=o||$,n=jt,l=$,jt=i||jt,$=e,yl(t,2),jt=n,$=l),!i&&Cn||Os(t,i)),a&4&&(e=t.updateQueue,e!==null&&(n=e.retryQueue,n!==null&&(e.retryQueue=null,Lu(t,n))));break;case 19:fe(e,t,n),se(t),a&4&&(e=t.updateQueue,e!==null&&(t.updateQueue=null,Lu(t,e)));break;case 30:a&512&&($||l===null||Kt(l,l.return)),a=eh(),i=mo,o=(n&335544064)===n,u=t.memoizedProps,mo=o&&al(u.default,u.update)!=="none",fe(e,t,n),se(t),o&&l!==null&&J&&(t.flags|=4),mo=i,J=a;break;case 21:break;case 7:a&512&&($||l===null||Kt(l,l.return)),l&&l.stateNode!==null&&(l.stateNode._fragmentFiber=t);default:fe(e,t,n),se(t)}}function se(t){var e=t.flags;if(e&2){try{for(var n,l=t.return;l!==null;){if(b0(l)){n=l;break}l=l.return}l=null;for(var a=t.return;a!==null;){if(xd(a)){var i=a.stateNode;l===null?l=[i]:l.push(i)}if(Nd(a))break;a=a.return}var o=l;if(n==null)throw Error(O(160));switch(n.tag){case 27:var u=n.stateNode,c=Of(t);Oc(t,c,u,o);break;case 5:var r=n.stateNode;n.flags&32&&(Si(r,""),n.flags&=-33);var s=Of(t);Oc(t,s,r,o);break;case 3:case 4:var v=n.stateNode.containerInfo,f=Of(t);Ss(t,f,v,o);break;default:throw Error(O(161))}}catch(h){lt(t,t.return,h)}t.flags&=-3}e&4096&&(t.flags&=-4097)}function z0(t){if(t.subtreeFlags&1024)for(t=t.child;t!==null;){var e=t;z0(e),e.tag===5&&e.flags&1024&&(e=e.stateNode,Ni=!0,e.reset(),Ni=!1),t=t.sibling}}function Za(t,e){if(e.subtreeFlags&9270)for(e=e.child;e!==null;)U0(e,t),e=e.sibling;else O0(e,!1)}function U0(t,e){var n=t.alternate;if(n===null)bs(t,!1);else switch(t.tag){case 3:if(Cs=On=!1,Jh(),Za(e,t),!On&&!Ac){if(t=Nn,t!==null)for(var l=0;l<t.length;l+=3){n=t[l];var a=t[l+1];uy(n,t[l+2]),n=n.ownerDocument.documentElement,n!==null&&n.animate({opacity:[0,0],pointerEvents:["none","none"]},{duration:0,fill:"forwards",pseudoElement:"::view-transition-group("+a+")"})}t=e.containerInfo,t=t.nodeType===9?t.documentElement:t.ownerDocument.documentElement,t!==null&&t.style.viewTransitionName===""&&(t.style.viewTransitionName="none",t.animate({opacity:[0,0],pointerEvents:["none","none"]},{duration:0,fill:"forwards",pseudoElement:"::view-transition-group(root)"}),t.animate({width:[0,0],height:[0,0]},{duration:0,fill:"forwards",pseudoElement:"::view-transition"})),Cs=!0}Nn=null;break;case 5:Za(e,t);break;case 4:l=On,On=!1,Za(e,t),On&&(Ac=!0),On=l;break;case 22:t.memoizedState===null&&(n.memoizedState!==null?bs(t,!1):Za(e,t));break;case 30:l=On,a=Jh(),On=!1,Za(e,t),On&&(t.flags|=4);var i=t.memoizedProps,o=t.stateNode;e=Wn(i,o),o=Wn(n.memoizedProps,o);var u=al(i.default,i.update);u==="none"?e=!1:(i=n.memoizedState,n.memoizedState=null,n=t.child,ye=0,e=Dd(t,n,e,o,u,i,!0),ye!==(i===null?0:i.length)&&(t.flags|=32)),(t.flags&4)!==0&&e?(Ei(t,t.memoizedProps.onUpdate),Nn=a):a!==null&&(a.push.apply(a,Nn),Nn=a),On=(t.flags&32)!==0?!0:l;break;default:Za(e,t)}}function _n(t,e){if(e.subtreeFlags&8772)for(e=e.child;e!==null;)_0(t,e.alternate,e),e=e.sibling}function yl(t,e){for(t=t.child;t!==null;){var n=t,l=e;switch(n.tag){case 0:case 11:case 14:case 15:ql(4,n,n.return),yl(n,l);break;case 1:Kt(n,n.return);var a=n.stateNode;typeof a.componentWillUnmount=="function"&&S0(n,n.return,a),yl(n,l);break;case 27:(l&2)!==0&&py(n.stateNode,n.type,n.memoizedProps);case 5:Kt(n,n.return),n.tag!==5&&n.tag!==27||To(n),yl(n,l);break;case 6:To(n);break;case 26:Kt(n,n.return),a=n.stateNode,n.memoizedState!==null||a===null||$||a.parentNode.removeChild(a),yl(n,l);break;case 22:n.memoizedState===null&&yl(n,l);break;case 30:Kt(n,n.return),yl(n,l);break;case 7:Kt(n,n.return);default:yl(n,l)}t=t.sibling}}function an(t,e,n){for(n=(e.subtreeFlags&8772)!==0?n:n&-2,e=e.child;e!==null;){var l=e.alternate,a=t,i=e,o=i.flags,u=(n&1)!==0;switch(i.tag){case 0:case 11:case 15:an(a,i,n),ko(4,i);break;case 1:if(an(a,i,n),l=i,a=l.stateNode,typeof a.componentDidMount=="function")try{a.componentDidMount()}catch(s){lt(l,l.return,s)}if(l=i,a=l.updateQueue,a!==null){var c=l.stateNode;try{var r=a.shared.hiddenCallbacks;if(r!==null)for(a.shared.hiddenCallbacks=null,a=0;a<r.length;a++)Ag(r[a],c)}catch(s){lt(l,l.return,s)}}u&&o&64&&y0(i),An(i,i.return);break;case 27:(n&2)!==0&&R0(i);case 5:i.tag!==5&&i.tag!==27||Kh(i),an(a,i,n),u&&l===null&&o&4&&ys(i),An(i,i.return);break;case 6:Kh(i);break;case 26:c=i.stateNode,i.memoizedState!==null||c===null||jt||Xs(Vo(c.ownerDocument),i.type,c),an(a,i,n),u&&l===null&&o&4&&ys(i),An(i,i.return);break;case 12:an(a,i,n);break;case 31:an(a,i,n),u&&o&4&&D0(a,i);break;case 13:an(a,i,n),u&&o&4&&w0(a,i);break;case 22:i.memoizedState===null&&an(a,i,n),An(i,i.return);break;case 30:an(a,i,n),An(i,i.return);break;case 7:An(i,i.return);default:an(a,i,n)}e=e.sibling}}function wd(t,e){var n=null;t!==null&&t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(n=t.memoizedState.cachePool.pool),t=null,e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(t=e.memoizedState.cachePool.pool),t!==n&&(t!=null&&t.refCount++,n!=null&&Io(n))}function Md(t,e){t=null,e.alternate!==null&&(t=e.alternate.memoizedState.cache),e=e.memoizedState.cache,e!==t&&(e.refCount++,t!=null&&Io(t))}function Qe(t,e,n,l){var a=(n&335544064)===n;if(e.subtreeFlags&(a?10262:10256))for(e=e.child;e!==null;)H0(t,e,n,l),e=e.sibling;else a&&C0(e)}function H0(t,e,n,l){var a=(n&335544064)===n;a&&e.alternate===null&&e.return!==null&&e.return.alternate!==null&&$u(e);var i=e.flags;switch(e.tag){case 0:case 11:case 15:Qe(t,e,n,l),i&2048&&ko(9,e);break;case 1:Qe(t,e,n,l);break;case 3:Qe(t,e,n,l),a&&Cs&&(t=t.containerInfo,t=t.nodeType===9?t.body:t.nodeName==="HTML"?t.ownerDocument.body:t,t.style.viewTransitionName==="root"&&(t.style.viewTransitionName=""),t=t.ownerDocument.documentElement,t!==null&&t.style.viewTransitionName==="none"&&(t.style.viewTransitionName="")),i&2048&&(i=null,e.alternate!==null&&(i=e.alternate.memoizedState.cache),e=e.memoizedState.cache,e!==i&&(e.refCount++,i!=null&&Io(i)));break;case 12:if(i&2048){Qe(t,e,n,l),i=e.stateNode;try{var o=e.memoizedProps,u=o.id,c=o.onPostCommit;typeof c=="function"&&c(u,e.alternate===null?"mount":"update",i.passiveEffectDuration,-0)}catch(r){lt(e,e.return,r)}}else Qe(t,e,n,l);break;case 31:Qe(t,e,n,l);break;case 13:Qe(t,e,n,l);break;case 23:break;case 22:o=e.stateNode,u=e.alternate,e.memoizedState!==null?(a&&u!==null&&u.memoizedState===null&&$u(u),o._visibility&2?Qe(t,e,n,l):Co(t,e)):(a&&u!==null&&u.memoizedState!==null&&$u(e),o._visibility&2?Qe(t,e,n,l):(o._visibility|=2,Pa(t,e,n,l,(e.subtreeFlags&10256)!==0||!1))),i&2048&&wd(u,e);break;case 24:Qe(t,e,n,l),i&2048&&Md(e.alternate,e);break;case 30:a&&(i=e.alternate,i!==null&&(Hn(i.child,!0),Hn(e.child,!0))),Qe(t,e,n,l);break;default:Qe(t,e,n,l)}}function Pa(t,e,n,l,a){for(a=a&&((e.subtreeFlags&10256)!==0||!1),e=e.child;e!==null;){var i=t,o=e,u=n,c=l,r=o.flags;switch(o.tag){case 0:case 11:case 15:Pa(i,o,u,c,a),ko(8,o);break;case 23:break;case 22:var s=o.stateNode;o.memoizedState!==null?s._visibility&2?Pa(i,o,u,c,a):Co(i,o):(s._visibility|=2,Pa(i,o,u,c,a)),a&&r&2048&&wd(o.alternate,o);break;case 24:Pa(i,o,u,c,a),a&&r&2048&&Md(o.alternate,o);break;default:Pa(i,o,u,c,a)}e=e.sibling}}function Co(t,e){if(e.subtreeFlags&10256)for(e=e.child;e!==null;){var n=t,l=e,a=l.flags;switch(l.tag){case 22:Co(n,l),a&2048&&wd(l.alternate,l);break;case 24:Co(n,l),a&2048&&Md(l.alternate,l);break;default:Co(n,l)}e=e.sibling}}var ea=8192;function Wl(t,e,n){if(t.subtreeFlags&ea)for(t=t.child;t!==null;)L0(t,e,n),t=t.sibling}function L0(t,e,n){switch(t.tag){case 26:Wl(t,e,n),t.flags&ea&&(t.memoizedState!==null?aC(n,on,t.memoizedState,t.memoizedProps):(t=t.stateNode,(e&335544128)===e&&Rp(n,t)));break;case 5:Wl(t,e,n),t.flags&ea&&(t=t.stateNode,(e&335544128)===e&&Rp(n,t));break;case 3:case 4:var l=on;on=Vo(t.stateNode.containerInfo),Wl(t,e,n),on=l;break;case 22:t.memoizedState===null&&(l=t.alternate,l!==null&&l.memoizedState!==null?(l=ea,ea=16777216,Wl(t,e,n),ea=l):Wl(t,e,n));break;case 30:if((t.flags&ea)!==0&&(l=t.memoizedProps.name,l!=null&&l!=="auto")){var a=t.stateNode;a.paired=null,we===null&&(we=new Map),we.set(l,a)}Wl(t,e,n);break;default:Wl(t,e,n)}}function B0(t){var e=t.alternate;if(e!==null&&(t=e.child,t!==null)){e.child=null;do e=t.sibling,t.sibling=null,t=e;while(t!==null)}}function io(t){var e=t.deletions;if((t.flags&16)!==0){if(e!==null)for(var n=0;n<e.length;n++){var l=e[n];Vt=l,V0(l,t)}B0(t)}if(t.subtreeFlags&10256)for(t=t.child;t!==null;)j0(t),t=t.sibling}function j0(t){switch(t.tag){case 0:case 11:case 15:io(t),t.flags&2048&&ql(9,t,t.return);break;case 3:io(t);break;case 12:io(t);break;case 22:var e=t.stateNode;t.memoizedState!==null&&e._visibility&2&&(t.return===null||t.return.tag!==13)?(e._visibility&=-3,tc(t)):io(t);break;default:io(t)}}function tc(t){var e=t.deletions;if((t.flags&16)!==0){if(e!==null)for(var n=0;n<e.length;n++){var l=e[n];Vt=l,V0(l,t)}B0(t)}for(t=t.child;t!==null;){switch(e=t,e.tag){case 0:case 11:case 15:ql(8,e,e.return),tc(e);break;case 22:n=e.stateNode,n._visibility&2&&(n._visibility&=-3,tc(e));break;default:tc(e)}t=t.sibling}}function V0(t,e){for(;Vt!==null;){var n=Vt;switch(n.tag){case 0:case 11:case 15:ql(8,n,e);break;case 23:case 22:if(n.memoizedState!==null&&n.memoizedState.cachePool!==null){var l=n.memoizedState.cachePool.pool;l!=null&&l.refCount++}break;case 24:Io(n.memoizedState.cache)}if(l=n.child,l!==null)l.return=n,Vt=l;else t:for(n=t;Vt!==null;){l=Vt;var a=l.sibling,i=l.return;if(N0(l),l===n){Vt=null;break t}if(a!==null){a.return=i,Vt=a;break t}Vt=i}}}var eT={getCacheForType:function(t){var e=Jt(wt),n=e.data.get(t);return n===void 0&&(n=t(),e.data.set(t,n)),n},cacheSignal:function(){return Jt(wt).controller.signal}},nT=typeof WeakMap=="function"?WeakMap:Map,k=0,rt=null,X=null,Z=0,et=0,Ne=null,Ol=!1,Ui=!1,zd=!1,nl=0,Nt=0,Gl=0,ca=0,Nc=0,Me=0,Ri=0,Oo=null,ge=null,As=!1,Fc=0,Y0=0,xc=1/0,Dc=null,Ul=null,Ot=0,cn=null,pa=null,Un=0,Ns=0,xs=null,q0=null,vi=null,hi=null,pi=null,_o=0,ec=null;function Le(){return(k&2)!==0&&Z!==0?Z&-Z:M.T!==null?Hd():Zp()}function G0(){if(Me===0)if((Z&536870912)===0||Y){var t=Tu;Tu<<=1,(Tu&3932160)===0&&(Tu=262144),Me=t}else Me=536870912;return t=Wt.current,t!==null&&(t.flags|=32),Me}function Ei(t,e){if(e!=null){var n=t.stateNode,l=n.ref;l===null&&(l=n.ref=ry(Wn(t.memoizedProps,n))),hi===null&&(hi=[]),hi.push(e.bind(null,l))}}function be(t,e,n){(t===rt&&(et===2||et===9)||t.cancelPendingCommit!==null)&&(Ti(t,0),_l(t,Z,Me,!1)),Ko(t,n),((k&2)===0||t!==rt)&&(t===rt&&((k&2)===0&&(ca|=n),Nt===4&&_l(t,Z,Me,!1)),Bn(t))}function X0(t,e,n){if((k&6)!==0)throw Error(O(327));var l=!n&&(e&127)===0&&(e&t.expiredLanes)===0||Zo(t,e),a=l?iT(t,e):Af(t,e,!0),i=l;do{if(a===0){Ui&&!l&&_l(t,e,0,!1);break}else{if(n=t.current.alternate,i&&!lT(n)){a=Af(t,e,!1),i=!1;continue}if(a===2){if(i=e,t.errorRecoveryDisabledLanes&i)var o=0;else o=t.pendingLanes&-536870913,o=o!==0?o:o&536870912?536870912:0;if(o!==0){e=o;t:{var u=t;a=Oo;var c=u.current.memoizedState.isDehydrated;if(c&&(Ti(u,o).flags|=256),o=Af(u,o,!1),o!==2&&o!==6){if(zd&&!c){u.errorRecoveryDisabledLanes|=i,ca|=i,a=4;break t}i=ge,ge=a,i!==null&&(ge===null?ge=i:ge.push.apply(ge,i))}a=o}if(i=!1,a!==2)continue}}if(a===1){Ti(t,0),_l(t,e,0,!0);break}t:{switch(l=t,i=a,i){case 0:case 1:throw Error(O(345));case 4:if((e&4194048)!==e&&(e&62914560)!==e)break;case 6:_l(l,e,Me,!Ol);break t;case 2:ge=null;break;case 3:case 5:break;default:throw Error(O(329))}if((e&62914560)===e&&(a=Fc+300-ze(),10<a)){if(_l(l,e,Me,!Ol),Lc(l,0,!0)!==0)break t;Un=e,l.timeoutHandle=Bd(Fh.bind(null,l,n,ge,Dc,As,e,Me,ca,Ri,Ol,i,"Throttled",-0,0),a);break t}Fh(l,n,ge,Dc,As,e,Me,ca,Ri,Ol,i,null,-0,0)}}break}while(!0);Bn(t)}function Fh(t,e,n,l,a,i,o,u,c,r,s,v,f,h){t.timeoutHandle=-1;var S=e.subtreeFlags,b=(i&335544064)===i;if(v=null,(b||S&8192||(S&16785408)===16785408)&&(v={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:Dn},we=null,L0(e,i,v),b&&(S=v,b=t.containerInfo,b=(b.nodeType===9?b:b.ownerDocument).__reactViewTransition,b!=null&&(S.count++,S.waitingForViewTransition=!0,S=Yo.bind(S),b.finished.then(S,S))),S=(i&62914560)===i?Fc-ze():(i&4194048)===i?Y0-ze():0,S=iC(v,S),S!==null)){Un=i,t.cancelPendingCommit=S(Wh.bind(null,t,e,i,n,l,a,o,u,c,r,s,v,null,f,h)),_l(t,i,o,!r);return}Wh(t,e,i,n,l,a,o,u,c,r,s,v)}function lT(t){for(var e=t;;){var n=e.tag;if((n===0||n===11||n===15)&&e.flags&16384&&(n=e.updateQueue,n!==null&&(n=n.stores,n!==null)))for(var l=0;l<n.length;l++){var a=n[l],i=a.getSnapshot;a=a.value;try{if(!Be(i(),a))return!1}catch{return!1}}if(n=e.child,e.subtreeFlags&16384&&n!==null)n.return=e,e=n;else{if(e===t)break;for(;e.sibling===null;){if(e.return===null||e.return===t)return!0;e=e.return}e.sibling.return=e.return,e=e.sibling}}return!0}function _l(t,e,n,l){e=Yp(t,e),e&=~Nc,e&=~ca,t.suspendedLanes|=e,t.pingedLanes&=~e,l&&(t.warmLanes|=e),l=t.expirationTimes;for(var a=e;0<a;){var i=31-He(a),o=1<<i;l[i]=-1,a&=~o}n!==0&&Gp(t,n,e)}function kc(){return(k&6)===0?(Wo(0,!1),!1):!0}function Ud(){if(X!==null){if(et===0)var t=X.return;else t=X,Jn=Ra=null,gd(t),si=null,zo=0,t=X;for(;t!==null;)g0(t.alternate,t),t=t.return;X=null}}function Ti(t,e){var n=t.timeoutHandle;return n!==-1&&(t.timeoutHandle=-1,OT(n)),n=t.cancelPendingCommit,n!==null&&(t.cancelPendingCommit=null,n()),Un=0,Ud(),rt=t,X=n=In(t.current,null),Z=e,et=0,Ne=null,Ol=!1,Ui=Zo(t,e),zd=!1,Ri=Me=Nc=ca=Gl=Nt=0,ge=Oo=null,As=!1,nl=Yp(t,e),qc(),n}function Q0(t,e){L=null,M.H=Ec,e===Mi||e===Qc?(e=Th(),et=3):e===rd?(e=Th(),et=4):et=e===Od?8:e!==null&&typeof e=="object"&&typeof e.then=="function"?6:1,Ne=e,X===null&&(Nt=1,Tc(t,Ie(e,t.current)))}function Z0(){var t=Wt.current;return t===null?!0:(Z&4194048)===Z?ie===null:(Z&62914560)===Z||(Z&536870912)!==0?t===ie:!1}function K0(){var t=M.H;return M.H=Ec,t===null?Ec:t}function P0(){var t=M.A;return M.A=eT,t}function wc(){Nt=4,Ol||(Z&4194048)!==Z&&Wt.current!==null||(Ui=!0),(Gl&134217727)===0&&(ca&134217727)===0||rt===null||_l(rt,Z,Me,!1)}function Af(t,e,n){var l=k;k|=2;var a=K0(),i=P0();(rt!==t||Z!==e)&&(Dc=null,Ti(t,e)),e=!1;var o=Nt;t:do try{if(et!==0&&X!==null){var u=X,c=Ne;switch(et){case 8:Ud(),o=6;break t;case 3:case 2:case 9:case 6:Wt.current===null&&(e=!0);var r=et;if(et=0,Ne=null,oi(t,u,c,r),n&&Ui){o=0;break t}break;default:r=et,et=0,Ne=null,oi(t,u,c,r)}}aT(),o=Nt;break}catch(s){Q0(t,s)}while(!0);return e&&t.shellSuspendCounter++,Jn=Ra=null,k=l,M.H=a,M.A=i,X===null&&(rt=null,Z=0,qc()),o}function aT(){for(;X!==null;)J0(X)}function iT(t,e){var n=k;k|=2;var l=K0(),a=P0();rt!==t||Z!==e?(Dc=null,xc=ze()+500,Ti(t,e)):Ui=Zo(t,e);t:do try{if(et!==0&&X!==null){e=X;var i=Ne;e:switch(et){case 1:et=0,Ne=null,oi(t,e,i,1);break;case 2:case 9:if(Eh(i)){et=0,Ne=null,kh(e);break}e=function(){et!==2&&et!==9||rt!==t||(et=7),Bn(t)},i.then(e,e);break t;case 3:et=7;break t;case 4:et=5;break t;case 7:Eh(i)?(et=0,Ne=null,kh(e)):(et=0,Ne=null,oi(t,e,i,7));break;case 5:var o=null;switch(X.tag){case 26:o=X.memoizedState;case 5:case 27:var u=X;if(o?Sy(o):u.stateNode.complete){et=0,Ne=null;var c=u.sibling;if(c!==null)X=c;else{var r=u.return;r!==null?(X=r,Wc(r)):X=null}break e}}et=0,Ne=null,oi(t,e,i,5);break;case 6:et=0,Ne=null,oi(t,e,i,6);break;case 8:Ud(),Nt=6;break t;default:throw Error(O(462))}}oT();break}catch(s){Q0(t,s)}while(!0);return Jn=Ra=null,M.H=l,M.A=a,k=n,X!==null?0:(rt=null,Z=0,qc(),Nt)}function oT(){for(;X!==null&&!TR();)J0(X)}function J0(t){var e=p0(t.alternate,t,nl);t.memoizedProps=t.pendingProps,e===null?Wc(t):X=e}function kh(t){var e=t,n=e.alternate;switch(e.tag){case 15:case 0:e=Vh(n,e,e.pendingProps,e.type,void 0,Z);break;case 11:e=Vh(n,e,e.pendingProps,e.type.render,e.ref,Z);break;case 5:gd(e);var l=e;l===qt&&(Y?(hc(l),l.tag===5&&l.stateNode!=null&&(ht=l.stateNode)):(hc(l),Y=!0));default:g0(n,e),e=X=yg(e,nl),e=p0(n,e,nl)}t.memoizedProps=t.pendingProps,e===null?Wc(t):X=e}function oi(t,e,n,l){Jn=Ra=null,gd(e),si=null,zo=0;var a=e.return;try{if(PE(t,a,e,n,Z)){Nt=1,Tc(t,Ie(n,t.current)),X=null;return}}catch(i){if(a!==null)throw X=a,i;Nt=1,Tc(t,Ie(n,t.current)),X=null;return}e.flags&32768?(Y||l===1?t=!0:Ui||(Z&536870912)!==0?t=!1:(Ol=t=!0,(l===2||l===9||l===3||l===6)&&(l=Wt.current,l!==null&&l.tag===13&&(l.flags|=16384))),I0(e,t)):Wc(e)}function Wc(t){var e=t;do{if((e.flags&32768)!==0){I0(e,Ol);return}t=e.return;var n=kE(e.alternate,e,nl);if(n!==null){X=n;return}if(e=e.sibling,e!==null){X=e;return}X=e=t}while(e!==null);Nt===0&&(Nt=5)}function I0(t,e){do{var n=WE(t.alternate,t);if(n!==null){n.flags&=32767,X=n;return}if(n=t.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!e&&(t=t.sibling,t!==null)){X=t;return}X=t=n}while(t!==null);Nt=6,X=null}function Wh(t,e,n,l,a,i,o,u,c,r,s,v){t.cancelPendingCommit=null;do $c();while(Ot!==0);if((k&6)!==0)throw Error(O(327));if(e!==null){if(e===t.current)throw Error(O(177));t===rt&&(X=rt=null,Z=0),pa=e,cn=t,Un=n,xs=a,q0=l,uT(t,e,n,o,u,c,v)}}function uT(t,e,n,l,a,i,o){var u=e.lanes|e.childLanes;if(Ns=u,u|=ld,zR(t,n,u,l,a,i),hi=null,(n&335544064)===n?(pi=HE(t),l=10262):(pi=null,l=10256),(e.subtreeFlags&l)!==0||(e.flags&l)!==0?(t.callbackNode=null,t.callbackPriority=0,mT(fc,function(){return zs(),null})):(t.callbackNode=null,t.callbackPriority=0),_c=!1,l=(e.flags&13878)!==0,(e.subtreeFlags&13878)!==0||l){l=M.T,M.T=null,a=W.p,W.p=2,i=k,k|=4;try{$E(t,e,n)}finally{k=i,W.p=a,M.T=l}}Ot=1,_c?vi=wT(o,t.containerInfo,pi,Ds,ws,rT,Ms,zs,cT,null,null):(Ds(),ws(),Ms())}function cT(t){if(Ot!==0){var e=cn.onRecoverableError;e(t,{componentStack:null})}}function rT(){Ot===3&&(Ot=0,U0(pa,cn),Ot=4)}function Ds(){if(Ot===1){Ot=0;var t=cn,e=pa,n=Un,l=(e.flags&13878)!==0;if((e.subtreeFlags&13878)!==0||l){l=M.T,M.T=null;var a=W.p;W.p=2;var i=k;k|=4;try{mo=Ac=!1,M0(e,t,n),n=Bs;var o=fg(t.containerInfo),u=n.focusedElem,c=n.selectionRange;if(o!==u&&u&&u.ownerDocument&&rg(u.ownerDocument.documentElement,u)){if(c!==null&&nd(u)){var r=c.start,s=c.end;if(s===void 0&&(s=r),"selectionStart"in u)u.selectionStart=r,u.selectionEnd=Math.min(s,u.value.length);else{var v=u.ownerDocument||document,f=v&&v.defaultView||window;if(f.getSelection){var h=f.getSelection(),S=u.textContent.length,b=Math.min(c.start,S),R=c.end===void 0?b:Math.min(c.end,S);!h.extend&&b>R&&(o=R,R=b,b=o);var m=vh(u,b),d=vh(u,R);if(m&&d&&(h.rangeCount!==1||h.anchorNode!==m.node||h.anchorOffset!==m.offset||h.focusNode!==d.node||h.focusOffset!==d.offset)){var p=v.createRange();p.setStart(m.node,m.offset),h.removeAllRanges(),b>R?(h.addRange(p),h.extend(d.node,d.offset)):(p.setEnd(d.node,d.offset),h.addRange(p))}}}}for(v=[],h=u;h=h.parentNode;)h.nodeType===1&&v.push({element:h,left:h.scrollLeft,top:h.scrollTop});for(typeof u.focus=="function"&&u.focus(),u=0;u<v.length;u++){var g=v[u];g.element.scrollLeft=g.left,g.element.scrollTop=g.top}}Ni=!!Ls,Bs=Ls=null}finally{k=i,W.p=a,M.T=l}}t.current=e,Ot=2}}function ws(){if(Ot===2){Ot=0;var t=cn,e=pa,n=(e.flags&8772)!==0;if((e.subtreeFlags&8772)!==0||n){n=M.T,M.T=null;var l=W.p;W.p=2;var a=k;k|=4;try{_0(t,e.alternate,e)}finally{k=a,W.p=l,M.T=n}}Ot=3}}function Ms(){if(Ot===4||Ot===3){Ot=0;var t=vi;vi=null,CR();var e=cn,n=pa,l=Un,a=q0,i=(l&335544064)===l?10262:10256;if((n.subtreeFlags&i)!==0||(n.flags&i)!==0?Ot=5:(Ot=0,pa=cn=null,F0(e,e.pendingLanes)),i=e.pendingLanes,i===0&&(Ul=null),Fs(l),n=n.stateNode,Ue&&typeof Ue.onCommitFiberRoot=="function")try{Ue.onCommitFiberRoot(Qo,n,void 0,(n.current.flags&128)===128)}catch{}if(a!==null){n=M.T,i=W.p,W.p=2,M.T=null;try{for(var o=e.onRecoverableError,u=0;u<a.length;u++){var c=a[u];o(c.value,{componentStack:c.stack})}}finally{M.T=n,W.p=i}}if(a=hi,o=pi,pi=null,a!==null&&(hi=null,o===null&&(o=[]),t!==null))for(c=0;c<a.length;c++)n=(0,a[c])(o),n!==void 0&&t.finished.finally(n);(Un&3)!==0&&$c(),Bn(e),i=e.pendingLanes,(l&261930)!==0&&(i&42)!==0?e===ec?_o++:(_o=0,ec=e):(_o=0,ec=null),Wo(0,!1)}}function F0(t,e){(t.pooledCacheLanes&=e)===0&&(e=t.pooledCache,e!=null&&(t.pooledCache=null,Io(e)))}function $c(){return vi!==null&&(vi.skipTransition(),vi=null),Ds(),ws(),Ms(),zs()}function zs(){if(Ot!==5)return!1;var t=cn,e=Ns;Ns=0;var n=Fs(Un),l=M.T,a=W.p;try{W.p=32>n?32:n,M.T=null,n=xs,xs=null;var i=cn,o=Un;if(Ot=0,pa=cn=null,Un=0,(k&6)!==0)throw Error(O(331));var u=k;if(k|=4,j0(i.current),H0(i,i.current,o,n),k=u,Wo(0,!1),Ue&&typeof Ue.onPostCommitFiberRoot=="function")try{Ue.onPostCommitFiberRoot(Qo,i)}catch{}return!0}finally{W.p=a,M.T=l,F0(t,e)}}function $h(t,e,n){e=Ie(n,e),e=ds(t.stateNode,e,2),t=wl(t,e,2),t!==null&&(Ko(t,2),Bn(t))}function lt(t,e,n){if(t.tag===3)$h(t,t,n);else for(;e!==null;){if(e.tag===3){$h(e,t,n);break}else if(e.tag===1){var l=e.stateNode;if(typeof e.type.getDerivedStateFromError=="function"||typeof l.componentDidCatch=="function"&&(Ul===null||!Ul.has(l))){t=Ie(n,t),n=s0(2),l=wl(e,n,2),l!==null&&(d0(n,l,e,t),Ko(l,2),Bn(l));break}}e=e.return}}function Nf(t,e,n){var l=t.pingCache;if(l===null){l=t.pingCache=new nT;var a=new Set;l.set(e,a)}else a=l.get(e),a===void 0&&(a=new Set,l.set(e,a));a.has(n)||(zd=!0,a.add(n),t=fT.bind(null,t,e,n),e.then(t,t))}function fT(t,e,n){var l=t.pingCache;l!==null&&l.delete(e),t.pingedLanes|=t.suspendedLanes&n,t.warmLanes&=~n,rt===t&&(Z&n)===n&&((Nt===4||Nt===3&&(Z&62914560)===Z&&300>ze()-Fc)&&(k&2)===0?Ti(t,0):Nc|=n,Ri===Z&&(Ri=0)),Bn(t)}function k0(t,e){e===0&&(e=qp()),t=ba(t,e),t!==null&&(Ko(t,e),Bn(t))}function sT(t){var e=t.memoizedState,n=0;e!==null&&(n=e.retryLane),k0(t,n)}function dT(t,e){var n=0;switch(t.tag){case 31:case 13:var l=t.stateNode,a=t.memoizedState;a!==null&&(n=a.retryLane);break;case 19:l=t.stateNode;break;case 22:l=t.stateNode._retryCache;break;default:throw Error(O(314))}l!==null&&l.delete(e),k0(t,n)}function mT(t,e){return Js(t,e)}var Ci=null,Ja=null,Us=!1,Mc=!1,xf=!1,Al=0;function Bn(t){t!==Ja&&t.next===null&&(Ja===null?Ci=Ja=t:Ja=Ja.next=t),Mc=!0,Us||(Us=!0,hT())}function Wo(t,e){if(!xf&&Mc){xf=!0;do for(var n=!1,l=Ci;l!==null;){if(!e)if(t!==0){var a=l.pendingLanes;if(a===0)var i=0;else{var o=l.suspendedLanes,u=l.pingedLanes;i=(1<<31-He(42|t)+1)-1,i&=a&~(o&~u),i=i&201326741?i&201326741|1:i?i|2:0}i!==0&&(n=!0,tp(l,i))}else i=Z,i=Lc(l,l===rt?i:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),(i&3)===0||Zo(l,i)||(n=!0,tp(l,i));l=l.next}while(n);xf=!1}}function vT(){W0()}function W0(){Mc=Us=!1;var t=0;Al!==0&&CT()&&(t=Al);for(var e=ze(),n=null,l=Ci;l!==null;){var a=l.next,i=$0(l,e);i===0?(l.next=null,n===null?Ci=a:n.next=a,a===null&&(Ja=n)):(n=l,(t!==0||(i&3)!==0)&&(Mc=!0)),l=a}Ot!==0&&Ot!==5||Wo(t,!1),Al!==0&&(Al=0)}function $0(t,e){for(var n=t.suspendedLanes,l=t.pingedLanes,a=t.expirationTimes,i=t.pendingLanes&-62914561;0<i;){var o=31-He(i),u=1<<o,c=a[o];c===-1?((u&n)===0||(u&l)!==0)&&(a[o]=MR(u,e)):c<=e&&(t.expiredLanes|=u),i&=~u}if(e=rt,n=Z,n=Lc(t,t===e?n:0,t.cancelPendingCommit!==null||t.timeoutHandle!==-1),l=t.callbackNode,n===0||t===e&&(et===2||et===9)||t.cancelPendingCommit!==null)return l!==null&&l!==null&&uf(l),t.callbackNode=null,t.callbackPriority=0;if((n&3)===0||Zo(t,n)){if(e=n&-n,e===t.callbackPriority)return e;switch(l!==null&&uf(l),Fs(n)){case 2:case 8:n=jp;break;case 32:n=fc;break;case 268435456:n=Vp;break;default:n=fc}return l=ty.bind(null,t),n=Js(n,l),t.callbackPriority=e,t.callbackNode=n,e}return l!==null&&l!==null&&uf(l),t.callbackPriority=2,t.callbackNode=null,2}function ty(t,e){if(Ot!==0&&Ot!==5)return t.callbackNode=null,t.callbackPriority=0,null;var n=t.callbackNode;if($c()&&t.callbackNode!==n)return null;var l=Z;return l=Lc(t,t===rt?l:0,t.cancelPendingCommit!==null||t.timeoutHandle!==-1),l===0?null:(X0(t,l,e),$0(t,ze()),t.callbackNode!=null&&t.callbackNode===n?ty.bind(null,t):null)}function tp(t,e){if($c())return null;X0(t,e,!0)}function hT(){_T(function(){(k&6)!==0?Js(Bp,vT):W0()})}function Hd(){if(Al===0){var t=da;t===0&&(t=Eu,Eu<<=1,(Eu&261888)===0&&(Eu=256)),Al=t}return Al}function ep(t){return t==null||typeof t=="symbol"||typeof t=="boolean"?null:typeof t=="function"?t:Xu(t)}function pT(t,e,n,l,a){if(e==="submit"&&n&&n.stateNode===a){var i=ep((a[Ee]||null).action),o=l.submitter;o&&(e=(e=o[Ee]||null)?ep(e.formAction):o.getAttribute("formAction"),e!==null&&(i=e,o=null));var u=new jc("action","action",null,l,a);t.push({event:u,listeners:[{instance:null,listener:function(){if(l.defaultPrevented){if(Al!==0){var c=new FormData(a,o);fs(n,{pending:!0,data:c,method:a.method,action:i},null,c)}}else typeof i=="function"&&(u.preventDefault(),c=new FormData(a,o),fs(n,{pending:!0,data:c,method:a.method,action:i},i,c))},currentTarget:a}]})}}for(Bu=0;Bu<$f.length;Bu++)ju=$f[Bu],np=ju.toLowerCase(),lp=ju[0].toUpperCase()+ju.slice(1),rn(np,"on"+lp);var ju,np,lp,Bu;rn(dg,"onAnimationEnd");rn(mg,"onAnimationIteration");rn(vg,"onAnimationStart");rn("dblclick","onDoubleClick");rn("focusin","onFocus");rn("focusout","onBlur");rn(AE,"onTransitionRun");rn(NE,"onTransitionStart");rn(xE,"onTransitionCancel");rn(hg,"onTransitionEnd");yi("onMouseEnter",["mouseout","mouseover"]);yi("onMouseLeave",["mouseout","mouseover"]);yi("onPointerEnter",["pointerout","pointerover"]);yi("onPointerLeave",["pointerout","pointerover"]);ya("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));ya("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));ya("onBeforeInput",["compositionend","keypress","textInput","paste"]);ya("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));ya("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));ya("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Lo="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(" "),gT=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(Lo));function ey(t,e){e=(e&4)!==0;for(var n=0;n<t.length;n++){var l=t[n],a=l.event;l=l.listeners;t:{var i=void 0;if(e)for(var o=l.length-1;0<=o;o--){var u=l[o],c=u.instance,r=u.currentTarget;if(u=u.listener,c!==i&&a.isPropagationStopped())break t;i=u,a.currentTarget=r;try{i(a)}catch(s){dc(s)}a.currentTarget=null,i=c}else for(o=0;o<l.length;o++){if(u=l[o],c=u.instance,r=u.currentTarget,u=u.listener,c!==i&&a.isPropagationStopped())break t;i=u,a.currentTarget=r;try{i(a)}catch(s){dc(s)}a.currentTarget=null,i=c}}}}function G(t,e){var n=e[kv];n===void 0&&(n=e[kv]=new Set);var l=t+"__bubble";n.has(l)||(ny(e,t,2,!1),n.add(l))}function Df(t,e,n){var l=0;e&&(l|=4),ny(n,t,l,e)}var Vu="_reactListening"+Math.random().toString(36).slice(2);function Ld(t){if(!t[Vu]){t[Vu]=!0,Pp.forEach(function(n){n!=="selectionchange"&&(gT.has(n)||Df(n,!1,t),Df(n,!0,t))});var e=t.nodeType===9?t:t.ownerDocument;e===null||e[Vu]||(e[Vu]=!0,Df("selectionchange",!1,e))}}function ny(t,e,n,l){switch(_y(e)){case 2:var a=rC;break;case 8:a=fC;break;default:a=Xd}n=a.bind(null,e,n,t),a=void 0,!If||e!=="touchstart"&&e!=="touchmove"&&e!=="wheel"||(a=!0),l?a!==void 0?t.addEventListener(e,n,{capture:!0,passive:a}):t.addEventListener(e,n,!0):a!==void 0?t.addEventListener(e,n,{passive:a}):t.addEventListener(e,n,!1)}function wf(t,e,n,l,a){var i=l;if((e&1)===0&&(e&2)===0&&l!==null)t:for(;;){if(l===null)return;var o=l.tag;if(o===3||o===4){var u=l.stateNode.containerInfo;if(u===a)break;if(o===4)for(o=l.return;o!==null;){var c=o.tag;if((c===3||c===4)&&o.stateNode.containerInfo===a)return;o=o.return}for(;u!==null;){if(o=na(u),o===null)return;if(c=o.tag,c===5||c===6||c===26||c===27){l=i=o;continue t}u=u.parentNode}}l=l.return}eg(function(){var r=i,s=Ws(n),v=[];t:{var f=pg.get(t);if(f!==void 0){var h=jc,S=t;switch(t){case"keypress":if(Zu(n)===0)break t;case"keydown":case"keyup":h=lE;break;case"focusin":S="focus",h=mf;break;case"focusout":S="blur",h=mf;break;case"beforeblur":case"afterblur":h=mf;break;case"click":if(n.button===2)break t;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":h=ih;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":h=ZR;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":h=cE;break;case dg:case mg:case vg:h=JR;break;case hg:h=fE;break;case"scroll":case"scrollend":h=XR;break;case"wheel":h=dE;break;case"copy":case"cut":case"paste":h=FR;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":h=uh;break;case"submit":h=oE;break;case"toggle":case"beforetoggle":h=vE}var b=(e&4)!==0,R=!b&&(t==="scroll"||t==="scrollend"),m=b?f!==null?f+"Capture":null:f;b=[];for(var d=r,p;d!==null;){var g=d;if(p=g.stateNode,g=g.tag,g!==5&&g!==26&&g!==27||p===null||m===null||(g=No(d,m),g!=null&&b.push(Bo(d,g,p))),R)break;d=d.return}0<b.length&&(f=new h(f,S,null,n,s),v.push({event:f,listeners:b}))}}if((e&7)===0){t:{if(h=t==="mouseover"||t==="pointerover",f=t==="mouseout"||t==="pointerout",h&&n!==Jf&&(S=n.relatedTarget||n.fromElement)&&(na(S)||S[Di]))break t;(f||h)&&(S=s.window===s?s:(h=s.ownerDocument)?h.defaultView||h.parentWindow:window,f?(h=n.relatedTarget||n.toElement,f=r,h=h?na(h):null,h!==null&&(R=Xo(h),b=h.tag,h!==R||b!==5&&b!==27&&b!==6)&&(h=null)):(f=null,h=r),f!==h&&(b=ih,g="onMouseLeave",m="onMouseEnter",d="mouse",(t==="pointerout"||t==="pointerover")&&(b=uh,g="onPointerLeave",m="onPointerEnter",d="pointer"),R=f==null?S:fo(f),p=h==null?S:fo(h),S=new b(g,d+"leave",f,n,s),S.target=R,S.relatedTarget=p,g=null,na(s)===r&&(b=new b(m,d+"enter",h,n,s),b.target=p,b.relatedTarget=R,g=b),R=g,b=f&&h?Lf(f,h,yT):null,f!==null&&ap(v,S,f,b,!1),h!==null&&R!==null&&ap(v,R,h,b,!0)))}t:{if(f=r?fo(r):window,h=f.nodeName&&f.nodeName.toLowerCase(),h==="select"||h==="input"&&f.type==="file")var E=sh;else if(fh(f))if(ug)E=CE;else{E=EE;var C=RE}else h=f.nodeName,!h||h.toLowerCase()!=="input"||f.type!=="checkbox"&&f.type!=="radio"?r&&ks(r.elementType)&&(E=sh):E=TE;if(E&&(E=E(t,r))){og(v,E,n,s);break t}C&&C(t,f,r)}switch(C=r?fo(r):window,t){case"focusin":(fh(C)||C.contentEditable==="true")&&(ti=C,kf=r,po=null);break;case"focusout":po=kf=ti=null;break;case"mousedown":Wf=!0;break;case"contextmenu":case"mouseup":case"dragend":Wf=!1,hh(v,n,s);break;case"selectionchange":if(_E)break;case"keydown":case"keyup":hh(v,n,s)}var T;if(ed)t:{switch(t){case"compositionstart":var _="onCompositionStart";break t;case"compositionend":_="onCompositionEnd";break t;case"compositionupdate":_="onCompositionUpdate";break t}_=void 0}else $a?ag(t,n)&&(_="onCompositionEnd"):t==="keydown"&&n.keyCode===229&&(_="onCompositionStart");_&&(lg&&n.locale!=="ko"&&($a||_!=="onCompositionStart"?_==="onCompositionEnd"&&$a&&(T=ng()):(Tl=s,$s="value"in Tl?Tl.value:Tl.textContent,$a=!0)),C=zc(r,_),0<C.length&&(_=new oh(_,t,null,n,s),v.push({event:_,listeners:C}),T?_.data=T:(T=ig(n),T!==null&&(_.data=T)))),(T=pE?gE(t,n):yE(t,n))&&(_=zc(r,"onBeforeInput"),0<_.length&&(C=new oh("onBeforeInput","beforeinput",null,n,s),v.push({event:C,listeners:_}),C.data=T)),pT(v,t,r,n,s)}ey(v,e)})}function Bo(t,e,n){return{instance:t,listener:e,currentTarget:n}}function zc(t,e){for(var n=e+"Capture",l=[];t!==null;){var a=t,i=a.stateNode;if(a=a.tag,a!==5&&a!==26&&a!==27||i===null||(a=No(t,n),a!=null&&l.unshift(Bo(t,a,i)),a=No(t,e),a!=null&&l.push(Bo(t,a,i))),t.tag===3)return l;t=t.return}return[]}function yT(t){if(t===null)return null;do t=t.return;while(t&&t.tag!==5&&t.tag!==27);return t||null}function ap(t,e,n,l,a){for(var i=e._reactName,o=[];n!==null&&n!==l;){var u=n,c=u.alternate,r=u.stateNode;if(u=u.tag,c!==null&&c===l)break;u!==5&&u!==26&&u!==27||r===null||(c=r,a?(r=No(n,i),r!=null&&o.unshift(Bo(n,r,c))):a||(r=No(n,i),r!=null&&o.push(Bo(n,r,c)))),n=n.return}o.length!==0&&t.push({event:e,listeners:o})}var ST=/\\r\\n?/g,bT=/\\u0000|\\uFFFD/g;function ip(t){return(typeof t=="string"?t:""+t).replace(ST,`\n`).replace(bT,"")}function ly(t,e){return e=ip(e),ip(t)===e}function nt(t,e,n,l,a,i){switch(n){case"children":if(typeof l=="string")e==="body"||e==="textarea"&&l===""||Si(t,l);else if(typeof l=="number"||typeof l=="bigint")e!=="body"&&Si(t,""+l);else return;break;case"className":Ou(t,"class",l);break;case"tabIndex":Ou(t,"tabindex",l);break;case"dir":case"role":case"viewBox":case"width":case"height":Ou(t,n,l);break;case"style":tg(t,l,i);return;case"data":if(e!=="object"){Ou(t,"data",l);break}case"src":case"href":if(l===""&&(e!=="a"||n!=="href")){t.removeAttribute(n);break}if(l==null||typeof l=="function"||typeof l=="symbol"||typeof l=="boolean"){t.removeAttribute(n);break}l=Xu(l),t.setAttribute(n,l);break;case"action":case"formAction":if(typeof l=="function"){t.setAttribute(n,"javascript:throw new Error(\'A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\\\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().\')");break}else typeof i=="function"&&(n==="formAction"?(e!=="input"&&nt(t,e,"name",a.name,a,null),nt(t,e,"formEncType",a.formEncType,a,null),nt(t,e,"formMethod",a.formMethod,a,null),nt(t,e,"formTarget",a.formTarget,a,null)):(nt(t,e,"encType",a.encType,a,null),nt(t,e,"method",a.method,a,null),nt(t,e,"target",a.target,a,null)));if(l==null||typeof l=="symbol"||typeof l=="boolean"){t.removeAttribute(n);break}l=Xu(l),t.setAttribute(n,l);break;case"onClick":l!=null&&(t.onclick=Dn);return;case"onScroll":l!=null&&G("scroll",t);return;case"onScrollEnd":l!=null&&G("scrollend",t);return;case"dangerouslySetInnerHTML":if(l!=null){if(typeof l!="object"||!("__html"in l))throw Error(O(61));if(n=l.__html,n!=null){if(a.children!=null)throw Error(O(60));(i!=null?i.__html:void 0)!==n&&(t.innerHTML=n)}}break;case"multiple":t.multiple=l&&typeof l!="function"&&typeof l!="symbol";break;case"muted":t.muted=l&&typeof l!="function"&&typeof l!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(l==null||typeof l=="function"||typeof l=="boolean"||typeof l=="symbol"){t.removeAttribute("xlink:href");break}n=Xu(l),t.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",n);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":l!=null&&typeof l!="function"&&typeof l!="symbol"?t.setAttribute(n,l):t.removeAttribute(n);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"credentialless":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":l&&typeof l!="function"&&typeof l!="symbol"?t.setAttribute(n,""):t.removeAttribute(n);break;case"capture":case"download":l===!0?t.setAttribute(n,""):l!==!1&&l!=null&&typeof l!="function"&&typeof l!="symbol"?t.setAttribute(n,l):t.removeAttribute(n);break;case"cols":case"rows":case"size":case"span":l!=null&&typeof l!="function"&&typeof l!="symbol"&&!isNaN(l)&&1<=l?t.setAttribute(n,l):t.removeAttribute(n);break;case"rowSpan":case"start":l==null||typeof l=="function"||typeof l=="symbol"||isNaN(l)?t.removeAttribute(n):t.setAttribute(n,l);break;case"popover":G("beforetoggle",t),G("toggle",t),Gu(t,"popover",l);break;case"xlinkActuate":Zn(t,"http://www.w3.org/1999/xlink","xlink:actuate",l);break;case"xlinkArcrole":Zn(t,"http://www.w3.org/1999/xlink","xlink:arcrole",l);break;case"xlinkRole":Zn(t,"http://www.w3.org/1999/xlink","xlink:role",l);break;case"xlinkShow":Zn(t,"http://www.w3.org/1999/xlink","xlink:show",l);break;case"xlinkTitle":Zn(t,"http://www.w3.org/1999/xlink","xlink:title",l);break;case"xlinkType":Zn(t,"http://www.w3.org/1999/xlink","xlink:type",l);break;case"xmlBase":Zn(t,"http://www.w3.org/XML/1998/namespace","xml:base",l);break;case"xmlLang":Zn(t,"http://www.w3.org/XML/1998/namespace","xml:lang",l);break;case"xmlSpace":Zn(t,"http://www.w3.org/XML/1998/namespace","xml:space",l);break;case"is":Gu(t,"is",l);break;case"innerText":case"textContent":return;default:if(!(2<n.length)||n[0]!=="o"&&n[0]!=="O"||n[1]!=="n"&&n[1]!=="N")n=qR.get(n)||n,Gu(t,n,l);else return}J=!0}function Hs(t,e,n,l,a,i){switch(n){case"style":tg(t,l,i);return;case"dangerouslySetInnerHTML":if(l!=null){if(typeof l!="object"||!("__html"in l))throw Error(O(61));if(n=l.__html,n!=null){if(a.children!=null)throw Error(O(60));(i!=null?i.__html:void 0)!==n&&(t.innerHTML=n)}}break;case"children":if(typeof l=="string")Si(t,l);else if(typeof l=="number"||typeof l=="bigint")Si(t,""+l);else return;break;case"onScroll":l!=null&&G("scroll",t);return;case"onScrollEnd":l!=null&&G("scrollend",t);return;case"onClick":l!=null&&(t.onclick=Dn);return;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":return;case"innerText":case"textContent":return;default:if(!Jp.hasOwnProperty(n))t:{if(n[0]==="o"&&n[1]==="n"&&(a=n.endsWith("Capture"),i=n.slice(2,a?n.length-7:void 0),e=t[Ee]||null,e=e!=null?e[n]:null,typeof e=="function"&&t.removeEventListener(i,e,a),typeof l=="function")){typeof e!="function"&&e!==null&&(n in t?t[n]=null:t.hasAttribute(n)&&t.removeAttribute(n)),t.addEventListener(i,l,a);break t}J=!0,n in t?t[n]=l:l===!0?t.setAttribute(n,""):Gu(t,n,l)}return}J=!0}function kt(t,e,n){switch(e){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":G("error",t),G("load",t);var l=!1,a=!1,i;for(i in n)if(n.hasOwnProperty(i)){var o=n[i];if(o!=null)switch(i){case"src":l=!0;break;case"srcSet":a=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(O(137,e));default:nt(t,e,i,o,n,null)}}a&&nt(t,e,"srcSet",n.srcSet,n,null),l&&nt(t,e,"src",n.src,n,null);return;case"input":G("invalid",t);var u=i=o=a=null,c=null,r=null;for(l in n)if(n.hasOwnProperty(l)){var s=n[l];if(s!=null)switch(l){case"name":a=s;break;case"type":o=s;break;case"checked":c=s;break;case"defaultChecked":r=s;break;case"value":i=s;break;case"defaultValue":u=s;break;case"children":case"dangerouslySetInnerHTML":if(s!=null)throw Error(O(137,e));break;default:nt(t,e,l,s,n,null)}}kp(t,i,u,c,r,o,a,!1);return;case"select":G("invalid",t),l=o=i=null;for(a in n)if(n.hasOwnProperty(a)&&(u=n[a],u!=null))switch(a){case"value":i=u;break;case"defaultValue":o=u;break;case"multiple":l=u;default:nt(t,e,a,u,n,null)}e=i,n=o,t.multiple=!!l,e!=null?ci(t,!!l,e,!1):n!=null&&ci(t,!!l,n,!0);return;case"textarea":G("invalid",t),i=a=l=null;for(o in n)if(n.hasOwnProperty(o)&&(u=n[o],u!=null))switch(o){case"value":l=u;break;case"defaultValue":a=u;break;case"children":i=u;break;case"dangerouslySetInnerHTML":if(u!=null)throw Error(O(91));break;default:nt(t,e,o,u,n,null)}$p(t,l,a,i);return;case"option":for(c in n)n.hasOwnProperty(c)&&(l=n[c],l!=null)&&(c==="selected"?t.selected=l&&typeof l!="function"&&typeof l!="symbol":nt(t,e,c,l,n,null));return;case"dialog":G("beforetoggle",t),G("toggle",t),G("cancel",t),G("close",t);break;case"iframe":case"object":G("load",t);break;case"video":case"audio":for(l=0;l<Lo.length;l++)G(Lo[l],t);break;case"image":G("error",t),G("load",t);break;case"details":G("toggle",t);break;case"embed":case"source":case"link":G("error",t),G("load",t);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(r in n)if(n.hasOwnProperty(r)&&(l=n[r],l!=null))switch(r){case"children":case"dangerouslySetInnerHTML":throw Error(O(137,e));default:nt(t,e,r,l,n,null)}return;default:if(ks(e)){for(s in n)n.hasOwnProperty(s)&&(l=n[s],l!==void 0&&Hs(t,e,s,l,n,void 0));return}}for(u in n)n.hasOwnProperty(u)&&(l=n[u],l!=null&&nt(t,e,u,l,n,null))}var RT={};function ET(t,e,n,l){switch(e){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var a=null,i=null,o=null,u=null,c=null,r=null,s=null;for(h in n){var v=n[h];if(n.hasOwnProperty(h)&&v!=null)switch(h){case"checked":break;case"value":break;case"defaultValue":c=v;default:l.hasOwnProperty(h)||nt(t,e,h,null,l,v)}}for(var f in l){var h=l[f];if(v=n[f],l.hasOwnProperty(f)&&(h!=null||v!=null))switch(f){case"type":h!==v&&(J=!0),i=h;break;case"name":h!==v&&(J=!0),a=h;break;case"checked":h!==v&&(J=!0),r=h;break;case"defaultChecked":h!==v&&(J=!0),s=h;break;case"value":h!==v&&(J=!0),o=h;break;case"defaultValue":h!==v&&(J=!0),u=h;break;case"children":case"dangerouslySetInnerHTML":if(h!=null)throw Error(O(137,e));break;default:h!==v&&nt(t,e,f,h,l,v)}}Pf(t,o,u,c,r,s,i,a);return;case"select":h=o=u=f=null;for(i in n)if(c=n[i],n.hasOwnProperty(i)&&c!=null)switch(i){case"value":break;case"multiple":h=c;default:l.hasOwnProperty(i)||nt(t,e,i,null,l,c)}for(a in l)if(i=l[a],c=n[a],l.hasOwnProperty(a)&&(i!=null||c!=null))switch(a){case"value":i!==c&&(J=!0),f=i;break;case"defaultValue":i!==c&&(J=!0),u=i;break;case"multiple":i!==c&&(J=!0),o=i;default:i!==c&&nt(t,e,a,i,l,c)}e=u,n=o,l=h,f!=null?ci(t,!!n,f,!1):!!l!=!!n&&(e!=null?ci(t,!!n,e,!0):ci(t,!!n,n?[]:"",!1));return;case"textarea":h=f=null;for(u in n)if(a=n[u],n.hasOwnProperty(u)&&a!=null&&!l.hasOwnProperty(u))switch(u){case"value":break;case"children":break;default:nt(t,e,u,null,l,a)}for(o in l)if(a=l[o],i=n[o],l.hasOwnProperty(o)&&(a!=null||i!=null))switch(o){case"value":a!==i&&(J=!0),f=a;break;case"defaultValue":a!==i&&(J=!0),h=a;break;case"children":break;case"dangerouslySetInnerHTML":if(a!=null)throw Error(O(91));break;default:a!==i&&nt(t,e,o,a,l,i)}Wp(t,f,h);return;case"option":for(var S in n)f=n[S],n.hasOwnProperty(S)&&f!=null&&!l.hasOwnProperty(S)&&(S==="selected"?t.selected=!1:nt(t,e,S,null,l,f));for(c in l)f=l[c],h=n[c],l.hasOwnProperty(c)&&f!==h&&(f!=null||h!=null)&&(c==="selected"?(f!==h&&(J=!0),t.selected=f&&typeof f!="function"&&typeof f!="symbol"):nt(t,e,c,f,l,h));return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var b in n)f=n[b],n.hasOwnProperty(b)&&f!=null&&!l.hasOwnProperty(b)&&nt(t,e,b,null,l,f);for(r in l)if(f=l[r],h=n[r],l.hasOwnProperty(r)&&f!==h&&(f!=null||h!=null))switch(r){case"children":case"dangerouslySetInnerHTML":if(f!=null)throw Error(O(137,e));break;default:nt(t,e,r,f,l,h)}return;default:if(ks(e)){for(var R in n)f=n[R],n.hasOwnProperty(R)&&f!==void 0&&!l.hasOwnProperty(R)&&Hs(t,e,R,void 0,l,f);for(s in l)f=l[s],h=n[s],!l.hasOwnProperty(s)||f===h||f===void 0&&h===void 0||Hs(t,e,s,f,l,h);return}}for(var m in n)f=n[m],n.hasOwnProperty(m)&&f!=null&&!l.hasOwnProperty(m)&&nt(t,e,m,null,l,f);for(v in l)f=l[v],h=n[v],!l.hasOwnProperty(v)||f===h||f==null&&h==null||nt(t,e,v,f,l,h)}function op(t){switch(t){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function TT(){if(typeof performance.getEntriesByType=="function"){for(var t=0,e=0,n=performance.getEntriesByType("resource"),l=0;l<n.length;l++){var a=n[l],i=a.transferSize,o=a.initiatorType,u=a.duration;if(i&&u&&op(o)){for(o=0,u=a.responseEnd,l+=1;l<n.length;l++){var c=n[l],r=c.startTime;if(r>u)break;var s=c.transferSize,v=c.initiatorType;s&&op(v)&&(c=c.responseEnd,o+=s*(c<u?1:(u-r)/(c-r)))}if(--l,e+=8*(i+o)/(a.duration/1e3),t++,10<t)break}}if(0<t)return e/t/1e6}return navigator.connection&&(t=navigator.connection.downlink,typeof t=="number")?t:5}var Ls=null,Bs=null;function jo(t){return t.nodeType===9?t:t.ownerDocument}function up(t){switch(t){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function ay(t,e){if(t===0)switch(e){case"svg":return 1;case"math":return 2;default:return 0}return t===1&&e==="foreignObject"?0:t}function iy(t,e,n,l){return n=jo(n).createElement(t),n[Pt]=l,n[Ee]=e,kt(n,t,e),Yt(n),n}function js(t,e){return t==="textarea"||t==="noscript"||typeof e.children=="string"||typeof e.children=="number"||typeof e.children=="bigint"||typeof e.dangerouslySetInnerHTML=="object"&&e.dangerouslySetInnerHTML!==null&&e.dangerouslySetInnerHTML.__html!=null}var Mf=null;function CT(){var t=window.event;return t&&t.type==="popstate"?t===Mf?!1:(Mf=t,!0):(Mf=null,!1)}var Bd=typeof setTimeout=="function"?setTimeout:void 0,OT=typeof clearTimeout=="function"?clearTimeout:void 0,cp=typeof Promise=="function"?Promise:void 0,rp=typeof requestAnimationFrame=="function"?requestAnimationFrame:Bd,_T=typeof queueMicrotask=="function"?queueMicrotask:typeof cp!="undefined"?function(t){return cp.resolve(null).then(t).catch(AT)}:Bd;function AT(t){setTimeout(function(){throw t})}function Ql(t){return t==="head"}function fp(t,e){var n=e,l=0;do{var a=n.nextSibling;if(t.removeChild(n),a&&a.nodeType===8)if(n=a.data,n==="/$"||n==="/&"){if(l===0){t.removeChild(a),xi(e);return}l--}else if(n==="$"||n==="$?"||n==="$~"||n==="$!"||n==="&")l++;else if(n==="html")Uf(t.ownerDocument.documentElement);else if(n==="head"){n=t.ownerDocument.head,Uf(n);for(var i=n.firstChild;i;){var o=i.nextSibling,u=i.nodeName;i[Po]||u==="SCRIPT"||u==="STYLE"||u==="LINK"&&i.rel.toLowerCase()==="stylesheet"||n.removeChild(i),i=o}}else n==="body"&&Uf(t.ownerDocument.body);n=a}while(n);xi(e)}function sp(t,e){var n=t;t=0;do{var l=n.nextSibling;if(n.nodeType===1?e?(n._stashedDisplay=n.style.display,n.style.display="none"):(n.style.display=n._stashedDisplay||"",n.getAttribute("style")===""&&n.removeAttribute("style")):n.nodeType===3&&(e?(n._stashedText=n.nodeValue,n.nodeValue=""):n.nodeValue=n._stashedText||""),l&&l.nodeType===8)if(n=l.data,n==="/$"){if(t===0)break;t--}else n!=="$"&&n!=="$?"&&n!=="$~"&&n!=="$!"||t++;n=l}while(n)}function oy(t,e,n){if(e=CSS.escape(e)!==e?"r-"+btoa(e).replace(/=/g,""):e,t.style.viewTransitionName=e,n!=null&&(t.style.viewTransitionClass=n),n=getComputedStyle(t),n.display==="inline"){if(e=t.getClientRects(),e.length===1)var l=1;else for(var a=l=0;a<e.length;a++){var i=e[a];0<i.width&&0<i.height&&l++}l===1&&(t=t.style,t.display=e.length===1?"inline-block":"block",t.marginTop="-"+n.paddingTop,t.marginBottom="-"+n.paddingBottom)}}function uy(t,e){t=t.style,e=e.style;var n=e!=null?e.hasOwnProperty("viewTransitionName")?e.viewTransitionName:e.hasOwnProperty("view-transition-name")?e["view-transition-name"]:null:null;t.viewTransitionName=n==null||typeof n=="boolean"?"":(""+n).trim(),n=e!=null?e.hasOwnProperty("viewTransitionClass")?e.viewTransitionClass:e.hasOwnProperty("view-transition-class")?e["view-transition-class"]:null:null,t.viewTransitionClass=n==null||typeof n=="boolean"?"":(""+n).trim(),t.display==="inline-block"&&(e==null?t.display=t.margin="":(n=e.display,t.display=n==null||typeof n=="boolean"?"":n,n=e.margin,n!=null?t.margin=n:(n=e.hasOwnProperty("marginTop")?e.marginTop:e["margin-top"],t.marginTop=n==null||typeof n=="boolean"?"":n,e=e.hasOwnProperty("marginBottom")?e.marginBottom:e["margin-bottom"],t.marginBottom=e==null||typeof e=="boolean"?"":e)))}function cy(t,e,n){return n=n.ownerDocument.defaultView,{rect:t,abs:e.position==="absolute"||e.position==="fixed",clip:e.clipPath!=="none"||e.overflow!=="visible"||e.filter!=="none"||e.mask!=="none"||e.mask!=="none"||e.borderRadius!=="0px",view:0<=t.bottom&&0<=t.right&&t.top<=n.innerHeight&&t.left<=n.innerWidth}}function Vs(t){var e=t.getBoundingClientRect(),n=getComputedStyle(t);return cy(e,n,t)}function NT(t){var e=t.getBoundingClientRect();e=new DOMRect(e.x+2e4,e.y+2e4,e.width,e.height);var n=getComputedStyle(t);return cy(e,n,t)}function xT(t){return t.documentElement.clientHeight}function DT(t){this.addEventListener("load",t),this.addEventListener("error",t)}function wT(t,e,n,l,a,i,o,u,c){var r=e.nodeType===9?e:e.ownerDocument;try{var s=r.startViewTransition({update:function(){var f=r.defaultView,h=f.navigation&&f.navigation.transition,S=r.fonts.status;l();var b=[];if(S==="loaded"&&(xT(r),r.fonts.status==="loading"&&b.push(r.fonts.ready)),S=b.length,t!==null)for(var R=t.suspenseyImages,m=0,d=0;d<R.length;d++){var p=R[d];if(!p.complete){var g=p.getBoundingClientRect();if(0<g.bottom&&0<g.right&&g.top<f.innerHeight&&g.left<f.innerWidth){if(m+=by(p),m>ac){b.length=S;break}p=new Promise(DT.bind(p)),b.push(p)}}}if(0<b.length)return f=Promise.race([Promise.all(b),new Promise(function(E){return setTimeout(E,500)})]).then(a,a),(h?Promise.allSettled([h.finished,f]):f).then(i,i);if(a(),h)return h.finished.then(i,i);i()},types:n});r.__reactViewTransition=s;var v=[];return s.ready.then(function(){for(var f=r.documentElement.getAnimations({subtree:!0}),h=0;h<f.length;h++){var S=f[h],b=S.effect,R=b.pseudoElement;if(R!=null&&R.startsWith("::view-transition")){v.push(S),S=b.getKeyframes();for(var m=R=void 0,d=!0,p=0;p<S.length;p++){var g=S[p],E=g.width;if(R===void 0)R=E;else if(R!==E){d=!1;break}if(E=g.height,m===void 0)m=E;else if(m!==E){d=!1;break}delete g.width,delete g.height,g.transform==="none"&&delete g.transform}d&&R!==void 0&&m!==void 0&&(b.setKeyframes(S),d=getComputedStyle(b.target,b.pseudoElement),d.width!==R||d.height!==m)&&(d=S[0],d.width=R,d.height=m,d=S[S.length-1],d.width=R,d.height=m,b.setKeyframes(S))}}o()},function(f){r.__reactViewTransition===s&&(r.__reactViewTransition=null);try{typeof f=="object"&&f!==null&&f.name==="InvalidStateError"&&(f.message==="View transition was skipped because document visibility state is hidden."||f.message==="Skipping view transition because document visibility state has become hidden."||f.message==="Skipping view transition because viewport size changed."||f.message==="Transition was aborted because of invalid state")&&(f=null),f!==null&&c(f)}finally{l(),a(),o()}}),s.finished.finally(function(){for(var f=0;f<v.length;f++)v[f].cancel();r.__reactViewTransition===s&&(r.__reactViewTransition=null),u()}),s}catch{return l(),a(),o(),null}}function la(t,e){this._scope=document.documentElement,this._selector="::view-transition-"+t+"("+e+")"}la.prototype.animate=function(t,e){return e=typeof e=="number"?{duration:e}:ft({},e),e.pseudoElement=this._selector,this._scope.animate(t,e)};la.prototype.getAnimations=function(){for(var t=this._scope,e=this._selector,n=t.getAnimations({subtree:!0}),l=[],a=0;a<n.length;a++){var i=n[a].effect;i!==null&&i.target===t&&i.pseudoElement===e&&l.push(n[a])}return l};la.prototype.getComputedStyle=function(){return getComputedStyle(this._scope,this._selector)};function ry(t){return{name:t,group:new la("group",t),imagePair:new la("image-pair",t),old:new la("old",t),new:new la("new",t)}}function je(t){this._fragmentFiber=t,this._observers=this._eventListeners=null}je.prototype.addEventListener=function(t,e,n){var l=null,a=null;if(!(n!=null&&typeof n!="boolean"&&(l=n.signal||null,l!==null&&l.aborted))){this._eventListeners===null&&(this._eventListeners=[]);var i=this._eventListeners;if(fy(i,t,e,n)===-1){var o=this,u=e;n!=null&&typeof n!="boolean"&&n.once===!0&&(u=function(c){o.removeEventListener(t,e,n),typeof e=="function"?e.call(this,c):e.handleEvent(c)}),l!==null&&(a=o.removeEventListener.bind(o,t,e,n),l.addEventListener("abort",a,{once:!0}),a=l.removeEventListener.bind(l,"abort",a)),l=Oi(n),i.push({type:t,listener:e,optionsOrUseCapture:n,attachedListener:u,cleanup:a}),Re(this._fragmentFiber.child,!1,MT,t,u,l)}this._eventListeners=i}};function MT(t,e,n,l){return Lt(t).addEventListener(e,n,l),!1}je.prototype.removeEventListener=function(t,e,n){var l=this._eventListeners;if(l!==null&&(e=fy(l,t,e,n),e!==-1)){var a=l[e];n=a.attachedListener;var i=a.cleanup;a=Oi(a.optionsOrUseCapture),Re(this._fragmentFiber.child,!1,zT,t,n,a),l.splice(e,1),i!==null&&i()}};function zT(t,e,n,l){return Lt(t).removeEventListener(e,n,l),!1}function Oi(t){return t!=null&&typeof t!="boolean"&&(t.once===!0||t.signal instanceof AbortSignal)?{capture:t.capture,passive:t.passive}:t}function dp(t){return t==null?"c=0":typeof t=="boolean"?"c="+(t?"1":"0"):"c="+(t.capture?"1":"0")}function fy(t,e,n,l){if(t.length===0)return-1;l=dp(l);for(var a=0;a<t.length;a++){var i=t[a];if(i.type===e&&i.listener===n&&dp(i.optionsOrUseCapture)===l)return a}return-1}je.prototype.dispatchEvent=function(t){var e=ga(this._fragmentFiber);if(e===null)return!0;e=Lt(e);var n=this._eventListeners;if(n!==null&&0<n.length||!t.bubbles){var l=e.nodeType===9?e.createComment(""):document.createTextNode("");if(n)for(var a=0;a<n.length;a++){var i=n[a];l.addEventListener(i.type,i.attachedListener,Oi(i.optionsOrUseCapture))}if(e.appendChild(l),t=l.dispatchEvent(t),n)for(a=0;a<n.length;a++)i=n[a],l.removeEventListener(i.type,i.attachedListener,Oi(i.optionsOrUseCapture));return e.removeChild(l),t}return e.dispatchEvent(t)};je.prototype.focus=function(t){Re(this._fragmentFiber.child,!0,sy,t,void 0,void 0)};function sy(t,e){return t.tag===6?!1:(t=Lt(t),ZT(t,e))}je.prototype.focusLast=function(t){var e=[];Re(this._fragmentFiber.child,!0,jd,e,void 0,void 0);for(var n=e.length-1;0<=n&&!sy(e[n],t);n--);};function jd(t,e){return e.push(t),!1}je.prototype.blur=function(){var t=ga(this._fragmentFiber);t!==null&&(t=Lt(t),t=jo(t).activeElement,t!==null&&Re(this._fragmentFiber.child,!1,UT,t,void 0,void 0))};function UT(t,e){return t.tag===6?!1:(t=Lt(t),t===e||t.contains(e)?(e.blur(),!0):!1)}je.prototype.observeUsing=function(t){this._observers===null&&(this._observers=new Set),this._observers.add(t),Re(this._fragmentFiber.child,!1,HT,t,void 0,void 0)};function HT(t,e){return t.tag===6||(t=Lt(t),e.observe(t)),!1}je.prototype.unobserveUsing=function(t){var e=this._observers;if(e!==null&&e.has(t)){e.delete(t),Re(this._fragmentFiber.child,!1,LT,t,void 0,void 0);for(var n=e=0;n<un.length;n++){var l=un[n];l.fragmentInstance===this&&l.observer===t?t.unobserve(l.instance):un[e++]=l}un.length=e}};function LT(t,e){return t.tag===6||(t=Lt(t),e.unobserve(t)),!1}var un=[],zf=!1;function BT(t,e,n){un.push({fragmentInstance:t,observer:e,instance:n}),zf||(zf=!0,KT(function(){zf=!1;var l=un;un=[];for(var a=0;a<l.length;a++){var i=l[a];i.observer.unobserve(i.instance)}}))}je.prototype.getClientRects=function(){var t=[];return Re(this._fragmentFiber.child,!1,jT,t,void 0,void 0),t};function jT(t,e){if(t.tag===6){t=t.stateNode;var n=t.ownerDocument.createRange();n.selectNodeContents(t),e.push.apply(e,n.getClientRects())}else t=Lt(t),e.push.apply(e,t.getClientRects());return!1}je.prototype.getRootNode=function(t){var e=ga(this._fragmentFiber);return e===null?this:Lt(e).getRootNode(t)};je.prototype.compareDocumentPosition=function(t){var e=ga(this._fragmentFiber);if(e===null)return Node.DOCUMENT_POSITION_DISCONNECTED;var n=[];Re(this._fragmentFiber.child,!1,jd,n,void 0,void 0);var l=Lt(e);if(n.length===0){if(n=l,Zv(this._fragmentFiber)){t:{for(e=this._fragmentFiber.return;e!==null;){if(e.tag===4){e=e.stateNode.containerInfo;break t}if(e.tag===3||e.tag===5||e.tag===27)break;e=e.return}e=null}e!=null&&(n=e)}e=this._fragmentFiber;var a=l=n.compareDocumentPosition(t);return n===t?a=Node.DOCUMENT_POSITION_CONTAINS:l&Node.DOCUMENT_POSITION_CONTAINED_BY&&(n=zp(e)[1],n===null?a=Node.DOCUMENT_POSITION_PRECEDING:(t=Lt(n).compareDocumentPosition(t),a=t===0||t&Node.DOCUMENT_POSITION_FOLLOWING?Node.DOCUMENT_POSITION_FOLLOWING:Node.DOCUMENT_POSITION_PRECEDING)),a|=Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC}e=Lt(n[0]),a=Lt(n[n.length-1]);var i=Zv(this._fragmentFiber)?e.parentElement:l;if(i==null)return Node.DOCUMENT_POSITION_DISCONNECTED;l=i.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY,i=i.compareDocumentPosition(a)&Node.DOCUMENT_POSITION_CONTAINED_BY;var o=e.compareDocumentPosition(t),u=a.compareDocumentPosition(t),c=o&Node.DOCUMENT_POSITION_CONTAINED_BY||u&Node.DOCUMENT_POSITION_CONTAINED_BY;return u=l&&i&&o&Node.DOCUMENT_POSITION_FOLLOWING&&u&Node.DOCUMENT_POSITION_PRECEDING,e=l&&e===t||i&&a===t||c||u?Node.DOCUMENT_POSITION_CONTAINED_BY:!l&&e===t||!i&&a===t?Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC:o,e&Node.DOCUMENT_POSITION_DISCONNECTED||e&Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC||VT(e,this._fragmentFiber,n[0],n[n.length-1],t)?e:Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC};function VT(t,e,n,l,a){var i=na(a);if(t&Node.DOCUMENT_POSITION_CONTAINED_BY){if(n=!!i)t:{for(;i!==null;){if(i.tag===7&&(i===e||i.alternate===e)){n=!0;break t}i=i.return}n=!1}return n}if(t&Node.DOCUMENT_POSITION_CONTAINS){if(i===null)return i=a.ownerDocument,a===i||a===i.documentElement||a===i.body;t:{for(i=e,e=ga(e);i!==null;){if(!(i.tag!==5&&i.tag!==3&&i.tag!==27||i!==e&&i.alternate!==e)){i=!0;break t}i=i.return}i=!1}return i}return t&Node.DOCUMENT_POSITION_PRECEDING?((e=!!i)&&!(e=i===n)&&(e=Lf(n,i,Kv),e===null?e=!1:(Re(e,!0,hR,i,n),i=Ia,Ia=null,e=i!==null)),e):t&Node.DOCUMENT_POSITION_FOLLOWING?((e=!!i)&&!(e=i===l)&&(e=Lf(l,i,Kv),e===null?e=!1:(Re(e,!0,pR,i,l),i=Ia,Hf=Ia=null,e=i!==null)),e):!1}function mp(t,e){var n=t.ownerDocument.createRange();n.selectNodeContents(t),t=n.getBoundingClientRect(),window.scrollTo(window.scrollX+t.left,e?window.scrollY+t.top:window.scrollY+t.bottom-window.innerHeight)}je.prototype.scrollIntoView=function(t){if(typeof t=="object")throw Error(O(566));var e=[];Re(this._fragmentFiber.child,!1,jd,e,void 0,void 0);var n=t!==!1;if(e.length===0){var l=zp(this._fragmentFiber);if(l=n?l[1]||l[0]||ga(this._fragmentFiber):l[0]||l[1],l===null)return;if(l.tag===6){t=Lt(l),mp(t,n);return}if(l=Lt(l),l.nodeType!==9){if(l.nodeType===11){n="host"in l?l.host:null,n!==null&&n.scrollIntoView(t);return}l.scrollIntoView(t)}}for(l=n?e.length-1:0;l!==(n?-1:e.length);){var a=e[l];a.tag===6?(a=Lt(a),mp(a,n)):Lt(a).scrollIntoView(t),l+=n?-1:1}};function YT(t,e){return t=Lt(t),dy(t,e),!1}function dy(t,e){t.reactFragments==null&&(t.reactFragments=new Set),t.reactFragments.add(e)}function my(t,e){var n=e._eventListeners;if(n!==null)for(var l=0;l<n.length;l++){var a=n[l];t.addEventListener(a.type,a.attachedListener,Oi(a.optionsOrUseCapture))}t.nodeType!==3&&(n=e._observers,n!==null&&n.forEach(function(i){for(var o=0,u=0;u<un.length;u++){var c=un[u];(c.fragmentInstance!==e||c.observer!==i||c.instance!==t)&&(un[o++]=c)}un.length=o,i.observe(t)}),dy(t,e))}function qT(t,e){var n=e._eventListeners;if(n!==null)for(var l=0;l<n.length;l++){var a=n[l];t.removeEventListener(a.type,a.attachedListener,Oi(a.optionsOrUseCapture))}t.nodeType!==3&&(n=e._observers,n!==null&&n.forEach(function(i){typeof i.rootMargin=="string"?BT(e,i,t):i.unobserve(t)}),t.reactFragments!=null&&t.reactFragments.delete(e))}function Ys(t){var e=t.firstChild;for(e&&e.nodeType===10&&(e=e.nextSibling);e;){var n=e;switch(e=e.nextSibling,n.nodeName){case"HTML":case"HEAD":case"BODY":Ys(n),Bc(n);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(n.rel.toLowerCase()==="stylesheet")continue}t.removeChild(n)}}function GT(t,e,n,l){for(;t.nodeType===1;){var a=n;if(t.nodeName.toLowerCase()!==e.toLowerCase()){if(!l&&(t.nodeName!=="INPUT"||t.type!=="hidden"))break}else if(l){if(!t[Po])switch(e){case"meta":if(!t.hasAttribute("itemprop"))break;return t;case"link":if(i=t.getAttribute("rel"),i==="stylesheet"&&t.hasAttribute("data-precedence"))break;if(i!==a.rel||t.getAttribute("href")!==(a.href==null||a.href===""?null:a.href)||t.getAttribute("crossorigin")!==(a.crossOrigin==null?null:a.crossOrigin)||t.getAttribute("title")!==(a.title==null?null:a.title))break;return t;case"style":if(t.hasAttribute("data-precedence"))break;return t;case"script":if(i=t.getAttribute("src"),(i!==(a.src==null?null:a.src)||t.getAttribute("type")!==(a.type==null?null:a.type)||t.getAttribute("crossorigin")!==(a.crossOrigin==null?null:a.crossOrigin))&&i&&t.hasAttribute("async")&&!t.hasAttribute("itemprop"))break;return t;default:return t}}else if(e==="input"&&t.type==="hidden"){var i=a.name==null?null:""+a.name;if(a.type==="hidden"&&t.getAttribute("name")===i)return t}else return t;if(t=ke(t.nextSibling),t===null)break}return null}function XT(t,e,n){if(e==="")return null;for(;t.nodeType!==3;)if((t.nodeType!==1||t.nodeName!=="INPUT"||t.type!=="hidden")&&!n||(t=ke(t.nextSibling),t===null))return null;return t}function vy(t,e){for(;t.nodeType!==8;)if((t.nodeType!==1||t.nodeName!=="INPUT"||t.type!=="hidden")&&!e||(t=ke(t.nextSibling),t===null))return null;return t}function qs(t){return t.data==="$?"||t.data==="$~"}function Vd(t){return t.data==="$!"||t.data==="$?"&&t.ownerDocument.readyState!=="loading"}function QT(t,e){var n=t.ownerDocument;if(t.data==="$~")t._reactRetry=e;else if(t.data!=="$?"||n.readyState!=="loading")e();else{var l=function(){e(),n.removeEventListener("DOMContentLoaded",l)};n.addEventListener("DOMContentLoaded",l),t._reactRetry=l}}function ke(t){for(;t!=null;t=t.nextSibling){var e=t.nodeType;if(e===1||e===3)break;if(e===8){if(e=t.data,e==="$"||e==="$!"||e==="$?"||e==="$~"||e==="&"||e==="F!"||e==="F")break;if(e==="/$"||e==="/&")return null}}return t}var Gs=null;function vp(t){t=t.nextSibling;for(var e=0;t;){if(t.nodeType===8){var n=t.data;if(n==="/$"||n==="/&"){if(e===0)return ke(t.nextSibling);e--}else n!=="$"&&n!=="$!"&&n!=="$?"&&n!=="$~"&&n!=="&"||e++}t=t.nextSibling}return null}function hp(t){t=t.previousSibling;for(var e=0;t;){if(t.nodeType===8){var n=t.data;if(n==="$"||n==="$!"||n==="$?"||n==="$~"||n==="&"){if(e===0)return t;e--}else n!=="/$"&&n!=="/&"||e++}t=t.previousSibling}return null}function ZT(t,e){function n(){l=!0}if(t.ownerDocument.activeElement===t)return!0;var l=!1;try{t.ownerDocument.addEventListener("focus",n,!0),(t.focus||HTMLElement.prototype.focus).call(t,e)}finally{t.ownerDocument.removeEventListener("focus",n,!0)}return l}function KT(t){rp(function(){rp(function(e){return t(e)})})}function hy(t,e,n){switch(e=jo(n),t){case"html":if(t=e.documentElement,!t)throw Error(O(452));return t;case"head":if(t=e.head,!t)throw Error(O(453));return t;case"body":if(t=e.body,!t)throw Error(O(454));return t;default:throw Error(O(451))}}function py(t,e,n){for(var l in n){var a=n[l];n.hasOwnProperty(l)&&a!=null&&nt(t,e,l,null,RT,a)}n.dangerouslySetInnerHTML!=null&&(t.textContent=""),t.onclick===Dn&&(t.onclick=null),Bc(t)}function Uf(t){for(var e=t.attributes;e.length;)t.removeAttributeNode(e[0]);Bc(t)}var We=new Map,pp=new Set;function Vo(t){if(typeof t.getRootNode=="function"){var e=t.getRootNode();if(e.nodeType===9||e.nodeType===11)return e}return t.nodeType===9?t:t.ownerDocument}var il=W.d;W.d={f:PT,r:JT,D:IT,C:FT,L:kT,m:WT,X:tC,S:$T,M:eC};function PT(){var t=il.f(),e=kc();return t||e}function JT(t){var e=wi(t);e!==null&&e.tag===5&&e.type==="form"?t0(e):il.r(t)}var Hi=typeof document=="undefined"?null:document;function gy(t,e,n){var l=Hi;if(l&&typeof e=="string"&&e){var a=Je(e);a=\'link[rel="\'+t+\'"][href="\'+a+\'"]\',typeof n=="string"&&(a+=\'[crossorigin="\'+n+\'"]\'),pp.has(a)||(pp.add(a),t={rel:t,crossOrigin:n,href:e},l.querySelector(a)===null&&(e=l.createElement("link"),kt(e,"link",t),Yt(e),l.head.appendChild(e)))}}function IT(t){il.D(t),gy("dns-prefetch",t,null)}function FT(t,e){il.C(t,e),gy("preconnect",t,e)}function kT(t,e,n){il.L(t,e,n);var l=Hi;if(l&&t&&e){var a=\'link[rel="preload"][as="\'+Je(e)+\'"]\';e==="image"&&n&&n.imageSrcSet?(a+=\'[imagesrcset="\'+Je(n.imageSrcSet)+\'"]\',typeof n.imageSizes=="string"&&(a+=\'[imagesizes="\'+Je(n.imageSizes)+\'"]\')):a+=\'[href="\'+Je(t)+\'"]\';var i=a;switch(e){case"style":i=_i(t);break;case"script":i=Li(t)}if(!(We.has(i)||(t=ft({rel:"preload",href:e==="image"&&n&&n.imageSrcSet?void 0:t,as:e},n),We.set(i,t),l.querySelector(a)!==null||e==="style"&&l.querySelector($o(i))||e==="script"&&l.querySelector(tu(i))))){var o=l.createElement("link");kt(o,"link",t),e==="style"&&(o[sc]=!0,o.onload=o.onerror=function(){Kp(o)}),Yt(o),l.head.appendChild(o)}}}function WT(t,e){il.m(t,e);var n=Hi;if(n&&t){var l=e&&typeof e.as=="string"?e.as:"script",a=\'link[rel="modulepreload"][as="\'+Je(l)+\'"][href="\'+Je(t)+\'"]\',i=a;switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":i=Li(t)}if(!We.has(i)&&(t=ft({rel:"modulepreload",href:t},e),We.set(i,t),n.querySelector(a)===null)){switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector(tu(i)))return}l=n.createElement("link"),kt(l,"link",t),Yt(l),n.head.appendChild(l)}}}function $T(t,e,n){il.S(t,e,n);var l=Hi;if(l&&t){var a=ui(l).hoistableStyles,i=_i(t);e=e||"default";var o=a.get(i);if(!o){var u={loading:0,preload:null};if(o=l.querySelector($o(i)))u.loading=5;else{t=ft({rel:"stylesheet",href:t,"data-precedence":e},n),(n=We.get(i))&&Yd(t,n);var c=o=l.createElement("link");Yt(c),kt(c,"link",t),c._p=new Promise(function(r,s){c.onload=r,c.onerror=s}),c.addEventListener("load",function(){u.loading|=1}),c.addEventListener("error",function(){u.loading|=2}),u.loading|=4,nc(o,e,l)}o={type:"stylesheet",instance:o,count:1,state:u},a.set(i,o)}}}function tC(t,e){il.X(t,e);var n=Hi;if(n&&t){var l=ui(n).hoistableScripts,a=Li(t),i=l.get(a);i||(i=n.querySelector(tu(a)),i||(t=ft({src:t,async:!0},e),(e=We.get(a))&&qd(t,e),i=n.createElement("script"),Yt(i),kt(i,"link",t),n.head.appendChild(i)),i={type:"script",instance:i,count:1,state:null},l.set(a,i))}}function eC(t,e){il.M(t,e);var n=Hi;if(n&&t){var l=ui(n).hoistableScripts,a=Li(t),i=l.get(a);i||(i=n.querySelector(tu(a)),i||(t=ft({src:t,async:!0,type:"module"},e),(e=We.get(a))&&qd(t,e),i=n.createElement("script"),Yt(i),kt(i,"link",t),n.head.appendChild(i)),i={type:"script",instance:i,count:1,state:null},l.set(a,i))}}function gp(t,e,n,l){var a=(a=Nl.current)?Vo(a):null;if(!a)throw Error(O(446));switch(t){case"meta":case"title":return null;case"style":return typeof n.precedence=="string"&&typeof n.href=="string"?(n=_i(n.href),e=ui(a).hoistableStyles,l=e.get(n),l||(l={type:"style",instance:null,count:0,state:null},e.set(n,l)),l):{type:"void",instance:null,count:0,state:null};case"link":if(n.rel==="stylesheet"&&typeof n.href=="string"&&typeof n.precedence=="string"){t=_i(n.href);var i=ui(a).hoistableStyles,o=i.get(t);if(o||(a=a.ownerDocument||a,o={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},i.set(t,o),(i=a.querySelector($o(t)))?i._p||(o.instance=i,o.state.loading=5):(i=We.get(t),i||(i={rel:"preload",as:"style",href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},We.set(t,i)),nC(a,t,i,o.state))),e&&l===null)throw Error(O(528,""));return o}if(e&&l!==null)throw Error(O(529,""));return null;case"script":return e=n.async,n=n.src,typeof n=="string"&&e&&typeof e!="function"&&typeof e!="symbol"?(n=Li(n),e=ui(a).hoistableScripts,l=e.get(n),l||(l={type:"script",instance:null,count:0,state:null},e.set(n,l)),l):{type:"void",instance:null,count:0,state:null};default:throw Error(O(444,t))}}function _i(t){return\'href="\'+Je(t)+\'"\'}function $o(t){return\'link[rel="stylesheet"][\'+t+"]"}function yy(t){return ft({},t,{"data-precedence":t.precedence,precedence:null})}function nC(t,e,n,l){if(e=t.querySelector(\'link[rel="preload"][as="style"][\'+e+"]")){if(e[sc]!==!0){l.loading=1;return}}else e=t.createElement("link"),e[sc]=!0,e.onload=e.onerror=Kp.bind(null,e),kt(e,"link",n),Yt(e),t.head.appendChild(e);l.preload=e,e.addEventListener("load",function(){return l.loading|=1}),e.addEventListener("error",function(){return l.loading|=2})}function Li(t){return\'[src="\'+Je(t)+\'"]\'}function tu(t){return"script[async]"+t}function yp(t,e,n){if(e.count++,e.instance===null)switch(e.type){case"style":var l=t.querySelector(\'style[data-href~="\'+Je(n.href)+\'"]\');if(l)return e.instance=l,Yt(l),l;var a=ft({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return l=(t.ownerDocument||t).createElement("style"),Yt(l),kt(l,"style",a),nc(l,n.precedence,t),e.instance=l;case"stylesheet":a=_i(n.href);var i=t.querySelector($o(a));if(i)return e.state.loading|=4,e.instance=i,Yt(i),i;l=yy(n),(a=We.get(a))&&Yd(l,a),i=(t.ownerDocument||t).createElement("link"),Yt(i);var o=i;return o._p=new Promise(function(u,c){o.onload=u,o.onerror=c}),kt(i,"link",l),e.state.loading|=4,nc(i,n.precedence,t),e.instance=i;case"script":return i=Li(n.src),(a=t.querySelector(tu(i)))?(e.instance=a,Yt(a),a):(l=n,(a=We.get(i))&&(l=ft({},n),qd(l,a)),t=t.ownerDocument||t,a=t.createElement("script"),Yt(a),kt(a,"link",l),t.head.appendChild(a),e.instance=a);case"void":return null;default:throw Error(O(443,e.type))}else e.type==="stylesheet"&&(e.state.loading&4)===0&&(l=e.instance,e.state.loading|=4,nc(l,n.precedence,t));return e.instance}function nc(t,e,n){for(var l=n.querySelectorAll(\'link[rel="stylesheet"][data-precedence],style[data-precedence]\'),a=l.length?l[l.length-1]:null,i=a,o=0;o<l.length;o++){var u=l[o];if(u.dataset.precedence===e)i=u;else if(i!==a)break}i?i.parentNode.insertBefore(t,i.nextSibling):(e=n.nodeType===9?n.head:n,e.insertBefore(t,e.firstChild))}function Yd(t,e){t.crossOrigin==null&&(t.crossOrigin=e.crossOrigin),t.referrerPolicy==null&&(t.referrerPolicy=e.referrerPolicy),t.title==null&&(t.title=e.title)}function qd(t,e){t.crossOrigin==null&&(t.crossOrigin=e.crossOrigin),t.referrerPolicy==null&&(t.referrerPolicy=e.referrerPolicy),t.integrity==null&&(t.integrity=e.integrity)}var lc=null;function Sp(t,e,n){if(lc===null){var l=new Map,a=lc=new Map;a.set(n,l)}else a=lc,l=a.get(n),l||(l=new Map,a.set(n,l));if(l.has(t))return l;for(l.set(t,null),n=n.getElementsByTagName(t),a=0;a<n.length;a++){var i=n[a];if(!(i[Po]||i[Pt]||t==="link"&&i.getAttribute("rel")==="stylesheet")&&i.namespaceURI!=="http://www.w3.org/2000/svg"){var o=i.getAttribute(e)||"";o=t+o;var u=l.get(o);u?u.push(i):l.set(o,[i])}}return l}function Xs(t,e,n){t=t.ownerDocument||t,t.head.insertBefore(n,e==="title"?t.querySelector("head > title"):null)}function lC(t,e,n){if(n===1||e.itemProp!=null)return!1;switch(t){case"meta":case"title":return!0;case"style":if(typeof e.precedence!="string"||typeof e.href!="string"||e.href==="")break;return!0;case"link":if(typeof e.rel!="string"||typeof e.href!="string"||e.href===""||e.onLoad||e.onError)break;return e.rel==="stylesheet"?(t=e.disabled,typeof e.precedence=="string"&&t==null):!0;case"script":if(e.async&&typeof e.async!="function"&&typeof e.async!="symbol"&&!e.onLoad&&!e.onError&&e.src&&typeof e.src=="string")return!0}return!1}function bp(t,e){return t==="img"&&e.src!=null&&e.src!==""&&e.onLoad==null&&e.loading!=="lazy"}function Sy(t){return!(t.type==="stylesheet"&&(t.state.loading&3)===0)}function by(t){return(t.width||100)*(t.height||100)*(typeof devicePixelRatio=="number"?devicePixelRatio:1)*.25}function Rp(t,e){typeof e.decode=="function"&&(t.imgCount++,e.complete||(t.imgBytes+=by(e),t.suspenseyImages.push(e)),t=oC.bind(t),e.decode().then(t,t))}function aC(t,e,n,l){if(n.type==="stylesheet"&&(typeof l.media!="string"||matchMedia(l.media).matches!==!1)&&(n.state.loading&4)===0){if(n.instance===null){var a=_i(l.href),i=e.querySelector($o(a));if(i){e=i._p,e!==null&&typeof e=="object"&&typeof e.then=="function"&&(t.count++,t=Yo.bind(t),e.then(t,t)),n.state.loading|=4,n.instance=i,Yt(i);return}i=e.ownerDocument||e,l=yy(l),(a=We.get(a))&&Yd(l,a),i=i.createElement("link"),Yt(i);var o=i;o._p=new Promise(function(u,c){o.onload=u,o.onerror=c}),kt(i,"link",l),n.instance=i}t.stylesheets===null&&(t.stylesheets=new Map),t.stylesheets.set(n,e),(e=n.state.preload)&&(n.state.loading&3)===0&&(t.count++,n=Yo.bind(t),e.addEventListener("load",n),e.addEventListener("error",n))}}var ac=0;function iC(t,e){return t.stylesheets&&t.count===0&&ic(t,t.stylesheets),0<t.count||0<t.imgCount?function(n){var l=setTimeout(function(){if(t.stylesheets&&ic(t,t.stylesheets),t.unsuspend){var i=t.unsuspend;t.unsuspend=null,i()}},6e4+e);0<t.imgBytes&&ac===0&&(ac=62500*TT());var a=setTimeout(function(){if(t.waitingForImages=!1,t.count===0&&(t.stylesheets&&ic(t,t.stylesheets),t.unsuspend)){var i=t.unsuspend;t.unsuspend=null,i()}},(t.imgBytes>ac?50:800)+e);return t.unsuspend=n,function(){t.unsuspend=null,clearTimeout(l),clearTimeout(a)}}:null}function Ry(t){if(t.count===0&&(t.imgCount===0||!t.waitingForImages)){if(t.stylesheets)ic(t,t.stylesheets);else if(t.unsuspend){var e=t.unsuspend;t.unsuspend=null,e()}}}function Yo(){this.count--,Ry(this)}function oC(){this.imgCount--,Ry(this)}var Uc=null;function ic(t,e){t.stylesheets=null,t.unsuspend!==null&&(t.count++,Uc=new Map,e.forEach(uC,t),Uc=null,Yo.call(t))}function uC(t,e){if(!(e.state.loading&4)){var n=Uc.get(t);if(n)var l=n.get(null);else{n=new Map,Uc.set(t,n);for(var a=t.querySelectorAll("link[data-precedence],style[data-precedence]"),i=0;i<a.length;i++){var o=a[i];(o.nodeName==="LINK"||o.getAttribute("media")!=="not all")&&(n.set(o.dataset.precedence,o),l=o)}l&&n.set(null,l)}a=e.instance,o=a.getAttribute("data-precedence"),i=n.get(o)||l,i===l&&n.set(null,a),n.set(o,a),this.count++,l=Yo.bind(this),a.addEventListener("load",l),a.addEventListener("error",l),i?i.parentNode.insertBefore(a,i.nextSibling):(t=t.nodeType===9?t.head:t,t.insertBefore(a,t.firstChild)),e.state.loading|=4}}var Ai={$$typeof:xn,Provider:null,Consumer:null,_currentValue:aa,_currentValue2:aa,_threadCount:0};function cC(t,e,n,l,a,i,o,u,c){this.tag=1,this.containerInfo=t,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=cf(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=cf(0),this.hiddenUpdates=cf(null),this.identifierPrefix=l,this.onUncaughtError=a,this.onCaughtError=i,this.onRecoverableError=o,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=c,this.transitionTypes=null,this.incompleteTransitions=new Map}function Ey(t,e,n,l,a,i,o,u,c,r,s,v){return t=new cC(t,e,n,o,c,r,s,v,u),e=1,i===!0&&(e|=24),i=Se(3,null,null,e),t.current=i,i.stateNode=t,e=ud(),e.refCount++,t.pooledCache=e,e.refCount++,i.memoizedState={element:l,isDehydrated:n,cache:e},fd(i),t}function Ty(t){return t?(t=li,t):li}function Cy(t,e,n,l,a,i){a=Ty(a),l.context===null?l.context=a:l.pendingContext=a,l=Dl(e),l.payload={element:n},i=i===void 0?null:i,i!==null&&(l.callback=i),n=wl(t,l,e),n!==null&&(be(n,t,e),yo(n,t,e))}function Ep(t,e){if(t=t.memoizedState,t!==null&&t.dehydrated!==null){var n=t.retryLane;t.retryLane=n!==0&&n<e?n:e}}function Gd(t,e){Ep(t,e),(t=t.alternate)&&Ep(t,e)}function Oy(t){if(t.tag===13||t.tag===31){var e=ba(t,67108864);e!==null&&be(e,t,67108864),Gd(t,67108864)}}function Tp(t){if(t.tag===13||t.tag===31){var e=Le();e=Is(e);var n=ba(t,e);n!==null&&be(n,t,e),Gd(t,e)}}var Ni=!0;function rC(t,e,n,l){var a=M.T;M.T=null;var i=W.p;try{W.p=2,Xd(t,e,n,l)}finally{W.p=i,M.T=a}}function fC(t,e,n,l){var a=M.T;M.T=null;var i=W.p;try{W.p=8,Xd(t,e,n,l)}finally{W.p=i,M.T=a}}function Xd(t,e,n,l){if(Ni){var a=Qs(l);if(a===null)wf(t,e,l,Hc,n),Cp(t,l);else if(dC(a,t,e,n,l))l.stopPropagation();else if(Cp(t,l),e&4&&-1<sC.indexOf(t)){for(;a!==null;){var i=wi(a);if(i!==null)switch(i.tag){case 3:if(i=i.stateNode,i.current.memoizedState.isDehydrated){var o=$l(i.pendingLanes);if(o!==0){var u=i;for(u.pendingLanes|=2,u.entangledLanes|=2;o;){var c=1<<31-He(o);u.entanglements[1]|=c,o&=~c}Bn(i),(k&6)===0&&(xc=ze()+500,Wo(0,!1))}}break;case 31:case 13:u=ba(i,2),u!==null&&be(u,i,2),kc(),Gd(i,2)}if(i=Qs(l),i===null&&wf(t,e,l,Hc,n),i===a)break;a=i}a!==null&&l.stopPropagation()}else wf(t,e,l,null,n)}}function Qs(t){return t=Ws(t),Qd(t)}var Hc=null;function Qd(t){if(Hc=null,t=na(t),t!==null){var e=Xo(t);if(e===null)t=null;else{var n=e.tag;if(n===13){if(t=Dp(e),t!==null)return t;t=null}else if(n===31){if(t=wp(e),t!==null)return t;t=null}else if(n===3){if(e.stateNode.current.memoizedState.isDehydrated)return e.tag===3?e.stateNode.containerInfo:null;t=null}else e!==t&&(t=null)}}return Hc=t,null}function _y(t){switch(t){case"beforetoggle":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"seeked":case"submit":case"toggle":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"fullscreenerror":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"resize":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(OR()){case Bp:return 2;case jp:return 8;case fc:case _R:return 32;case Vp:return 268435456;default:return 32}default:return 32}}var Zs=!1,Hl=null,Ll=null,Bl=null,qo=new Map,Go=new Map,Rl=[],sC="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".split(" ");function Cp(t,e){switch(t){case"focusin":case"focusout":Hl=null;break;case"dragenter":case"dragleave":Ll=null;break;case"mouseover":case"mouseout":Bl=null;break;case"pointerover":case"pointerout":qo.delete(e.pointerId);break;case"gotpointercapture":case"lostpointercapture":Go.delete(e.pointerId)}}function oo(t,e,n,l,a,i){return t===null||t.nativeEvent!==i?(t={blockedOn:e,domEventName:n,eventSystemFlags:l,nativeEvent:i,targetContainers:[a]},e!==null&&(e=wi(e),e!==null&&Oy(e)),t):(t.eventSystemFlags|=l,e=t.targetContainers,a!==null&&e.indexOf(a)===-1&&e.push(a),t)}function dC(t,e,n,l,a){switch(e){case"focusin":return Hl=oo(Hl,t,e,n,l,a),!0;case"dragenter":return Ll=oo(Ll,t,e,n,l,a),!0;case"mouseover":return Bl=oo(Bl,t,e,n,l,a),!0;case"pointerover":var i=a.pointerId;return qo.set(i,oo(qo.get(i)||null,t,e,n,l,a)),!0;case"gotpointercapture":return i=a.pointerId,Go.set(i,oo(Go.get(i)||null,t,e,n,l,a)),!0}return!1}function Ay(t){var e=na(t.target);if(e!==null){var n=Xo(e);if(n!==null){if(e=n.tag,e===13){if(e=Dp(n),e!==null){t.blockedOn=e,Fv(t.priority,function(){Tp(n)});return}}else if(e===31){if(e=wp(n),e!==null){t.blockedOn=e,Fv(t.priority,function(){Tp(n)});return}}else if(e===3&&n.stateNode.current.memoizedState.isDehydrated){t.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}t.blockedOn=null}function oc(t){if(t.blockedOn!==null)return!1;for(var e=t.targetContainers;0<e.length;){var n=Qs(t.nativeEvent);if(n===null){n=t.nativeEvent;var l=new n.constructor(n.type,n);Jf=l,n.target.dispatchEvent(l),Jf=null}else return e=wi(n),e!==null&&Oy(e),t.blockedOn=n,!1;e.shift()}return!0}function Op(t,e,n){oc(t)&&n.delete(e)}function mC(){Zs=!1,Hl!==null&&oc(Hl)&&(Hl=null),Ll!==null&&oc(Ll)&&(Ll=null),Bl!==null&&oc(Bl)&&(Bl=null),qo.forEach(Op),Go.forEach(Op)}function Yu(t,e){t.blockedOn===e&&(t.blockedOn=null,Zs||(Zs=!0,Bt.unstable_scheduleCallback(Bt.unstable_NormalPriority,mC)))}var qu=null;function _p(t){qu!==t&&(qu=t,Bt.unstable_scheduleCallback(Bt.unstable_NormalPriority,function(){qu===t&&(qu=null);for(var e=0;e<t.length;e+=3){var n=t[e],l=t[e+1],a=t[e+2];if(typeof l!="function"){if(Qd(l||n)===null)continue;break}var i=wi(n);i!==null&&(t.splice(e,3),e-=3,fs(i,{pending:!0,data:a,method:n.method,action:l},l,a))}}))}function xi(t){function e(c){return Yu(c,t)}Hl!==null&&Yu(Hl,t),Ll!==null&&Yu(Ll,t),Bl!==null&&Yu(Bl,t),qo.forEach(e),Go.forEach(e);for(var n=0;n<Rl.length;n++){var l=Rl[n];l.blockedOn===t&&(l.blockedOn=null)}for(;0<Rl.length&&(n=Rl[0],n.blockedOn===null);)Ay(n),n.blockedOn===null&&Rl.shift();if(n=(t.ownerDocument||t).$$reactFormReplay,n!=null)for(l=0;l<n.length;l+=3){var a=n[l],i=n[l+1],o=a[Ee]||null;if(typeof i=="function")o||_p(n);else if(o){var u=null;if(i&&i.hasAttribute("formAction")){if(a=i,o=i[Ee]||null)u=o.formAction;else if(Qd(a)!==null)continue}else u=o.action;typeof u=="function"?n[l+1]=u:(n.splice(l,3),l-=3),_p(n)}}}function Ny(){function t(i){i.canIntercept&&i.info==="react-transition"&&i.intercept({handler:function(){return new Promise(function(o){return a=o})},focusReset:"manual",scroll:"manual"})}function e(){a!==null&&(a(),a=null),l||setTimeout(n,20)}function n(){if(!l&&!navigation.transition){var i=navigation.currentEntry;i&&i.url!=null&&navigation.navigate(i.url,{state:i.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var l=!1,a=null;return navigation.addEventListener("navigate",t),navigation.addEventListener("navigatesuccess",e),navigation.addEventListener("navigateerror",e),setTimeout(n,100),function(){l=!0,navigation.removeEventListener("navigate",t),navigation.removeEventListener("navigatesuccess",e),navigation.removeEventListener("navigateerror",e),a!==null&&(a(),a=null)}}}function Zd(t){this._internalRoot=t}tr.prototype.render=Zd.prototype.render=function(t){var e=this._internalRoot;if(e===null)throw Error(O(409));var n=e.current,l=Le();Cy(n,l,t,e,null,null)};tr.prototype.unmount=Zd.prototype.unmount=function(){var t=this._internalRoot;if(t!==null){this._internalRoot=null;var e=t.containerInfo;Cy(t.current,2,null,t,null,null),kc(),e[Di]=null}};function tr(t){this._internalRoot=t}tr.prototype.unstable_scheduleHydration=function(t){if(t){var e=Zp();t={blockedOn:null,target:t,priority:e};for(var n=0;n<Rl.length&&e!==0&&e<Rl[n].priority;n++);Rl.splice(n,0,t),n===0&&Ay(t)}};var Ap=Np.version;if(Ap!=="19.3.0")throw Error(O(527,Ap,"19.3.0"));W.findDOMNode=function(t){var e=t._reactInternals;if(e===void 0)throw typeof t.render=="function"?Error(O(188)):(t=Object.keys(t).join(","),Error(O(268,t)));return t=vR(e),t=t!==null?Mp(t):null,t=t===null?null:t.stateNode,t};var vC={bundleType:0,version:"19.3.0",rendererPackageName:"react-dom",currentDispatcherRef:M,reconcilerVersion:"19.3.0"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__!="undefined"&&(uo=__REACT_DEVTOOLS_GLOBAL_HOOK__,!uo.isDisabled&&uo.supportsFiber))try{Qo=uo.inject(vC),Ue=uo}catch{}var uo;er.createRoot=function(t,e){if(!xp(t))throw Error(O(299));var n=!1,l="",a=c0,i=r0,o=f0;return e!=null&&(e.unstable_strictMode===!0&&(n=!0),e.identifierPrefix!==void 0&&(l=e.identifierPrefix),e.onUncaughtError!==void 0&&(a=e.onUncaughtError),e.onCaughtError!==void 0&&(i=e.onCaughtError),e.onRecoverableError!==void 0&&(o=e.onRecoverableError)),e=Ey(t,1,!1,null,null,n,l,null,a,i,o,Ny),t[Di]=e.current,Ld(t),new Zd(e)};er.hydrateRoot=function(t,e,n){if(!xp(t))throw Error(O(299));var l=!1,a="",i=c0,o=r0,u=f0,c=null;return n!=null&&(n.unstable_strictMode===!0&&(l=!0),n.identifierPrefix!==void 0&&(a=n.identifierPrefix),n.onUncaughtError!==void 0&&(i=n.onUncaughtError),n.onCaughtError!==void 0&&(o=n.onCaughtError),n.onRecoverableError!==void 0&&(u=n.onRecoverableError),n.formState!==void 0&&(c=n.formState)),e=Ey(t,1,!0,e,n!=null?n:null,l,a,c,i,o,u,Ny),e.context=Ty(null),n=e.current,l=Le(),l=Is(l),a=Dl(l),a.callback=null,wl(n,a,l),n=l,e.current.lanes=n,Ko(e,n),Bn(e),t[Di]=e.current,Ld(t),new tr(e)};er.version="19.3.0"});var My=En((jA,wy)=>{"use strict";function Dy(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__=="undefined"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Dy)}catch(t){console.error(t)}}Dy(),wy.exports=xy()});var Uy=En(nr=>{"use strict";var hC=Symbol.for("react.transitional.element"),pC=Symbol.for("react.fragment");function zy(t,e,n){var l=null;if(n!==void 0&&(l=""+n),e.key!==void 0&&(l=""+e.key),"key"in e){n={};for(var a in e)a!=="key"&&(n[a]=e[a])}else n=e;return e=n.ref,{$$typeof:hC,type:t,key:l,ref:e!==void 0?e:null,props:n}}nr.Fragment=pC;nr.jsx=zy;nr.jsxs=zy});var Gt=En((YA,Hy)=>{"use strict";Hy.exports=Uy()});var zb=D(My());var mn=D(V(),1);var tn=D(V(),1),Kd=D(Gt(),1),gC=Object.defineProperty,$e=(t,e)=>gC(t,"name",{value:e,configurable:!0});function yC(t,e){let n=tn.createContext(e);n.displayName=t+"Context";let l=$e(i=>{let{children:o,...u}=i,c=tn.useMemo(()=>u,Object.values(u));return(0,Kd.jsx)(n.Provider,{value:c,children:o})},"Provider");l.displayName=t+"Provider";function a(i,o={}){let{optional:u=!1}=o,c=tn.useContext(n);if(c)return c;if(e!==void 0)return e;if(!u)throw new Error(`\\`${i}\\` must be used within \\`${t}\\``)}return $e(a,"useContext"),[l,a]}$e(yC,"createContext");function Ve(t,e=[]){let n=[];function l(i,o){let u=tn.createContext(o);u.displayName=i+"Context";let c=n.length;n=[...n,o];let r=$e(v=>{var m;let{scope:f,children:h,...S}=v,b=((m=f==null?void 0:f[t])==null?void 0:m[c])||u,R=tn.useMemo(()=>S,Object.values(S));return(0,Kd.jsx)(b.Provider,{value:R,children:h})},"Provider");r.displayName=i+"Provider";function s(v,f,h={}){var m;let{optional:S=!1}=h,b=((m=f==null?void 0:f[t])==null?void 0:m[c])||u,R=tn.useContext(b);if(R)return R;if(o!==void 0)return o;if(!S)throw new Error(`\\`${v}\\` must be used within \\`${i}\\``)}return $e(s,"useContext"),[r,s]}$e(l,"createContext");let a=$e(()=>{let i=n.map(o=>tn.createContext(o));return $e(function(u){let c=(u==null?void 0:u[t])||i;return tn.useMemo(()=>({[`__scope${t}`]:{...u,[t]:c}}),[u,c])},"useScope")},"createScope");return a.scopeName=t,[l,Ly(a,...e)]}$e(Ve,"createContextScope");function Ly(...t){let e=t[0];if(t.length===1)return e;let n=$e(()=>{let l=t.map(a=>({useScope:a(),scopeName:a.scopeName}));return $e(function(i){let o=l.reduce((u,{useScope:c,scopeName:r})=>{let v=c(i)[`__scope${r}`];return{...u,...v}},{});return tn.useMemo(()=>({[`__scope${e.scopeName}`]:o}),[o])},"useComposedScopes")},"createScope");return n.scopeName=e.scopeName,n}$e(Ly,"composeContextScopes");var By=D(V(),1),SC=Object.defineProperty,Jd=(t,e)=>SC(t,"name",{value:e,configurable:!0});function Pd(t,e){if(typeof t=="function")return t(e);t!=null&&(t.current=e)}Jd(Pd,"setRef");function jy(...t){return e=>{let n=!1,l=t.map(a=>{let i=Pd(a,e);return!n&&typeof i=="function"&&(n=!0),i});if(n)return()=>{for(let a=0;a<l.length;a++){let i=l[a];typeof i=="function"?i():Pd(t[a],null)}}}}Jd(jy,"composeRefs");function I(...t){return By.useCallback(jy(...t),t)}Jd(I,"useComposedRefs");var gt=D(V(),1);var bC=Object.defineProperty,Bi=(t,e)=>bC(t,"name",{value:e,configurable:!0}),Vy=!!(typeof window!="undefined"&&window.document&&window.document.createElement);function ut(t,e,{checkForDefaultPrevented:n=!0}={}){return Bi(function(a){if(t==null||t(a),n===!1||!a||!a.defaultPrevented)return e==null?void 0:e(a)},"handleEvent")}Bi(ut,"composeEventHandlers");function RC(t){var e,n;if(!Vy)throw new Error("Cannot access window outside of the DOM");return(n=(e=t==null?void 0:t.ownerDocument)==null?void 0:e.defaultView)!=null?n:window}Bi(RC,"getOwnerWindow");function Id(t){var e;if(!Vy)throw new Error("Cannot access document outside of the DOM");return(e=t==null?void 0:t.ownerDocument)!=null?e:document}Bi(Id,"getOwnerDocument");function Yy(t,e=!1){let{activeElement:n}=Id(t);if(!(n!=null&&n.nodeName))return null;if(qy(n)&&n.contentDocument)return Yy(n.contentDocument.body,e);if(e){let l=n.getAttribute("aria-activedescendant");if(l){let a=Id(n).getElementById(l);if(a)return a}}return n}Bi(Yy,"getActiveElement");function qy(t){return t.tagName==="IFRAME"}Bi(qy,"isFrame");var Fd=D(V(),1);var Gy=D(V(),1),St=globalThis!=null&&globalThis.document?Gy.useLayoutEffect:()=>{};var EC=Object.defineProperty,TC=(t,e)=>EC(t,"name",{value:e,configurable:!0}),CC=Fd[" useId ".trim().toString()]||(()=>{}),OC=0;function Zl(t){let[e,n]=Fd.useState(CC());return St(()=>{t||n(l=>l!=null?l:String(OC++))},[t]),t||(e?`radix-${e}`:"")}TC(Zl,"useId");var en=D(V(),1);var lr=!1;var fn=D(V(),1);var ji=D(V(),1),_C=Object.defineProperty,AC=(t,e)=>_C(t,"name",{value:e,configurable:!0}),Xy=ji[" useEffectEvent ".trim().toString()],Qy=ji[" useInsertionEffect ".trim().toString()];function kd(t){if(typeof Xy=="function")return Xy(t);let e=ji.useRef(()=>{throw new Error("Cannot call an event handler while rendering.")});return typeof Qy=="function"?Qy(()=>{e.current=t}):St(()=>{e.current=t}),ji.useMemo(()=>((...n)=>{var l;return(l=e.current)==null?void 0:l.call(e,...n)}),[])}AC(kd,"useEffectEvent");var NC=Object.defineProperty,eu=(t,e)=>NC(t,"name",{value:e,configurable:!0}),xC=en[" useInsertionEffect ".trim().toString()]||St;function Vi({prop:t,defaultProp:e,onChange:n=eu(()=>{},"onChange"),caller:l}){let[a,i,o]=Ky({defaultProp:e,onChange:n}),u=t!==void 0,c=u?t:a;if(lr){let s=en.useRef(t!==void 0);en.useEffect(()=>{let v=s.current;v!==u&&console.warn(`${l} is changing from ${v?"controlled":"uncontrolled"} to ${u?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),s.current=u},[u,l])}let r=en.useCallback(s=>{var v;if(u){let f=Py(s)?s(t):s;f!==t&&((v=o.current)==null||v.call(o,f))}else i(s)},[u,t,i,o]);return[c,r]}eu(Vi,"useControllableState");function Ky({defaultProp:t,onChange:e}){let[n,l]=en.useState(t),a=en.useRef(n),i=en.useRef(e);return xC(()=>{i.current=e},[e]),en.useEffect(()=>{var o;a.current!==n&&((o=i.current)==null||o.call(i,n),a.current=n)},[n,a]),[n,l,i]}eu(Ky,"useUncontrolledState");function Py(t){return typeof t=="function"}eu(Py,"isFunction");var Zy=Symbol("RADIX:SYNC_STATE");function DC(t,e,n,l){let{prop:a,defaultProp:i,onChange:o,caller:u}=e,c=a!==void 0,r=kd(o);if(lr){let R=fn.useRef(a!==void 0);fn.useEffect(()=>{let m=R.current;m!==c&&console.warn(`${u} is changing from ${m?"controlled":"uncontrolled"} to ${c?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),R.current=c},[c,u])}let s=[{...n,state:i}];l&&s.push(l);let[v,f]=fn.useReducer((R,m)=>{if(m.type===Zy)return{...R,state:m.state};let d=t(R,m);return c&&!Object.is(d.state,R.state)&&r(d.state),d},...s),h=v.state,S=fn.useRef(h);fn.useEffect(()=>{S.current!==h&&(S.current=h,c||r(h))},[h,S,c]);let b=fn.useMemo(()=>a!==void 0?{...v,state:a}:v,[v,a]);return fn.useEffect(()=>{c&&!Object.is(a,v.state)&&f({type:Zy,state:a})},[a,v.state,c]),[b,f]}eu(DC,"useControllableStateReducer");var ct=D(V(),1);var $y=D(V(),1),tS=D(Ga(),1);var $t=D(V(),1);var wC=Object.defineProperty,sn=(t,e)=>wC(t,"name",{value:e,configurable:!0});function Ye(t){let e=$t.forwardRef((n,l)=>{var f;let{children:a,...i}=n,o=null,u=!1,c=[];Wd(a)&&typeof ar=="function"&&(a=ar(a._payload)),$t.Children.forEach(a,h=>{var S;if(ky(h)){u=!0;let b=h,R="child"in b.props?b.props.child:b.props.children;Wd(R)&&typeof ar=="function"&&(R=ar(R._payload)),o=zC(b,R),c.push((S=o==null?void 0:o.props)==null?void 0:S.children)}else c.push(h)}),o?o=$t.cloneElement(o,void 0,c):!u&&$t.Children.count(a)===1&&$t.isValidElement(a)&&(o=a);let r=o?Fy(o):void 0,s=I(l,r);if(!o){if(a||a===0)throw new Error(u?LC(t):HC(t));return a}let v=Iy(i,(f=o.props)!=null?f:{});return o.type!==$t.Fragment&&(v.ref=l?s:r),$t.cloneElement(o,v)});return e.displayName=`${t}.Slot`,e}sn(Ye,"createSlot");var Jy=Symbol.for("radix.slottable");function MC(t){let e=sn(n=>"child"in n?n.children(n.child):n.children,"Slottable");return e.displayName=`${t}.Slottable`,e.__radixId=Jy,e}sn(MC,"createSlottable");var zC=sn((t,e)=>{if("child"in t.props){let n=t.props.child;return $t.isValidElement(n)?$t.cloneElement(n,void 0,t.props.children(n.props.children)):null}return $t.isValidElement(e)?e:null},"getSlottableElementFromSlottable");function Iy(t,e){let n={...e};for(let l in e){let a=t[l],i=e[l];/^on[A-Z]/.test(l)?a&&i?n[l]=(...u)=>{let c=i(...u);return a(...u),c}:a&&(n[l]=a):l==="style"?n[l]={...a,...i}:l==="className"&&(n[l]=[a,i].filter(Boolean).join(" "))}return{...t,...n}}sn(Iy,"mergeProps");function Fy(t){var l,a;let e=(l=Object.getOwnPropertyDescriptor(t.props,"ref"))==null?void 0:l.get,n=e&&"isReactWarning"in e&&e.isReactWarning;return n?t.ref:(e=(a=Object.getOwnPropertyDescriptor(t,"ref"))==null?void 0:a.get,n=e&&"isReactWarning"in e&&e.isReactWarning,n?t.props.ref:t.props.ref||t.ref)}sn(Fy,"getElementRef");function ky(t){return $t.isValidElement(t)&&typeof t.type=="function"&&"__radixId"in t.type&&t.type.__radixId===Jy}sn(ky,"isSlottable");var UC=Symbol.for("react.lazy");function Wd(t){return t!=null&&typeof t=="object"&&"$$typeof"in t&&t.$$typeof===UC&&"_payload"in t&&Wy(t._payload)}sn(Wd,"isLazyComponent");function Wy(t){return typeof t=="object"&&t!==null&&"then"in t}sn(Wy,"isPromiseLike");var HC=sn(t=>`${t} failed to slot onto its children. Expected a single React element child or \\`Slottable\\`.`,"createSlotError"),LC=sn(t=>`${t} failed to slot onto its \\`Slottable\\`. Expected \\`Slottable\\` to receive a single React element child.`,"createSlottableError"),ar=$t[" use ".trim().toString()];var eS=D(Gt(),1),BC=Object.defineProperty,jC=(t,e)=>BC(t,"name",{value:e,configurable:!0}),VC=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Tt=VC.reduce((t,e)=>{let n=Ye(`Primitive.${e}`),l=$y.forwardRef((a,i)=>{let{asChild:o,...u}=a,c=o?n:e;return typeof window!="undefined"&&(window[Symbol.for("radix-ui")]=!0),(0,eS.jsx)(c,{...u,ref:i})});return l.displayName=`Primitive.${e}`,{...t,[e]:l}},{});function $d(t,e){t&&tS.flushSync(()=>t.dispatchEvent(e))}jC($d,"dispatchDiscreteCustomEvent");var Yi=D(V(),1),YC=Object.defineProperty,qC=(t,e)=>YC(t,"name",{value:e,configurable:!0});function Te(t){let e=Yi.useRef(t);return Yi.useEffect(()=>{e.current=t}),Yi.useMemo(()=>((...n)=>{var l;return(l=e.current)==null?void 0:l.call(e,...n)}),[])}qC(Te,"useCallbackRef");var lS=D(Gt(),1),GC=Object.defineProperty,Xt=(t,e)=>GC(t,"name",{value:e,configurable:!0}),tm="dismissableLayer.update",XC="dismissableLayer.pointerDownOutside",QC="dismissableLayer.focusOutside",nS,aS=ct.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),ir=ct.forwardRef(Xt(function(e,n){var P;let{disableOutsidePointerEvents:l=!1,deferPointerDownOutside:a=!1,onEscapeKeyDown:i,onPointerDownOutside:o,onFocusOutside:u,onInteractOutside:c,onDismiss:r,...s}=e,v=ct.useContext(aS),[f,h]=ct.useState(null),S=(P=f==null?void 0:f.ownerDocument)!=null?P:globalThis==null?void 0:globalThis.document,[,b]=ct.useState({}),R=I(n,h),m=Array.from(v.layers),[d]=[...v.layersWithOutsidePointerEventsDisabled].slice(-1),p=d?m.indexOf(d):-1,g=f?m.indexOf(f):-1,E=v.layersWithOutsidePointerEventsDisabled.size>0,C=g>=p,T=ct.useRef(!1),_=iS(w=>{o==null||o(w),c==null||c(w),w.defaultPrevented||r==null||r()},{ownerDocument:S,deferPointerDownOutside:a,isDeferredPointerDownOutsideRef:T,dismissableSurfaces:v.dismissableSurfaces,shouldHandlePointerDownOutside:ct.useCallback(w=>{if(!(w instanceof Node))return!1;let q=[...v.branches].some(at=>at.contains(w));return C&&!q},[v.branches,C])}),N=oS(w=>{if(a&&T.current)return;let q=w.target;[...v.branches].some(Q=>Q.contains(q))||(u==null||u(w),c==null||c(w),w.defaultPrevented||r==null||r())},S),A=f?g===m.length-1:!1,H=Te(w=>{w.key==="Escape"&&(i==null||i(w),!w.defaultPrevented&&r&&(w.preventDefault(),r()))});return ct.useEffect(()=>{if(A)return S.addEventListener("keydown",H,{capture:!0}),()=>S.removeEventListener("keydown",H,{capture:!0})},[S,A,H]),ct.useEffect(()=>{if(f)return l&&(v.layersWithOutsidePointerEventsDisabled.size===0&&(nS=S.body.style.pointerEvents,S.body.style.pointerEvents="none"),v.layersWithOutsidePointerEventsDisabled.add(f)),v.layers.add(f),em(),()=>{l&&(v.layersWithOutsidePointerEventsDisabled.delete(f),v.layersWithOutsidePointerEventsDisabled.size===0&&(S.body.style.pointerEvents=nS))}},[f,S,l,v]),ct.useEffect(()=>()=>{f&&(v.layers.delete(f),v.layersWithOutsidePointerEventsDisabled.delete(f),em())},[f,v]),ct.useEffect(()=>{let w=Xt(()=>b({}),"handleUpdate");return document.addEventListener(tm,w),()=>document.removeEventListener(tm,w)},[]),(0,lS.jsx)(Tt.div,{...s,ref:R,style:{pointerEvents:E?C?"auto":"none":void 0,...e.style},onFocusCapture:ut(e.onFocusCapture,N.onFocusCapture),onBlurCapture:ut(e.onBlurCapture,N.onBlurCapture),onPointerDownCapture:ut(e.onPointerDownCapture,_.onPointerDownCapture)})},"DismissableLayer"));function nm(){let t=ct.useContext(aS),[e,n]=ct.useState(null);return ct.useEffect(()=>{if(e)return t.dismissableSurfaces.add(e),()=>{t.dismissableSurfaces.delete(e)}},[e,t.dismissableSurfaces]),n}Xt(nm,"useDismissableLayerSurface");var ZC=Xt(()=>!0,"IS_TRUE");function iS(t,e){let{ownerDocument:n=globalThis==null?void 0:globalThis.document,deferPointerDownOutside:l=!1,isDeferredPointerDownOutsideRef:a,dismissableSurfaces:i,shouldHandlePointerDownOutside:o=ZC}=e,u=Te(t),c=ct.useRef(!1),r=ct.useRef(!1),s=ct.useRef(new Map),v=ct.useRef(()=>{});return ct.useEffect(()=>{function f(){r.current=!1,a.current=!1,s.current.clear()}Xt(f,"resetOutsideInteraction");function h(){return Array.from(s.current.values()).some(Boolean)}Xt(h,"isOutsideInteractionIntercepted");function S(p){if(!r.current)return;let g=p.target;g instanceof Node&&[...i].some(C=>C.contains(g))||s.current.set(p.type,!0),p.type==="click"&&window.setTimeout(()=>{r.current&&v.current()},0)}Xt(S,"handleInteractionCapture");function b(p){r.current&&s.current.set(p.type,!1)}Xt(b,"handleInteractionBubble");let R=Xt(p=>{if(p.target&&!c.current){let E=function(){n.removeEventListener("click",v.current);let T=h();f(),T||lm(XC,u,C,{discrete:!0})};var g=E;if(Xt(E,"handleAndDispatchPointerDownOutsideEvent"),!o(p.target)){n.removeEventListener("click",v.current),f(),c.current=!1;return}let C={originalEvent:p};r.current=!0,a.current=l&&p.button===0,s.current.clear(),!l||p.button!==0?E():(n.removeEventListener("click",v.current),v.current=E,n.addEventListener("click",v.current,{once:!0}))}else n.removeEventListener("click",v.current),f();c.current=!1},"handlePointerDown"),m=["pointerup","mousedown","mouseup","touchstart","touchend","click"];for(let p of m)n.addEventListener(p,S,!0),n.addEventListener(p,b);let d=window.setTimeout(()=>{n.addEventListener("pointerdown",R)},0);return()=>{window.clearTimeout(d),n.removeEventListener("pointerdown",R),n.removeEventListener("click",v.current);for(let p of m)n.removeEventListener(p,S,!0),n.removeEventListener(p,b)}},[n,u,l,a,i,o]),{onPointerDownCapture:Xt(()=>c.current=!0,"onPointerDownCapture")}}Xt(iS,"usePointerDownOutside");function oS(t,e=globalThis==null?void 0:globalThis.document){let n=Te(t),l=ct.useRef(!1);return ct.useEffect(()=>{let a=Xt(i=>{i.target&&!l.current&&lm(QC,n,{originalEvent:i},{discrete:!1})},"handleFocus");return e.addEventListener("focusin",a),()=>e.removeEventListener("focusin",a)},[e,n]),{onFocusCapture:Xt(()=>l.current=!0,"onFocusCapture"),onBlurCapture:Xt(()=>l.current=!1,"onBlurCapture")}}Xt(oS,"useFocusOutside");function em(){let t=new CustomEvent(tm);document.dispatchEvent(t)}Xt(em,"dispatchUpdate");function lm(t,e,n,{discrete:l}){let a=n.originalEvent.target,i=new CustomEvent(t,{bubbles:!1,cancelable:!0,detail:n});e&&a.addEventListener(t,e,{once:!0}),l?$d(a,i):a.dispatchEvent(i)}Xt(lm,"handleAndDispatchCustomEvent");var nn=D(V(),1);var rS=D(Gt(),1),KC=Object.defineProperty,ve=(t,e)=>KC(t,"name",{value:e,configurable:!0}),am="focusScope.autoFocusOnMount",im="focusScope.autoFocusOnUnmount",uS={bubbles:!1,cancelable:!0},or=nn.forwardRef(ve(function(e,n){let{loop:l=!1,trapped:a=!1,onMountAutoFocus:i,onUnmountAutoFocus:o,...u}=e,[c,r]=nn.useState(null),s=Te(i),v=Te(o),f=nn.useRef(null),h=I(n,r),S=nn.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;nn.useEffect(()=>{if(a){let p=function(T){if(S.paused||!c)return;let _=T.target;c.contains(_)?f.current=_:ol(f.current,{select:!0})},g=function(T){if(S.paused||!c)return;let _=T.relatedTarget;_!==null&&(c.contains(_)||ol(f.current,{select:!0}))},E=function(T){if(document.activeElement===document.body)for(let N of T)N.removedNodes.length>0&&ol(c)};var R=p,m=g,d=E;ve(p,"handleFocusIn"),ve(g,"handleFocusOut"),ve(E,"handleMutations"),document.addEventListener("focusin",p),document.addEventListener("focusout",g);let C=new MutationObserver(E);return c&&C.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",p),document.removeEventListener("focusout",g),C.disconnect()}}},[a,c,S.paused]),nn.useEffect(()=>{if(c){cS.add(S);let R=document.activeElement;if(!c.contains(R)){let d=new CustomEvent(am,uS);c.addEventListener(am,s),c.dispatchEvent(d),d.defaultPrevented||(fS(hS(cm(c)),{select:!0}),document.activeElement===R&&ol(c))}return()=>{c.removeEventListener(am,s),setTimeout(()=>{let d=new CustomEvent(im,uS);c.addEventListener(im,v),c.dispatchEvent(d),d.defaultPrevented||ol(R!=null?R:document.body,{select:!0}),c.removeEventListener(im,v),cS.remove(S)},0)}}},[c,s,v,S]);let b=nn.useCallback(R=>{if(!l&&!a||S.paused)return;let m=R.key==="Tab"&&!R.altKey&&!R.ctrlKey&&!R.metaKey,d=document.activeElement;if(m&&d){let p=R.currentTarget,[g,E]=sS(p);g&&E?!R.shiftKey&&d===E?(R.preventDefault(),l&&ol(g,{select:!0})):R.shiftKey&&d===g&&(R.preventDefault(),l&&ol(E,{select:!0})):d===p&&R.preventDefault()}},[l,a,S.paused]);return(0,rS.jsx)(Tt.div,{tabIndex:-1,...u,ref:h,onKeyDown:b})},"FocusScope"));function fS(t,{select:e=!1}={}){let n=document.activeElement;for(let l of t)if(ol(l,{select:e}),document.activeElement!==n)return}ve(fS,"focusFirst");function sS(t){let e=cm(t),n=om(e,t),l=om(e.reverse(),t);return[n,l]}ve(sS,"getTabbableEdges");function cm(t){let e=[],n=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:ve(l=>{let a=l.tagName==="INPUT"&&l.type==="hidden";return l.disabled||l.hidden||a?NodeFilter.FILTER_SKIP:l.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},"acceptNode")});for(;n.nextNode();)e.push(n.currentNode);return e}ve(cm,"getTabbableCandidates");function om(t,e){let n=typeof e.checkVisibility=="function"&&e.checkVisibility({checkVisibilityCSS:!0});for(let l of t)if(!(n?!l.checkVisibility({checkVisibilityCSS:!0}):dS(l,{upTo:e})))return l}ve(om,"findVisible");function dS(t,{upTo:e}){if(getComputedStyle(t).visibility==="hidden")return!0;for(;t;){if(e!==void 0&&t===e)return!1;if(getComputedStyle(t).display==="none")return!0;t=t.parentElement}return!1}ve(dS,"isHidden");function mS(t){return t instanceof HTMLInputElement&&"select"in t}ve(mS,"isSelectableInput");function ol(t,{select:e=!1}={}){if(t&&t.focus){let n=document.activeElement;t.focus({preventScroll:!0}),t!==n&&mS(t)&&e&&t.select()}}ve(ol,"focus");var cS=vS();function vS(){let t=[];return{add(e){let n=t[0];e!==n&&(n==null||n.pause()),t=um(t,e),t.unshift(e)},remove(e){var n;t=um(t,e),(n=t[0])==null||n.resume()}}}ve(vS,"createFocusScopesStack");function um(t,e){let n=[...t],l=n.indexOf(e);return l!==-1&&n.splice(l,1),n}ve(um,"arrayRemove");function hS(t){return t.filter(e=>e.tagName!=="A")}ve(hS,"removeLinks");var ur=D(V(),1),pS=D(Ga(),1);var gS=D(Gt(),1),PC=Object.defineProperty,JC=(t,e)=>PC(t,"name",{value:e,configurable:!0}),cr=ur.forwardRef(JC(function(e,n){var c;let{container:l,...a}=e,[i,o]=ur.useState(!1);St(()=>o(!0),[]);let u=l||i&&((c=globalThis==null?void 0:globalThis.document)==null?void 0:c.body);return u?pS.createPortal((0,gS.jsx)(Tt.div,{...a,ref:n}),u):null},"Portal"));var te=D(V(),1);var yS=D(V(),1),IC=Object.defineProperty,ul=(t,e)=>IC(t,"name",{value:e,configurable:!0});function SS(t,e){return yS.useReducer((n,l)=>{let a=e[n][l];return a!=null?a:n},t)}ul(SS,"useStateMachine");var Gi=ul(t=>{let{present:e,children:n}=t,l=bS(e),a=typeof n=="function"?n({present:l.isPresent}):te.Children.only(n),i=RS(l.ref,ES(a));return typeof n=="function"||l.isPresent?te.cloneElement(a,{ref:i}):null},"Presence");function bS(t){let[e,n]=te.useState(),l=te.useRef(null),a=te.useRef(t),i=te.useRef("none"),o=te.useRef(void 0),u=t?"mounted":"unmounted",[c,r]=SS(u,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return te.useEffect(()=>{var s;c==="mounted"?(i.current=(s=o.current)!=null?s:qi(l.current),o.current=void 0):i.current="none"},[c]),St(()=>{let s=l.current,v=a.current;if(v!==t){let h=i.current,S=qi(s);t?(o.current=S,r("MOUNT")):S==="none"||(s==null?void 0:s.display)==="none"?r("UNMOUNT"):r(v&&h!==S?"ANIMATION_OUT":"UNMOUNT"),a.current=t}},[t,r]),St(()=>{var s;if(e){let v,f=(s=e.ownerDocument.defaultView)!=null?s:window,h=ul(b=>{let m=qi(l.current).includes(CSS.escape(b.animationName));if(b.target===e&&m&&(r("ANIMATION_END"),!a.current)){let d=e.style.animationFillMode;e.style.animationFillMode="forwards",v=f.setTimeout(()=>{e.style.animationFillMode==="forwards"&&(e.style.animationFillMode=d)})}},"handleAnimationEnd"),S=ul(b=>{b.target===e&&(i.current=qi(l.current))},"handleAnimationStart");return e.addEventListener("animationstart",S),e.addEventListener("animationcancel",h),e.addEventListener("animationend",h),()=>{f.clearTimeout(v),e.removeEventListener("animationstart",S),e.removeEventListener("animationcancel",h),e.removeEventListener("animationend",h)}}else r("ANIMATION_END")},[e,r]),{isPresent:["mounted","unmountSuspended"].includes(c),ref:te.useCallback(s=>{if(s){let v=getComputedStyle(s);l.current=v,o.current=qi(v)}else l.current=null;n(s)},[])}}ul(bS,"usePresence");function rm(t,e){if(typeof t=="function")return t(e);t!=null&&(t.current=e)}ul(rm,"setRef");function RS(...t){let e=te.useRef(t);return e.current=t,te.useCallback(n=>{let l=e.current,a=!1,i=l.map(o=>{let u=rm(o,n);return!a&&typeof u=="function"&&(a=!0),u});if(a)return()=>{for(let o=0;o<i.length;o++){let u=i[o];typeof u=="function"?u():rm(l[o],null)}}},[])}ul(RS,"useStableComposedRefs");function qi(t){return(t==null?void 0:t.animationName)||"none"}ul(qi,"getAnimationName");function ES(t){var l,a;let e=(l=Object.getOwnPropertyDescriptor(t.props,"ref"))==null?void 0:l.get,n=e&&"isReactWarning"in e&&e.isReactWarning;return n?t.ref:(e=(a=Object.getOwnPropertyDescriptor(t,"ref"))==null?void 0:a.get,n=e&&"isReactWarning"in e&&e.isReactWarning,n?t.props.ref:t.props.ref||t.ref)}ul(ES,"getElementRef");var TS=D(V(),1),FC=Object.defineProperty,sm=(t,e)=>FC(t,"name",{value:e,configurable:!0}),rr=0,jn=null;function kC(t){return Xi(),t.children}sm(kC,"FocusGuards");function Xi(){TS.useEffect(()=>{jn||(jn={start:fm(),end:fm()});let{start:t,end:e}=jn;return document.body.firstElementChild!==t&&document.body.insertAdjacentElement("afterbegin",t),document.body.lastElementChild!==e&&document.body.insertAdjacentElement("beforeend",e),rr++,()=>{rr===1&&(jn==null||jn.start.remove(),jn==null||jn.end.remove(),jn=null),rr=Math.max(0,rr-1)}},[])}sm(Xi,"useFocusGuards");function fm(){let t=document.createElement("span");return t.setAttribute("data-radix-focus-guard",""),t.tabIndex=0,t.style.outline="none",t.style.opacity="0",t.style.position="fixed",t.style.pointerEvents="none",t}sm(fm,"createFocusGuard");var Ce=function(){return Ce=Object.assign||function(e){for(var n,l=1,a=arguments.length;l<a;l++){n=arguments[l];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},Ce.apply(this,arguments)};function fr(t,e){var n={};for(var l in t)Object.prototype.hasOwnProperty.call(t,l)&&e.indexOf(l)<0&&(n[l]=t[l]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,l=Object.getOwnPropertySymbols(t);a<l.length;a++)e.indexOf(l[a])<0&&Object.prototype.propertyIsEnumerable.call(t,l[a])&&(n[l[a]]=t[l[a]]);return n}function CS(t,e,n){if(n||arguments.length===2)for(var l=0,a=e.length,i;l<a;l++)(i||!(l in e))&&(i||(i=Array.prototype.slice.call(e,0,l)),i[l]=e[l]);return t.concat(i||Array.prototype.slice.call(e))}var hr=D(V());var oe=D(V());var Ea="right-scroll-bar-position",Ta="width-before-scroll-bar",dm="with-scroll-bars-hidden",mm="--removed-body-scroll-bar-size";function sr(t,e){return typeof t=="function"?t(e):t&&(t.current=e),t}var OS=D(V());function _S(t,e){var n=(0,OS.useState)(function(){return{value:t,callback:e,facade:{get current(){return n.value},set current(l){var a=n.value;a!==l&&(n.value=l,n.callback(l,a))}}}})[0];return n.callback=e,n.facade}var dr=D(V());var WC=typeof window!="undefined"?dr.useLayoutEffect:dr.useEffect,AS=new WeakMap;function vm(t,e){var n=_S(e||null,function(l){return t.forEach(function(a){return sr(a,l)})});return WC(function(){var l=AS.get(n);if(l){var a=new Set(l),i=new Set(t),o=n.current;a.forEach(function(u){i.has(u)||sr(u,null)}),i.forEach(function(u){a.has(u)||sr(u,o)})}AS.set(n,t)},[t]),n}function $C(t){return t}function tO(t,e){e===void 0&&(e=$C);var n=[],l=!1,a={read:function(){if(l)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:t},useMedium:function(i){var o=e(i,l);return n.push(o),function(){n=n.filter(function(u){return u!==o})}},assignSyncMedium:function(i){for(l=!0;n.length;){var o=n;n=[],o.forEach(i)}n={push:function(u){return i(u)},filter:function(){return n}}},assignMedium:function(i){l=!0;var o=[];if(n.length){var u=n;n=[],u.forEach(i),o=n}var c=function(){var s=o;o=[],s.forEach(i)},r=function(){return Promise.resolve().then(c)};r(),n={push:function(s){o.push(s),r()},filter:function(s){return o=o.filter(s),n}}}};return a}function hm(t){t===void 0&&(t={});var e=tO(null);return e.options=Ce({async:!0,ssr:!1},t),e}var NS=D(V()),xS=function(t){var e=t.sideCar,n=fr(t,["sideCar"]);if(!e)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var l=e.read();if(!l)throw new Error("Sidecar medium not found");return NS.createElement(l,Ce({},n))};xS.isSideCarExport=!0;function pm(t,e){return t.useMedium(e),xS}var mr=hm();var gm=function(){},nu=oe.forwardRef(function(t,e){var n=oe.useRef(null),l=oe.useState({onScrollCapture:gm,onWheelCapture:gm,onTouchMoveCapture:gm}),a=l[0],i=l[1],o=t.forwardProps,u=t.children,c=t.className,r=t.removeScrollBar,s=t.enabled,v=t.shards,f=t.sideCar,h=t.noRelative,S=t.noIsolation,b=t.inert,R=t.allowPinchZoom,m=t.as,d=m===void 0?"div":m,p=t.gapMode,g=fr(t,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),E=f,C=vm([n,e]),T=Ce(Ce({},g),a);return oe.createElement(oe.Fragment,null,s&&oe.createElement(E,{sideCar:mr,removeScrollBar:r,shards:v,noRelative:h,noIsolation:S,inert:b,setCallbacks:i,allowPinchZoom:!!R,lockRef:n,gapMode:p}),o?oe.cloneElement(oe.Children.only(u),Ce(Ce({},T),{ref:C})):oe.createElement(d,Ce({},T,{className:c,ref:C}),u))});nu.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};nu.classNames={fullWidth:Ta,zeroRight:Ea};var bt=D(V());var Zi=D(V());var MS=D(V());var DS;var wS=function(){if(DS)return DS;if(typeof __webpack_nonce__!="undefined")return __webpack_nonce__};function eO(){if(!document)return null;var t=document.createElement("style");t.type="text/css";var e=wS();return e&&t.setAttribute("nonce",e),t}function nO(t,e){t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e))}function lO(t){var e=document.head||document.getElementsByTagName("head")[0];e.appendChild(t)}var ym=function(){var t=0,e=null;return{add:function(n){t==0&&(e=eO())&&(nO(e,n),lO(e)),t++},remove:function(){t--,!t&&e&&(e.parentNode&&e.parentNode.removeChild(e),e=null)}}};var Sm=function(){var t=ym();return function(e,n){MS.useEffect(function(){return t.add(e),function(){t.remove()}},[e&&n])}};var lu=function(){var t=Sm(),e=function(n){var l=n.styles,a=n.dynamic;return t(l,a),null};return e};var aO={left:0,top:0,right:0,gap:0},bm=function(t){return parseInt(t||"",10)||0},iO=function(t){var e=window.getComputedStyle(document.body),n=e[t==="padding"?"paddingLeft":"marginLeft"],l=e[t==="padding"?"paddingTop":"marginTop"],a=e[t==="padding"?"paddingRight":"marginRight"];return[bm(n),bm(l),bm(a)]},Rm=function(t){if(t===void 0&&(t="margin"),typeof window=="undefined")return aO;var e=iO(t),n=document.documentElement.clientWidth,l=window.innerWidth;return{left:e[0],top:e[1],right:e[2],gap:Math.max(0,l-n+e[2]-e[0])}};var oO=lu(),Qi="data-scroll-locked",uO=function(t,e,n,l){var a=t.left,i=t.top,o=t.right,u=t.gap;return n===void 0&&(n="margin"),`\n .`.concat(dm,` {\n overflow: hidden `).concat(l,`;\n padding-right: `).concat(u,"px ").concat(l,`;\n }\n body[`).concat(Qi,`] {\n overflow: hidden `).concat(l,`;\n overscroll-behavior: contain;\n `).concat([e&&"position: relative ".concat(l,";"),n==="margin"&&`\n padding-left: `.concat(a,`px;\n padding-top: `).concat(i,`px;\n padding-right: `).concat(o,`px;\n margin-left:0;\n margin-top:0;\n margin-right: `).concat(u,"px ").concat(l,`;\n `),n==="padding"&&"padding-right: ".concat(u,"px ").concat(l,";")].filter(Boolean).join(""),`\n }\n \n .`).concat(Ea,` {\n right: `).concat(u,"px ").concat(l,`;\n }\n \n .`).concat(Ta,` {\n margin-right: `).concat(u,"px ").concat(l,`;\n }\n \n .`).concat(Ea," .").concat(Ea,` {\n right: 0 `).concat(l,`;\n }\n \n .`).concat(Ta," .").concat(Ta,` {\n margin-right: 0 `).concat(l,`;\n }\n \n body[`).concat(Qi,`] {\n `).concat(mm,": ").concat(u,`px;\n }\n`)},zS=function(){var t=parseInt(document.body.getAttribute(Qi)||"0",10);return isFinite(t)?t:0},cO=function(){Zi.useEffect(function(){return document.body.setAttribute(Qi,(zS()+1).toString()),function(){var t=zS()-1;t<=0?document.body.removeAttribute(Qi):document.body.setAttribute(Qi,t.toString())}},[])},Em=function(t){var e=t.noRelative,n=t.noImportant,l=t.gapMode,a=l===void 0?"margin":l;cO();var i=Zi.useMemo(function(){return Rm(a)},[a]);return Zi.createElement(oO,{styles:uO(i,!e,a,n?"":"!important")})};var Tm=!1;if(typeof window!="undefined")try{au=Object.defineProperty({},"passive",{get:function(){return Tm=!0,!0}}),window.addEventListener("test",au,au),window.removeEventListener("test",au,au)}catch{Tm=!1}var au,Ca=Tm?{passive:!1}:!1;var rO=function(t){return t.tagName==="TEXTAREA"},US=function(t,e){if(!(t instanceof Element))return!1;var n=window.getComputedStyle(t);return n[e]!=="hidden"&&!(n.overflowY===n.overflowX&&!rO(t)&&n[e]==="visible")},fO=function(t){return US(t,"overflowY")},sO=function(t){return US(t,"overflowX")},Cm=function(t,e){var n=e.ownerDocument,l=e;do{typeof ShadowRoot!="undefined"&&l instanceof ShadowRoot&&(l=l.host);var a=HS(t,l);if(a){var i=LS(t,l),o=i[1],u=i[2];if(o>u)return!0}l=l.parentNode}while(l&&l!==n.body);return!1},dO=function(t){var e=t.scrollTop,n=t.scrollHeight,l=t.clientHeight;return[e,n,l]},mO=function(t){var e=t.scrollLeft,n=t.scrollWidth,l=t.clientWidth;return[e,n,l]},HS=function(t,e){return t==="v"?fO(e):sO(e)},LS=function(t,e){return t==="v"?dO(e):mO(e)},vO=function(t,e){return t==="h"&&e==="rtl"?-1:1},BS=function(t,e,n,l,a){var i=vO(t,window.getComputedStyle(e).direction),o=i*l,u=n.target,c=e.contains(u),r=!1,s=o>0,v=0,f=0;do{if(!u)break;var h=LS(t,u),S=h[0],b=h[1],R=h[2],m=b-R-i*S;(S||m)&&HS(t,u)&&(v+=m,f+=S);var d=u.parentNode;u=d&&d.nodeType===Node.DOCUMENT_FRAGMENT_NODE?d.host:d}while(!c&&u!==document.body||c&&(e.contains(u)||e===u));return(s&&(a&&Math.abs(v)<1||!a&&o>v)||!s&&(a&&Math.abs(f)<1||!a&&-o>f))&&(r=!0),r};var vr=function(t){return"changedTouches"in t?[t.changedTouches[0].clientX,t.changedTouches[0].clientY]:[0,0]},jS=function(t){return[t.deltaX,t.deltaY]},VS=function(t){return t&&"current"in t?t.current:t},hO=function(t,e){return t[0]===e[0]&&t[1]===e[1]},pO=function(t){return`\n .block-interactivity-`.concat(t,` {pointer-events: none;}\n .allow-interactivity-`).concat(t,` {pointer-events: all;}\n`)},gO=0,Ki=[];function YS(t){var e=bt.useRef([]),n=bt.useRef([0,0]),l=bt.useRef(),a=bt.useState(gO++)[0],i=bt.useState(lu)[0],o=bt.useRef(t);bt.useEffect(function(){o.current=t},[t]),bt.useEffect(function(){if(t.inert){document.body.classList.add("block-interactivity-".concat(a));var b=CS([t.lockRef.current],(t.shards||[]).map(VS),!0).filter(Boolean);return b.forEach(function(R){return R.classList.add("allow-interactivity-".concat(a))}),function(){document.body.classList.remove("block-interactivity-".concat(a)),b.forEach(function(R){return R.classList.remove("allow-interactivity-".concat(a))})}}},[t.inert,t.lockRef.current,t.shards]);var u=bt.useCallback(function(b,R){if("touches"in b&&b.touches.length===2||b.type==="wheel"&&b.ctrlKey)return!o.current.allowPinchZoom;var m=vr(b),d=n.current,p="deltaX"in b?b.deltaX:d[0]-m[0],g="deltaY"in b?b.deltaY:d[1]-m[1],E,C=b.target,T=Math.abs(p)>Math.abs(g)?"h":"v";if("touches"in b&&T==="h"&&C.type==="range")return!1;var _=window.getSelection(),N=_&&_.anchorNode,A=N?N===C||N.contains(C):!1;if(A)return!1;var H=Cm(T,C);if(!H)return!0;if(H?E=T:(E=T==="v"?"h":"v",H=Cm(T,C)),!H)return!1;if(!l.current&&"changedTouches"in b&&(p||g)&&(l.current=E),!E)return!0;var P=l.current||E;return BS(P,R,b,P==="h"?p:g,!0)},[]),c=bt.useCallback(function(b){var R=b;if(!(!Ki.length||Ki[Ki.length-1]!==i)){var m="deltaY"in R?jS(R):vr(R),d=e.current.filter(function(E){return E.name===R.type&&(E.target===R.target||R.target===E.shadowParent)&&hO(E.delta,m)})[0];if(d&&d.should){R.cancelable&&R.preventDefault();return}if(!d){var p=(o.current.shards||[]).map(VS).filter(Boolean).filter(function(E){return E.contains(R.target)}),g=p.length>0?u(R,p[0]):!o.current.noIsolation;g&&R.cancelable&&R.preventDefault()}}},[]),r=bt.useCallback(function(b,R,m,d){var p={name:b,delta:R,target:m,should:d,shadowParent:yO(m)};e.current.push(p),setTimeout(function(){e.current=e.current.filter(function(g){return g!==p})},1)},[]),s=bt.useCallback(function(b){n.current=vr(b),l.current=void 0},[]),v=bt.useCallback(function(b){r(b.type,jS(b),b.target,u(b,t.lockRef.current))},[]),f=bt.useCallback(function(b){r(b.type,vr(b),b.target,u(b,t.lockRef.current))},[]);bt.useEffect(function(){return Ki.push(i),t.setCallbacks({onScrollCapture:v,onWheelCapture:v,onTouchMoveCapture:f}),document.addEventListener("wheel",c,Ca),document.addEventListener("touchmove",c,Ca),document.addEventListener("touchstart",s,Ca),function(){Ki=Ki.filter(function(b){return b!==i}),document.removeEventListener("wheel",c,Ca),document.removeEventListener("touchmove",c,Ca),document.removeEventListener("touchstart",s,Ca)}},[]);var h=t.removeScrollBar,S=t.inert;return bt.createElement(bt.Fragment,null,S?bt.createElement(i,{styles:pO(a)}):null,h?bt.createElement(Em,{noRelative:t.noRelative,gapMode:t.gapMode}):null)}function yO(t){for(var e=null;t!==null;)t instanceof ShadowRoot&&(e=t.host,t=t.host),t=t.parentNode;return e}var qS=pm(mr,YS);var GS=hr.forwardRef(function(t,e){return hr.createElement(nu,Ce({},t,{ref:e,sideCar:qS}))});GS.classNames=nu.classNames;var iu=GS;var SO=function(t){if(typeof document=="undefined")return null;var e=Array.isArray(t)?t[0]:t;return e.ownerDocument.body},Pi=new WeakMap,pr=new WeakMap,gr={},Om=0,XS=function(t){return t&&(t.host||XS(t.parentNode))},bO=function(t,e){return e.map(function(n){if(t.contains(n))return n;var l=XS(n);return l&&t.contains(l)?l:(console.error("aria-hidden",n,"in not contained inside",t,". Doing nothing"),null)}).filter(function(n){return!!n})},RO=function(t,e,n,l){var a=bO(e,Array.isArray(t)?t:[t]);gr[n]||(gr[n]=new WeakMap);var i=gr[n],o=[],u=new Set,c=new Set(a),r=function(v){!v||u.has(v)||(u.add(v),r(v.parentNode))};a.forEach(r);var s=function(v){!v||c.has(v)||Array.prototype.forEach.call(v.children,function(f){if(u.has(f))s(f);else try{var h=f.getAttribute(l),S=h!==null&&h!=="false",b=(Pi.get(f)||0)+1,R=(i.get(f)||0)+1;Pi.set(f,b),i.set(f,R),o.push(f),b===1&&S&&pr.set(f,!0),R===1&&f.setAttribute(n,"true"),S||f.setAttribute(l,"true")}catch(m){console.error("aria-hidden: cannot operate on ",f,m)}})};return s(e),u.clear(),Om++,function(){o.forEach(function(v){var f=Pi.get(v)-1,h=i.get(v)-1;Pi.set(v,f),i.set(v,h),f||(pr.has(v)||v.removeAttribute(l),pr.delete(v)),h||v.removeAttribute(n)}),Om--,Om||(Pi=new WeakMap,Pi=new WeakMap,pr=new WeakMap,gr={})}},yr=function(t,e,n){n===void 0&&(n="data-aria-hidden");var l=Array.from(Array.isArray(t)?t:[t]),a=e||SO(t);return a?(l.push.apply(l,Array.from(a.querySelectorAll("[aria-live], script"))),RO(l,a,n,"aria-hidden")):function(){return null}};var _t=D(Gt(),1),EO=Object.defineProperty,qe=(t,e)=>EO(t,"name",{value:e,configurable:!0}),Am="Dialog",[QS,Nm]=Ve(Am),[TO,dn]=QS(Am),ZS=qe(t=>{let{__scopeDialog:e,children:n,open:l,defaultOpen:a,onOpenChange:i,modal:o=!0}=t,u=gt.useRef(null),c=gt.useRef(null),[r,s]=Vi({prop:l,defaultProp:a!=null?a:!1,onChange:i,caller:Am}),[v,f]=gt.useState(0),[h,S]=gt.useState(0);return(0,_t.jsx)(TO,{scope:e,triggerRef:u,contentRef:c,contentId:Zl(),titleId:Zl(),descriptionId:Zl(),titlePresent:v>0,descriptionPresent:h>0,setTitleCount:f,setDescriptionCount:S,open:r,onOpenChange:s,onOpenToggle:gt.useCallback(()=>s(b=>!b),[s]),modal:o,children:n})},"Dialog"),CO="DialogTrigger",KS=gt.forwardRef(qe(function(e,n){let{__scopeDialog:l,...a}=e,i=dn(CO,l),o=I(n,i.triggerRef);return(0,_t.jsx)(Tt.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.open?i.contentId:void 0,"data-state":Sr(i.open),...a,ref:o,onClick:ut(e.onClick,i.onOpenToggle)})},"DialogTrigger")),PS="DialogPortal",[OO,JS]=QS(PS,{forceMount:void 0}),IS=qe(t=>{let{__scopeDialog:e,forceMount:n,children:l,container:a}=t,i=dn(PS,e);return(0,_t.jsx)(OO,{scope:e,forceMount:n,children:gt.Children.map(l,o=>(0,_t.jsx)(Gi,{present:n||i.open,children:(0,_t.jsx)(cr,{asChild:!0,container:a,children:o})}))})},"DialogPortal"),_m="DialogOverlay",FS=gt.forwardRef(qe(function(e,n){let l=JS(_m,e.__scopeDialog),{forceMount:a=l.forceMount,...i}=e,o=dn(_m,e.__scopeDialog);return o.modal?(0,_t.jsx)(Gi,{present:a||o.open,children:(0,_t.jsx)(AO,{...i,ref:n})}):null},"DialogOverlay")),_O=Ye("DialogOverlay.RemoveScroll"),AO=gt.forwardRef(qe(function(e,n){let{__scopeDialog:l,...a}=e,i=dn(_m,l),o=nm(),u=I(n,o);return(0,_t.jsx)(iu,{as:_O,allowPinchZoom:!0,shards:[i.contentRef],children:(0,_t.jsx)(Tt.div,{"data-state":Sr(i.open),...a,ref:u,style:{pointerEvents:"auto",...a.style}})})},"DialogOverlayImpl")),ou="DialogContent",kS=gt.forwardRef(qe(function(e,n){let l=JS(ou,e.__scopeDialog),{forceMount:a=l.forceMount,...i}=e,o=dn(ou,e.__scopeDialog);return(0,_t.jsx)(Gi,{present:a||o.open,children:o.modal?(0,_t.jsx)(NO,{...i,ref:n}):(0,_t.jsx)(xO,{...i,ref:n})})},"DialogContent")),NO=gt.forwardRef(qe(function(e,n){let l=dn(ou,e.__scopeDialog),a=gt.useRef(null),i=I(n,l.contentRef,a);return gt.useEffect(()=>{let o=a.current;if(o)return yr(o)},[]),(0,_t.jsx)(WS,{...e,ref:i,trapFocus:l.open,disableOutsidePointerEvents:l.open,onCloseAutoFocus:ut(e.onCloseAutoFocus,o=>{var u;o.preventDefault(),(u=l.triggerRef.current)==null||u.focus()}),onPointerDownOutside:ut(e.onPointerDownOutside,o=>{let u=o.detail.originalEvent,c=u.button===0&&u.ctrlKey===!0;(u.button===2||c)&&o.preventDefault()}),onFocusOutside:ut(e.onFocusOutside,o=>o.preventDefault())})},"DialogContentModal")),xO=gt.forwardRef(qe(function(e,n){let l=dn(ou,e.__scopeDialog),a=gt.useRef(!1),i=gt.useRef(!1);return(0,_t.jsx)(WS,{...e,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{var u,c;(u=e.onCloseAutoFocus)==null||u.call(e,o),o.defaultPrevented||(a.current||(c=l.triggerRef.current)==null||c.focus(),o.preventDefault()),a.current=!1,i.current=!1},onInteractOutside:o=>{var r,s;(r=e.onInteractOutside)==null||r.call(e,o),o.defaultPrevented||(a.current=!0,o.detail.originalEvent.type==="pointerdown"&&(i.current=!0));let u=o.target;(s=l.triggerRef.current)!=null&&s.contains(u)&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&i.current&&o.preventDefault()}})},"DialogContentNonModal")),WS=gt.forwardRef(qe(function(e,n){let{__scopeDialog:l,trapFocus:a,onOpenAutoFocus:i,onCloseAutoFocus:o,...u}=e,c=dn(ou,l);return Xi(),(0,_t.jsx)(_t.Fragment,{children:(0,_t.jsx)(or,{asChild:!0,loop:!0,trapped:a,onMountAutoFocus:i,onUnmountAutoFocus:o,children:(0,_t.jsx)(ir,{role:"dialog",id:c.contentId,"aria-describedby":c.descriptionPresent?c.descriptionId:void 0,"aria-labelledby":c.titlePresent?c.titleId:void 0,"data-state":Sr(c.open),...u,ref:n,deferPointerDownOutside:!0,onDismiss:()=>c.onOpenChange(!1)})})})},"DialogContentImpl")),DO="DialogTitle",$S=gt.forwardRef(qe(function(e,n){let{__scopeDialog:l,...a}=e,i=dn(DO,l),{setTitleCount:o}=i;return St(()=>(o(u=>u+1),()=>o(u=>u-1)),[o]),(0,_t.jsx)(Tt.h2,{id:i.titleId,...a,ref:n})},"DialogTitle")),wO="DialogDescription",t1=gt.forwardRef(qe(function(e,n){let{__scopeDialog:l,...a}=e,i=dn(wO,l),{setDescriptionCount:o}=i;return St(()=>(o(u=>u+1),()=>o(u=>u-1)),[o]),(0,_t.jsx)(Tt.p,{id:i.descriptionId,...a,ref:n})},"DialogDescription")),MO="DialogClose",xm=gt.forwardRef(qe(function(e,n){let{__scopeDialog:l,...a}=e,i=dn(MO,l);return(0,_t.jsx)(Tt.button,{type:"button",...a,ref:n,onClick:ut(e.onClick,()=>i.onOpenChange(!1))})},"DialogClose"));function Sr(t){return t?"open":"closed"}qe(Sr,"getState");var vn=D(Gt(),1),UO=Object.defineProperty,cl=(t,e)=>UO(t,"name",{value:e,configurable:!0}),HO="AlertDialog",[LO,I2]=Ve(HO,[Nm]),rl=Nm(),BO=cl(t=>{let{__scopeAlertDialog:e,...n}=t,l=rl(e);return(0,vn.jsx)(ZS,{...l,...n,modal:!0})},"AlertDialog"),jO=mn.forwardRef(cl(function(e,n){let{__scopeAlertDialog:l,...a}=e,i=rl(l);return(0,vn.jsx)(KS,{...i,...a,ref:n})},"AlertDialogTrigger")),VO=cl(t=>{let{__scopeAlertDialog:e,...n}=t,l=rl(e);return(0,vn.jsx)(IS,{...l,...n})},"AlertDialogPortal"),YO=mn.forwardRef(cl(function(e,n){let{__scopeAlertDialog:l,...a}=e,i=rl(l);return(0,vn.jsx)(FS,{...i,...a,ref:n})},"AlertDialogOverlay")),qO="AlertDialogContent",[GO,XO]=LO(qO),QO=mn.forwardRef(cl(function(e,n){let{__scopeAlertDialog:l,children:a,...i}=e,o=rl(l),u=mn.useRef(null),c=I(n,u),r=mn.useRef(null);return(0,vn.jsx)(GO,{scope:l,cancelRef:r,children:(0,vn.jsx)(kS,{role:"alertdialog",...o,...i,ref:c,onOpenAutoFocus:ut(i.onOpenAutoFocus,s=>{var v;s.preventDefault(),(v=r.current)==null||v.focus({preventScroll:!0})}),onPointerDownOutside:s=>s.preventDefault(),onInteractOutside:s=>s.preventDefault(),children:a})})},"AlertDialogContent")),ZO=mn.forwardRef(cl(function(e,n){let{__scopeAlertDialog:l,...a}=e,i=rl(l);return(0,vn.jsx)($S,{...i,...a,ref:n})},"AlertDialogTitle")),KO=mn.forwardRef(cl(function(e,n){let{__scopeAlertDialog:l,...a}=e,i=rl(l);return(0,vn.jsx)(t1,{...i,...a,ref:n})},"AlertDialogDescription")),PO=mn.forwardRef(cl(function(e,n){let{__scopeAlertDialog:l,...a}=e,i=rl(l);return(0,vn.jsx)(xm,{...i,...a,ref:n})},"AlertDialogAction")),JO="AlertDialogCancel",IO=mn.forwardRef(cl(function(e,n){let{__scopeAlertDialog:l,...a}=e,{cancelRef:i}=XO(JO,l),o=rl(l),u=I(n,i);return(0,vn.jsx)(xm,{...o,...a,ref:u})},"AlertDialogCancel")),Dm=BO,wm=jO,Mm=VO,zm=YO,Um=QO,Hm=PO,Lm=IO,Bm=ZO,jm=KO;var x=D(V(),1),lv=D(Ga(),1);var kO=Object.defineProperty,WO=(t,e)=>kO(t,"name",{value:e,configurable:!0});function br(t,[e,n]){return Math.min(n,Math.max(e,t))}WO(br,"clamp");var hn=D(V(),1);var Rr=D(Gt(),1),Oe=D(V(),1);var Oa=D(Gt(),1);var $O=Object.defineProperty,Qt=(t,e)=>$O(t,"name",{value:e,configurable:!0});function qm(t){let e=t+"CollectionProvider",[n,l]=Ve(e),[a,i]=n(e,{collectionRef:{current:null},itemMap:new Map}),o=Qt(b=>{let{scope:R,children:m}=b,d=hn.useRef(null),p=hn.useRef(new Map).current;return(0,Rr.jsx)(a,{scope:R,itemMap:p,collectionRef:d,children:m})},"CollectionProvider");o.displayName=e;let u=t+"CollectionSlot",c=Ye(u),r=hn.forwardRef((b,R)=>{let{scope:m,children:d}=b,p=i(u,m),g=I(R,p.collectionRef);return(0,Rr.jsx)(c,{ref:g,children:d})});r.displayName=u;let s=t+"CollectionItemSlot",v="data-radix-collection-item",f=Ye(s),h=hn.forwardRef((b,R)=>{let{scope:m,children:d,...p}=b,g=hn.useRef(null),E=I(R,g),C=i(s,m);return hn.useEffect(()=>(C.itemMap.set(g,{ref:g,...p}),()=>{C.itemMap.delete(g)})),(0,Rr.jsx)(f,{[v]:"",ref:E,children:d})});h.displayName=s;function S(b){let R=i(t+"CollectionConsumer",b);return hn.useCallback(()=>{let d=R.collectionRef.current;if(!d)return[];let p=Array.from(d.querySelectorAll(`[${v}]`));return Array.from(R.itemMap.values()).sort((C,T)=>p.indexOf(C.ref.current)-p.indexOf(T.ref.current))},[R.collectionRef,R.itemMap])}return Qt(S,"useCollection"),[{Provider:o,Slot:r,ItemSlot:h},S,l]}Qt(qm,"createCollection");var e1=new WeakMap,zt,Ge,Vm=(Ge=class extends Map{constructor(n){super(n);dv(this,zt);qr(this,zt,[...super.keys()]),e1.set(this,!0)}set(n,l){return e1.get(this)&&(this.has(n)?ne(this,zt)[ne(this,zt).indexOf(n)]=n:ne(this,zt).push(n)),super.set(n,l),this}insert(n,l,a){let i=this.has(l),o=ne(this,zt).length,u=Gm(n),c=u>=0?u:o+u,r=c<0||c>=o?-1:c;if(r===this.size||i&&r===this.size-1||r===-1)return this.set(l,a),this;let s=this.size+(i?0:1);u<0&&c++;let v=[...ne(this,zt)],f,h=!1;for(let S=c;S<s;S++)if(c===S){let b=v[S];v[S]===l&&(b=v[S+1]),i&&this.delete(l),f=this.get(b),this.set(l,a)}else{!h&&v[S-1]===l&&(h=!0);let b=v[h?S:S-1],R=f;f=this.get(b),this.delete(b),this.set(b,R)}return this}with(n,l,a){let i=new Ge(this);return i.insert(n,l,a),i}before(n){let l=ne(this,zt).indexOf(n)-1;if(!(l<0))return this.entryAt(l)}setBefore(n,l,a){let i=ne(this,zt).indexOf(n);return i===-1?this:this.insert(i,l,a)}after(n){let l=ne(this,zt).indexOf(n);if(l=l===-1||l===this.size-1?-1:l+1,l!==-1)return this.entryAt(l)}setAfter(n,l,a){let i=ne(this,zt).indexOf(n);return i===-1?this:this.insert(i+1,l,a)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return qr(this,zt,[]),super.clear()}delete(n){let l=super.delete(n);return l&&ne(this,zt).splice(ne(this,zt).indexOf(n),1),l}deleteAt(n){let l=this.keyAt(n);return l!==void 0?this.delete(l):!1}at(n){let l=Er(ne(this,zt),n);if(l!==void 0)return this.get(l)}entryAt(n){let l=Er(ne(this,zt),n);if(l!==void 0)return[l,this.get(l)]}indexOf(n){return ne(this,zt).indexOf(n)}keyAt(n){return Er(ne(this,zt),n)}from(n,l){let a=this.indexOf(n);if(a===-1)return;let i=a+l;return i<0&&(i=0),i>=this.size&&(i=this.size-1),this.at(i)}keyFrom(n,l){let a=this.indexOf(n);if(a===-1)return;let i=a+l;return i<0&&(i=0),i>=this.size&&(i=this.size-1),this.keyAt(i)}find(n,l){let a=0;for(let i of this){if(Reflect.apply(n,l,[i,a,this]))return i;a++}}findIndex(n,l){let a=0;for(let i of this){if(Reflect.apply(n,l,[i,a,this]))return a;a++}return-1}filter(n,l){let a=[],i=0;for(let o of this)Reflect.apply(n,l,[o,i,this])&&a.push(o),i++;return new Ge(a)}map(n,l){let a=[],i=0;for(let o of this)a.push([o[0],Reflect.apply(n,l,[o,i,this])]),i++;return new Ge(a)}reduce(...n){let[l,a]=n,i=0,o=a!=null?a:this.at(0);for(let u of this)i===0&&n.length===1?o=u:o=Reflect.apply(l,this,[o,u,i,this]),i++;return o}reduceRight(...n){let[l,a]=n,i=a!=null?a:this.at(-1);for(let o=this.size-1;o>=0;o--){let u=this.at(o);o===this.size-1&&n.length===1?i=u:i=Reflect.apply(l,this,[i,u,o,this])}return i}toSorted(n){let l=[...this.entries()].sort(n);return new Ge(l)}toReversed(){let n=new Ge;for(let l=this.size-1;l>=0;l--){let a=this.keyAt(l),i=this.get(a);n.set(a,i)}return n}toSpliced(...n){let l=[...this.entries()];return l.splice(...n),new Ge(l)}slice(n,l){let a=new Ge,i=this.size-1;if(n===void 0)return a;n<0&&(n=n+this.size),l!==void 0&&l>0&&(i=l-1);for(let o=n;o<=i;o++){let u=this.keyAt(o),c=this.get(u);a.set(u,c)}return a}every(n,l){let a=0;for(let i of this){if(!Reflect.apply(n,l,[i,a,this]))return!1;a++}return!0}some(n,l){let a=0;for(let i of this){if(Reflect.apply(n,l,[i,a,this]))return!0;a++}return!1}},zt=new WeakMap,Qt(Ge,"OrderedDict"),Ge);function Er(t,e){if("at"in Array.prototype)return Array.prototype.at.call(t,e);let n=n1(t,e);return n===-1?void 0:t[n]}Qt(Er,"at");function n1(t,e){let n=t.length,l=Gm(e),a=l>=0?l:n+l;return a<0||a>=n?-1:a}Qt(n1,"toSafeIndex");function Gm(t){return t!==t||t===0?0:Math.trunc(t)}Qt(Gm,"toSafeInteger");function t_(t){let e=t+"CollectionProvider",[n,l]=Ve(e),[a,i]=n(e,{collectionElement:null,collectionRef:{current:null},collectionRefObject:{current:null},itemMap:new Vm,setItemMap:Qt(()=>{},"setItemMap")}),o=Qt(({state:p,...g})=>p?(0,Oa.jsx)(c,{...g,state:p}):(0,Oa.jsx)(u,{...g}),"CollectionProvider");o.displayName=e;let u=Qt(p=>{let g=R();return(0,Oa.jsx)(c,{...p,state:g})},"CollectionInit");u.displayName=e+"Init";let c=Qt(p=>{let{scope:g,children:E,state:C}=p,T=Oe.useRef(null),[_,N]=Oe.useState(null),A=I(T,N),[H,P]=C;return Oe.useEffect(()=>{if(!_)return;let w=i1(()=>{});return w.observe(_,{childList:!0,subtree:!0}),()=>{w.disconnect()}},[_]),(0,Oa.jsx)(a,{scope:g,itemMap:H,setItemMap:P,collectionRef:A,collectionRefObject:T,collectionElement:_,children:E})},"CollectionProviderImpl");c.displayName=e+"Impl";let r=t+"CollectionSlot",s=Ye(r),v=Oe.forwardRef((p,g)=>{let{scope:E,children:C}=p,T=i(r,E),_=I(g,T.collectionRef);return(0,Oa.jsx)(s,{ref:_,children:C})});v.displayName=r;let f=t+"CollectionItemSlot",h="data-radix-collection-item",S=Ye(f),b=Oe.forwardRef((p,g)=>{let{scope:E,children:C,...T}=p,_=Oe.useRef(null),[N,A]=Oe.useState(null),H=I(g,_,A),P=i(f,E),{setItemMap:w}=P,q=Oe.useRef(T);l1(q.current,T)||(q.current=T);let at=q.current;return Oe.useEffect(()=>{let Q=at;return w(K=>N?K.has(N)?K.set(N,{...Q,element:N}).toSorted(Ym):(K.set(N,{...Q,element:N}),K.toSorted(Ym)):K),()=>{w(K=>!N||!K.has(N)?K:(K.delete(N),new Vm(K)))}},[N,at,w]),(0,Oa.jsx)(S,{[h]:"",ref:H,children:C})});b.displayName=f;function R(){return Oe.useState(new Vm)}Qt(R,"useInitCollection");function m(p){let{itemMap:g}=i(t+"CollectionConsumer",p);return g}return Qt(m,"useCollection"),[{Provider:o,Slot:v,ItemSlot:b},{createCollectionScope:l,useCollection:m,useInitCollection:R}]}Qt(t_,"createCollection");function l1(t,e){if(t===e)return!0;if(typeof t!="object"||typeof e!="object"||t==null||e==null)return!1;let n=Object.keys(t),l=Object.keys(e);if(n.length!==l.length)return!1;for(let a of n)if(!Object.prototype.hasOwnProperty.call(e,a)||t[a]!==e[a])return!1;return!0}Qt(l1,"shallowEqual");function a1(t,e){return!!(e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_PRECEDING)}Qt(a1,"isElementPreceding");function Ym(t,e){return!t[1].element||!e[1].element?0:a1(t[1].element,e[1].element)?-1:1}Qt(Ym,"sortByDocumentPosition");function i1(t){return new MutationObserver(n=>{for(let l of n)if(l.type==="childList"){t();return}})}Qt(i1,"getChildListObserver");var Tr=D(V(),1),l_=D(Gt(),1),e_=Object.defineProperty,n_=(t,e)=>e_(t,"name",{value:e,configurable:!0}),a_=Tr.createContext(void 0);function Xm(t){let e=Tr.useContext(a_);return t||e||"ltr"}n_(Xm,"useDirection");var ue=D(V(),1);var c1=["top","right","bottom","left"];var Vn=Math.min,pn=Math.max,cu=Math.round,ru=Math.floor,Yn=t=>({x:t,y:t}),i_={left:"right",right:"left",bottom:"top",top:"bottom"};function Qm(t,e,n){return pn(t,Vn(e,n))}function qn(t,e){return typeof t=="function"?t(e):t}function fl(t){return t.split("-")[0]}function _a(t){return t.split("-")[1]}function Or(t){return t==="x"?"y":"x"}function _r(t){return t==="y"?"height":"width"}function gn(t){let e=t[0];return e==="t"||e==="b"?"y":"x"}function Ar(t){return Or(gn(t))}function r1(t,e,n){n===void 0&&(n=!1);let l=_a(t),a=Ar(t),i=_r(a),o=a==="x"?l===(n?"end":"start")?"right":"left":l==="start"?"bottom":"top";return e.reference[i]>e.floating[i]&&(o=uu(o)),[o,uu(o)]}function f1(t){let e=uu(t);return[Cr(t),e,Cr(e)]}function Cr(t){return t.includes("start")?t.replace("start","end"):t.replace("end","start")}var o1=["left","right"],u1=["right","left"],o_=["top","bottom"],u_=["bottom","top"];function c_(t,e,n){switch(t){case"top":case"bottom":return n?e?u1:o1:e?o1:u1;case"left":case"right":return e?o_:u_;default:return[]}}function s1(t,e,n,l){let a=_a(t),i=c_(fl(t),n==="start",l);return a&&(i=i.map(o=>o+"-"+a),e&&(i=i.concat(i.map(Cr)))),i}function uu(t){let e=fl(t);return i_[e]+t.slice(e.length)}function r_(t){var e,n,l,a;return{top:(e=t.top)!=null?e:0,right:(n=t.right)!=null?n:0,bottom:(l=t.bottom)!=null?l:0,left:(a=t.left)!=null?a:0}}function Zm(t){return typeof t!="number"?r_(t):{top:t,right:t,bottom:t,left:t}}function Aa(t){let{x:e,y:n,width:l,height:a}=t;return{width:l,height:a,top:n,left:e,right:e+l,bottom:n+a,x:e,y:n}}function d1(t,e,n){let{reference:l,floating:a}=t,i=gn(e),o=Ar(e),u=_r(o),c=fl(e),r=i==="y",s=l.x+l.width/2-a.width/2,v=l.y+l.height/2-a.height/2,f=l[u]/2-a[u]/2,h;switch(c){case"top":h={x:s,y:l.y-a.height};break;case"bottom":h={x:s,y:l.y+l.height};break;case"right":h={x:l.x+l.width,y:v};break;case"left":h={x:l.x-a.width,y:v};break;default:h={x:l.x,y:l.y}}let S=_a(e);return S&&(h[o]+=f*(S==="end"?1:-1)*(n&&r?-1:1)),h}async function h1(t,e){var n;e===void 0&&(e={});let{x:l,y:a,platform:i,rects:o,elements:u,strategy:c}=t,{boundary:r="clippingAncestors",rootBoundary:s="viewport",elementContext:v="floating",altBoundary:f=!1,padding:h=0}=qn(e,t),S=Zm(h),R=u[f?v==="floating"?"reference":"floating":v],m=Aa(await i.getClippingRect({element:(n=await(i.isElement==null?void 0:i.isElement(R)))==null||n?R:R.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(u.floating)),boundary:r,rootBoundary:s,strategy:c})),d=v==="floating"?{x:l,y:a,width:o.floating.width,height:o.floating.height}:o.reference,p=await(i.getOffsetParent==null?void 0:i.getOffsetParent(u.floating)),g=await(i.isElement==null?void 0:i.isElement(p))&&await(i.getScale==null?void 0:i.getScale(p))||{x:1,y:1},E=Aa(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:u,rect:d,offsetParent:p,strategy:c}):d);return{top:(m.top-E.top+S.top)/g.y,bottom:(E.bottom-m.bottom+S.bottom)/g.y,left:(m.left-E.left+S.left)/g.x,right:(E.right-m.right+S.right)/g.x}}var f_=50,p1=async(t,e,n)=>{let{placement:l="bottom",strategy:a="absolute",middleware:i=[],platform:o}=n,u=o.detectOverflow?o:{...o,detectOverflow:h1},c=await(o.isRTL==null?void 0:o.isRTL(e)),r=await o.getElementRects({reference:t,floating:e,strategy:a}),{x:s,y:v}=d1(r,l,c),f=l,h=0,S={};for(let b=0;b<i.length;b++){let R=i[b];if(!R)continue;let{name:m,fn:d}=R,{x:p,y:g,data:E,reset:C}=await d({x:s,y:v,initialPlacement:l,placement:f,strategy:a,middlewareData:S,rects:r,platform:u,elements:{reference:t,floating:e}});s=p!=null?p:s,v=g!=null?g:v,S[m]={...S[m],...E},C&&h<f_&&(h++,typeof C=="object"&&(C.placement&&(f=C.placement),C.rects&&(r=C.rects===!0?await o.getElementRects({reference:t,floating:e,strategy:a}):C.rects),{x:s,y:v}=d1(r,f,c)),b=-1)}return{x:s,y:v,placement:f,strategy:a,middlewareData:S}},g1=t=>({name:"arrow",options:t,async fn(e){let{x:n,y:l,placement:a,rects:i,platform:o,elements:u,middlewareData:c}=e,{element:r,padding:s=0}=qn(t,e)||{};if(r==null)return{};let v=Zm(s),f={x:n,y:l},h=Ar(a),S=_r(h),b=await o.getDimensions(r),R=h==="y",m=R?"top":"left",d=R?"bottom":"right",p=R?"clientHeight":"clientWidth",g=i.reference[S]+i.reference[h]-f[h]-i.floating[S],E=f[h]-i.reference[h],C=await(o.getOffsetParent==null?void 0:o.getOffsetParent(r)),T=C?C[p]:0;(!T||!await(o.isElement==null?void 0:o.isElement(C)))&&(T=u.floating[p]||i.floating[S]);let _=g/2-E/2,N=T/2-b[S]/2-1,A=Vn(v[m],N),H=Vn(v[d],N),P=T-b[S]-H,w=T/2-b[S]/2+_,q=Qm(A,w,P),at=!c.arrow&&_a(a)!=null&&w!==q&&i.reference[S]/2-(w<A?A:H)-b[S]/2<0,Q=at?w<A?w-A:w-P:0;return{[h]:f[h]+Q,data:{[h]:q,centerOffset:w-q-Q,...at&&{alignmentOffset:Q}},reset:at}}});var y1=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(e){var n,l;let{placement:a,middlewareData:i,rects:o,initialPlacement:u,platform:c,elements:r}=e,{mainAxis:s=!0,crossAxis:v=!0,fallbackPlacements:f,fallbackStrategy:h="bestFit",fallbackAxisSideDirection:S="none",flipAlignment:b=!0,...R}=qn(t,e);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let m=fl(a),d=gn(u),p=fl(u)===u,g=await(c.isRTL==null?void 0:c.isRTL(r.floating)),E=f||(p||!b?[uu(u)]:f1(u)),C=S!=="none";!f&&C&&E.push(...s1(u,b,S,g));let T=[u,...E],_=await c.detectOverflow(e,R),N=[],A=((l=i.flip)==null?void 0:l.overflows)||[];if(s&&N.push(_[m]),v){let q=r1(a,o,g);N.push(_[q[0]],_[q[1]])}if(A=[...A,{placement:a,overflows:N}],!N.every(q=>q<=0)){var H,P;let q=(((H=i.flip)==null?void 0:H.index)||0)+1,at=T[q];if(at&&(!(v==="alignment"?d!==gn(at):!1)||A.every(B=>gn(B.placement)===d?B.overflows[0]>0:!0)))return{data:{index:q,overflows:A},reset:{placement:at}};let Q=(P=A.filter(K=>K.overflows[0]<=0).sort((K,B)=>K.overflows[1]-B.overflows[1])[0])==null?void 0:P.placement;if(!Q)switch(h){case"bestFit":{var w;let K=(w=A.filter(B=>{if(C){let tt=gn(B.placement);return tt===d||tt==="y"}return!0}).map(B=>[B.placement,B.overflows.filter(tt=>tt>0).reduce((tt,Ct)=>tt+Ct,0)]).sort((B,tt)=>B[1]-tt[1])[0])==null?void 0:w[0];K&&(Q=K);break}case"initialPlacement":Q=u;break}if(a!==Q)return{reset:{placement:Q}}}return{}}}};function m1(t,e){return{top:t.top-e.height,right:t.right-e.width,bottom:t.bottom-e.height,left:t.left-e.width}}function v1(t){return c1.some(e=>t[e]>=0)}var S1=function(t){return t===void 0&&(t={}),{name:"hide",options:t,async fn(e){let{rects:n,platform:l}=e,{strategy:a="referenceHidden",...i}=qn(t,e);switch(a){case"referenceHidden":{let o=await l.detectOverflow(e,{...i,elementContext:"reference"}),u=m1(o,n.reference);return{data:{referenceHiddenOffsets:u,referenceHidden:v1(u)}}}case"escaped":{let o=await l.detectOverflow(e,{...i,altBoundary:!0}),u=m1(o,n.floating);return{data:{escapedOffsets:u,escaped:v1(u)}}}default:return{}}}}};var b1=new Set(["left","top"]);async function s_(t,e){let{placement:n,platform:l,elements:a}=t,i=await(l.isRTL==null?void 0:l.isRTL(a.floating)),o=fl(n),u=_a(n),c=gn(n)==="y",r=b1.has(o)?-1:1,s=i&&c?-1:1,v=qn(e,t),{mainAxis:f,crossAxis:h,alignmentAxis:S}=typeof v=="number"?{mainAxis:v,crossAxis:0,alignmentAxis:null}:{mainAxis:v.mainAxis||0,crossAxis:v.crossAxis||0,alignmentAxis:v.alignmentAxis};return u&&typeof S=="number"&&(h=u==="end"?S*-1:S),c?{x:h*s,y:f*r}:{x:f*r,y:h*s}}var R1=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(e){var n,l;let{x:a,y:i,placement:o,middlewareData:u}=e,c=await s_(e,t);return o===((n=u.offset)==null?void 0:n.placement)&&(l=u.arrow)!=null&&l.alignmentOffset?{}:{x:a+c.x,y:i+c.y,data:{...c,placement:o}}}}},E1=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(e){let{x:n,y:l,placement:a,platform:i}=e,{mainAxis:o=!0,crossAxis:u=!1,limiter:c={fn:d=>{let{x:p,y:g}=d;return{x:p,y:g}}},...r}=qn(t,e),s={x:n,y:l},v=await i.detectOverflow(e,r),f=gn(a),h=Or(f),S=s[h],b=s[f],R=(d,p)=>Qm(p+v[d==="y"?"top":"left"],p,p-v[d==="y"?"bottom":"right"]);o&&(S=R(h,S)),u&&(b=R(f,b));let m=c.fn({...e,[h]:S,[f]:b});return{...m,data:{x:m.x-n,y:m.y-l,enabled:{[h]:o,[f]:u}}}}}},T1=function(t){return t===void 0&&(t={}),{options:t,fn(e){var n,l;let{x:a,y:i,placement:o,rects:u,middlewareData:c}=e,{offset:r=0,mainAxis:s=!0,crossAxis:v=!0}=qn(t,e),f={x:a,y:i},h=gn(o),S=Or(h),b=f[S],R=f[h],m=qn(r,e),d=typeof m=="number"?{mainAxis:m,crossAxis:0}:{mainAxis:(n=m.mainAxis)!=null?n:0,crossAxis:(l=m.crossAxis)!=null?l:0};if(s){let E=S==="y"?"height":"width",C=u.reference[S]-u.floating[E]+d.mainAxis,T=u.reference[S]+u.reference[E]-d.mainAxis;b<C?b=C:b>T&&(b=T)}if(v){var p,g;let E=S==="y"?"width":"height",C=b1.has(fl(o)),T=u.reference[h]-u.floating[E]+(C&&((p=c.offset)==null?void 0:p[h])||0)+(C?0:d.crossAxis),_=u.reference[h]+u.reference[E]+(C?0:((g=c.offset)==null?void 0:g[h])||0)-(C?d.crossAxis:0);R<T?R=T:R>_&&(R=_)}return{[S]:b,[h]:R}}}},C1=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(e){let{placement:n,rects:l,platform:a,elements:i}=e,{apply:o=()=>{},...u}=qn(t,e),c=await a.detectOverflow(e,u),r=fl(n),s=_a(n),v=gn(n)==="y",{width:f,height:h}=l.floating,S,b;r==="top"||r==="bottom"?(S=r,b=s===(await(a.isRTL==null?void 0:a.isRTL(i.floating))?"start":"end")?"left":"right"):(b=r,S=s==="end"?"top":"bottom");let R=h-c.top-c.bottom,m=f-c.left-c.right,d=Vn(h-c[S],R),p=Vn(f-c[b],m),g=e.middlewareData.shift,E=!g,C=d,T=p;g!=null&&g.enabled.x&&(T=m),g!=null&&g.enabled.y&&(C=R),E&&!s&&(v?T=f-2*pn(c.left,c.right):C=h-2*pn(c.top,c.bottom)),await o({...e,availableWidth:T,availableHeight:C});let _=await a.getDimensions(i.floating);return f!==_.width||h!==_.height?{reset:{rects:!0}}:{}}}};function Nr(){return typeof window!="undefined"}function Da(t){return _1(t)?(t.nodeName||"").toLowerCase():"#document"}function he(t){var e;return(t==null||(e=t.ownerDocument)==null?void 0:e.defaultView)||window}function Gn(t){var e;return(e=(_1(t)?t.ownerDocument:t.document)||window.document)==null?void 0:e.documentElement}function _1(t){return Nr()?t instanceof Node||t instanceof he(t).Node:!1}function yn(t){return Nr()?t instanceof Element||t instanceof he(t).Element:!1}function sl(t){return Nr()?t instanceof HTMLElement||t instanceof he(t).HTMLElement:!1}function O1(t){return!Nr()||typeof ShadowRoot=="undefined"?!1:t instanceof ShadowRoot||t instanceof he(t).ShadowRoot}function fu(t){let{overflow:e,overflowX:n,overflowY:l,display:a}=Sn(t);return/auto|scroll|overlay|hidden|clip/.test(e+l+n)&&a!=="inline"&&a!=="contents"}function A1(t){return/^(table|td|th)$/.test(Da(t))}function su(t){try{if(t.matches(":popover-open"))return!0}catch{}try{return t.matches(":modal")}catch{return!1}}var d_=/transform|translate|scale|rotate|perspective|filter/,m_=/paint|layout|strict|content/,Na=t=>!!t&&t!=="none",Km;function xr(t){let e=yn(t)?Sn(t):t;return Na(e.transform)||Na(e.translate)||Na(e.scale)||Na(e.rotate)||Na(e.perspective)||!Dr()&&(Na(e.backdropFilter)||Na(e.filter))||d_.test(e.willChange||"")||m_.test(e.contain||"")}function N1(t){let e=Kl(t);for(;sl(e)&&!Ji(e);){if(xr(e))return e;if(su(e))return null;e=Kl(e)}return null}function Dr(){return Km==null&&(Km=typeof CSS!="undefined"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),Km}function Ji(t){return/^(html|body|#document)$/.test(Da(t))}function Sn(t){return he(t).getComputedStyle(t)}function du(t){return yn(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function Kl(t){if(Da(t)==="html")return t;let e=t.assignedSlot||t.parentNode||O1(t)&&t.host||Gn(t);return O1(e)?e.host:e}function x1(t){let e=Kl(t);return Ji(e)?(t.ownerDocument||t).body:sl(e)&&fu(e)?e:x1(e)}function xa(t,e,n){var l;e===void 0&&(e=[]),n===void 0&&(n=!0);let a=x1(t),i=a===((l=t.ownerDocument)==null?void 0:l.body),o=he(a);if(i){let u=wr(o);return e.concat(o,o.visualViewport||[],fu(a)?a:[],u&&n?xa(u):[])}else return e.concat(a,xa(a,[],n))}function wr(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function M1(t){let e=Sn(t),n=parseFloat(e.width)||0,l=parseFloat(e.height)||0,a=sl(t),i=a?t.offsetWidth:n,o=a?t.offsetHeight:l,u=cu(n)!==i||cu(l)!==o;return u&&(n=i,l=o),{width:n,height:l,$:u}}function Jm(t){return yn(t)?t:t.contextElement}function Ii(t){let e=Jm(t);if(!sl(e))return Yn(1);let n=e.getBoundingClientRect(),{width:l,height:a,$:i}=M1(e),o=(i?cu(n.width):n.width)/l,u=(i?cu(n.height):n.height)/a;return(!o||!Number.isFinite(o))&&(o=1),(!u||!Number.isFinite(u))&&(u=1),{x:o,y:u}}var v_=Yn(0);function z1(t){let e=he(t);return!Dr()||!e.visualViewport?v_:{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}}function h_(t,e,n){return e===void 0&&(e=!1),!!n&&e&&n===he(t)}function wa(t,e,n,l){e===void 0&&(e=!1),n===void 0&&(n=!1);let a=t.getBoundingClientRect(),i=Jm(t),o=Yn(1);e&&(l?yn(l)&&(o=Ii(l)):o=Ii(t));let u=h_(i,n,l)?z1(i):Yn(0),c=(a.left+u.x)/o.x,r=(a.top+u.y)/o.y,s=a.width/o.x,v=a.height/o.y;if(i&&l){let f=he(i),h=yn(l)?he(l):l,S=f,b=wr(S);for(;b&&h!==S;){let R=Ii(b),m=b.getBoundingClientRect(),d=Sn(b),p=m.left+(b.clientLeft+parseFloat(d.paddingLeft))*R.x,g=m.top+(b.clientTop+parseFloat(d.paddingTop))*R.y;c*=R.x,r*=R.y,s*=R.x,v*=R.y,c+=p,r+=g,S=he(b),b=wr(S)}}return Aa({width:s,height:v,x:c,y:r})}function Mr(t,e){let n=du(t).scrollLeft;return e?e.left+n:wa(Gn(t)).left+n}function U1(t,e){let n=t.getBoundingClientRect(),l=n.left+e.scrollLeft-Mr(t,n),a=n.top+e.scrollTop;return{x:l,y:a}}function p_(t){let{elements:e,rect:n,offsetParent:l,strategy:a}=t,i=a==="fixed",o=Gn(l),u=e?su(e.floating):!1;if(l===o||u&&i)return n;let c={scrollLeft:0,scrollTop:0},r=Yn(1),s=Yn(0),v=sl(l);if((v||!i)&&((Da(l)!=="body"||fu(o))&&(c=du(l)),v)){let h=wa(l);r=Ii(l),s.x=h.x+l.clientLeft,s.y=h.y+l.clientTop}let f=o&&!v&&!i?U1(o,c):Yn(0);return{width:n.width*r.x,height:n.height*r.y,x:n.x*r.x-c.scrollLeft*r.x+s.x+f.x,y:n.y*r.y-c.scrollTop*r.y+s.y+f.y}}function g_(t){return t.getClientRects?Array.from(t.getClientRects()):[]}function y_(t){let e=du(t),n=t.ownerDocument.body,l=pn(t.scrollWidth,t.clientWidth,n.scrollWidth,n.clientWidth),a=pn(t.scrollHeight,t.clientHeight,n.scrollHeight,n.clientHeight),i=-e.scrollLeft+Mr(t),o=-e.scrollTop;return Sn(n).direction==="rtl"&&(i+=pn(t.clientWidth,n.clientWidth)-l),{width:l,height:a,x:i,y:o}}var S_=25;function b_(t,e,n){n===void 0&&(n="viewport");let l=n==="layoutViewport",a=he(t),i=Gn(t),o=a.visualViewport,u=i.clientWidth,c=i.clientHeight,r=0,s=0;if(o){let f=!Dr()||e==="fixed";l?f||(r=-o.offsetLeft,s=-o.offsetTop):(u=o.width,c=o.height,f&&(r=o.offsetLeft,s=o.offsetTop))}if(Mr(i)<=0){let f=i.ownerDocument,h=f.body,S=getComputedStyle(h),b=f.compatMode==="CSS1Compat"&&parseFloat(S.marginLeft)+parseFloat(S.marginRight)||0,R=Math.abs(i.clientWidth-h.clientWidth-b),m=getComputedStyle(i).scrollbarGutter==="stable both-edges"?R/2:R;m<=S_&&(u-=m)}return{width:u,height:c,x:r,y:s}}function R_(t,e){let n=wa(t,!0,e==="fixed"),l=n.top+t.clientTop,a=n.left+t.clientLeft,i=Ii(t),o=t.clientWidth*i.x,u=t.clientHeight*i.y,c=a*i.x,r=l*i.y;return{width:o,height:u,x:c,y:r}}function D1(t,e,n){let l;if(e==="viewport"||e==="layoutViewport")l=b_(t,n,e);else if(e==="document")l=y_(Gn(t));else if(yn(e))l=R_(e,n);else{let a=z1(t);l={x:e.x-a.x,y:e.y-a.y,width:e.width,height:e.height}}return Aa(l)}function E_(t,e){let n=e.get(t);if(n)return n;let l=xa(t,[],!1).filter(u=>yn(u)&&Da(u)!=="body"),a=null,i=Sn(t).position==="fixed",o=i?Kl(t):t;for(;yn(o)&&!Ji(o);){let u=Sn(o),c=xr(o),r=a?a.position:i?"fixed":"";!c&&(r==="fixed"||r==="absolute"&&u.position==="static")?l=l.filter(v=>v!==o):a=u,o=Kl(o)}return e.set(t,l),l}function T_(t){let{element:e,boundary:n,rootBoundary:l,strategy:a}=t,o=[...n==="clippingAncestors"?su(e)?[]:E_(e,this._c):[].concat(n),l],u=D1(e,o[0],a),c=u.top,r=u.right,s=u.bottom,v=u.left;for(let f=1;f<o.length;f++){let h=D1(e,o[f],a);c=pn(h.top,c),r=Vn(h.right,r),s=Vn(h.bottom,s),v=pn(h.left,v)}return{width:r-v,height:s-c,x:v,y:c}}function C_(t){let{width:e,height:n}=M1(t);return{width:e,height:n}}function O_(t,e,n){let l=sl(e),a=Gn(e),i=n==="fixed",o=wa(t,!0,i,e),u={scrollLeft:0,scrollTop:0},c=Yn(0);if((l||!i)&&((Da(e)!=="body"||fu(a))&&(u=du(e)),l)){let f=wa(e,!0,i,e);c.x=f.x+e.clientLeft,c.y=f.y+e.clientTop}!l&&a&&(c.x=Mr(a));let r=a&&!l&&!i?U1(a,u):Yn(0),s=o.left+u.scrollLeft-c.x-r.x,v=o.top+u.scrollTop-c.y-r.y;return{x:s,y:v,width:o.width,height:o.height}}function Pm(t){return Sn(t).position==="static"}function w1(t,e){if(!sl(t)||Sn(t).position==="fixed")return null;if(e)return e(t);let n=t.offsetParent;return Gn(t)===n&&(n=n.ownerDocument.body),n}function H1(t,e){let n=he(t);if(su(t))return n;if(!sl(t)){let a=Kl(t);for(;a&&!Ji(a);){if(yn(a)&&!Pm(a))return a;a=Kl(a)}return n}let l=w1(t,e);for(;l&&A1(l)&&Pm(l);)l=w1(l,e);return l&&Ji(l)&&Pm(l)&&!xr(l)?n:l||N1(t)||n}var __=async function(t){let e=this.getOffsetParent||H1,n=this.getDimensions,l=await n(t.floating);return{reference:O_(t.reference,await e(t.floating),t.strategy),floating:{x:0,y:0,width:l.width,height:l.height}}};function A_(t){return Sn(t).direction==="rtl"}var L1={convertOffsetParentRelativeRectToViewportRelativeRect:p_,getDocumentElement:Gn,getClippingRect:T_,getOffsetParent:H1,getElementRects:__,getClientRects:g_,getDimensions:C_,getScale:Ii,isElement:yn,isRTL:A_};function B1(t,e){return t.x===e.x&&t.y===e.y&&t.width===e.width&&t.height===e.height}function N_(t,e,n){let l=null,a,i=Gn(t);function o(){var s;clearTimeout(a),(s=l)==null||s.disconnect(),l=null}function u(s,v){s===void 0&&(s=!1),v===void 0&&(v=1),o();let f=t.getBoundingClientRect(),{left:h,top:S,width:b,height:R}=f;if(s||e(),!b||!R)return;let m=ru(S),d=ru(i.clientWidth-(h+b)),p=ru(i.clientHeight-(S+R)),g=ru(h),C={rootMargin:-m+"px "+-d+"px "+-p+"px "+-g+"px",threshold:pn(0,Vn(1,v))||1},T=!0;function _(N){let A=N[0].intersectionRatio;if(!B1(f,t.getBoundingClientRect()))return u();if(A!==v){if(!T)return u();A?u(!1,A):a=setTimeout(()=>{u(!1,1e-7)},1e3)}T=!1}try{l=new IntersectionObserver(_,{...C,root:i.ownerDocument})}catch{l=new IntersectionObserver(_,C)}l.observe(t)}let c=he(t),r=()=>u(n);return c.addEventListener("resize",r),u(!0),()=>{c.removeEventListener("resize",r),o()}}function Im(t,e,n,l){l===void 0&&(l={});let{ancestorScroll:a=!0,ancestorResize:i=!0,elementResize:o=typeof ResizeObserver=="function",layoutShift:u=typeof IntersectionObserver=="function",animationFrame:c=!1}=l,r=Jm(t),s=a||i?[...r?xa(r):[],...e?xa(e):[]]:[];s.forEach(m=>{a&&m.addEventListener("scroll",n),i&&m.addEventListener("resize",n)});let v=r&&u?N_(r,n,i):null,f=-1,h=null;o&&(h=new ResizeObserver(m=>{let[d]=m;d&&d.target===r&&h&&e&&(h.unobserve(e),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var p;(p=h)==null||p.observe(e)})),n()}),r&&!c&&h.observe(r),e&&h.observe(e));let S,b=c?wa(t):null;c&&R();function R(){let m=wa(t);b&&!B1(b,m)&&n(),b=m,S=requestAnimationFrame(R)}return n(),()=>{var m;s.forEach(d=>{a&&d.removeEventListener("scroll",n),i&&d.removeEventListener("resize",n)}),v==null||v(),(m=h)==null||m.disconnect(),h=null,c&&cancelAnimationFrame(S)}}var j1=R1;var V1=E1,Y1=y1,q1=C1,G1=S1,Fm=g1;var X1=T1,km=(t,e,n)=>{let l=new Map,a=n!=null?n:{},i={...L1,...a.platform,_c:l};return p1(t,e,{...a,platform:i})};var Ut=D(V(),1),Z1=D(V(),1),K1=D(Ga(),1),x_=typeof document!="undefined",D_=function(){},zr=x_?Z1.useLayoutEffect:D_;function Ur(t,e){if(t===e)return!0;if(typeof t!=typeof e)return!1;if(typeof t=="function"&&t.toString()===e.toString())return!0;let n,l,a;if(t&&e&&typeof t=="object"){if(Array.isArray(t)){if(n=t.length,n!==e.length)return!1;for(l=n;l--!==0;)if(!Ur(t[l],e[l]))return!1;return!0}if(a=Object.keys(t),n=a.length,n!==Object.keys(e).length)return!1;for(l=n;l--!==0;)if(!{}.hasOwnProperty.call(e,a[l]))return!1;for(l=n;l--!==0;){let i=a[l];if(!(i==="_owner"&&t.$$typeof)&&!Ur(t[i],e[i]))return!1}return!0}return t!==t&&e!==e}function P1(t){return typeof window=="undefined"?1:(t.ownerDocument.defaultView||window).devicePixelRatio||1}function Q1(t,e){let n=P1(t);return Math.round(e*n)/n}function Wm(t){let e=Ut.useRef(t);return zr(()=>{e.current=t}),e}function J1(t){t===void 0&&(t={});let{placement:e="bottom",strategy:n="absolute",middleware:l=[],platform:a,elements:{reference:i,floating:o}={},transform:u=!0,whileElementsMounted:c,open:r}=t,[s,v]=Ut.useState({x:0,y:0,strategy:n,placement:e,middlewareData:{},isPositioned:!1}),[f,h]=Ut.useState(l);Ur(f,l)||h(l);let[S,b]=Ut.useState(null),[R,m]=Ut.useState(null),d=Ut.useCallback(B=>{B!==C.current&&(C.current=B,b(B))},[]),p=Ut.useCallback(B=>{B!==T.current&&(T.current=B,m(B))},[]),g=i||S,E=o||R,C=Ut.useRef(null),T=Ut.useRef(null),_=Ut.useRef(s),N=c!=null,A=Wm(c),H=Wm(a),P=Wm(r),w=Ut.useCallback(()=>{if(!C.current||!T.current)return;let B={placement:e,strategy:n,middleware:f};H.current&&(B.platform=H.current),km(C.current,T.current,B).then(tt=>{let Ct={...tt,isPositioned:P.current!==!1};q.current&&!Ur(_.current,Ct)&&(_.current=Ct,K1.flushSync(()=>{v(Ct)}))})},[f,e,n,H,P]);zr(()=>{r===!1&&_.current.isPositioned&&(_.current.isPositioned=!1,v(B=>({...B,isPositioned:!1})))},[r]);let q=Ut.useRef(!1);zr(()=>(q.current=!0,()=>{q.current=!1}),[]),zr(()=>{if(g&&(C.current=g),E&&(T.current=E),g&&E){if(A.current)return A.current(g,E,w);w()}},[g,E,w,A,N]);let at=Ut.useMemo(()=>({reference:C,floating:T,setReference:d,setFloating:p}),[d,p]),Q=Ut.useMemo(()=>({reference:g,floating:E}),[g,E]),K=Ut.useMemo(()=>{let B={position:n,left:0,top:0};if(!Q.floating)return B;let tt=Q1(Q.floating,s.x),Ct=Q1(Q.floating,s.y);return u?{...B,transform:"translate("+tt+"px, "+Ct+"px)",...P1(Q.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:tt,top:Ct}},[n,u,Q.floating,s.x,s.y]);return Ut.useMemo(()=>({...s,update:w,refs:at,elements:Q,floatingStyles:K}),[s,w,at,Q,K])}var w_=t=>{function e(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:t,fn(n){let{element:l,padding:a}=typeof t=="function"?t(n):t;return l&&e(l)?l.current!=null?Fm({element:l.current,padding:a}).fn(n):{}:l?Fm({element:l,padding:a}).fn(n):{}}}},I1=(t,e)=>{let n=j1(t);return{name:n.name,fn:n.fn,options:[t,e]}},F1=(t,e)=>{let n=V1(t);return{name:n.name,fn:n.fn,options:[t,e]}},k1=(t,e)=>({fn:X1(t).fn,options:[t,e]}),W1=(t,e)=>{let n=Y1(t);return{name:n.name,fn:n.fn,options:[t,e]}},$1=(t,e)=>{let n=q1(t);return{name:n.name,fn:n.fn,options:[t,e]}};var tb=(t,e)=>{let n=G1(t);return{name:n.name,fn:n.fn,options:[t,e]}};var eb=(t,e)=>{let n=w_(t);return{name:n.name,fn:n.fn,options:[t,e]}};var nb=D(V(),1);var M_=Object.defineProperty,z_=(t,e)=>M_(t,"name",{value:e,configurable:!0});function $m(t){let[e,n]=nb.useState(void 0);return St(()=>{if(t){n({width:t.offsetWidth,height:t.offsetHeight});let l=new ResizeObserver(a=>{if(!Array.isArray(a)||!a.length)return;let i=a[0],o,u;if("borderBoxSize"in i){let c=i.borderBoxSize,r=Array.isArray(c)?c[0]:c;o=r.inlineSize,u=r.blockSize}else o=t.offsetWidth,u=t.offsetHeight;n({width:o,height:u})});return l.observe(t,{box:"border-box"}),()=>l.unobserve(t)}else n(void 0)},[t]),e}z_($m,"useSize");var Fi=D(Gt(),1),U_=Object.defineProperty,Pl=(t,e)=>U_(t,"name",{value:e,configurable:!0});var lb="Popper",[ab,tv]=Ve(lb),[H_,ib]=ab(lb),L_=Pl(t=>{let{__scopePopper:e,children:n}=t,[l,a]=ue.useState(null),[i,o]=ue.useState(void 0);return(0,Fi.jsx)(H_,{scope:e,anchor:l,onAnchorChange:a,placementState:i,setPlacementState:o,children:n})},"Popper"),B_="PopperAnchor",j_=ue.forwardRef(Pl(function(e,n){let{__scopePopper:l,virtualRef:a,...i}=e,o=ib(B_,l),u=ue.useRef(null),c=o.onAnchorChange,r=ue.useCallback(b=>{u.current=b,b&&c(b)},[c]),s=I(n,r),v=ue.useRef(null);ue.useEffect(()=>{if(!a)return;let b=v.current;v.current=a.current,b!==v.current&&c(v.current)});let f=o.placementState&&Hr(o.placementState),h=f==null?void 0:f[0],S=f==null?void 0:f[1];return a?null:(0,Fi.jsx)(Tt.div,{"data-radix-popper-side":h,"data-radix-popper-align":S,...i,ref:s})},"PopperAnchor")),ob="PopperContent",[V_,zx]=ab(ob),Y_=ue.forwardRef(Pl(function(e,n){var yt,ee,dt,F,it,_e,Ae,La,Ba;let{__scopePopper:l,side:a="bottom",sideOffset:i=0,align:o="center",alignOffset:u=0,arrowPadding:c=0,avoidCollisions:r=!0,collisionBoundary:s=[],collisionPadding:v=0,sticky:f="partial",hideWhenDetached:h=!1,updatePositionStrategy:S="optimized",onPlaced:b,...R}=e,m=ib(ob,l),[d,p]=ue.useState(null),g=I(n,p),[E,C]=ue.useState(null),T=$m(E),_=(yt=T==null?void 0:T.width)!=null?yt:0,N=(ee=T==null?void 0:T.height)!=null?ee:0,A=a+(o!=="center"?"-"+o:""),H=typeof v=="number"?v:{top:0,right:0,bottom:0,left:0,...v},P=Array.isArray(s)?s:[s],w=P.length>0,q={padding:H,boundary:P.filter(ub),altBoundary:w},{refs:at,floatingStyles:Q,placement:K,isPositioned:B,middlewareData:tt}=J1({strategy:"fixed",placement:A,whileElementsMounted:Pl((...Fl)=>Im(...Fl,{animationFrame:S==="always"}),"whileElementsMounted"),elements:{reference:m.anchor},middleware:[I1({mainAxis:i+N,alignmentAxis:u}),r&&F1({mainAxis:!0,crossAxis:!1,limiter:f==="partial"?k1():void 0,...q}),r&&W1({...q}),$1({...q,apply:Pl(({elements:Fl,rects:cv,availableWidth:Hb,availableHeight:Lb})=>{let{width:Bb,height:jb}=cv.reference,hu=Fl.floating.style;hu.setProperty("--radix-popper-available-width",`${Hb}px`),hu.setProperty("--radix-popper-available-height",`${Lb}px`),hu.setProperty("--radix-popper-anchor-width",`${Bb}px`),hu.setProperty("--radix-popper-anchor-height",`${jb}px`)},"apply")}),E&&eb({element:E,padding:c}),q_({arrowWidth:_,arrowHeight:N}),h&&tb({strategy:"referenceHidden",...q,boundary:w?q.boundary:void 0})]}),Ct=m.setPlacementState;St(()=>(Ct(K),()=>{Ct(void 0)}),[K,Ct]);let[Xn,Zt]=Hr(K),ce=Te(b);St(()=>{B&&(ce==null||ce())},[B,ce]);let dl=(dt=tt.arrow)==null?void 0:dt.x,ml=(F=tt.arrow)==null?void 0:F.y,Ha=((it=tt.arrow)==null?void 0:it.centerOffset)!==0,[Il,j]=ue.useState();return St(()=>{d&&j(window.getComputedStyle(d).zIndex)},[d]),(0,Fi.jsx)("div",{ref:at.setFloating,"data-radix-popper-content-wrapper":"",style:{...Q,transform:B?Q.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:Il,"--radix-popper-transform-origin":[(_e=tt.transformOrigin)==null?void 0:_e.x,(Ae=tt.transformOrigin)==null?void 0:Ae.y].join(" "),...((La=tt.hide)==null?void 0:La.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:(0,Fi.jsx)(V_,{scope:l,placedSide:Xn,placedAlign:Zt,onArrowChange:C,arrowX:dl,arrowY:ml,shouldHideArrow:Ha,children:(0,Fi.jsx)(Tt.div,{"data-side":Xn,"data-align":Zt,...R,ref:g,style:{...R.style,animation:B?(Ba=R.style)==null?void 0:Ba.animation:"none"}})})})},"PopperContent"));function ub(t){return t!==null}Pl(ub,"isNotNull");var q_=Pl(t=>({name:"transformOrigin",options:t,fn(e){var R,m,d,p,g;let{placement:n,rects:l,middlewareData:a}=e,o=((R=a.arrow)==null?void 0:R.centerOffset)!==0,u=o?0:t.arrowWidth,c=o?0:t.arrowHeight,[r,s]=Hr(n),v={start:"0%",center:"50%",end:"100%"}[s],f=((d=(m=a.arrow)==null?void 0:m.x)!=null?d:0)+u/2,h=((g=(p=a.arrow)==null?void 0:p.y)!=null?g:0)+c/2,S="",b="";return r==="bottom"?(S=o?v:`${f}px`,b=`${-c}px`):r==="top"?(S=o?v:`${f}px`,b=`${l.floating.height+c}px`):r==="right"?(S=`${-c}px`,b=o?v:`${h}px`):r==="left"&&(S=`${l.floating.width+c}px`,b=o?v:`${h}px`),{data:{x:S,y:b}}}}),"transformOrigin");function Hr(t){let[e,n="center"]=t.split("-");return[e,n]}Pl(Hr,"getSideAndAlignFromPlacement");var cb=L_,rb=j_,fb=Y_;var Lr=D(V(),1),X_=Object.defineProperty,Q_=(t,e)=>X_(t,"name",{value:e,configurable:!0});function ev(t){let e=Lr.useRef({value:t,previous:t});return Lr.useMemo(()=>(e.current.value!==t&&(e.current.previous=e.current.value,e.current.value=t),e.current.previous),[t])}Q_(ev,"usePrevious");var Z_=D(V(),1);var K_=D(Gt(),1);var sb=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"});var z=D(Gt(),1),P_=Object.defineProperty,st=(t,e)=>P_(t,"name",{value:e,configurable:!0}),J_=[" ","Enter","ArrowUp","ArrowDown"],I_=[" ","Enter"],ki="Select",[jr,av,F_]=qm(ki),[za,iD]=Ve(ki,[F_,tv]),iv=tv(),[k_,Ua]=za(ki),[W_,$_]=za(ki);function vb(t){let{__scopeSelect:e,children:n,open:l,defaultOpen:a,onOpenChange:i,value:o,defaultValue:u,onValueChange:c,dir:r,name:s,autoComplete:v,disabled:f,required:h,form:S,internal_do_not_use_render:b}=t,R=iv(e),[m,d]=x.useState(null),[p,g]=x.useState(null),[E,C]=x.useState(!1),T=Xm(r),[_,N]=Vi({prop:l,defaultProp:a!=null?a:!1,onChange:i,caller:ki}),[A,H]=Vi({prop:o,defaultProp:u,onChange:c,caller:ki}),P=x.useRef(null),w=x.useRef(A);x.useEffect(()=>{let Zt=S?m==null?void 0:m.ownerDocument.getElementById(S):m==null?void 0:m.form;if(Zt instanceof HTMLFormElement){let ce=st(()=>H(w.current),"reset");return Zt.addEventListener("reset",ce),()=>Zt.removeEventListener("reset",ce)}},[S,m,H]);let q=m?!!S||!!m.closest("form"):!0,[at,Q]=x.useState(new Set),K=Zl(),B=Array.from(at).map(Zt=>Zt.props.value).join(";"),tt=x.useCallback(Zt=>{Q(ce=>new Set(ce).add(Zt))},[]),Ct=x.useCallback(Zt=>{Q(ce=>{let dl=new Set(ce);return dl.delete(Zt),dl})},[]),Xn={required:h,trigger:m,onTriggerChange:d,valueNode:p,onValueNodeChange:g,valueNodeHasChildren:E,onValueNodeHasChildrenChange:C,contentId:K,value:A,onValueChange:H,open:_,onOpenChange:N,dir:T,triggerPointerDownPosRef:P,disabled:f,name:s,autoComplete:v,form:S,nativeOptions:at,nativeSelectKey:B,isFormControl:q};return(0,z.jsx)(cb,{...R,children:(0,z.jsx)(k_,{scope:e,...Xn,children:(0,z.jsx)(jr.Provider,{scope:e,children:(0,z.jsx)(W_,{scope:e,onNativeOptionAdd:tt,onNativeOptionRemove:Ct,children:_b(b)?b(Xn):n})})})})}st(vb,"SelectProvider");var hb=st(t=>{let{__scopeSelect:e,children:n,...l}=t;return(0,z.jsx)(vb,{__scopeSelect:e,...l,internal_do_not_use_render:({isFormControl:a})=>(0,z.jsxs)(z.Fragment,{children:[n,a?(0,z.jsx)(vA,{__scopeSelect:e}):null]})})},"Select"),tA="SelectTrigger",pb=x.forwardRef(st(function(e,n){let{__scopeSelect:l,disabled:a=!1,...i}=e,o=iv(l),u=Ua(tA,l),c=u.disabled||a,r=I(n,u.onTriggerChange),s=av(l),v=x.useRef("touch"),[f,h,S]=ov(R=>{let m=s().filter(g=>!g.disabled),d=m.find(g=>g.value===u.value),p=uv(m,R,d);p!==void 0&&u.onValueChange(p.value)}),b=st(R=>{c||(u.onOpenChange(!0),S()),R&&(u.triggerPointerDownPosRef.current={x:Math.round(R.pageX),y:Math.round(R.pageY)})},"handleOpen");return(0,z.jsx)(rb,{asChild:!0,...o,children:(0,z.jsx)(Tt.button,{type:"button",role:"combobox","aria-controls":u.open?u.contentId:void 0,"aria-expanded":u.open,"aria-required":u.required,"aria-autocomplete":"none",dir:u.dir,"data-state":u.open?"open":"closed",disabled:c,"data-disabled":c?"":void 0,"data-placeholder":Yr(u.value)?"":void 0,...i,ref:r,onClick:ut(i.onClick,R=>{R.currentTarget.focus(),v.current!=="mouse"&&b(R)}),onPointerDown:ut(i.onPointerDown,R=>{v.current=R.pointerType;let m=R.target;m.hasPointerCapture(R.pointerId)&&m.releasePointerCapture(R.pointerId),R.button===0&&R.ctrlKey===!1&&R.pointerType==="mouse"&&(b(R),R.preventDefault())}),onKeyDown:ut(i.onKeyDown,R=>{let m=f.current!=="";!(R.ctrlKey||R.altKey||R.metaKey)&&R.key.length===1&&h(R.key),!(m&&R.key===" ")&&J_.includes(R.key)&&(b(),R.preventDefault())})})})},"SelectTrigger"));var gb=x.forwardRef(st(function(e,n){let{__scopeSelect:l,children:a,...i}=e;return(0,z.jsx)(Tt.span,{"aria-hidden":!0,...i,ref:n,children:a||"\\u25BC"})},"SelectIcon")),eA="SelectPortal",[nA,lA]=za(eA,{forceMount:void 0}),yb=st(t=>{let{__scopeSelect:e,forceMount:n,...l}=t;return(0,z.jsx)(nA,{scope:t.__scopeSelect,forceMount:n,children:(0,z.jsx)(cr,{asChild:!0,...l})})},"SelectPortal"),Ma="SelectContent",Sb=x.forwardRef(st(function(e,n){let l=lA(Ma,e.__scopeSelect),{forceMount:a=l.forceMount,...i}=e,o=Ua(Ma,e.__scopeSelect),[u,c]=x.useState();return St(()=>{c(new DocumentFragment)},[]),(0,z.jsx)(Gi,{present:a||o.open,children:({present:r})=>r?(0,z.jsx)(oA,{...i,ref:n}):(0,z.jsx)(aA,{...i,fragment:u})})},"SelectContent")),aA=x.forwardRef(st(function(e,n){let{__scopeSelect:l,children:a,fragment:i}=e;return i?lv.createPortal((0,z.jsx)(bb,{scope:l,children:(0,z.jsx)(jr.Slot,{scope:l,children:(0,z.jsx)("div",{ref:n,children:a})})}),i):null},"SelectContentFragment")),bn=10,[bb,Vr]=za(Ma),iA=Ye("SelectContent.RemoveScroll"),oA=x.forwardRef(st(function(e,n){let{__scopeSelect:l}=e,{position:a="item-aligned",onCloseAutoFocus:i,onEscapeKeyDown:o,onPointerDownOutside:u,side:c,sideOffset:r,align:s,alignOffset:v,arrowPadding:f,collisionBoundary:h,collisionPadding:S,sticky:b,hideWhenDetached:R,avoidCollisions:m,...d}=e,p=Ua(Ma,l),[g,E]=x.useState(null),[C,T]=x.useState(null),_=I(n,E),[N,A]=x.useState(null),[H,P]=x.useState(null),w=av(l),[q,at]=x.useState(!1),Q=x.useRef(!1);x.useEffect(()=>{if(g)return yr(g)},[g]),Xi();let K=x.useCallback(j=>{let[yt,...ee]=w().map(it=>it.ref.current),[dt]=ee.slice(-1),F=document.activeElement;for(let it of j)if(it===F||(it==null||it.scrollIntoView({block:"nearest"}),it===yt&&C&&(C.scrollTop=0),it===dt&&C&&(C.scrollTop=C.scrollHeight),it==null||it.focus(),document.activeElement!==F))return},[w,C]),B=x.useCallback(()=>K([N,g]),[K,N,g]);x.useEffect(()=>{q&&B()},[q,B]);let{onOpenChange:tt,triggerPointerDownPosRef:Ct}=p;x.useEffect(()=>{if(g){let j={x:0,y:0},yt=st(dt=>{var F,it,_e,Ae;j={x:Math.abs(Math.round(dt.pageX)-((it=(F=Ct.current)==null?void 0:F.x)!=null?it:0)),y:Math.abs(Math.round(dt.pageY)-((Ae=(_e=Ct.current)==null?void 0:_e.y)!=null?Ae:0))}},"handlePointerMove"),ee=st(dt=>{j.x<=10&&j.y<=10?dt.preventDefault():dt.composedPath().includes(g)||tt(!1),document.removeEventListener("pointermove",yt),Ct.current=null},"handlePointerUp");return Ct.current!==null&&(document.addEventListener("pointermove",yt),document.addEventListener("pointerup",ee,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",yt),document.removeEventListener("pointerup",ee,{capture:!0})}}},[g,tt,Ct]),x.useEffect(()=>{let j=st(()=>tt(!1),"close");return window.addEventListener("blur",j),window.addEventListener("resize",j),()=>{window.removeEventListener("blur",j),window.removeEventListener("resize",j)}},[tt]);let[Xn,Zt]=ov(j=>{let yt=w().filter(F=>!F.disabled),ee=yt.find(F=>F.ref.current===document.activeElement),dt=uv(yt,j,ee);dt&&setTimeout(()=>{var F;return(F=dt.ref.current)==null?void 0:F.focus()})}),ce=x.useCallback((j,yt,ee)=>{let dt=!Q.current&&!ee;(p.value!==void 0&&p.value===yt||dt)&&(A(j),dt&&(Q.current=!0))},[p.value]),dl=x.useCallback(()=>g==null?void 0:g.focus(),[g]),ml=x.useCallback((j,yt,ee)=>{let dt=!Q.current&&!ee;(p.value!==void 0&&p.value===yt||dt)&&P(j)},[p.value]),Ha=a==="popper"?db:uA,Il=Ha===db?{side:c,sideOffset:r,align:s,alignOffset:v,arrowPadding:f,collisionBoundary:h,collisionPadding:S,sticky:b,hideWhenDetached:R,avoidCollisions:m}:{};return(0,z.jsx)(bb,{scope:l,content:g,viewport:C,onViewportChange:T,itemRefCallback:ce,selectedItem:N,onItemLeave:dl,itemTextRefCallback:ml,focusSelectedItem:B,selectedItemText:H,position:a,isPositioned:q,searchRef:Xn,children:(0,z.jsx)(iu,{as:iA,allowPinchZoom:!0,children:(0,z.jsx)(or,{asChild:!0,trapped:p.open,onMountAutoFocus:j=>{j.preventDefault()},onUnmountAutoFocus:ut(i,j=>{var yt;(yt=p.trigger)==null||yt.focus({preventScroll:!0}),j.preventDefault()}),children:(0,z.jsx)(ir,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:o,onPointerDownOutside:u,onFocusOutside:j=>j.preventDefault(),onDismiss:()=>p.onOpenChange(!1),children:(0,z.jsx)(Ha,{role:"listbox",id:p.contentId,"data-state":p.open?"open":"closed",dir:p.dir,onContextMenu:j=>j.preventDefault(),...d,...Il,onPlaced:()=>at(!0),ref:_,style:{display:"flex",flexDirection:"column",outline:"none",...d.style},onKeyDown:ut(d.onKeyDown,j=>{let yt=j.ctrlKey||j.altKey||j.metaKey;if(j.key==="Tab"&&j.preventDefault(),!yt&&j.key.length===1&&Zt(j.key),["ArrowUp","ArrowDown","Home","End"].includes(j.key)){let dt=w().filter(F=>!F.disabled).map(F=>F.ref.current);if(["ArrowUp","End"].includes(j.key)&&(dt=dt.slice().reverse()),["ArrowUp","ArrowDown"].includes(j.key)){let F=j.target,it=dt.indexOf(F);dt=dt.slice(it+1)}setTimeout(()=>K(dt)),j.preventDefault()}})})})})})})},"SelectContentImpl")),uA=x.forwardRef(st(function(e,n){let{__scopeSelect:l,onPlaced:a,...i}=e,o=Ua(Ma,l),u=Vr(Ma,l),[c,r]=x.useState(null),[s,v]=x.useState(null),f=I(n,v),h=av(l),S=x.useRef(!1),b=x.useRef(!0),{viewport:R,selectedItem:m,selectedItemText:d,focusSelectedItem:p}=u,g=x.useCallback(()=>{if(o.trigger&&o.valueNode&&c&&s&&R&&m&&d){let _=o.trigger.getBoundingClientRect(),N=s.getBoundingClientRect(),A=o.valueNode.getBoundingClientRect(),H=d.getBoundingClientRect();if(o.dir!=="rtl"){let F=H.left-N.left,it=A.left-F,_e=_.left-it,Ae=_.width+_e,La=Math.max(Ae,N.width),Ba=window.innerWidth-bn,Fl=br(it,[bn,Math.max(bn,Ba-La)]);c.style.minWidth=Ae+"px",c.style.left=Fl+"px"}else{let F=N.right-H.right,it=window.innerWidth-A.right-F,_e=window.innerWidth-_.right-it,Ae=_.width+_e,La=Math.max(Ae,N.width),Ba=window.innerWidth-bn,Fl=br(it,[bn,Math.max(bn,Ba-La)]);c.style.minWidth=Ae+"px",c.style.right=Fl+"px"}let P=h(),w=window.innerHeight-bn*2,q=R.scrollHeight,at=window.getComputedStyle(s),Q=parseInt(at.borderTopWidth,10),K=parseInt(at.paddingTop,10),B=parseInt(at.borderBottomWidth,10),tt=parseInt(at.paddingBottom,10),Ct=Q+K+q+tt+B,Xn=Math.min(m.offsetHeight*5,Ct),Zt=window.getComputedStyle(R),ce=parseInt(Zt.paddingTop,10),dl=parseInt(Zt.paddingBottom,10),ml=_.top+_.height/2-bn,Ha=w-ml,Il=m.offsetHeight/2,j=m.offsetTop+Il,yt=Q+K+j,ee=Ct-yt;if(yt<=ml){let F=P.length>0&&m===P[P.length-1].ref.current;c.style.bottom="0px";let it=s.clientHeight-R.offsetTop-R.offsetHeight,_e=Math.max(Ha,Il+(F?dl:0)+it+B),Ae=yt+_e;c.style.height=Ae+"px"}else{let F=P.length>0&&m===P[0].ref.current;c.style.top="0px";let _e=Math.max(ml,Q+R.offsetTop+(F?ce:0)+Il)+ee;c.style.height=_e+"px",R.scrollTop=yt-ml+R.offsetTop}c.style.margin=`${bn}px 0`,c.style.minHeight=Xn+"px",c.style.maxHeight=w+"px",a==null||a(),requestAnimationFrame(()=>S.current=!0)}},[h,o.trigger,o.valueNode,c,s,R,m,d,o.dir,a]);St(()=>g(),[g]);let[E,C]=x.useState();St(()=>{s&&C(window.getComputedStyle(s).zIndex)},[s]);let T=x.useCallback(_=>{_&&b.current===!0&&(g(),p==null||p(),b.current=!1)},[g,p]);return(0,z.jsx)(cA,{scope:l,contentWrapper:c,shouldExpandOnScrollRef:S,onScrollButtonChange:T,children:(0,z.jsx)("div",{ref:r,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:E},children:(0,z.jsx)(Tt.div,{...i,ref:f,style:{boxSizing:"border-box",maxHeight:"100%",...i.style}})})})},"SelectItemAlignedPosition")),db=x.forwardRef(st(function(e,n){let{__scopeSelect:l,align:a="start",collisionPadding:i=bn,...o}=e,u=iv(l);return(0,z.jsx)(fb,{...u,...o,ref:n,align:a,collisionPadding:i,style:{boxSizing:"border-box",...o.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})},"SelectPopperPosition")),[cA,rA]=za(Ma,{}),mb="SelectViewport",Rb=x.forwardRef(st(function(e,n){let{__scopeSelect:l,nonce:a,...i}=e,o=Vr(mb,l),u=rA(mb,l),c=I(n,o.onViewportChange),r=x.useRef(0);return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:a}),(0,z.jsx)(jr.Slot,{scope:l,children:(0,z.jsx)(Tt.div,{"data-radix-select-viewport":"",role:"presentation",...i,ref:c,style:{position:"relative",flex:1,overflow:"hidden auto",...i.style},onScroll:ut(i.onScroll,s=>{let v=s.currentTarget,{contentWrapper:f,shouldExpandOnScrollRef:h}=u;if(h!=null&&h.current&&f){let S=Math.abs(r.current-v.scrollTop);if(S>0){let b=window.innerHeight-bn*2,R=parseFloat(f.style.minHeight),m=parseFloat(f.style.height),d=Math.max(R,m);if(d<b){let p=d+S,g=Math.min(b,p),E=p-g;f.style.height=g+"px",f.style.bottom==="0px"&&(v.scrollTop=E>0?E:0,f.style.justifyContent="flex-end")}}}r.current=v.scrollTop})})})]})},"SelectViewport")),fA="SelectGroup",[oD,uD]=za(fA);var nv="SelectItem",[sA,Eb]=za(nv),Tb=x.forwardRef(st(function(e,n){let{__scopeSelect:l,value:a,disabled:i=!1,textValue:o,...u}=e,c=Ua(nv,l),r=Vr(nv,l),s=c.value===a,[v,f]=x.useState(o!=null?o:""),[h,S]=x.useState(!1),b=Te(g=>{var E;return(E=r.itemRefCallback)==null?void 0:E.call(r,g,a,i)}),R=I(n,b),m=Zl(),d=x.useRef("touch"),p=st(()=>{i||(c.onValueChange(a),c.onOpenChange(!1))},"handleSelect");return(0,z.jsx)(sA,{scope:l,value:a,disabled:i,textId:m,isSelected:s,onItemTextChange:x.useCallback(g=>{f(E=>{var C;return E||((C=g==null?void 0:g.textContent)!=null?C:"").trim()})},[]),children:(0,z.jsx)(jr.ItemSlot,{scope:l,value:a,disabled:i,textValue:v,children:(0,z.jsx)(Tt.div,{role:"option","aria-labelledby":m,"data-highlighted":h?"":void 0,"aria-selected":s&&h,"data-state":s?"checked":"unchecked","aria-disabled":i||void 0,"data-disabled":i?"":void 0,tabIndex:i?void 0:-1,...u,ref:R,onFocus:ut(u.onFocus,()=>S(!0)),onBlur:ut(u.onBlur,()=>S(!1)),onClick:ut(u.onClick,()=>{d.current!=="mouse"&&p()}),onPointerUp:ut(u.onPointerUp,()=>{d.current==="mouse"&&p()}),onPointerDown:ut(u.onPointerDown,g=>{d.current=g.pointerType}),onPointerMove:ut(u.onPointerMove,g=>{var E;d.current=g.pointerType,i?(E=r.onItemLeave)==null||E.call(r):d.current==="mouse"&&g.currentTarget.focus({preventScroll:!0})}),onPointerLeave:ut(u.onPointerLeave,g=>{var E;g.currentTarget===document.activeElement&&((E=r.onItemLeave)==null||E.call(r))}),onKeyDown:ut(u.onKeyDown,g=>{var C;i||g.target!==g.currentTarget||((C=r.searchRef)==null?void 0:C.current)!==""&&g.key===" "||(I_.includes(g.key)&&p(),g.key===" "&&g.preventDefault())})})})})},"SelectItem")),Br="SelectItemText",Cb=x.forwardRef(st(function(e,n){let{__scopeSelect:l,className:a,style:i,...o}=e,u=Ua(Br,l),c=Vr(Br,l),r=Eb(Br,l),s=$_(Br,l),[v,f]=x.useState(null),h=Te(p=>{var g;return(g=c.itemTextRefCallback)==null?void 0:g.call(c,p,r.value,r.disabled)}),S=I(n,f,r.onItemTextChange,h),b=v==null?void 0:v.textContent,R=x.useMemo(()=>(0,z.jsx)("option",{value:r.value,disabled:r.disabled,children:b},r.value),[r.disabled,r.value,b]),{onNativeOptionAdd:m,onNativeOptionRemove:d}=s;return St(()=>(m(R),()=>d(R)),[m,d,R]),(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(Tt.span,{id:r.textId,...o,ref:S}),r.isSelected&&u.valueNode&&!u.valueNodeHasChildren&&!Yr(u.value)?lv.createPortal(o.children,u.valueNode):null]})},"SelectItemText")),dA="SelectItemIndicator",Ob=x.forwardRef(st(function(e,n){let{__scopeSelect:l,...a}=e;return Eb(dA,l).isSelected?(0,z.jsx)(Tt.span,{"aria-hidden":!0,...a,ref:n}):null},"SelectItemIndicator"));var mA="SelectBubbleInput",vA=x.forwardRef(st(function({__scopeSelect:e,...n},l){let a=Ua(mA,e),{value:i,onValueChange:o,required:u,disabled:c,name:r,autoComplete:s,form:v}=a,{nativeOptions:f,nativeSelectKey:h}=a,S=x.useRef(null),b=I(l,S),R=i!=null?i:"",m=ev(R),d=Array.from(f).some(p=>{var g;return((g=p.props.value)!=null?g:"")===""});return x.useEffect(()=>{let p=S.current;if(!p)return;let g=window.HTMLSelectElement.prototype,C=Object.getOwnPropertyDescriptor(g,"value").set;if(m!==R&&C){let T=new Event("change",{bubbles:!0});C.call(p,R),p.dispatchEvent(T)}},[m,R]),(0,z.jsxs)(Tt.select,{"aria-hidden":!0,required:u,tabIndex:-1,name:r,autoComplete:s,disabled:c,form:v,onChange:p=>o(p.target.value),...n,style:{...sb,...n.style},ref:b,defaultValue:R,children:[Yr(i)&&!d?(0,z.jsx)("option",{value:""}):null,Array.from(f)]},h)},"SelectBubbleInput"));function _b(t){return typeof t=="function"}st(_b,"isFunction");function Yr(t){return t===""||t===void 0}st(Yr,"shouldShowPlaceholder");function ov(t){let e=Te(t),n=x.useRef(""),l=x.useRef(0),a=x.useCallback(o=>{let u=n.current+o;e(u),st((function c(r){n.current=r,window.clearTimeout(l.current),r!==""&&(l.current=window.setTimeout(()=>c(""),1e3))}),"updateSearch")(u)},[e]),i=x.useCallback(()=>{n.current="",window.clearTimeout(l.current)},[]);return x.useEffect(()=>()=>window.clearTimeout(l.current),[]),[n,a,i]}st(ov,"useTypeaheadSearch");function uv(t,e,n){let a=e.length>1&&Array.from(e).every(r=>r===e[0])?e[0]:e,i=n?t.indexOf(n):-1,o=Ab(t,Math.max(i,0));a.length===1&&(o=o.filter(r=>r!==n));let c=o.find(r=>r.textValue.toLowerCase().startsWith(a.toLowerCase()));return c!==n?c:void 0}st(uv,"findNextItem");function Ab(t,e){return t.map((n,l)=>t[(e+l)%t.length])}st(Ab,"wrapArray");var Nb=D(V()),y=D(Gt());function mu(t){return`/${t.token}`}function Rn(t,e){return`${mu(t)}/source/${encodeURIComponent(e)}`}function pA(t){return t==="ok"?"ok":t==="missing"?"warn":t==="error"?"error":"muted"}function gA(){return(0,y.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:(0,y.jsx)("path",{d:"M4 6l4 4 4-4",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})})}function yA(){return(0,y.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[(0,y.jsx)("path",{d:"M6 3H3.5A1.5 1.5 0 002 4.5v8A1.5 1.5 0 003.5 14h8a1.5 1.5 0 001.5-1.5V10",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),(0,y.jsx)("path",{d:"M9 2h5v5M14 2l-6.5 6.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})}function Jl({state:t,title:e,subtitle:n,children:l}){let a="sourceName"in t?t.sourceName:null;return(0,y.jsxs)("div",{className:"page",children:[(0,y.jsxs)("header",{className:"topbar",children:[(0,y.jsxs)("div",{className:"brand",children:[(0,y.jsx)("span",{className:"brand-mark","aria-hidden":"true",children:"mx"}),(0,y.jsx)("span",{className:"brand-name",children:"mxenv"}),(0,y.jsx)("span",{className:"brand-divider","aria-hidden":"true"}),(0,y.jsx)("span",{className:"brand-crumb",children:"Secret editor"})]}),(0,y.jsxs)("div",{className:"profile-chip",title:"Active profile",children:[(0,y.jsx)("span",{className:"profile-dot","aria-hidden":"true"}),(0,y.jsx)("span",{className:"profile-name",children:t.profileName})]})]}),(0,y.jsxs)("nav",{className:"source-nav","aria-label":"Sources",children:[(0,y.jsx)("a",{className:`source-chip${a===null?" is-current":""}`,href:mu(t),children:"All sources"}),t.sources.map(i=>(0,y.jsxs)("a",{className:`source-chip${a===i.name?" is-current":""}`,href:Rn(t,i.name),children:[(0,y.jsx)("span",{className:"source-chip-provider",children:i.provider}),i.name]},i.name))]}),(0,y.jsxs)("main",{className:"container",children:[(0,y.jsxs)("div",{className:"page-head",children:[(0,y.jsx)("h1",{children:e}),n&&(0,y.jsx)("p",{className:"subtitle",children:n})]}),l]}),(0,y.jsx)("footer",{className:"footer",children:"One-time local session \\xB7 values never return to the terminal \\xB7 15-minute lifetime \\xB7 end the session explicitly when done"})]})}function vu({title:t,count:e,children:n}){return(0,y.jsxs)("section",{className:"card",children:[(0,y.jsxs)("div",{className:"card-head",children:[(0,y.jsx)("h2",{children:t}),typeof e=="number"&&(0,y.jsx)("span",{className:"count-pill",children:e})]}),n]})}function xb({base:t,files:e,fileIndex:n}){var l,a;return(0,y.jsxs)("div",{className:"field",children:[(0,y.jsx)("span",{className:"field-label",children:"File"}),(0,y.jsxs)(hb,{value:String(n),onValueChange:i=>{window.location.href=`${t}?fileIndex=${encodeURIComponent(i)}`},children:[(0,y.jsxs)(pb,{className:"select-trigger","aria-label":"File",children:[(0,y.jsx)("span",{className:"select-value",children:(a=(l=e[n])!=null?l:e[0])!=null?a:""}),(0,y.jsx)(gb,{className:"select-icon",children:(0,y.jsx)(gA,{})})]}),(0,y.jsx)(yb,{children:(0,y.jsx)(Sb,{className:"select-content",position:"popper",sideOffset:6,children:(0,y.jsx)(Rb,{className:"select-viewport",children:e.map((i,o)=>(0,y.jsxs)(Tb,{className:"select-item",value:String(o),children:[(0,y.jsx)(Cb,{children:i}),(0,y.jsx)(Ob,{className:"select-indicator",children:"\\u2713"})]},`${i}:${o}`))})})})]})]})}function SA({state:t}){return(0,y.jsxs)(Jl,{state:t,title:"Profile overview",subtitle:(0,y.jsxs)(y.Fragment,{children:["Profile ",(0,y.jsx)("code",{className:"inline-code",children:t.profileName})," \\u2014 this summary deliberately never displays values."]}),children:[(0,y.jsx)(vu,{title:"Sources",count:t.sourceStatuses.length,children:(0,y.jsx)("div",{className:"table-wrap",children:(0,y.jsxs)("table",{className:"table",children:[(0,y.jsx)("thead",{children:(0,y.jsxs)("tr",{children:[(0,y.jsx)("th",{children:"Name"}),(0,y.jsx)("th",{children:"Provider"}),(0,y.jsx)("th",{children:"Status"}),(0,y.jsx)("th",{className:"col-num",children:"Keys"}),(0,y.jsx)("th",{className:"col-num","aria-label":"Actions"})]})}),(0,y.jsx)("tbody",{children:t.sourceStatuses.map(e=>(0,y.jsxs)("tr",{children:[(0,y.jsx)("td",{children:(0,y.jsx)("code",{className:"src-name",children:e.name})}),(0,y.jsx)("td",{children:(0,y.jsx)("span",{className:"provider-badge",children:e.provider})}),(0,y.jsx)("td",{children:(0,y.jsx)("span",{className:`badge ${pA(e.availability)}`,children:e.availability})}),(0,y.jsx)("td",{className:"col-num",children:e.keyCount}),(0,y.jsx)("td",{className:"col-num",children:e.editable?(0,y.jsx)("a",{className:"table-action",href:Rn(t,e.name),children:"Open \\u2192"}):(0,y.jsx)("span",{className:"table-action is-muted",children:"\\u2014"})})]},e.name))})]})})}),(0,y.jsx)(vu,{title:"Resolved keys",count:t.provenance.length,children:(0,y.jsx)("div",{className:"table-wrap",children:(0,y.jsxs)("table",{className:"table",children:[(0,y.jsx)("thead",{children:(0,y.jsxs)("tr",{children:[(0,y.jsx)("th",{children:"Key"}),(0,y.jsx)("th",{children:"Winning source"}),(0,y.jsx)("th",{children:"Provider"})]})}),(0,y.jsx)("tbody",{children:t.provenance.map(e=>(0,y.jsxs)("tr",{children:[(0,y.jsx)("td",{children:(0,y.jsx)("code",{className:"key-name",children:e.key})}),(0,y.jsx)("td",{children:e.source}),(0,y.jsxs)("td",{children:[e.provider,e.overriddenSources.length>0&&(0,y.jsxs)("span",{className:"override-note",children:[" \\xB7 overrides ",e.overriddenSources.join(", ")]})]})]},e.key))})]})})})]})}var bA=/^(\\s*)(export\\s+)?([A-Za-z_][A-Za-z0-9_.]*)(\\s*=\\s*)(.*)$/;function RA(t){return t.split(`\n`).map(e=>{let n=bA.exec(e);return n?{kind:"var",prefix:n[1]+(n[2]||""),key:n[3],sep:n[4],value:n[5]}:{kind:"raw",text:e}})}function EA(t){return t.filter(e=>e.kind==="raw"||e.key.trim()!=="").map(e=>e.kind==="raw"?e.text:`${e.prefix}${e.key}${e.sep}${e.value}`).join(`\n`)}function TA({state:t}){let[e,n]=(0,Nb.useState)(()=>RA(t.content)),l=EA(e),a=(u,c)=>{n(r=>r.map((s,v)=>v===u&&s.kind==="var"?{...s,...c}:s))},i=u=>{n(c=>c.filter((r,s)=>s!==u))},o=()=>{n(u=>[...u,{kind:"var",prefix:"",key:"",sep:"=",value:""}])};return(0,y.jsx)(Jl,{state:t,title:`Edit ${t.sourceName}`,subtitle:"Changes are written only to the selected local file. Values stay in this browser session and never return to CLI output.",children:(0,y.jsxs)("section",{className:"card",children:[(0,y.jsx)(xb,{base:Rn(t,t.sourceName),files:t.files,fileIndex:t.fileIndex}),(0,y.jsxs)("form",{method:"post",action:`${Rn(t,t.sourceName)}/local`,className:"form",children:[(0,y.jsx)("input",{type:"hidden",name:"fileIndex",value:t.fileIndex}),(0,y.jsx)("input",{type:"hidden",name:"content",value:l,readOnly:!0}),(0,y.jsxs)("div",{className:"field",children:[(0,y.jsx)("span",{className:"field-label",children:"Variables"}),(0,y.jsxs)("div",{className:"kv-list",children:[e.map((u,c)=>u.kind==="raw"?u.text.trim()===""?null:(0,y.jsx)("div",{className:"kv-raw",children:u.text},c):(0,y.jsxs)("div",{className:"kv-row",children:[(0,y.jsx)("input",{className:"kv-key",value:u.key,onChange:r=>a(c,{key:r.target.value}),"aria-label":`Key of row ${c+1}`,pattern:"[A-Za-z_][A-Za-z0-9_.]*",autoComplete:"off",spellCheck:!1}),(0,y.jsx)("span",{className:"kv-eq","aria-hidden":"true",children:"="}),(0,y.jsx)("input",{className:"kv-value",value:u.value,onChange:r=>a(c,{value:r.target.value}),"aria-label":`Value of row ${c+1}`,autoComplete:"off",spellCheck:!1}),(0,y.jsx)("button",{type:"button",className:"kv-remove",onClick:()=>i(c),"aria-label":`Remove row ${c+1}`,children:"\\u2715"})]},c)),e.every(u=>u.kind!=="var")&&(0,y.jsx)("p",{className:"empty",children:"No variables in this file yet \\u2014 add the first one below."})]}),(0,y.jsx)("button",{type:"button",className:"btn btn-ghost kv-add",onClick:o,children:"+ Add variable"})]}),(0,y.jsx)("div",{className:"form-actions",children:(0,y.jsx)("button",{className:"btn btn-primary",type:"submit",children:"Save local file"})})]}),(0,y.jsx)("p",{className:"notice notice-info",children:"Rows are written back as KEY=value. Comments, blank lines and anything that is not KEY=VALUE are preserved exactly as they appear; rows with an empty key are skipped on save."})]})})}function CA({state:t}){var n;let e=`${Rn(t,t.sourceName)}/dotenvx`;return(0,y.jsxs)(Jl,{state:t,title:`Edit ${t.sourceName}`,subtitle:"This file is managed by dotenvx. Values appear only when you reveal them \\u2014 one at a time \\u2014 and stay in this browser session.",children:[(0,y.jsx)(vu,{title:"Existing keys",count:t.keyNames.length,children:t.keyNames.length===0?(0,y.jsx)("p",{className:"empty",children:"No keys in this file yet \\u2014 add the first one below."}):(0,y.jsx)("ul",{className:"account-list",children:t.keyNames.map((l,a)=>{var i,o;return(0,y.jsxs)("li",{className:"account-row",children:[(0,y.jsx)("code",{className:"src-name",children:l}),((i=t.revealed)==null?void 0:i.key)===l&&(0,y.jsx)("code",{className:"revealed-value",children:t.revealed.value}),(0,y.jsxs)("span",{className:"account-actions",children:[((o=t.revealed)==null?void 0:o.key)===l?(0,y.jsx)("a",{className:"btn btn-ghost",href:`${Rn(t,t.sourceName)}?fileIndex=${t.fileIndex}`,children:"Hide"}):(0,y.jsxs)("form",{method:"post",action:e,className:"inline-form",children:[(0,y.jsx)("input",{type:"hidden",name:"action",value:"reveal"}),(0,y.jsx)("input",{type:"hidden",name:"key",value:l}),(0,y.jsx)("input",{type:"hidden",name:"fileIndex",value:t.fileIndex}),(0,y.jsx)("button",{type:"submit",className:"btn btn-ghost",children:"Show value"})]}),(0,y.jsx)("a",{className:"btn btn-ghost",href:`${Rn(t,t.sourceName)}?fileIndex=${t.fileIndex}&key=${encodeURIComponent(l)}`,children:"Edit"}),(0,y.jsxs)("form",{id:`dotenvx-delete-${a}`,method:"post",action:e,className:"hidden-form",children:[(0,y.jsx)("input",{type:"hidden",name:"action",value:"delete"}),(0,y.jsx)("input",{type:"hidden",name:"key",value:l}),(0,y.jsx)("input",{type:"hidden",name:"fileIndex",value:t.fileIndex})]}),(0,y.jsxs)(Dm,{children:[(0,y.jsx)(wm,{asChild:!0,children:(0,y.jsx)("button",{type:"button",className:"btn btn-danger-ghost",children:"Delete"})}),(0,y.jsxs)(Mm,{children:[(0,y.jsx)(zm,{className:"dialog-overlay"}),(0,y.jsxs)(Um,{className:"dialog-content",children:[(0,y.jsxs)(Bm,{className:"dialog-title",children:["Delete \\u201C",l,"\\u201D?"]}),(0,y.jsx)(jm,{className:"dialog-description",children:"This removes the key from the encrypted file. The stored value is destroyed and cannot be recovered from mxenv."}),(0,y.jsxs)("div",{className:"dialog-actions",children:[(0,y.jsx)(Lm,{className:"btn btn-ghost",children:"Cancel"}),(0,y.jsx)(Hm,{asChild:!0,children:(0,y.jsx)("button",{type:"submit",form:`dotenvx-delete-${a}`,className:"btn btn-danger",children:"Delete key"})})]})]})]})]})]})]},l)})})}),(0,y.jsxs)("section",{className:"card",children:[(0,y.jsx)(xb,{base:Rn(t,t.sourceName),files:t.files,fileIndex:t.fileIndex}),(0,y.jsx)("div",{className:"card-head",children:(0,y.jsx)("h2",{children:"Add or replace a key"})}),(0,y.jsxs)("form",{method:"post",action:e,className:"form",children:[(0,y.jsx)("input",{type:"hidden",name:"action",value:"set"}),(0,y.jsx)("input",{type:"hidden",name:"fileIndex",value:t.fileIndex}),(0,y.jsxs)("div",{className:"field",children:[(0,y.jsx)("span",{className:"field-label",children:"Key"}),(0,y.jsx)("input",{className:"input",name:"key",required:!0,pattern:"[A-Za-z_][A-Za-z0-9_.]*",autoComplete:"off",spellCheck:!1,defaultValue:(n=t.formKey)!=null?n:""})]}),(0,y.jsxs)("div",{className:"field",children:[(0,y.jsx)("span",{className:"field-label",children:"Value"}),(0,y.jsx)("input",{className:"input",name:"value",type:"password",required:!0,autoComplete:"new-password"})]}),(0,y.jsx)("div",{className:"form-actions",children:(0,y.jsx)("button",{className:"btn btn-primary",type:"submit",children:"Save encrypted value"})})]}),(0,y.jsxs)("p",{className:"notice notice-info",children:["Saving rewrites only the submitted key \\u2014 every other key keeps its encrypted value untouched. Revealed values are shown one at a time and never leave this browser session. Values containing ",(0,y.jsx)("code",{className:"inline-code",children:"$"})," sequences are refused: dotenvx expands them on every load path."]})]})]})}function OA({state:t}){let e=`${Rn(t,t.sourceName)}/keychain`;return(0,y.jsxs)(Jl,{state:t,title:`Edit ${t.sourceName}`,subtitle:(0,y.jsxs)(y.Fragment,{children:["Existing account names are shown; values appear only when you reveal them \\u2014 one at a time. OS keychain service ",(0,y.jsx)("code",{className:"inline-code",children:t.service}),"."]}),children:[(0,y.jsx)(vu,{title:"Existing entries",count:t.accounts.length,children:t.accounts.length===0?(0,y.jsx)("p",{className:"empty",children:"No entries yet \\u2014 add the first one below."}):(0,y.jsx)("ul",{className:"account-list",children:t.accounts.map((n,l)=>{var a,i;return(0,y.jsxs)("li",{className:"account-row",children:[(0,y.jsx)("code",{className:"src-name",children:n}),((a=t.revealed)==null?void 0:a.key)===n&&(0,y.jsx)("code",{className:"revealed-value",children:t.revealed.value}),(0,y.jsxs)("span",{className:"account-actions",children:[((i=t.revealed)==null?void 0:i.key)===n?(0,y.jsx)("a",{className:"btn btn-ghost",href:Rn(t,t.sourceName),children:"Hide"}):(0,y.jsxs)("form",{method:"post",action:e,className:"inline-form",children:[(0,y.jsx)("input",{type:"hidden",name:"action",value:"reveal"}),(0,y.jsx)("input",{type:"hidden",name:"account",value:n}),(0,y.jsx)("button",{type:"submit",className:"btn btn-ghost",children:"Show value"})]}),(0,y.jsxs)("form",{id:`keychain-delete-${l}`,method:"post",action:e,className:"hidden-form",children:[(0,y.jsx)("input",{type:"hidden",name:"action",value:"delete"}),(0,y.jsx)("input",{type:"hidden",name:"account",value:n})]}),(0,y.jsxs)(Dm,{children:[(0,y.jsx)(wm,{asChild:!0,children:(0,y.jsx)("button",{type:"button",className:"btn btn-danger-ghost",children:"Delete"})}),(0,y.jsxs)(Mm,{children:[(0,y.jsx)(zm,{className:"dialog-overlay"}),(0,y.jsxs)(Um,{className:"dialog-content",children:[(0,y.jsxs)(Bm,{className:"dialog-title",children:["Delete \\u201C",n,"\\u201D?"]}),(0,y.jsxs)(jm,{className:"dialog-description",children:["This removes the entry from the OS keychain service ",(0,y.jsx)("code",{className:"inline-code",children:t.service}),". The stored value is destroyed and cannot be recovered from mxenv."]}),(0,y.jsxs)("div",{className:"dialog-actions",children:[(0,y.jsx)(Lm,{className:"btn btn-ghost",children:"Cancel"}),(0,y.jsx)(Hm,{asChild:!0,children:(0,y.jsx)("button",{type:"submit",form:`keychain-delete-${l}`,className:"btn btn-danger",children:"Delete entry"})})]})]})]})]})]})]},n)})})}),(0,y.jsx)(vu,{title:"Add or replace an entry",children:(0,y.jsxs)("form",{method:"post",action:e,className:"form",children:[(0,y.jsx)("input",{type:"hidden",name:"action",value:"set"}),(0,y.jsxs)("div",{className:"field",children:[(0,y.jsx)("span",{className:"field-label",children:"Environment key"}),(0,y.jsx)("input",{className:"input",name:"account",required:!0,autoComplete:"off",spellCheck:!1})]}),(0,y.jsxs)("div",{className:"field",children:[(0,y.jsx)("span",{className:"field-label",children:"Value"}),(0,y.jsx)("input",{className:"input",name:"value",type:"password",required:!0,autoComplete:"new-password"})]}),(0,y.jsx)("div",{className:"form-actions",children:(0,y.jsx)("button",{className:"btn btn-primary",type:"submit",children:"Save to keychain"})})]})})]})}function _A({state:t}){return(0,y.jsx)(Jl,{state:t,title:t.sourceName,subtitle:(0,y.jsxs)(y.Fragment,{children:["This source is owned by ",(0,y.jsx)("span",{className:"provider-badge",children:t.provider}),". Values stay in that provider and are never displayed here."]}),children:(0,y.jsxs)("section",{className:"card provider-card",children:[(0,y.jsxs)("p",{className:"provider-hint",children:["mxenv composes keys from this provider but cannot edit them locally. Open the provider console to review or rotate values, then validate with ",(0,y.jsx)("code",{className:"inline-code",children:"mxenv inspect"}),"."]}),t.url?(0,y.jsxs)("a",{className:"btn btn-primary",href:t.url,target:"_blank",rel:"noreferrer",children:["Open provider editor ",(0,y.jsx)(yA,{})]}):(0,y.jsx)("span",{className:"empty",children:"No console URL configured for this provider."})]})})}function AA({state:t}){let e=t.key?t.action==="delete"?(0,y.jsxs)(y.Fragment,{children:["Key ",(0,y.jsx)("code",{className:"inline-code",children:t.key})," was deleted."]}):(0,y.jsxs)(y.Fragment,{children:["Key ",(0,y.jsx)("code",{className:"inline-code",children:t.key})," was written."]}):"The local file was saved.";return(0,y.jsx)(Jl,{state:t,title:"Saved",subtitle:void 0,children:(0,y.jsxs)("section",{className:"card saved-card",children:[(0,y.jsx)("div",{className:"saved-icon","aria-hidden":"true",children:(0,y.jsx)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",children:(0,y.jsx)("path",{d:"M5 13l4 4L19 7",stroke:"currentColor",strokeWidth:"2.4",strokeLinecap:"round",strokeLinejoin:"round"})})}),(0,y.jsx)("h2",{className:"saved-title",children:"Saved"}),(0,y.jsxs)("p",{className:"saved-text",children:[e," No value was written to terminal output or audit records."]}),(0,y.jsx)("p",{className:"saved-hint",children:"The session is still open \\u2014 continue editing or end it explicitly. It also ends on its own after 15 minutes."}),(0,y.jsxs)("div",{className:"form-actions",children:[(0,y.jsx)("a",{className:"btn btn-primary",href:`${Rn(t,t.sourceName)}?fileIndex=${t.fileIndex}`,children:"Continue editing"}),(0,y.jsx)("a",{className:"btn btn-ghost",href:mu(t),children:"All sources"}),(0,y.jsxs)("form",{method:"post",action:mu(t),className:"inline-form",children:[(0,y.jsx)("input",{type:"hidden",name:"action",value:"close"}),(0,y.jsx)("button",{type:"submit",className:"btn btn-danger-ghost",children:"End session"})]})]})]})})}function NA({state:t}){return(0,y.jsx)(Jl,{state:t,title:"Session ended",subtitle:void 0,children:(0,y.jsxs)("section",{className:"card saved-card",children:[(0,y.jsx)("div",{className:"saved-icon","aria-hidden":"true",children:(0,y.jsx)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",children:(0,y.jsx)("path",{d:"M5 13l4 4L19 7",stroke:"currentColor",strokeWidth:"2.4",strokeLinecap:"round",strokeLinejoin:"round"})})}),(0,y.jsx)("h2",{className:"saved-title",children:"Session ended"}),(0,y.jsx)("p",{className:"saved-text",children:"The local editor session is over and its server is shutting down. You can close this tab."})]})})}function xA({state:t}){return(0,y.jsx)(Jl,{state:t,title:t.title,subtitle:void 0,children:(0,y.jsxs)("section",{className:"card saved-card",children:[(0,y.jsx)("div",{className:"saved-icon is-error","aria-hidden":"true",children:"!"}),(0,y.jsx)("h2",{className:"saved-title",children:t.title}),(0,y.jsx)("p",{className:"saved-text",children:t.message}),(0,y.jsx)("a",{className:"btn btn-ghost",href:mu(t),children:"Back to overview"})]})})}function Db({state:t}){switch(t.page){case"profile":return(0,y.jsx)(SA,{state:t});case"local":return(0,y.jsx)(TA,{state:t});case"dotenvx":return(0,y.jsx)(CA,{state:t});case"keychain":return(0,y.jsx)(OA,{state:t});case"provider":return(0,y.jsx)(_A,{state:t});case"saved":return(0,y.jsx)(AA,{state:t});case"closed":return(0,y.jsx)(NA,{state:t});case"error":return(0,y.jsx)(xA,{state:t})}}var Ub=D(Gt()),wb=document.getElementById("root"),Mb=window.__MX_EDITOR_STATE__;wb&&Mb&&(0,zb.createRoot)(wb).render((0,Ub.jsx)(Db,{state:Mb}));})();\n/*! Bundled license information:\n\nscheduler/cjs/scheduler.production.js:\n (**\n * @license React\n * scheduler.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n\nreact/cjs/react.production.js:\n (**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n\nreact-dom/cjs/react-dom.production.js:\n (**\n * @license React\n * react-dom.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n\nreact-dom/cjs/react-dom-client.production.js:\n (**\n * @license React\n * react-dom-client.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n\nreact/cjs/react-jsx-runtime.production.js:\n (**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n';
|
|
586
|
+
var EDITOR_CLIENT_CSS = "/* mxenv secret editor \u2014 tokens follow openspec/specs/design-system.\n Inlined into dist by scripts/build-editor-ui.mjs; zero external requests. */\n\n:root {\n --brand-deep: #0f294d;\n --brand-blue: #005eff;\n --brand-blue-hover: #1a6fff;\n --brand-deep-03: rgba(15, 41, 77, 0.03);\n --brand-deep-05: rgba(15, 41, 77, 0.05);\n --brand-deep-08: rgba(15, 41, 77, 0.08);\n --brand-deep-20: rgba(15, 41, 77, 0.2);\n --brand-deep-50: rgba(15, 41, 77, 0.5);\n --text-primary: #020617;\n --text-secondary: #8794a6;\n --surface: #fdfffe;\n --page-bg: #f5f7fb;\n --border: #e7ebf8;\n --border-strong: #d4dcf0;\n --success: #1e8e3e;\n --success-bg: rgba(52, 168, 83, 0.12);\n --warn: #9a6700;\n --warn-bg: rgba(251, 188, 5, 0.18);\n --error: #d93025;\n --error-bg: rgba(234, 67, 53, 0.1);\n --info: #1a4aa0;\n --info-bg: rgba(66, 133, 244, 0.09);\n --font-sans: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'PingFang SC',\n 'Segoe UI', 'Microsoft YaHei', 'Helvetica Neue', Arial, sans-serif;\n --font-mono: 'DM Mono', 'SF Mono', ui-monospace, SFMono-Regular, Menlo,\n Consolas, 'Liberation Mono', monospace;\n --radius-card: 14px;\n --radius-control: 9px;\n --shadow-card: 0 1px 2px rgba(15, 41, 77, 0.04), 0 10px 28px rgba(15, 41, 77, 0.06);\n --shadow-pop: 0 4px 12px rgba(15, 41, 77, 0.1), 0 16px 48px rgba(15, 41, 77, 0.14);\n --ring: 0 0 0 3px rgba(0, 94, 255, 0.14);\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml,\nbody {\n margin: 0;\n padding: 0;\n}\n\nbody {\n font-family: var(--font-sans);\n font-size: 14px;\n color: var(--text-primary);\n background: var(--page-bg);\n -webkit-font-smoothing: antialiased;\n text-rendering: optimizeLegibility;\n}\n\na {\n color: var(--brand-blue);\n text-decoration: none;\n}\n\na:hover {\n text-decoration: underline;\n}\n\ncode {\n font-family: var(--font-mono);\n}\n\na:focus-visible {\n outline: 2px solid var(--brand-blue);\n outline-offset: 2px;\n border-radius: 4px;\n}\n\n/* ---------- layout ---------- */\n\n.page {\n min-height: 100vh;\n display: flex;\n flex-direction: column;\n}\n\n.topbar {\n position: sticky;\n top: 0;\n z-index: 30;\n display: flex;\n align-items: center;\n justify-content: space-between;\n height: 56px;\n padding: 0 24px;\n background: rgba(253, 255, 254, 0.92);\n backdrop-filter: blur(10px);\n -webkit-backdrop-filter: blur(10px);\n border-bottom: 1px solid var(--border);\n}\n\n.brand {\n display: flex;\n align-items: center;\n gap: 10px;\n min-width: 0;\n}\n\n.brand-mark {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border-radius: 8px;\n background: linear-gradient(135deg, var(--brand-blue) 0%, var(--brand-deep) 100%);\n color: #fff;\n font-size: 11px;\n font-weight: 700;\n letter-spacing: -0.02em;\n flex: none;\n}\n\n.brand-name {\n font-size: 15px;\n font-weight: 650;\n color: var(--brand-deep);\n}\n\n.brand-divider {\n width: 1px;\n height: 16px;\n background: var(--border-strong);\n flex: none;\n}\n\n.brand-crumb {\n font-size: 13px;\n color: var(--text-secondary);\n white-space: nowrap;\n}\n\n.profile-chip {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 6px 13px;\n background: var(--surface);\n border: 1px solid var(--border);\n border-radius: 999px;\n font-size: 12.5px;\n font-weight: 550;\n color: var(--brand-deep);\n max-width: 45%;\n}\n\n.profile-dot {\n width: 7px;\n height: 7px;\n border-radius: 50%;\n background: var(--success);\n box-shadow: 0 0 0 3px var(--success-bg);\n flex: none;\n}\n\n.profile-name {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.container {\n width: 100%;\n max-width: 880px;\n margin: 0 auto;\n padding: 32px 24px 48px;\n}\n\n.page-head {\n margin-bottom: 24px;\n}\n\n.source-nav {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n margin: 0 0 18px;\n}\n\n.source-chip {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-family: var(--font-mono);\n font-size: 11.5px;\n padding: 4px 10px;\n border-radius: 999px;\n border: 1px solid var(--border-strong);\n color: var(--text-secondary);\n text-decoration: none;\n}\n\n.source-chip.is-current {\n border-color: var(--brand-blue);\n color: var(--brand-blue);\n font-weight: 650;\n}\n\n.source-chip-provider {\n font-size: 10px;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n opacity: 0.65;\n}\n\nh1 {\n margin: 10px 0 6px;\n font-size: 22px;\n line-height: 1.3;\n font-weight: 650;\n letter-spacing: -0.01em;\n color: var(--text-primary);\n}\n\n.page-head > h1 {\n margin-top: 0;\n}\n\n.subtitle {\n margin: 0;\n max-width: 640px;\n font-size: 14.5px;\n line-height: 1.65;\n color: var(--text-secondary);\n}\n\n.footer {\n margin-top: auto;\n padding: 18px 24px;\n border-top: 1px solid var(--border);\n text-align: center;\n font-size: 12px;\n color: var(--text-secondary);\n}\n\n/* ---------- cards ---------- */\n\n.card {\n background: var(--surface);\n border: 1px solid var(--border);\n border-radius: var(--radius-card);\n box-shadow: var(--shadow-card);\n padding: 20px 22px;\n}\n\n.card + .card {\n margin-top: 20px;\n}\n\n.card-head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n margin-bottom: 14px;\n}\n\n.card-head h2 {\n margin: 0;\n font-size: 15px;\n font-weight: 650;\n color: var(--brand-deep);\n}\n\n.count-pill {\n font-size: 11px;\n font-weight: 650;\n font-variant-numeric: tabular-nums;\n color: var(--brand-deep);\n background: var(--brand-deep-08);\n border-radius: 999px;\n padding: 2px 9px;\n}\n\n/* ---------- tables ---------- */\n\n.table-wrap {\n overflow-x: auto;\n margin: 0 -6px;\n padding: 0 6px;\n}\n\n.table {\n width: 100%;\n border-collapse: collapse;\n font-size: 13.5px;\n}\n\n.table th {\n text-align: left;\n font-size: 11px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.06em;\n color: var(--text-secondary);\n padding: 8px 12px;\n border-bottom: 1px solid var(--border-strong);\n white-space: nowrap;\n}\n\n.table td {\n padding: 11px 12px;\n border-bottom: 1px solid var(--brand-deep-05);\n vertical-align: middle;\n}\n\n.table tbody tr:last-child td {\n border-bottom: none;\n}\n\n.col-num {\n text-align: right;\n}\n\n.src-name,\n.key-name {\n font-family: var(--font-mono);\n font-size: 12.5px;\n font-weight: 500;\n color: var(--brand-deep);\n}\n\n.table-action {\n font-size: 13px;\n font-weight: 550;\n white-space: nowrap;\n}\n\n.table-action.is-muted {\n color: var(--text-secondary);\n opacity: 0.6;\n}\n\n.override-note {\n font-size: 12px;\n color: var(--text-secondary);\n}\n\n/* ---------- badges ---------- */\n\n.provider-badge {\n display: inline-block;\n font-family: var(--font-mono);\n font-size: 11.5px;\n padding: 3px 8px;\n border-radius: 6px;\n background: var(--brand-deep-03);\n border: 1px solid var(--brand-deep-08);\n color: var(--brand-deep);\n white-space: nowrap;\n}\n\n.badge {\n display: inline-block;\n font-size: 11.5px;\n font-weight: 650;\n padding: 3px 10px;\n border-radius: 999px;\n white-space: nowrap;\n}\n\n.badge.ok {\n color: var(--success);\n background: var(--success-bg);\n}\n\n.badge.muted {\n color: var(--text-secondary);\n background: var(--brand-deep-08);\n}\n\n.badge.warn {\n color: var(--warn);\n background: var(--warn-bg);\n}\n\n.badge.error {\n color: var(--error);\n background: var(--error-bg);\n}\n\n/* ---------- forms ---------- */\n\n.form {\n margin-top: 4px;\n}\n\n.field {\n margin-bottom: 16px;\n}\n\n.field-label {\n display: block;\n font-size: 11px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.06em;\n color: var(--text-secondary);\n margin-bottom: 7px;\n}\n\n.input {\n width: 100%;\n height: 38px;\n padding: 0 12px;\n font-family: var(--font-sans);\n font-size: 14px;\n color: var(--text-primary);\n background: #fff;\n border: 1px solid var(--border-strong);\n border-radius: var(--radius-control);\n transition: border-color 120ms ease, box-shadow 120ms ease;\n}\n\n/* ---------- key-value editor (local files) ---------- */\n\n.kv-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n padding: 10px;\n background: #fff;\n border: 1px solid var(--border-strong);\n border-radius: var(--radius-control);\n}\n\n.kv-row {\n display: grid;\n grid-template-columns: minmax(140px, 240px) auto 1fr 32px;\n align-items: center;\n gap: 8px;\n}\n\n.kv-key,\n.kv-value {\n height: 34px;\n padding: 0 10px;\n font-family: var(--font-mono);\n font-size: 12.5px;\n color: var(--text-primary);\n background: #fff;\n border: 1px solid var(--border);\n border-radius: 7px;\n min-width: 0;\n transition: border-color 120ms ease, box-shadow 120ms ease;\n}\n\n.kv-key {\n background: var(--brand-deep-03);\n font-weight: 500;\n color: var(--brand-deep);\n}\n\n.kv-value {\n width: 100%;\n}\n\n.kv-key:focus,\n.kv-value:focus {\n outline: none;\n border-color: var(--brand-blue);\n box-shadow: var(--ring);\n background: #fff;\n}\n\n/* Empty keys are pattern-exempt by the HTML spec, so :invalid only\n fires on genuinely malformed keys (spaces, dashes, leading digits). */\n.kv-key:invalid {\n border-color: var(--error);\n}\n\n.kv-eq {\n font-family: var(--font-mono);\n font-size: 12.5px;\n color: var(--text-secondary);\n flex: none;\n}\n\n.kv-remove {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n font-size: 14px;\n line-height: 1;\n color: var(--text-secondary);\n background: transparent;\n border: 1px solid transparent;\n border-radius: 7px;\n cursor: pointer;\n transition: background 120ms ease, color 120ms ease, border-color 120ms ease;\n}\n\n.kv-remove:hover {\n color: var(--error);\n background: var(--error-bg);\n border-color: rgba(217, 48, 37, 0.35);\n}\n\n.kv-raw {\n font-family: var(--font-mono);\n font-size: 12px;\n line-height: 1.6;\n color: var(--text-secondary);\n padding: 2px 10px;\n overflow-wrap: anywhere;\n white-space: pre-wrap;\n}\n\n.kv-add {\n margin-top: 10px;\n}\n\n.input:focus {\n outline: none;\n border-color: var(--brand-blue);\n box-shadow: var(--ring);\n}\n\n.form-actions {\n display: flex;\n justify-content: flex-end;\n gap: 10px;\n margin-top: 4px;\n}\n\n/* ---------- buttons ---------- */\n\n.btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n height: 38px;\n padding: 0 18px;\n font-family: var(--font-sans);\n font-size: 14px;\n font-weight: 600;\n border-radius: var(--radius-control);\n border: 1px solid transparent;\n cursor: pointer;\n white-space: nowrap;\n transition: background 120ms ease, border-color 120ms ease, transform 60ms ease;\n}\n\n.btn:focus-visible {\n outline: 2px solid var(--brand-blue);\n outline-offset: 2px;\n}\n\n.btn:active {\n transform: translateY(1px);\n}\n\n.btn-primary {\n background: var(--brand-blue);\n color: #fff;\n}\n\n.btn-primary:hover {\n background: var(--brand-blue-hover);\n}\n\n.btn-danger {\n background: var(--error);\n color: #fff;\n}\n\n.btn-danger:hover {\n background: #b3271e;\n}\n\n.btn-danger-ghost {\n background: transparent;\n color: var(--error);\n border-color: rgba(217, 48, 37, 0.35);\n}\n\n.btn-danger-ghost:hover {\n background: var(--error-bg);\n}\n\n.btn-ghost {\n background: transparent;\n color: var(--brand-deep);\n border-color: var(--border-strong);\n}\n\n.btn-ghost:hover {\n background: var(--brand-deep-03);\n}\n\n/* ---------- select (Radix) ---------- */\n\n.select-trigger {\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n width: 100%;\n max-width: 440px;\n height: 38px;\n padding: 0 12px;\n font-family: var(--font-mono);\n font-size: 12.5px;\n color: var(--text-primary);\n background: #fff;\n border: 1px solid var(--border-strong);\n border-radius: var(--radius-control);\n cursor: pointer;\n transition: border-color 120ms ease, box-shadow 120ms ease;\n}\n\n.select-trigger:focus {\n outline: none;\n border-color: var(--brand-blue);\n box-shadow: var(--ring);\n}\n\n.select-trigger[data-state='open'] {\n border-color: var(--brand-blue);\n}\n\n.select-value {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.select-icon {\n display: inline-flex;\n color: var(--text-secondary);\n flex: none;\n transition: transform 140ms ease;\n}\n\n.select-trigger[data-state='open'] .select-icon {\n transform: rotate(180deg);\n}\n\n.select-content {\n z-index: 50;\n width: var(--radix-select-trigger-width);\n background: #fff;\n border: 1px solid var(--border);\n border-radius: 10px;\n box-shadow: var(--shadow-pop);\n overflow: hidden;\n}\n\n.select-viewport {\n padding: 6px;\n}\n\n.select-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n padding: 8px 10px;\n border-radius: 7px;\n font-family: var(--font-mono);\n font-size: 12.5px;\n color: var(--text-primary);\n cursor: pointer;\n overflow-wrap: anywhere;\n}\n\n.select-item[data-highlighted] {\n background: var(--brand-deep-03);\n outline: none;\n}\n\n.select-item[data-state='checked'] {\n color: var(--brand-blue);\n font-weight: 600;\n}\n\n.select-indicator {\n display: inline-flex;\n flex: none;\n color: var(--brand-blue);\n}\n\n/* ---------- keychain ---------- */\n\n.account-list {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.account-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n padding: 10px 2px;\n border-bottom: 1px solid var(--brand-deep-05);\n}\n\n.account-row:last-child {\n border-bottom: none;\n}\n\n/* Delete forms carry only hidden inputs (their submit lives in the dialog);\n * hiding the form keeps the row clean. */\n.hidden-form {\n display: none;\n}\n\n.account-actions {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n margin-left: auto;\n flex-wrap: wrap;\n}\n\n.inline-form {\n display: inline-flex;\n}\n\n.revealed-value {\n font-family: var(--font-mono);\n font-size: 12px;\n background: var(--brand-deep-05);\n border: 1px solid var(--border-strong);\n border-radius: var(--radius-control);\n padding: 3px 10px;\n word-break: break-all;\n max-width: 100%;\n}\n\n/* ---------- alert dialog (Radix) ---------- */\n\n.dialog-overlay {\n position: fixed;\n inset: 0;\n z-index: 40;\n background: rgba(15, 41, 77, 0.42);\n animation: overlay-in 140ms ease-out;\n}\n\n.dialog-content {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 50;\n width: min(92vw, 440px);\n background: var(--surface);\n border: 1px solid var(--border);\n border-radius: var(--radius-card);\n box-shadow: var(--shadow-pop);\n padding: 24px;\n animation: dialog-in 160ms ease-out;\n}\n\n.dialog-title {\n margin: 0 0 8px;\n font-size: 17px;\n font-weight: 650;\n color: var(--text-primary);\n overflow-wrap: anywhere;\n}\n\n.dialog-description {\n margin: 0 0 20px;\n font-size: 14px;\n line-height: 1.6;\n color: var(--text-secondary);\n}\n\n.dialog-actions {\n display: flex;\n justify-content: flex-end;\n gap: 10px;\n}\n\n@keyframes overlay-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes dialog-in {\n from {\n opacity: 0;\n transform: translate(-50%, -50%) scale(0.97);\n }\n to {\n opacity: 1;\n transform: translate(-50%, -50%) scale(1);\n }\n}\n\n/* ---------- notices / misc ---------- */\n\n.notice {\n margin: 16px 0 0;\n padding: 12px 14px;\n border-radius: var(--radius-control);\n font-size: 13px;\n line-height: 1.6;\n}\n\n.notice-info {\n background: var(--info-bg);\n color: var(--info);\n}\n\n.inline-code {\n font-size: 12.5px;\n background: var(--brand-deep-03);\n border-radius: 5px;\n padding: 2px 6px;\n color: var(--brand-deep);\n overflow-wrap: anywhere;\n}\n\n.empty {\n margin: 0;\n padding: 6px 0;\n font-size: 13.5px;\n color: var(--text-secondary);\n}\n\n.provider-card .provider-hint {\n margin: 0 0 18px;\n font-size: 14px;\n line-height: 1.65;\n color: var(--text-secondary);\n}\n\n/* ---------- saved / error ---------- */\n\n.saved-card {\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n padding: 48px 24px;\n}\n\n.saved-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 52px;\n height: 52px;\n border-radius: 50%;\n background: var(--success-bg);\n color: var(--success);\n margin-bottom: 16px;\n}\n\n.saved-icon.is-error {\n background: var(--error-bg);\n color: var(--error);\n font-size: 26px;\n font-weight: 700;\n}\n\n.saved-title {\n margin: 0 0 8px;\n font-size: 20px;\n font-weight: 650;\n}\n\n.saved-text {\n margin: 0 0 4px;\n max-width: 440px;\n font-size: 14.5px;\n line-height: 1.6;\n color: var(--text-secondary);\n}\n\n.saved-hint {\n margin: 0 0 24px;\n font-size: 13px;\n color: var(--text-secondary);\n opacity: 0.85;\n}\n\n/* ---------- responsive ---------- */\n\n@media (max-width: 640px) {\n .topbar {\n padding: 0 16px;\n }\n\n .brand-crumb,\n .brand-divider {\n display: none;\n }\n\n .container {\n padding: 20px 16px 40px;\n }\n\n h1 {\n font-size: 19px;\n }\n\n .table {\n font-size: 12.5px;\n }\n\n .table th,\n .table td {\n padding: 8px;\n }\n\n .kv-row {\n grid-template-columns: 1fr 32px;\n grid-template-rows: auto auto;\n row-gap: 6px;\n }\n\n .kv-key {\n grid-column: 1;\n grid-row: 1;\n }\n\n .kv-eq {\n display: none;\n }\n\n .kv-value {\n grid-column: 1;\n grid-row: 2;\n }\n\n .kv-remove {\n grid-column: 2;\n grid-row: 1;\n }\n}\n";
|
|
587
|
+
|
|
588
|
+
// src/editor-ui/render.tsx
|
|
589
|
+
var FAVICON_HREF = "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' rx='8' fill='%23005EFF'/%3E%3Ctext x='16' y='22' font-family='-apple-system,Segoe UI,sans-serif' font-size='13' font-weight='700' fill='%23FFFFFF' text-anchor='middle'%3Emx%3C/text%3E%3C/svg%3E";
|
|
590
|
+
function escapeHtml(value) {
|
|
591
|
+
return value.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
592
|
+
}
|
|
593
|
+
var LINE_SEPARATOR = String.fromCharCode(8232);
|
|
594
|
+
var PARAGRAPH_SEPARATOR = String.fromCharCode(8233);
|
|
595
|
+
function safeStateJson(state) {
|
|
596
|
+
return JSON.stringify(state).replace(/</g, "\\u003c").split(LINE_SEPARATOR).join("\\u2028").split(PARAGRAPH_SEPARATOR).join("\\u2029");
|
|
597
|
+
}
|
|
598
|
+
function safeScriptBody(js) {
|
|
599
|
+
return js.replace(/<\/script/gi, "<\\/script");
|
|
600
|
+
}
|
|
601
|
+
function renderEditorHtml(title, state) {
|
|
602
|
+
return `<!doctype html>
|
|
603
|
+
<html lang="en">
|
|
604
|
+
<head>
|
|
605
|
+
<meta charset="utf-8" />
|
|
606
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
607
|
+
<meta name="robots" content="noindex" />
|
|
608
|
+
<title>${escapeHtml(title)}</title>
|
|
609
|
+
<link rel="icon" href="${FAVICON_HREF}" />
|
|
610
|
+
<style>${EDITOR_CLIENT_CSS}</style>
|
|
611
|
+
</head>
|
|
612
|
+
<body>
|
|
613
|
+
<div id="root"></div>
|
|
614
|
+
<script>window.__MX_EDITOR_STATE__=${safeStateJson(state)};</script>
|
|
615
|
+
<script>${safeScriptBody(EDITOR_CLIENT_JS)}</script>
|
|
616
|
+
</body>
|
|
617
|
+
</html>`;
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
// src/editor.ts
|
|
621
|
+
var EDITOR_LIFETIME_MS = 15 * 60 * 1e3;
|
|
622
|
+
function editorPath(state, suffix = "") {
|
|
623
|
+
return `/${state.token}${suffix}`;
|
|
624
|
+
}
|
|
625
|
+
function localFile(entry, fileIndex = 0) {
|
|
626
|
+
const source = entry.source;
|
|
627
|
+
if (source.provider !== "local" && source.provider !== "dotenvx") throw new Error("Source does not use files");
|
|
628
|
+
const raw = source.files[fileIndex];
|
|
629
|
+
const expanded = (0, import_mxenv_core2.expandHomePath)(raw, (0, import_os2.homedir)());
|
|
630
|
+
return (0, import_path2.isAbsolute)(expanded) ? expanded : (0, import_path2.resolve)(entry.baseDir, expanded);
|
|
631
|
+
}
|
|
632
|
+
function sourceUrl(entry) {
|
|
633
|
+
const source = entry.source;
|
|
634
|
+
if (source.provider === "infisical") return source.siteUrl || "https://app.infisical.com";
|
|
635
|
+
if (source.provider === "doppler") return `https://dashboard.doppler.com/workplace/projects/${encodeURIComponent(source.project)}/configs/${encodeURIComponent(source.config)}`;
|
|
636
|
+
return null;
|
|
637
|
+
}
|
|
638
|
+
function envFileKeyNames(file) {
|
|
639
|
+
return Object.keys((0, import_mxenv_core2.parseEnvFile)(file)).filter((key) => !key.startsWith("DOTENV_PUBLIC_KEY")).sort((a, b) => a.localeCompare(b));
|
|
640
|
+
}
|
|
641
|
+
function dotenvxEnv(file) {
|
|
642
|
+
const env = { ...verificationEnv() };
|
|
643
|
+
const keychainKeyed = !(0, import_fs2.existsSync)((0, import_path2.join)((0, import_path2.dirname)(file), ".env.keys")) && (0, import_mxenv_core2.isDotenvxEncrypted)(file);
|
|
644
|
+
if (keychainKeyed) delete env.DOTENVX_NO_NATIVE;
|
|
645
|
+
return env;
|
|
646
|
+
}
|
|
647
|
+
var dotenvxCliCache = null;
|
|
648
|
+
function dotenvxCli() {
|
|
649
|
+
if (!dotenvxCliCache) dotenvxCliCache = (0, import_mxenv_core2.ensureCommand)("dotenvx", "editor", "dotenvx");
|
|
650
|
+
return dotenvxCliCache;
|
|
651
|
+
}
|
|
652
|
+
function dotenvxReadValue(file, key) {
|
|
653
|
+
const raw = (0, import_child_process2.execFileSync)(dotenvxCli(), ["get", key, "-f", file, "--overload"], {
|
|
654
|
+
env: dotenvxEnv(file),
|
|
655
|
+
cwd: (0, import_path2.dirname)(file),
|
|
656
|
+
encoding: "utf8",
|
|
657
|
+
stdio: ["ignore", "pipe", "ignore"]
|
|
658
|
+
});
|
|
659
|
+
return raw.endsWith("\n") ? raw.slice(0, -1) : raw;
|
|
660
|
+
}
|
|
661
|
+
function dotenvxMutate(action, key, value, file) {
|
|
662
|
+
const args = action === "set" ? ["set", key, "-f", file, "--", value ?? ""] : ["del", key, "-f", file];
|
|
663
|
+
(0, import_child_process2.execFileSync)(dotenvxCli(), args, { env: dotenvxEnv(file), cwd: (0, import_path2.dirname)(file), stdio: ["ignore", "ignore", "ignore"] });
|
|
664
|
+
}
|
|
665
|
+
function fileIndexParam(raw, files) {
|
|
666
|
+
const parsed = Number(raw || "0");
|
|
667
|
+
return Number.isInteger(parsed) && parsed >= 0 && parsed < files.length ? parsed : 0;
|
|
668
|
+
}
|
|
669
|
+
function parseEditAction(body) {
|
|
670
|
+
const raw = body.get("action");
|
|
671
|
+
const action = raw == null ? "set" : raw;
|
|
672
|
+
if (action !== "set" && action !== "reveal" && action !== "delete") return null;
|
|
673
|
+
if (action === "set" && !body.get("value")) return null;
|
|
674
|
+
return action;
|
|
675
|
+
}
|
|
676
|
+
function actionErrorState(state, action) {
|
|
677
|
+
if (action === "reveal") {
|
|
678
|
+
return errorUiState(state, 400, "Unable to read this value", "The stored value could not be read \u2014 the key may have been removed outside this editor. No value was returned to the terminal.");
|
|
679
|
+
}
|
|
680
|
+
return action === "delete" ? errorUiState(state, 400, "Unable to delete this key", "The key could not be removed. No value was returned to the terminal.") : errorUiState(state, 400, "Unable to save this source", "No value was returned to the terminal.");
|
|
681
|
+
}
|
|
682
|
+
function auditEditor(state, entry, action, keys, outcome, startedAt) {
|
|
683
|
+
(0, import_mxenv_core2.writeAudit)({
|
|
684
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
685
|
+
profile: state.profileName,
|
|
686
|
+
sources: entry ? [entry.name] : [],
|
|
687
|
+
keys,
|
|
688
|
+
outcome,
|
|
689
|
+
durationMs: Date.now() - startedAt,
|
|
690
|
+
via: "editor",
|
|
691
|
+
action
|
|
692
|
+
}, state.homeDir);
|
|
693
|
+
}
|
|
694
|
+
function uiBase(state) {
|
|
695
|
+
return {
|
|
696
|
+
token: state.token,
|
|
697
|
+
profileName: state.profileName,
|
|
698
|
+
sources: state.sourceEntries.map((entry) => ({ name: entry.name, provider: entry.source.provider }))
|
|
699
|
+
};
|
|
700
|
+
}
|
|
701
|
+
function profileUiState(state) {
|
|
702
|
+
return {
|
|
703
|
+
...uiBase(state),
|
|
704
|
+
page: "profile",
|
|
705
|
+
sourceStatuses: state.sourceStatuses.map((status) => ({
|
|
706
|
+
name: status.name,
|
|
707
|
+
provider: status.provider,
|
|
708
|
+
availability: status.availability,
|
|
709
|
+
keyCount: status.keyCount,
|
|
710
|
+
editable: state.sourceEntries.some((candidate) => candidate.name === status.name)
|
|
711
|
+
})),
|
|
712
|
+
provenance: Object.entries(state.provenance).sort(([a], [b]) => a.localeCompare(b)).map(([key, value]) => ({
|
|
713
|
+
key,
|
|
714
|
+
source: value.source,
|
|
715
|
+
provider: value.provider,
|
|
716
|
+
overriddenSources: value.overriddenSources
|
|
717
|
+
}))
|
|
718
|
+
};
|
|
719
|
+
}
|
|
720
|
+
function localUiState(state, entry, fileIndex, opts = {}) {
|
|
721
|
+
const source = entry.source;
|
|
722
|
+
if (source.provider === "dotenvx") {
|
|
723
|
+
return {
|
|
724
|
+
...uiBase(state),
|
|
725
|
+
page: "dotenvx",
|
|
726
|
+
sourceName: entry.name,
|
|
727
|
+
files: source.files,
|
|
728
|
+
fileIndex,
|
|
729
|
+
keyNames: envFileKeyNames(localFile(entry, fileIndex)),
|
|
730
|
+
formKey: opts.formKey,
|
|
731
|
+
revealed: opts.revealed
|
|
732
|
+
};
|
|
733
|
+
}
|
|
734
|
+
if (source.provider !== "local") throw new Error("Source does not use files");
|
|
735
|
+
const file = localFile(entry, fileIndex);
|
|
736
|
+
const content = (0, import_fs2.existsSync)(file) ? (0, import_fs2.readFileSync)(file, "utf8") : "";
|
|
737
|
+
return { ...uiBase(state), page: "local", sourceName: entry.name, files: source.files, fileIndex, content };
|
|
738
|
+
}
|
|
739
|
+
async function requireKeytar() {
|
|
740
|
+
const keytar = await (0, import_mxenv_core2.loadKeytar)();
|
|
741
|
+
if (!keytar) throw new Error('[mxenv] Keychain editing needs the optional native module "keytar", which is not usable on this machine.');
|
|
742
|
+
return keytar;
|
|
743
|
+
}
|
|
744
|
+
function keychainPageState(state, entry, credentials, revealed) {
|
|
745
|
+
const source = entry.source;
|
|
746
|
+
if (source.provider !== "os-keychain") throw new Error("Not a Keychain source");
|
|
747
|
+
return {
|
|
748
|
+
...uiBase(state),
|
|
749
|
+
page: "keychain",
|
|
750
|
+
sourceName: entry.name,
|
|
751
|
+
service: source.service,
|
|
752
|
+
accounts: credentials.map(({ account }) => account),
|
|
753
|
+
revealed
|
|
754
|
+
};
|
|
755
|
+
}
|
|
756
|
+
async function keychainUiState(state, entry, revealed) {
|
|
757
|
+
const source = entry.source;
|
|
758
|
+
if (source.provider !== "os-keychain") throw new Error("Not a Keychain source");
|
|
759
|
+
const keytar = await requireKeytar();
|
|
760
|
+
return keychainPageState(state, entry, await keytar.findCredentials(source.service), revealed);
|
|
761
|
+
}
|
|
762
|
+
function providerUiState(state, entry) {
|
|
763
|
+
return {
|
|
764
|
+
...uiBase(state),
|
|
765
|
+
page: "provider",
|
|
766
|
+
sourceName: entry.name,
|
|
767
|
+
provider: entry.source.provider,
|
|
768
|
+
url: sourceUrl(entry)
|
|
769
|
+
};
|
|
770
|
+
}
|
|
771
|
+
function savedUiState(state, sourceName, action, key, fileIndex) {
|
|
772
|
+
return { ...uiBase(state), page: "saved", sourceName, action, key, fileIndex };
|
|
773
|
+
}
|
|
774
|
+
function closedUiState(state) {
|
|
775
|
+
return { ...uiBase(state), page: "closed" };
|
|
776
|
+
}
|
|
777
|
+
function errorUiState(state, code, title, message) {
|
|
778
|
+
return { ...uiBase(state), page: "error", code, title, message };
|
|
779
|
+
}
|
|
780
|
+
async function requestBody(req) {
|
|
781
|
+
const chunks = [];
|
|
782
|
+
let size = 0;
|
|
783
|
+
for await (const chunk of req) {
|
|
784
|
+
const value = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
|
|
785
|
+
size += value.length;
|
|
786
|
+
if (size > 1024 * 1024) throw new Error("Editor request is too large");
|
|
787
|
+
chunks.push(value);
|
|
788
|
+
}
|
|
789
|
+
return new URLSearchParams(Buffer.concat(chunks).toString("utf8"));
|
|
790
|
+
}
|
|
791
|
+
function respond(res, status, content) {
|
|
792
|
+
res.writeHead(status, { "Content-Type": "text/html; charset=utf-8", "Cache-Control": "no-store" });
|
|
793
|
+
res.end(content);
|
|
794
|
+
}
|
|
795
|
+
async function createEditorServer(encodedState) {
|
|
796
|
+
const state = JSON.parse(Buffer.from(encodedState, "base64url").toString("utf8"));
|
|
797
|
+
const server = (0, import_http.createServer)(async (req, res) => {
|
|
798
|
+
try {
|
|
799
|
+
const url = new URL(req.url || "/", "http://127.0.0.1");
|
|
800
|
+
if (!url.pathname.startsWith(editorPath(state))) return respond(res, 404, renderEditorHtml("Not found", errorUiState(state, 404, "Not found", "This editor path does not exist.")));
|
|
801
|
+
const rest = url.pathname.slice(editorPath(state).length);
|
|
802
|
+
if (!rest || rest === "/") {
|
|
803
|
+
if (req.method === "POST") {
|
|
804
|
+
const body2 = await requestBody(req);
|
|
805
|
+
if (body2.get("action") === "close") {
|
|
806
|
+
const started = Date.now();
|
|
807
|
+
auditEditor(state, null, "close", [], "success", started);
|
|
808
|
+
respond(res, 200, renderEditorHtml("Session ended", closedUiState(state)));
|
|
809
|
+
setTimeout(() => server.close(), 250).unref();
|
|
810
|
+
return;
|
|
811
|
+
}
|
|
812
|
+
return respond(res, 400, renderEditorHtml("Invalid request", errorUiState(state, 400, "Invalid request", "This editor accepts only a close action on the session root.")));
|
|
813
|
+
}
|
|
814
|
+
return respond(res, 200, renderEditorHtml("mxenv editor", profileUiState(state)));
|
|
815
|
+
}
|
|
816
|
+
const match = /^\/source\/([^/]+)(?:\/(local|dotenvx|keychain))?$/.exec(rest);
|
|
817
|
+
if (!match) return respond(res, 404, renderEditorHtml("Not found", errorUiState(state, 404, "Not found", "This editor path does not exist.")));
|
|
818
|
+
const entry = state.sourceEntries.find((candidate) => candidate.name === decodeURIComponent(match[1]));
|
|
819
|
+
if (!entry) return respond(res, 404, renderEditorHtml("Unknown source", errorUiState(state, 404, "Unknown source", "This source is not part of the selected profile.")));
|
|
820
|
+
if (req.method === "GET") {
|
|
821
|
+
if (entry.source.provider === "local" || entry.source.provider === "dotenvx") {
|
|
822
|
+
const fileIndex = fileIndexParam(url.searchParams.get("fileIndex"), entry.source.files);
|
|
823
|
+
const formKey = url.searchParams.get("key") || void 0;
|
|
824
|
+
return respond(res, 200, renderEditorHtml(entry.source.provider === "dotenvx" ? "Edit dotenvx source" : "Edit local source", localUiState(state, entry, fileIndex, { formKey })));
|
|
825
|
+
}
|
|
826
|
+
if (entry.source.provider === "os-keychain") return respond(res, 200, renderEditorHtml("Edit Keychain source", await keychainUiState(state, entry)));
|
|
827
|
+
return respond(res, 200, renderEditorHtml("Provider source", providerUiState(state, entry)));
|
|
828
|
+
}
|
|
829
|
+
if (req.method !== "POST") return respond(res, 405, renderEditorHtml("Method not allowed", errorUiState(state, 405, "Method not allowed", "This editor accepts GET and POST requests only.")));
|
|
830
|
+
const body = await requestBody(req);
|
|
831
|
+
if (match[2] === "local" && entry.source.provider === "local") {
|
|
832
|
+
const started = Date.now();
|
|
833
|
+
const fileIndex = fileIndexParam(body.get("fileIndex"), entry.source.files);
|
|
834
|
+
const file = localFile(entry, fileIndex);
|
|
835
|
+
try {
|
|
836
|
+
(0, import_fs2.mkdirSync)((0, import_path2.resolve)(file, ".."), { recursive: true, mode: 448 });
|
|
837
|
+
(0, import_fs2.writeFileSync)(file, body.get("content") || "", { mode: 384 });
|
|
838
|
+
} catch {
|
|
839
|
+
auditEditor(state, entry, "set", [], "failure", started);
|
|
840
|
+
return respond(res, 400, renderEditorHtml("Edit failed", actionErrorState(state, "set")));
|
|
841
|
+
}
|
|
842
|
+
auditEditor(state, entry, "set", envFileKeyNames(file), "success", started);
|
|
843
|
+
return respond(res, 200, renderEditorHtml("Saved", savedUiState(state, entry.name, "set", "", fileIndex)));
|
|
844
|
+
}
|
|
845
|
+
if (match[2] === "dotenvx" && entry.source.provider === "dotenvx") {
|
|
846
|
+
const started = Date.now();
|
|
847
|
+
const fileIndex = fileIndexParam(body.get("fileIndex"), entry.source.files);
|
|
848
|
+
const file = localFile(entry, fileIndex);
|
|
849
|
+
const key = body.get("key") || "";
|
|
850
|
+
const action = parseEditAction(body);
|
|
851
|
+
if (!action) {
|
|
852
|
+
return respond(res, 400, renderEditorHtml("Invalid request", errorUiState(state, 400, "Invalid request", "Unknown or incomplete edit action; nothing was processed.")));
|
|
853
|
+
}
|
|
854
|
+
if (!/^[A-Za-z_][A-Za-z0-9_.]*$/.test(key)) {
|
|
855
|
+
return respond(res, 400, renderEditorHtml("Invalid key", errorUiState(state, 400, "Invalid key name", "Key names must match [A-Za-z_][A-Za-z0-9_.]*; no value was processed.")));
|
|
856
|
+
}
|
|
857
|
+
if (action === "set" && (body.get("value") || "").includes("$")) {
|
|
858
|
+
return respond(res, 400, renderEditorHtml("Invalid value", errorUiState(state, 400, "Value contains $", "dotenvx expands $name sequences on every load path, so this value cannot be stored faithfully. Remove the $ sequence first; nothing was processed.")));
|
|
859
|
+
}
|
|
860
|
+
try {
|
|
861
|
+
if (action === "reveal") {
|
|
862
|
+
const value = dotenvxReadValue(file, key);
|
|
863
|
+
auditEditor(state, entry, "reveal", [key], "success", started);
|
|
864
|
+
return respond(res, 200, renderEditorHtml("Edit dotenvx source", localUiState(state, entry, fileIndex, { revealed: { key, value } })));
|
|
865
|
+
}
|
|
866
|
+
if (action === "delete") {
|
|
867
|
+
dotenvxMutate("del", key, void 0, file);
|
|
868
|
+
auditEditor(state, entry, "delete", [key], "success", started);
|
|
869
|
+
return respond(res, 200, renderEditorHtml("Saved", savedUiState(state, entry.name, "delete", key, fileIndex)));
|
|
870
|
+
}
|
|
871
|
+
dotenvxMutate("set", key, body.get("value") || "", file);
|
|
872
|
+
auditEditor(state, entry, "set", [key], "success", started);
|
|
873
|
+
return respond(res, 200, renderEditorHtml("Saved", savedUiState(state, entry.name, "set", key, fileIndex)));
|
|
874
|
+
} catch {
|
|
875
|
+
auditEditor(state, entry, action, [key], "failure", started);
|
|
876
|
+
return respond(res, 400, renderEditorHtml(action === "reveal" ? "Read failed" : "Edit failed", actionErrorState(state, action)));
|
|
877
|
+
}
|
|
878
|
+
}
|
|
879
|
+
if (match[2] === "keychain" && entry.source.provider === "os-keychain") {
|
|
880
|
+
const started = Date.now();
|
|
881
|
+
const account = body.get("account") || "";
|
|
882
|
+
const action = parseEditAction(body);
|
|
883
|
+
if (!action) {
|
|
884
|
+
return respond(res, 400, renderEditorHtml("Invalid request", errorUiState(state, 400, "Invalid request", "Unknown or incomplete edit action; nothing was processed.")));
|
|
885
|
+
}
|
|
886
|
+
if (account.trim() === "") {
|
|
887
|
+
return respond(res, 400, renderEditorHtml("Invalid key", errorUiState(state, 400, "Invalid account name", "Account names must not be empty; no value was processed.")));
|
|
888
|
+
}
|
|
889
|
+
try {
|
|
890
|
+
const keytar = await requireKeytar();
|
|
891
|
+
if (action === "reveal") {
|
|
892
|
+
const credentials = await keytar.findCredentials(entry.source.service);
|
|
893
|
+
const found = credentials.find((candidate) => candidate.account === account);
|
|
894
|
+
if (!found) throw new Error("Unknown account");
|
|
895
|
+
auditEditor(state, entry, "reveal", [account], "success", started);
|
|
896
|
+
return respond(res, 200, renderEditorHtml("Edit Keychain source", keychainPageState(state, entry, credentials, { key: account, value: found.password })));
|
|
897
|
+
}
|
|
898
|
+
if (action === "delete") {
|
|
899
|
+
await keytar.deletePassword(entry.source.service, account);
|
|
900
|
+
auditEditor(state, entry, "delete", [account], "success", started);
|
|
901
|
+
return respond(res, 200, renderEditorHtml("Saved", savedUiState(state, entry.name, "delete", account, 0)));
|
|
902
|
+
}
|
|
903
|
+
await keytar.setPassword(entry.source.service, account, body.get("value") || "");
|
|
904
|
+
auditEditor(state, entry, "set", [account], "success", started);
|
|
905
|
+
return respond(res, 200, renderEditorHtml("Saved", savedUiState(state, entry.name, "set", account, 0)));
|
|
906
|
+
} catch {
|
|
907
|
+
auditEditor(state, entry, action, [account], "failure", started);
|
|
908
|
+
return respond(res, 400, renderEditorHtml(action === "reveal" ? "Read failed" : "Edit failed", actionErrorState(state, action)));
|
|
909
|
+
}
|
|
910
|
+
}
|
|
911
|
+
return respond(res, 400, renderEditorHtml("Invalid edit", errorUiState(state, 400, "Invalid edit request", "This edit action does not match the source provider.")));
|
|
912
|
+
} catch {
|
|
913
|
+
respond(res, 400, renderEditorHtml("Edit failed", errorUiState(state, 400, "Unable to save this source", "No value was returned to the terminal.")));
|
|
914
|
+
}
|
|
915
|
+
});
|
|
916
|
+
const closeTimer = setTimeout(() => server.close(), EDITOR_LIFETIME_MS);
|
|
917
|
+
closeTimer.unref();
|
|
918
|
+
await new Promise((resolve4, reject) => {
|
|
919
|
+
server.once("error", reject);
|
|
920
|
+
server.listen(0, "127.0.0.1", () => resolve4());
|
|
921
|
+
});
|
|
922
|
+
const address = server.address();
|
|
923
|
+
if (!address || typeof address === "string") throw new Error("Editor did not receive a loopback port");
|
|
924
|
+
const root = `http://127.0.0.1:${address.port}${editorPath(state)}`;
|
|
925
|
+
const landingUrl = state.selectedSource ? `http://127.0.0.1:${address.port}${editorPath(state, `/source/${encodeURIComponent(state.selectedSource)}`)}` : root;
|
|
926
|
+
return { server, url: root, landingUrl };
|
|
927
|
+
}
|
|
928
|
+
async function startEditorServer(encodedState) {
|
|
929
|
+
const { landingUrl } = await createEditorServer(encodedState);
|
|
930
|
+
process.stdout.write(`${landingUrl}
|
|
931
|
+
`);
|
|
932
|
+
}
|
|
933
|
+
async function launchEditor(entryScript, composition, selectedSource) {
|
|
934
|
+
if (selectedSource && !composition.sourceEntries.some((entry) => entry.name === selectedSource)) {
|
|
935
|
+
throw new Error(`[mxenv] Unknown source "${selectedSource}" in the selected profile.`);
|
|
936
|
+
}
|
|
937
|
+
const state = {
|
|
938
|
+
token: (0, import_crypto.randomBytes)(24).toString("base64url"),
|
|
939
|
+
profileName: composition.profileName,
|
|
940
|
+
selectedSource,
|
|
941
|
+
sourceStatuses: composition.sourceStatuses,
|
|
942
|
+
provenance: composition.provenance,
|
|
943
|
+
sourceEntries: composition.sourceEntries,
|
|
944
|
+
homeDir: (0, import_os2.homedir)()
|
|
945
|
+
};
|
|
946
|
+
const encoded = Buffer.from(JSON.stringify(state)).toString("base64url");
|
|
947
|
+
const child = (0, import_child_process2.spawn)(process.execPath, [entryScript, "__mx_editor", encoded], {
|
|
948
|
+
detached: true,
|
|
949
|
+
stdio: ["ignore", "pipe", "ignore"]
|
|
950
|
+
});
|
|
951
|
+
const url = await new Promise((resolve4, reject) => {
|
|
952
|
+
const timer = setTimeout(() => reject(new Error("[mxenv] Timed out starting local editor.")), 5e3);
|
|
953
|
+
child.once("error", () => {
|
|
954
|
+
clearTimeout(timer);
|
|
955
|
+
reject(new Error("[mxenv] Could not start local editor."));
|
|
956
|
+
});
|
|
957
|
+
child.stdout?.once("data", (chunk) => {
|
|
958
|
+
clearTimeout(timer);
|
|
959
|
+
const url2 = chunk.toString("utf8").trim();
|
|
960
|
+
child.stdout?.destroy();
|
|
961
|
+
resolve4(url2);
|
|
962
|
+
});
|
|
963
|
+
});
|
|
964
|
+
child.unref();
|
|
965
|
+
let opened = false;
|
|
966
|
+
if (process.platform === "darwin" && process.env.MX_ENV_NO_OPEN !== "1") {
|
|
967
|
+
try {
|
|
968
|
+
(0, import_child_process2.execFileSync)("open", [url], { stdio: "ignore" });
|
|
969
|
+
opened = true;
|
|
970
|
+
} catch {
|
|
971
|
+
}
|
|
972
|
+
}
|
|
973
|
+
return { url, opened };
|
|
974
|
+
}
|
|
975
|
+
|
|
976
|
+
// src/skill.ts
|
|
977
|
+
var import_fs3 = require("fs");
|
|
978
|
+
var import_os3 = require("os");
|
|
979
|
+
var import_path3 = require("path");
|
|
980
|
+
var SKILL_TARGETS = ["global", "project", "trellis"];
|
|
981
|
+
function resolveSkillPath(target) {
|
|
982
|
+
if (target === "project") return (0, import_path3.join)(process.cwd(), ".claude", "skills", "mxenv", "SKILL.md");
|
|
983
|
+
if (target === "trellis") return (0, import_path3.join)((0, import_os3.homedir)(), ".trellis", "skills", "mxenv", "SKILL.md");
|
|
984
|
+
return (0, import_path3.join)((0, import_os3.homedir)(), ".claude", "skills", "mxenv", "SKILL.md");
|
|
985
|
+
}
|
|
986
|
+
function targetHint(target) {
|
|
987
|
+
if (target === "project") {
|
|
988
|
+
return "Project skill installed; commit it so every Agent working in this repository picks it up.";
|
|
989
|
+
}
|
|
990
|
+
if (target === "trellis") {
|
|
991
|
+
return "Installed into the Trellis canonical store; run `trellis sync skills` to distribute it to managed agents.";
|
|
992
|
+
}
|
|
993
|
+
return "Installed as a Claude Code global skill; available in every project.";
|
|
994
|
+
}
|
|
995
|
+
function legacySkillPath(target) {
|
|
996
|
+
if (target === "project") return (0, import_path3.join)(process.cwd(), ".claude", "skills", "morphix-env", "SKILL.md");
|
|
997
|
+
if (target === "trellis") return (0, import_path3.join)((0, import_os3.homedir)(), ".trellis", "skills", "morphix-env", "SKILL.md");
|
|
998
|
+
return (0, import_path3.join)((0, import_os3.homedir)(), ".claude", "skills", "morphix-env", "SKILL.md");
|
|
999
|
+
}
|
|
1000
|
+
function warnLegacyInstall(target) {
|
|
1001
|
+
const legacy = legacySkillPath(target);
|
|
1002
|
+
if ((0, import_fs3.existsSync)(legacy)) {
|
|
1003
|
+
console.warn(`[mxenv] A legacy skill install exists at ${legacy} (pre-rename location); it is no longer read. Remove the old directory by hand.`);
|
|
1004
|
+
}
|
|
1005
|
+
}
|
|
1006
|
+
function printNextSteps() {
|
|
1007
|
+
console.log(`[mxenv] Next steps:
|
|
1008
|
+
1. mxenv inspect check this project's config and resolved key names
|
|
1009
|
+
2. create mxenv.config.json if absent see the skill's configuration section (source wiring only, no values)
|
|
1010
|
+
3. mxenv edit --profile <name> let the user fill values in the local visual editor
|
|
1011
|
+
4. mxenv doc generate this project's key-to-source workflow Skill`);
|
|
1012
|
+
}
|
|
1013
|
+
function cmdSkill(subcommand, options) {
|
|
1014
|
+
const templatePath = (0, import_path3.join)(__dirname, "SKILL.md");
|
|
1015
|
+
const template = (0, import_fs3.readFileSync)(templatePath, "utf8");
|
|
1016
|
+
if (subcommand === "show") {
|
|
1017
|
+
console.log(`[mxenv] Skill template: ${templatePath}`);
|
|
1018
|
+
for (const target2 of SKILL_TARGETS) {
|
|
1019
|
+
const path = resolveSkillPath(target2);
|
|
1020
|
+
if (!(0, import_fs3.existsSync)(path)) {
|
|
1021
|
+
console.log(` ${target2}: not installed (${path})`);
|
|
1022
|
+
continue;
|
|
1023
|
+
}
|
|
1024
|
+
const state = (0, import_fs3.readFileSync)(path, "utf8") === template ? "installed (matches this version)" : "installed (differs from this version)";
|
|
1025
|
+
console.log(` ${target2}: ${state} (${path})`);
|
|
1026
|
+
}
|
|
1027
|
+
return 0;
|
|
1028
|
+
}
|
|
1029
|
+
if (subcommand !== "install") {
|
|
1030
|
+
console.error(`[mxenv] Unknown skill subcommand "${subcommand}". Use install or show.`);
|
|
1031
|
+
return 1;
|
|
1032
|
+
}
|
|
1033
|
+
const target = options.target ?? "global";
|
|
1034
|
+
if (!SKILL_TARGETS.includes(target)) {
|
|
1035
|
+
console.error(`[mxenv] Unknown skill target "${options.target}". Use global, project, or trellis.`);
|
|
1036
|
+
return 1;
|
|
1037
|
+
}
|
|
1038
|
+
const dest = resolveSkillPath(target);
|
|
1039
|
+
if ((0, import_fs3.existsSync)(dest)) {
|
|
1040
|
+
if ((0, import_fs3.readFileSync)(dest, "utf8") === template) {
|
|
1041
|
+
console.log(`[mxenv] Skill already installed and up to date: ${dest}`);
|
|
1042
|
+
return 0;
|
|
1043
|
+
}
|
|
1044
|
+
if (!options.force) {
|
|
1045
|
+
console.error(`[mxenv] ${dest} exists with different content; refusing to overwrite. Re-run with --force to replace it.`);
|
|
1046
|
+
return 1;
|
|
1047
|
+
}
|
|
1048
|
+
}
|
|
1049
|
+
(0, import_fs3.mkdirSync)((0, import_path3.dirname)(dest), { recursive: true });
|
|
1050
|
+
(0, import_fs3.writeFileSync)(dest, template, { mode: 420 });
|
|
1051
|
+
console.log(`[mxenv] Installed skill: ${dest}`);
|
|
1052
|
+
console.log(`[mxenv] ${targetHint(target)}`);
|
|
1053
|
+
warnLegacyInstall(target);
|
|
1054
|
+
printNextSteps();
|
|
1055
|
+
return 0;
|
|
1056
|
+
}
|
|
1057
|
+
|
|
1058
|
+
// src/serve.ts
|
|
1059
|
+
var import_http2 = require("http");
|
|
1060
|
+
var import_crypto2 = require("crypto");
|
|
1061
|
+
function authorized(req, token) {
|
|
1062
|
+
const header = req.headers.authorization;
|
|
1063
|
+
const presented = typeof header === "string" && header.startsWith("Bearer ") ? Buffer.from(header.slice("Bearer ".length)) : Buffer.alloc(0);
|
|
1064
|
+
return presented.length === token.length && (0, import_crypto2.timingSafeEqual)(presented, token);
|
|
1065
|
+
}
|
|
1066
|
+
async function startSecretServer(values) {
|
|
1067
|
+
const token = (0, import_crypto2.randomBytes)(24).toString("base64url");
|
|
1068
|
+
const tokenBuffer = Buffer.from(token);
|
|
1069
|
+
const server = (0, import_http2.createServer)((req, res) => {
|
|
1070
|
+
if (!authorized(req, tokenBuffer)) {
|
|
1071
|
+
res.writeHead(401, { "Content-Type": "text/plain; charset=utf-8", "Cache-Control": "no-store" });
|
|
1072
|
+
res.end("unauthorized");
|
|
1073
|
+
return;
|
|
1074
|
+
}
|
|
1075
|
+
const path = (req.url || "").split("?")[0];
|
|
1076
|
+
if (req.method !== "GET") {
|
|
1077
|
+
res.writeHead(405, { "Content-Type": "text/plain; charset=utf-8", "Cache-Control": "no-store" });
|
|
1078
|
+
res.end("method not allowed");
|
|
1079
|
+
return;
|
|
1080
|
+
}
|
|
1081
|
+
const match = /^\/key\/(.+)$/.exec(path);
|
|
1082
|
+
if (!match) {
|
|
1083
|
+
res.writeHead(404, { "Content-Type": "text/plain; charset=utf-8", "Cache-Control": "no-store" });
|
|
1084
|
+
res.end("not found");
|
|
1085
|
+
return;
|
|
1086
|
+
}
|
|
1087
|
+
let key;
|
|
1088
|
+
try {
|
|
1089
|
+
key = decodeURIComponent(match[1]);
|
|
1090
|
+
} catch {
|
|
1091
|
+
res.writeHead(400, { "Content-Type": "text/plain; charset=utf-8", "Cache-Control": "no-store" });
|
|
1092
|
+
res.end("bad request");
|
|
1093
|
+
return;
|
|
1094
|
+
}
|
|
1095
|
+
if (!Object.prototype.hasOwnProperty.call(values, key)) {
|
|
1096
|
+
res.writeHead(404, { "Content-Type": "text/plain; charset=utf-8", "Cache-Control": "no-store" });
|
|
1097
|
+
res.end("unknown key");
|
|
1098
|
+
return;
|
|
1099
|
+
}
|
|
1100
|
+
res.writeHead(200, { "Content-Type": "text/plain; charset=utf-8", "Cache-Control": "no-store" });
|
|
1101
|
+
res.end(values[key]);
|
|
1102
|
+
});
|
|
1103
|
+
await new Promise((resolvePromise, reject) => {
|
|
1104
|
+
server.once("error", reject);
|
|
1105
|
+
server.listen(0, "127.0.0.1", () => {
|
|
1106
|
+
server.removeListener("error", reject);
|
|
1107
|
+
server.on("error", (error) => {
|
|
1108
|
+
console.error(`[mxenv] Secret server error: ${error instanceof Error ? error.message : "unknown"}`);
|
|
1109
|
+
});
|
|
1110
|
+
resolvePromise();
|
|
1111
|
+
});
|
|
1112
|
+
});
|
|
1113
|
+
const address = server.address();
|
|
1114
|
+
if (!address || typeof address === "string") {
|
|
1115
|
+
server.close();
|
|
1116
|
+
throw new Error("[mxenv] Secret server did not receive a loopback port.");
|
|
1117
|
+
}
|
|
1118
|
+
let closed = false;
|
|
1119
|
+
return {
|
|
1120
|
+
endpoint: `http://127.0.0.1:${address.port}`,
|
|
1121
|
+
token,
|
|
1122
|
+
close: () => {
|
|
1123
|
+
if (closed) return;
|
|
1124
|
+
closed = true;
|
|
1125
|
+
server.close();
|
|
1126
|
+
const withConnections = server;
|
|
1127
|
+
if (typeof withConnections.closeAllConnections === "function") withConnections.closeAllConnections();
|
|
1128
|
+
}
|
|
1129
|
+
};
|
|
1130
|
+
}
|
|
1131
|
+
|
|
1132
|
+
// src/template.ts
|
|
1133
|
+
var import_child_process3 = require("child_process");
|
|
1134
|
+
var import_fs4 = require("fs");
|
|
1135
|
+
var import_path4 = require("path");
|
|
1136
|
+
function shellQuote(value) {
|
|
1137
|
+
return `'${value.replace(/'/g, "'\\''")}'`;
|
|
1138
|
+
}
|
|
1139
|
+
function isShellIdentifier(key) {
|
|
1140
|
+
return /^[A-Za-z_][A-Za-z0-9_]*$/.test(key);
|
|
1141
|
+
}
|
|
1142
|
+
function findTemplateAnomalies(text) {
|
|
1143
|
+
const anomalies = [];
|
|
1144
|
+
const dollarDollar = text.indexOf("$$");
|
|
1145
|
+
if (dollarDollar >= 0) {
|
|
1146
|
+
anomalies.push(`Escaped dollar $$ at offset ${dollarDollar} is not interpolated; left literal.`);
|
|
1147
|
+
}
|
|
1148
|
+
let index = text.indexOf("${");
|
|
1149
|
+
while (index >= 0) {
|
|
1150
|
+
const rest = text.slice(index);
|
|
1151
|
+
if (/^\$\{[A-Za-z_][A-Za-z0-9_]*\}/.test(rest)) {
|
|
1152
|
+
} else if (/^\$\{[A-Za-z_][A-Za-z0-9_]*[:+=-]/.test(rest)) {
|
|
1153
|
+
anomalies.push(`Unsupported \${...} modifier or default at offset ${index}; only \${NAME} is substituted \u2014 left literal.`);
|
|
1154
|
+
} else {
|
|
1155
|
+
anomalies.push(`Unclosed or invalid \${ at offset ${index}; left literal.`);
|
|
1156
|
+
}
|
|
1157
|
+
index = text.indexOf("${", index + 2);
|
|
1158
|
+
}
|
|
1159
|
+
return anomalies;
|
|
1160
|
+
}
|
|
1161
|
+
function templateVariablePattern() {
|
|
1162
|
+
return /\$\{([A-Za-z_][A-Za-z0-9_]*)\}/g;
|
|
1163
|
+
}
|
|
1164
|
+
function findTemplateVariables(text) {
|
|
1165
|
+
const names = /* @__PURE__ */ new Set();
|
|
1166
|
+
for (const match of text.matchAll(templateVariablePattern())) names.add(match[1]);
|
|
1167
|
+
return [...names];
|
|
1168
|
+
}
|
|
1169
|
+
function renderTemplate(text, environment) {
|
|
1170
|
+
const missing = /* @__PURE__ */ new Set();
|
|
1171
|
+
const output = text.replace(templateVariablePattern(), (match, name) => {
|
|
1172
|
+
const value = environment[name];
|
|
1173
|
+
if (value === void 0 || value === null) {
|
|
1174
|
+
missing.add(name);
|
|
1175
|
+
return match;
|
|
1176
|
+
}
|
|
1177
|
+
return value;
|
|
1178
|
+
});
|
|
1179
|
+
return { output, missing: [...missing] };
|
|
1180
|
+
}
|
|
1181
|
+
function writePrivateFile(path, content) {
|
|
1182
|
+
const absolute = (0, import_path4.resolve)(path);
|
|
1183
|
+
(0, import_fs4.mkdirSync)((0, import_path4.dirname)(absolute), { recursive: true, mode: 448 });
|
|
1184
|
+
(0, import_fs4.writeFileSync)(absolute, content, { mode: 384 });
|
|
1185
|
+
(0, import_fs4.chmodSync)(absolute, 384);
|
|
1186
|
+
}
|
|
1187
|
+
function gitOutputStatus(path) {
|
|
1188
|
+
const absolute = (0, import_path4.resolve)(path);
|
|
1189
|
+
const cwd = (0, import_path4.dirname)(absolute);
|
|
1190
|
+
const name = (0, import_path4.basename)(absolute);
|
|
1191
|
+
const inside = (0, import_child_process3.spawnSync)("git", ["rev-parse", "--is-inside-work-tree"], { cwd, encoding: "utf8" });
|
|
1192
|
+
if (inside.status !== 0) return "outside-repo";
|
|
1193
|
+
const tracked = (0, import_child_process3.spawnSync)("git", ["ls-files", "--error-unmatch", "--", name], { cwd, encoding: "utf8" });
|
|
1194
|
+
if (tracked.status === 0) return "tracked";
|
|
1195
|
+
const ignored = (0, import_child_process3.spawnSync)("git", ["check-ignore", "-q", "--", name], { cwd, encoding: "utf8" });
|
|
1196
|
+
if (ignored.status === 0) return "ignored";
|
|
1197
|
+
if (ignored.status === 1) return "untracked";
|
|
1198
|
+
return "outside-repo";
|
|
1199
|
+
}
|
|
1200
|
+
function warnOutputGitRisk(path) {
|
|
1201
|
+
const status = gitOutputStatus(path);
|
|
1202
|
+
if (status === "tracked") {
|
|
1203
|
+
console.warn(`[mxenv] Warning: ${path} is tracked by git; a rendered value could be committed. Add it to .gitignore and untrack it.`);
|
|
1204
|
+
} else if (status === "untracked") {
|
|
1205
|
+
console.warn(`[mxenv] Warning: ${path} is not git-ignored; add it to .gitignore before committing.`);
|
|
1206
|
+
}
|
|
1207
|
+
}
|
|
1208
|
+
|
|
1209
|
+
// package.json
|
|
1210
|
+
var package_default = {
|
|
1211
|
+
name: "@morphixai/mxenv",
|
|
1212
|
+
version: "0.12.0",
|
|
1213
|
+
description: "L2 run face for mxenv \u2014 run/export/inspect, source management, edit, migrate, skills.",
|
|
1214
|
+
license: "MIT",
|
|
1215
|
+
author: "MorphixAI <dev@morphixai.com>",
|
|
1216
|
+
homepage: "https://github.com/Morphicai/morphix-env#readme",
|
|
1217
|
+
repository: {
|
|
1218
|
+
type: "git",
|
|
1219
|
+
url: "git+https://github.com/Morphicai/morphix-env.git",
|
|
1220
|
+
directory: "packages/mxenv"
|
|
1221
|
+
},
|
|
1222
|
+
bugs: {
|
|
1223
|
+
url: "https://github.com/Morphicai/morphix-env/issues"
|
|
1224
|
+
},
|
|
1225
|
+
bin: {
|
|
1226
|
+
mxenv: "./dist/cli.js",
|
|
1227
|
+
"mx-env": "./dist/cli.js",
|
|
1228
|
+
"morphix-env": "./dist/cli.js"
|
|
1229
|
+
},
|
|
1230
|
+
main: "./dist/index.js",
|
|
1231
|
+
types: "./dist/index.d.ts",
|
|
1232
|
+
exports: {
|
|
1233
|
+
".": {
|
|
1234
|
+
types: "./dist/index.d.ts",
|
|
1235
|
+
default: "./dist/index.js"
|
|
1236
|
+
},
|
|
1237
|
+
"./package.json": "./package.json"
|
|
1238
|
+
},
|
|
1239
|
+
files: [
|
|
1240
|
+
"dist",
|
|
1241
|
+
"LICENSE",
|
|
1242
|
+
"README.md",
|
|
1243
|
+
"SECURITY.md"
|
|
1244
|
+
],
|
|
1245
|
+
engines: {
|
|
1246
|
+
node: ">=18"
|
|
1247
|
+
},
|
|
1248
|
+
publishConfig: {
|
|
1249
|
+
access: "public"
|
|
1250
|
+
},
|
|
1251
|
+
scripts: {
|
|
1252
|
+
build: "node scripts/build-editor-ui.mjs && tsup && node scripts/copy-skill.mjs",
|
|
1253
|
+
dev: "node scripts/build-editor-ui.mjs && tsup --watch",
|
|
1254
|
+
test: "pnpm --filter @morphixai/mxenv-core build && pnpm build && vitest run",
|
|
1255
|
+
typecheck: "pnpm --filter @morphixai/mxenv-core build && node scripts/build-editor-ui.mjs && tsc --noEmit && tsc --noEmit -p tsconfig.editor-ui.json",
|
|
1256
|
+
prepublishOnly: "node ../../scripts/prepublish-guard.mjs"
|
|
1257
|
+
},
|
|
1258
|
+
dependencies: {
|
|
1259
|
+
"cross-spawn": "^7.0.6",
|
|
1260
|
+
dotenv: "^17.3.1",
|
|
1261
|
+
"@morphixai/mxenv-core": "^0.12.0"
|
|
1262
|
+
},
|
|
1263
|
+
devDependencies: {
|
|
1264
|
+
"@radix-ui/react-alert-dialog": "^1.1.0",
|
|
1265
|
+
"@radix-ui/react-select": "^2.1.0",
|
|
1266
|
+
"@types/cross-spawn": "^6.0.6",
|
|
1267
|
+
"@types/node": "^25.5.0",
|
|
1268
|
+
"@types/react": "^19.1.0",
|
|
1269
|
+
"@types/react-dom": "^19.1.0",
|
|
1270
|
+
esbuild: "^0.27.0",
|
|
1271
|
+
"happy-dom": "^21.0.4",
|
|
1272
|
+
react: "^19.1.0",
|
|
1273
|
+
"react-dom": "^19.1.0",
|
|
1274
|
+
tsup: "^8.0.0",
|
|
1275
|
+
typescript: "^5.0.0",
|
|
1276
|
+
vitest: "^4.1.1"
|
|
1277
|
+
}
|
|
1278
|
+
};
|
|
1279
|
+
|
|
1280
|
+
// src/cli.ts
|
|
1281
|
+
var VERSION = package_default.version;
|
|
1282
|
+
function parseArgs(argv) {
|
|
1283
|
+
const args = {
|
|
1284
|
+
command: "",
|
|
1285
|
+
subArgs: [],
|
|
1286
|
+
positionals: [],
|
|
1287
|
+
envFiles: [],
|
|
1288
|
+
outFile: null,
|
|
1289
|
+
verbose: false,
|
|
1290
|
+
filter: null,
|
|
1291
|
+
noInfisical: false,
|
|
1292
|
+
env: null,
|
|
1293
|
+
profile: null,
|
|
1294
|
+
noGlobal: false,
|
|
1295
|
+
allowInsecureGlobal: false,
|
|
1296
|
+
printEditorUrl: false,
|
|
1297
|
+
source: null,
|
|
1298
|
+
target: null,
|
|
1299
|
+
to: null,
|
|
1300
|
+
service: null,
|
|
1301
|
+
force: false,
|
|
1302
|
+
dryRun: false,
|
|
1303
|
+
home: false,
|
|
1304
|
+
serve: false,
|
|
1305
|
+
write: false,
|
|
1306
|
+
remove: false,
|
|
1307
|
+
warnPlaintext: false,
|
|
1308
|
+
unknownFlags: []
|
|
1309
|
+
};
|
|
1310
|
+
let i = 2;
|
|
1311
|
+
const command = argv[i];
|
|
1312
|
+
if (!command) return args;
|
|
1313
|
+
args.command = command;
|
|
1314
|
+
i++;
|
|
1315
|
+
while (i < argv.length) {
|
|
1316
|
+
const arg = argv[i];
|
|
1317
|
+
if (arg === "--") {
|
|
1318
|
+
args.subArgs = argv.slice(i + 1);
|
|
1319
|
+
break;
|
|
1320
|
+
}
|
|
1321
|
+
if (arg === "--env-file" || arg === "-f") {
|
|
1322
|
+
if (argv[++i]) args.envFiles.push(argv[i]);
|
|
1323
|
+
} else if (arg === "--out" || arg === "-o") {
|
|
1324
|
+
if (argv[++i]) args.outFile = argv[i];
|
|
1325
|
+
} else if (arg === "--filter") {
|
|
1326
|
+
if (argv[++i]) args.filter = argv[i];
|
|
1327
|
+
} else if (arg === "--env" || arg === "-e") {
|
|
1328
|
+
if (argv[++i]) args.env = argv[i];
|
|
1329
|
+
} else if (arg === "--profile" || arg === "-p") {
|
|
1330
|
+
if (argv[++i]) args.profile = argv[i];
|
|
1331
|
+
} else if (arg === "--source") {
|
|
1332
|
+
if (argv[++i]) args.source = argv[i];
|
|
1333
|
+
} else if (arg === "--verbose" || arg === "-v") {
|
|
1334
|
+
args.verbose = true;
|
|
1335
|
+
} else if (arg === "--no-infisical") {
|
|
1336
|
+
args.noInfisical = true;
|
|
1337
|
+
} else if (arg === "--no-global") {
|
|
1338
|
+
args.noGlobal = true;
|
|
1339
|
+
} else if (arg === "--allow-insecure-global") {
|
|
1340
|
+
args.allowInsecureGlobal = true;
|
|
1341
|
+
} else if (arg === "--print-editor-url") {
|
|
1342
|
+
args.printEditorUrl = true;
|
|
1343
|
+
} else if (arg === "--target") {
|
|
1344
|
+
if (argv[++i]) args.target = argv[i];
|
|
1345
|
+
} else if (arg === "--to") {
|
|
1346
|
+
if (argv[++i]) args.to = argv[i];
|
|
1347
|
+
} else if (arg === "--service") {
|
|
1348
|
+
if (argv[++i]) args.service = argv[i];
|
|
1349
|
+
} else if (arg === "--force") {
|
|
1350
|
+
args.force = true;
|
|
1351
|
+
} else if (arg === "--dry-run") {
|
|
1352
|
+
args.dryRun = true;
|
|
1353
|
+
} else if (arg === "--home") {
|
|
1354
|
+
args.home = true;
|
|
1355
|
+
} else if (arg === "--write") {
|
|
1356
|
+
args.write = true;
|
|
1357
|
+
} else if (arg === "--remove") {
|
|
1358
|
+
args.remove = true;
|
|
1359
|
+
} else if (arg === "--serve") {
|
|
1360
|
+
args.serve = true;
|
|
1361
|
+
} else if (arg === "--warn-plaintext") {
|
|
1362
|
+
args.warnPlaintext = true;
|
|
1363
|
+
} else if (args.command === "run") {
|
|
1364
|
+
args.subArgs = argv.slice(i);
|
|
1365
|
+
break;
|
|
1366
|
+
} else if (!arg.startsWith("-")) {
|
|
1367
|
+
args.positionals.push(arg);
|
|
1368
|
+
} else {
|
|
1369
|
+
args.unknownFlags.push(arg);
|
|
1370
|
+
}
|
|
1371
|
+
i++;
|
|
1372
|
+
}
|
|
1373
|
+
return args;
|
|
1374
|
+
}
|
|
1375
|
+
function configLayers() {
|
|
1376
|
+
return (0, import_mxenv_core3.loadConfigLayers)({ cwd: process.cwd(), homeDir: (0, import_os4.homedir)() });
|
|
1377
|
+
}
|
|
1378
|
+
function composeOptions(args) {
|
|
1379
|
+
return {
|
|
1380
|
+
profile: args.profile,
|
|
1381
|
+
noGlobal: args.noGlobal,
|
|
1382
|
+
noInfisical: args.noInfisical,
|
|
1383
|
+
envName: args.env,
|
|
1384
|
+
allowInsecureGlobal: args.allowInsecureGlobal,
|
|
1385
|
+
envFiles: args.envFiles,
|
|
1386
|
+
homeDir: (0, import_os4.homedir)()
|
|
1387
|
+
};
|
|
1388
|
+
}
|
|
1389
|
+
var bootInfo = { viaShim: false };
|
|
1390
|
+
var shimWarned = false;
|
|
1391
|
+
function warnInvalidShims(layers, includeGlobal) {
|
|
1392
|
+
if (shimWarned) return;
|
|
1393
|
+
shimWarned = true;
|
|
1394
|
+
const problems = [
|
|
1395
|
+
...includeGlobal ? (0, import_mxenv_core3.validateShimList)(layers.global.config.shims, layers.global.path) : [],
|
|
1396
|
+
...(0, import_mxenv_core3.validateShimList)(layers.project.config.shims, layers.project.path)
|
|
1397
|
+
];
|
|
1398
|
+
if (problems.length) {
|
|
1399
|
+
console.warn(`[mxenv] Ignoring invalid "shims" entries (${problems.length} problem(s)); run \`mxenv-cli shell-init\` for the details.`);
|
|
1400
|
+
}
|
|
1401
|
+
}
|
|
1402
|
+
function resolveComposition(args) {
|
|
1403
|
+
const layers = configLayers();
|
|
1404
|
+
warnInvalidShims(layers, !args.noGlobal);
|
|
1405
|
+
return (0, import_mxenv_core3.composeEnvironment)(layers, composeOptions(args));
|
|
1406
|
+
}
|
|
1407
|
+
var plaintextWarned = false;
|
|
1408
|
+
function warnPlaintextSources(composition, args) {
|
|
1409
|
+
if (plaintextWarned) return;
|
|
1410
|
+
if (!args.warnPlaintext && process.env.MXENV_WARN_PLAINTEXT !== "1") return;
|
|
1411
|
+
plaintextWarned = true;
|
|
1412
|
+
const loaded = composition.sourceStatuses.filter(
|
|
1413
|
+
(source) => source.provider === "local" && source.availability === "loaded" && source.keyCount > 0
|
|
1414
|
+
);
|
|
1415
|
+
if (!loaded.length) return;
|
|
1416
|
+
console.warn(`[mxenv] Plaintext local source(s) in use: ${loaded.map((source) => source.name).join(", ")} \u2014 local plaintext files are dev-only; run \`mxenv migrate\` to move them into encrypted storage.`);
|
|
1417
|
+
}
|
|
1418
|
+
function generatedOptions(args) {
|
|
1419
|
+
const config = (0, import_mxenv_core3.loadConfigLayers)({ cwd: process.cwd(), homeDir: (0, import_os4.homedir)() }).project.config;
|
|
1420
|
+
return {
|
|
1421
|
+
outFile: args.outFile || config.generate?.out || "public/__env.js",
|
|
1422
|
+
filter: args.filter || config.generate?.filter || null
|
|
1423
|
+
};
|
|
1424
|
+
}
|
|
1425
|
+
function generateClientEnv(outFile, filter, environment) {
|
|
1426
|
+
let vars = (0, import_mxenv_core3.extractPublicVars)(environment);
|
|
1427
|
+
if (filter) vars = Object.fromEntries(Object.entries(vars).filter(([key]) => key.startsWith(filter)));
|
|
1428
|
+
(0, import_fs5.mkdirSync)((0, import_path5.dirname)(outFile), { recursive: true });
|
|
1429
|
+
(0, import_fs5.writeFileSync)(outFile, `window.__ENV=${JSON.stringify(vars)};`);
|
|
1430
|
+
console.log(`[mxenv] Generated ${outFile} (${Object.keys(vars).length} client vars)`);
|
|
1431
|
+
}
|
|
1432
|
+
async function runChild(command, commandArgs, composition) {
|
|
1433
|
+
return new Promise((resolve4) => {
|
|
1434
|
+
if (composition.environment.PATH) {
|
|
1435
|
+
composition.environment.PATH = (0, import_mxenv_core3.stripShimsFromPath)(composition.environment.PATH) ?? composition.environment.PATH;
|
|
1436
|
+
}
|
|
1437
|
+
const child = (0, import_cross_spawn.default)(command, commandArgs, { env: composition.environment, stdio: ["inherit", "pipe", "pipe"] });
|
|
1438
|
+
const stdout = new import_mxenv_core3.StreamingRedactor(composition.redactionValues);
|
|
1439
|
+
const stderr = new import_mxenv_core3.StreamingRedactor(composition.redactionValues);
|
|
1440
|
+
child.stdout?.on("data", (chunk) => process.stdout.write(stdout.write(chunk)));
|
|
1441
|
+
child.stderr?.on("data", (chunk) => process.stderr.write(stderr.write(chunk)));
|
|
1442
|
+
child.on("error", () => {
|
|
1443
|
+
console.error(`[mxenv] Failed to execute: ${command}`);
|
|
1444
|
+
resolve4(1);
|
|
1445
|
+
});
|
|
1446
|
+
child.on("close", (code) => {
|
|
1447
|
+
const stdoutFinal = stdout.flush();
|
|
1448
|
+
const stderrFinal = stderr.flush();
|
|
1449
|
+
if (stdoutFinal) process.stdout.write(stdoutFinal);
|
|
1450
|
+
if (stderrFinal) process.stderr.write(stderrFinal);
|
|
1451
|
+
resolve4(code ?? 1);
|
|
1452
|
+
});
|
|
1453
|
+
});
|
|
1454
|
+
}
|
|
1455
|
+
function writeRunAudit(composition, startedAt, outcome, exitCode) {
|
|
1456
|
+
(0, import_mxenv_core3.writeAudit)({
|
|
1457
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
1458
|
+
profile: composition.profileName,
|
|
1459
|
+
sources: composition.sourceStatuses.map((source) => source.name),
|
|
1460
|
+
keys: Object.keys(composition.provenance).sort(),
|
|
1461
|
+
outcome,
|
|
1462
|
+
exitCode,
|
|
1463
|
+
durationMs: Date.now() - startedAt,
|
|
1464
|
+
via: bootInfo.viaShim ? "shim" : "cli"
|
|
1465
|
+
});
|
|
1466
|
+
}
|
|
1467
|
+
async function startServeFor(composition, verbose) {
|
|
1468
|
+
const values = {};
|
|
1469
|
+
for (const key of Object.keys(composition.provenance)) {
|
|
1470
|
+
const value = composition.environment[key];
|
|
1471
|
+
if (value !== void 0) values[key] = value;
|
|
1472
|
+
}
|
|
1473
|
+
const server = await startSecretServer(values);
|
|
1474
|
+
for (const key of Object.keys(values)) {
|
|
1475
|
+
if (!(0, import_mxenv_core3.isPublicKey)(key)) delete composition.environment[key];
|
|
1476
|
+
}
|
|
1477
|
+
composition.environment.MXENV_ENDPOINT = server.endpoint;
|
|
1478
|
+
composition.environment.MXENV_TOKEN = server.token;
|
|
1479
|
+
composition.redactionValues = [.../* @__PURE__ */ new Set([...composition.redactionValues, server.token])];
|
|
1480
|
+
if (verbose) {
|
|
1481
|
+
console.error(`[mxenv] Secret server listening on ${server.endpoint} (${Object.keys(values).length} keys; token is visible to the child only).`);
|
|
1482
|
+
}
|
|
1483
|
+
return server;
|
|
1484
|
+
}
|
|
1485
|
+
function warnUnresolvedReference(reference, context) {
|
|
1486
|
+
console.warn(`[mxenv] Unresolved mxenv://${reference.profile}/${reference.key} reference ${context} (${reference.reason}); left as-is.`);
|
|
1487
|
+
}
|
|
1488
|
+
async function resolveEnvironmentReferences(composition, args) {
|
|
1489
|
+
const targets = Object.entries(composition.environment).filter((entry) => typeof entry[1] === "string" && (0, import_mxenv_core3.hasMxEnvReference)(entry[1]));
|
|
1490
|
+
if (!targets.length) return;
|
|
1491
|
+
const resolver = new import_mxenv_core3.ReferenceResolver(configLayers(), composeOptions(args));
|
|
1492
|
+
const changed = [];
|
|
1493
|
+
for (const [key, value] of targets) {
|
|
1494
|
+
const resolved = await resolver.resolveText(value);
|
|
1495
|
+
if (resolved.missing.length) {
|
|
1496
|
+
for (const reference of resolved.missing) warnUnresolvedReference(reference, `in key "${key}"`);
|
|
1497
|
+
continue;
|
|
1498
|
+
}
|
|
1499
|
+
composition.environment[key] = resolved.text;
|
|
1500
|
+
changed.push(key);
|
|
1501
|
+
}
|
|
1502
|
+
if (changed.length) {
|
|
1503
|
+
const extra = changed.map((key) => composition.environment[key]).filter((value) => Boolean(value));
|
|
1504
|
+
composition.redactionValues = [.../* @__PURE__ */ new Set([
|
|
1505
|
+
...(0, import_mxenv_core3.collectRedactionValues)(composition.environment, composition.provenance),
|
|
1506
|
+
...extra
|
|
1507
|
+
])];
|
|
1508
|
+
}
|
|
1509
|
+
}
|
|
1510
|
+
async function cmdRun(args) {
|
|
1511
|
+
if (!args.subArgs.length) {
|
|
1512
|
+
console.error("[mxenv] No command specified. Usage: mxenv run -- <command>");
|
|
1513
|
+
return 1;
|
|
1514
|
+
}
|
|
1515
|
+
const startedAt = Date.now();
|
|
1516
|
+
const composition = await resolveComposition(args);
|
|
1517
|
+
warnPlaintextSources(composition, args);
|
|
1518
|
+
if (args.verbose) {
|
|
1519
|
+
for (const source of composition.sourceStatuses) {
|
|
1520
|
+
console.log(`[mxenv] ${source.name}: ${source.availability} (${source.keyCount} keys)`);
|
|
1521
|
+
}
|
|
1522
|
+
}
|
|
1523
|
+
if (args.dryRun) {
|
|
1524
|
+
console.log(`profile: ${composition.profileName}`);
|
|
1525
|
+
for (const key of Object.keys(composition.provenance).sort()) console.log(` ${key}`);
|
|
1526
|
+
return 0;
|
|
1527
|
+
}
|
|
1528
|
+
await resolveEnvironmentReferences(composition, args);
|
|
1529
|
+
if (args.outFile || generatedOptions(args).outFile) {
|
|
1530
|
+
const { outFile, filter } = generatedOptions(args);
|
|
1531
|
+
const configured = Boolean(args.outFile || (0, import_mxenv_core3.loadConfigLayers)({ cwd: process.cwd(), homeDir: (0, import_os4.homedir)() }).project.config.generate);
|
|
1532
|
+
if (configured) generateClientEnv(outFile, filter, composition.environment);
|
|
1533
|
+
}
|
|
1534
|
+
const [command, ...commandArgs] = args.subArgs;
|
|
1535
|
+
const secretServer = args.serve ? await startServeFor(composition, args.verbose) : null;
|
|
1536
|
+
try {
|
|
1537
|
+
const exitCode = await runChild(command, commandArgs, composition);
|
|
1538
|
+
writeRunAudit(composition, startedAt, exitCode === 0 ? "success" : "failure", exitCode);
|
|
1539
|
+
return exitCode;
|
|
1540
|
+
} finally {
|
|
1541
|
+
secretServer?.close();
|
|
1542
|
+
}
|
|
1543
|
+
}
|
|
1544
|
+
async function cmdFetch(args) {
|
|
1545
|
+
const key = args.positionals[0];
|
|
1546
|
+
if (!key) {
|
|
1547
|
+
console.error("[mxenv] Usage: mxenv fetch <key-name>");
|
|
1548
|
+
return 1;
|
|
1549
|
+
}
|
|
1550
|
+
const endpoint = process.env.MXENV_ENDPOINT;
|
|
1551
|
+
const token = process.env.MXENV_TOKEN;
|
|
1552
|
+
if (!endpoint || !token) {
|
|
1553
|
+
console.error('[mxenv] mxenv fetch needs MXENV_ENDPOINT and MXENV_TOKEN; run it inside "mxenv run --serve -- <command>".');
|
|
1554
|
+
return 1;
|
|
1555
|
+
}
|
|
1556
|
+
let endpointUrl;
|
|
1557
|
+
try {
|
|
1558
|
+
endpointUrl = new URL(endpoint);
|
|
1559
|
+
} catch {
|
|
1560
|
+
console.error("[mxenv] MXENV_ENDPOINT is not a valid URL.");
|
|
1561
|
+
return 1;
|
|
1562
|
+
}
|
|
1563
|
+
if (!["127.0.0.1", "localhost", "[::1]"].includes(endpointUrl.hostname)) {
|
|
1564
|
+
console.error("[mxenv] MXENV_ENDPOINT is not a loopback address; refusing to send the fetch token off-machine.");
|
|
1565
|
+
return 1;
|
|
1566
|
+
}
|
|
1567
|
+
try {
|
|
1568
|
+
const response = await fetch(`${endpoint}/key/${encodeURIComponent(key)}`, {
|
|
1569
|
+
headers: { Authorization: `Bearer ${token}` }
|
|
1570
|
+
});
|
|
1571
|
+
if (response.ok) {
|
|
1572
|
+
process.stdout.write(await response.text());
|
|
1573
|
+
return 0;
|
|
1574
|
+
}
|
|
1575
|
+
if (response.status === 404) {
|
|
1576
|
+
console.error(`[mxenv] Unknown key on the secret server: ${key}`);
|
|
1577
|
+
return 1;
|
|
1578
|
+
}
|
|
1579
|
+
console.error(`[mxenv] Secret server rejected the request (HTTP ${response.status}).`);
|
|
1580
|
+
return 1;
|
|
1581
|
+
} catch {
|
|
1582
|
+
console.error("[mxenv] Secret server is unreachable; the parent process may have exited.");
|
|
1583
|
+
return 1;
|
|
1584
|
+
}
|
|
1585
|
+
}
|
|
1586
|
+
async function cmdGenerate(args) {
|
|
1587
|
+
const composition = await resolveComposition(args);
|
|
1588
|
+
warnPlaintextSources(composition, args);
|
|
1589
|
+
await resolveEnvironmentReferences(composition, args);
|
|
1590
|
+
const { outFile, filter } = generatedOptions(args);
|
|
1591
|
+
generateClientEnv(outFile, filter, composition.environment);
|
|
1592
|
+
if (args.verbose) {
|
|
1593
|
+
for (const key of Object.keys((0, import_mxenv_core3.extractPublicVars)(composition.environment)).sort()) console.log(` ${key}`);
|
|
1594
|
+
}
|
|
1595
|
+
return 0;
|
|
1596
|
+
}
|
|
1597
|
+
async function cmdInspect(args) {
|
|
1598
|
+
const composition = await resolveComposition(args);
|
|
1599
|
+
console.log(`profile: ${composition.profileName}`);
|
|
1600
|
+
for (const source of composition.sourceStatuses) {
|
|
1601
|
+
const plaintextMark = source.provider === "local" ? " [plaintext, dev-only]" : "";
|
|
1602
|
+
console.log(`source: ${source.name} (${source.provider}) \u2014 ${source.availability}, ${source.keyCount} keys${plaintextMark}`);
|
|
1603
|
+
}
|
|
1604
|
+
for (const [key, provenance] of Object.entries(composition.provenance).sort(([a], [b]) => a.localeCompare(b))) {
|
|
1605
|
+
if (!args.filter || key.startsWith(args.filter)) {
|
|
1606
|
+
const overridden = provenance.overriddenSources.length ? `; overrides ${provenance.overriddenSources.join(", ")}` : "";
|
|
1607
|
+
console.log(` ${key} \u2014 ${provenance.source} (${provenance.provider})${overridden}`);
|
|
1608
|
+
}
|
|
1609
|
+
}
|
|
1610
|
+
return 0;
|
|
1611
|
+
}
|
|
1612
|
+
async function cmdExport(args) {
|
|
1613
|
+
const startedAt = Date.now();
|
|
1614
|
+
const composition = await resolveComposition(args);
|
|
1615
|
+
warnPlaintextSources(composition, args);
|
|
1616
|
+
const keys = Object.keys(composition.provenance).sort();
|
|
1617
|
+
if (args.dryRun) {
|
|
1618
|
+
for (const key of keys) console.log(key);
|
|
1619
|
+
return 0;
|
|
1620
|
+
}
|
|
1621
|
+
await resolveEnvironmentReferences(composition, args);
|
|
1622
|
+
for (const key of keys) {
|
|
1623
|
+
if (!isShellIdentifier(key)) {
|
|
1624
|
+
console.warn(`[mxenv] Warning: key "${key}" is not a valid shell identifier; skipped in export output.`);
|
|
1625
|
+
continue;
|
|
1626
|
+
}
|
|
1627
|
+
console.log(`export ${key}=${shellQuote(composition.environment[key] ?? "")}`);
|
|
1628
|
+
}
|
|
1629
|
+
writeRunAudit(composition, startedAt, "success", 0);
|
|
1630
|
+
return 0;
|
|
1631
|
+
}
|
|
1632
|
+
async function cmdRender(args) {
|
|
1633
|
+
const startedAt = Date.now();
|
|
1634
|
+
const [templatePath, outPath] = args.positionals;
|
|
1635
|
+
if (!templatePath || !outPath) {
|
|
1636
|
+
console.error("[mxenv] Usage: mxenv render <template-file> <output-file> [options]");
|
|
1637
|
+
return 1;
|
|
1638
|
+
}
|
|
1639
|
+
if (!(0, import_fs5.existsSync)(templatePath)) {
|
|
1640
|
+
console.error(`[mxenv] Template not found: ${templatePath}`);
|
|
1641
|
+
return 1;
|
|
1642
|
+
}
|
|
1643
|
+
const template = (0, import_fs5.readFileSync)(templatePath, "utf8");
|
|
1644
|
+
const composition = await resolveComposition(args);
|
|
1645
|
+
warnPlaintextSources(composition, args);
|
|
1646
|
+
const names = findTemplateVariables(template);
|
|
1647
|
+
const missing = names.filter((name) => composition.environment[name] === void 0 || composition.environment[name] === null);
|
|
1648
|
+
if (missing.length) console.warn(`[mxenv] Missing variables: ${missing.join(", ")} (left unresolved)`);
|
|
1649
|
+
for (const anomaly of findTemplateAnomalies(template)) console.warn(`[mxenv] ${anomaly}`);
|
|
1650
|
+
if (args.dryRun) {
|
|
1651
|
+
for (const name of names) console.log(`${name}: ${missing.includes(name) ? "missing" : "resolved"}`);
|
|
1652
|
+
return 0;
|
|
1653
|
+
}
|
|
1654
|
+
await resolveEnvironmentReferences(composition, args);
|
|
1655
|
+
const { output } = renderTemplate(template, composition.environment);
|
|
1656
|
+
warnOutputGitRisk(outPath);
|
|
1657
|
+
writePrivateFile(outPath, output);
|
|
1658
|
+
writeRunAudit(composition, startedAt, "success", 0);
|
|
1659
|
+
console.log(`[mxenv] Rendered ${templatePath} -> ${outPath} (${names.length} variables, ${missing.length} unresolved)`);
|
|
1660
|
+
return 0;
|
|
1661
|
+
}
|
|
1662
|
+
async function cmdInject(args) {
|
|
1663
|
+
const startedAt = Date.now();
|
|
1664
|
+
const [templatePath, outPath] = args.positionals;
|
|
1665
|
+
if (!templatePath || !outPath) {
|
|
1666
|
+
console.error("[mxenv] Usage: mxenv inject <template-file> <output-file> [options]");
|
|
1667
|
+
return 1;
|
|
1668
|
+
}
|
|
1669
|
+
if (!(0, import_fs5.existsSync)(templatePath)) {
|
|
1670
|
+
console.error(`[mxenv] Template not found: ${templatePath}`);
|
|
1671
|
+
return 1;
|
|
1672
|
+
}
|
|
1673
|
+
const template = (0, import_fs5.readFileSync)(templatePath, "utf8");
|
|
1674
|
+
const layers = configLayers();
|
|
1675
|
+
warnInvalidShims(layers, !args.noGlobal);
|
|
1676
|
+
const resolver = new import_mxenv_core3.ReferenceResolver(layers, composeOptions(args));
|
|
1677
|
+
const references = (0, import_mxenv_core3.findMxEnvReferences)(template);
|
|
1678
|
+
if (args.dryRun) {
|
|
1679
|
+
for (const reference of references) {
|
|
1680
|
+
const result = await resolver.valueOf(reference.profile, reference.key);
|
|
1681
|
+
const status = result.value !== void 0 ? "resolved" : result.missing?.reason ?? "missing";
|
|
1682
|
+
console.log(`${reference.profile}/${reference.key}: ${status}`);
|
|
1683
|
+
}
|
|
1684
|
+
return 0;
|
|
1685
|
+
}
|
|
1686
|
+
const resolved = await resolver.resolveText(template);
|
|
1687
|
+
for (const reference of resolved.missing) warnUnresolvedReference(reference, `in ${templatePath}`);
|
|
1688
|
+
warnOutputGitRisk(outPath);
|
|
1689
|
+
writePrivateFile(outPath, resolved.text);
|
|
1690
|
+
(0, import_mxenv_core3.writeAudit)({
|
|
1691
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
1692
|
+
profile: [...new Set(references.map((reference) => reference.profile))].join(",") || "none",
|
|
1693
|
+
sources: [],
|
|
1694
|
+
keys: [...new Set(references.map((reference) => reference.key))].sort(),
|
|
1695
|
+
outcome: "success",
|
|
1696
|
+
exitCode: 0,
|
|
1697
|
+
durationMs: Date.now() - startedAt
|
|
1698
|
+
});
|
|
1699
|
+
console.log(`[mxenv] Injected ${templatePath} -> ${outPath} (${references.length} references, ${resolved.missing.length} unresolved)`);
|
|
1700
|
+
return 0;
|
|
1701
|
+
}
|
|
1702
|
+
async function cmdEdit(args) {
|
|
1703
|
+
const composition = await resolveComposition(args);
|
|
1704
|
+
if (args.source && !composition.sourceEntries.some((entry) => entry.name === args.source)) {
|
|
1705
|
+
const layers = (0, import_mxenv_core3.loadConfigLayers)({ cwd: process.cwd(), homeDir: (0, import_os4.homedir)() });
|
|
1706
|
+
const declared = layers.project.config.sources?.[args.source] ? { source: layers.project.config.sources[args.source], baseDir: layers.project.baseDir } : !args.noGlobal && layers.global.config.sources?.[args.source] ? { source: layers.global.config.sources[args.source], baseDir: layers.global.baseDir } : null;
|
|
1707
|
+
if (!declared) {
|
|
1708
|
+
console.error(`[mxenv] Unknown source "${args.source}".`);
|
|
1709
|
+
return 1;
|
|
1710
|
+
}
|
|
1711
|
+
composition.sourceEntries.push({ name: args.source, ...declared });
|
|
1712
|
+
composition.sourceStatuses.push({ name: args.source, provider: declared.source.provider, availability: "skipped", keyCount: 0 });
|
|
1713
|
+
}
|
|
1714
|
+
const editor = await launchEditor(__filename, composition, args.source || void 0);
|
|
1715
|
+
if (args.printEditorUrl) console.log(`[mxenv] Local editor URL: ${editor.url}`);
|
|
1716
|
+
else if (editor.opened) console.log("[mxenv] Opened local editor in your browser.");
|
|
1717
|
+
else console.log("[mxenv] Local editor started. Run again with --print-editor-url to display its one-time URL.");
|
|
1718
|
+
console.log("[mxenv] Values remain in the provider or browser session and are not printed here.");
|
|
1719
|
+
return 0;
|
|
1720
|
+
}
|
|
1721
|
+
async function cmdDoc(args) {
|
|
1722
|
+
const composition = await resolveComposition(args);
|
|
1723
|
+
const outFile = args.outFile || (0, import_path5.join)(process.cwd(), ".agents", "skills", "mxenv", "SKILL.md");
|
|
1724
|
+
const keyRows = Object.entries(composition.provenance).sort(([a], [b]) => a.localeCompare(b)).map(([key, provenance]) => `| \`${key}\` | ${provenance.source} (${provenance.provider}) |`).join("\n") || "| _No resolved keys_ | \u2014 |";
|
|
1725
|
+
const skill = `---
|
|
1726
|
+
name: mxenv
|
|
1727
|
+
description: Safely use and edit this project's composed environment profiles without placing values in Agent context.
|
|
1728
|
+
---
|
|
1729
|
+
|
|
1730
|
+
# Morphix environment workflow
|
|
1731
|
+
|
|
1732
|
+
Default profile context: \`${composition.profileName}\`.
|
|
1733
|
+
|
|
1734
|
+
## Operator-owned secret changes
|
|
1735
|
+
|
|
1736
|
+
When a user asks to add, modify, or rotate a credential:
|
|
1737
|
+
|
|
1738
|
+
1. Run \`mxenv edit\` (optionally with \`--profile <profile>\` or \`--source <source>\`).
|
|
1739
|
+
2. Tell the user to complete the change in the local visual editor or provider UI.
|
|
1740
|
+
3. Do not ask the user to paste a value into chat.
|
|
1741
|
+
4. Do not run \`env\`, \`printenv\`, \`cat .env\`, or any reveal command.
|
|
1742
|
+
5. Validate only through \`mxenv inspect --profile <profile>\`; it reports names, source, and status without values.
|
|
1743
|
+
|
|
1744
|
+
## Running commands
|
|
1745
|
+
|
|
1746
|
+
Use \`mxenv run --profile <profile> -- <command>\` for normal runs.
|
|
1747
|
+
Use \`mxenv run --no-global -- <command>\` when a project-only, reproducible environment is required.
|
|
1748
|
+
|
|
1749
|
+
## Available key names and sources
|
|
1750
|
+
|
|
1751
|
+
| Key | Winning source |
|
|
1752
|
+
| --- | --- |
|
|
1753
|
+
${keyRows}
|
|
1754
|
+
|
|
1755
|
+
Secret values and value prefixes do not belong in this Skill, command output, audit records, or conversation context.
|
|
1756
|
+
`;
|
|
1757
|
+
(0, import_fs5.mkdirSync)((0, import_path5.dirname)(outFile), { recursive: true });
|
|
1758
|
+
(0, import_fs5.writeFileSync)(outFile, skill, { mode: 384 });
|
|
1759
|
+
console.log(`[mxenv] Generated value-free workflow Skill: ${outFile}`);
|
|
1760
|
+
return 0;
|
|
1761
|
+
}
|
|
1762
|
+
function printMigratePlan(units, hints, target) {
|
|
1763
|
+
if (!units.length) {
|
|
1764
|
+
console.log("[mxenv] No plaintext units in scope; nothing to migrate.");
|
|
1765
|
+
}
|
|
1766
|
+
for (const unit of units) {
|
|
1767
|
+
const where = unit.kind === "global-implicit" ? "global implicit" : `${unit.scope}, declared in ${unit.configPath}`;
|
|
1768
|
+
console.log(`unit: ${unit.name} (${where})`);
|
|
1769
|
+
for (const file of unit.files) console.log(` file: ${file}`);
|
|
1770
|
+
console.log(` keys: ${unit.keyNames.join(", ") || "(none)"}`);
|
|
1771
|
+
console.log(` --to dotenvx: encrypt file(s) in place${unit.kind === "declared" ? " + rewrite provider in config" : " (no config change; loading auto-detects encryption)"}`);
|
|
1772
|
+
console.log(unit.kind === "global-implicit" ? " --to keychain: not supported for the global implicit file" : " --to keychain: move values to a keychain service, rewrite config, delete plaintext");
|
|
1773
|
+
}
|
|
1774
|
+
for (const hint of hints) {
|
|
1775
|
+
console.log(`legacy plaintext (not auto-migrated): ${hint} \u2014 declare it as a source in mxenv.config.json to migrate it.`);
|
|
1776
|
+
}
|
|
1777
|
+
if (units.length && !target) {
|
|
1778
|
+
console.log("\nPlan only. Re-run with --to dotenvx|keychain to execute; every unit gets a 0600 backup and a post-migration equivalence check before its config changes.");
|
|
1779
|
+
}
|
|
1780
|
+
}
|
|
1781
|
+
async function cmdMigrate(args) {
|
|
1782
|
+
if (args.unknownFlags.length) {
|
|
1783
|
+
console.error(`[mxenv] migrate: unrecognized flag(s): ${args.unknownFlags.join(", ")}`);
|
|
1784
|
+
return 1;
|
|
1785
|
+
}
|
|
1786
|
+
if (args.home) {
|
|
1787
|
+
if (args.to || args.source || args.service || args.dryRun || args.envFiles.length) {
|
|
1788
|
+
console.error("[mxenv] migrate: --home is its own mode; do not combine it with --to/--source/--service/--dry-run/--env-file.");
|
|
1789
|
+
return 1;
|
|
1790
|
+
}
|
|
1791
|
+
const startedAt2 = Date.now();
|
|
1792
|
+
const result = await migrateHome((0, import_os4.homedir)(), { allowInsecureGlobal: args.allowInsecureGlobal });
|
|
1793
|
+
if (result.status === "migrated") {
|
|
1794
|
+
console.log(`[mxenv] ${result.detail}`);
|
|
1795
|
+
if (result.backupPath) console.log(`[mxenv] Backup: ${result.backupPath} \u2014 delete it by hand once verified.`);
|
|
1796
|
+
if (result.rcHint) console.error(result.rcHint);
|
|
1797
|
+
(0, import_mxenv_core3.writeAudit)({
|
|
1798
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
1799
|
+
profile: "migrate",
|
|
1800
|
+
sources: ["global-home"],
|
|
1801
|
+
keys: result.keyNames,
|
|
1802
|
+
outcome: "success",
|
|
1803
|
+
exitCode: 0,
|
|
1804
|
+
durationMs: Date.now() - startedAt2
|
|
1805
|
+
});
|
|
1806
|
+
return 0;
|
|
1807
|
+
}
|
|
1808
|
+
if (result.status === "noop") {
|
|
1809
|
+
console.log(`[mxenv] ${result.detail}`);
|
|
1810
|
+
return 0;
|
|
1811
|
+
}
|
|
1812
|
+
console.error(`[mxenv] ${result.detail}`);
|
|
1813
|
+
return result.exitCode;
|
|
1814
|
+
}
|
|
1815
|
+
if (args.to && args.to !== "dotenvx" && args.to !== "keychain") {
|
|
1816
|
+
console.error('[mxenv] migrate: --to must be "dotenvx" or "keychain".');
|
|
1817
|
+
return 1;
|
|
1818
|
+
}
|
|
1819
|
+
if (args.service && args.to !== "keychain") {
|
|
1820
|
+
console.error("[mxenv] migrate: --service is only valid with --to keychain.");
|
|
1821
|
+
return 1;
|
|
1822
|
+
}
|
|
1823
|
+
if (args.service && !args.source) {
|
|
1824
|
+
console.error("[mxenv] migrate: --service requires --source (one service per migrated source).");
|
|
1825
|
+
return 1;
|
|
1826
|
+
}
|
|
1827
|
+
const layers = configLayers();
|
|
1828
|
+
const home = (0, import_os4.homedir)();
|
|
1829
|
+
const units = discoverPlaintextUnits(layers, home);
|
|
1830
|
+
const hints = legacyPlaintextHints(layers, units, home);
|
|
1831
|
+
const fileOwners = /* @__PURE__ */ new Map();
|
|
1832
|
+
const collisions = [];
|
|
1833
|
+
for (const unit of units) {
|
|
1834
|
+
for (const file of unit.files) {
|
|
1835
|
+
const owner = fileOwners.get(file);
|
|
1836
|
+
if (owner && owner !== unit.name) {
|
|
1837
|
+
collisions.push(`file ${file} is shared by units "${owner}" and "${unit.name}"`);
|
|
1838
|
+
}
|
|
1839
|
+
if (!owner) fileOwners.set(file, unit.name);
|
|
1840
|
+
}
|
|
1841
|
+
}
|
|
1842
|
+
for (const collision of collisions) {
|
|
1843
|
+
if (!args.to || args.dryRun) console.warn(`[mxenv] Warning: ${collision}; split them into separate files (or sources) before migrating.`);
|
|
1844
|
+
else {
|
|
1845
|
+
console.error(`[mxenv] migrate: ${collision}; split them into separate files (or sources) before migrating.`);
|
|
1846
|
+
return 1;
|
|
1847
|
+
}
|
|
1848
|
+
}
|
|
1849
|
+
const selected = args.source ? units.filter((unit) => unit.name === args.source) : units;
|
|
1850
|
+
if (args.source && !selected.length) {
|
|
1851
|
+
console.error(`[mxenv] migrate: no plaintext unit named "${args.source}" in scope (already migrated or unknown).`);
|
|
1852
|
+
return 1;
|
|
1853
|
+
}
|
|
1854
|
+
if (!args.to || args.dryRun) {
|
|
1855
|
+
printMigratePlan(selected, hints, args.to);
|
|
1856
|
+
return 0;
|
|
1857
|
+
}
|
|
1858
|
+
if (!selected.length) {
|
|
1859
|
+
console.log("[mxenv] No plaintext units in scope; nothing to migrate.");
|
|
1860
|
+
return 0;
|
|
1861
|
+
}
|
|
1862
|
+
const target = args.to;
|
|
1863
|
+
const startedAt = Date.now();
|
|
1864
|
+
const outcomes = [];
|
|
1865
|
+
for (const unit of selected) {
|
|
1866
|
+
const outcome = await executeUnit(unit, target, { service: args.service || void 0 }, home);
|
|
1867
|
+
outcomes.push(outcome);
|
|
1868
|
+
if (outcome.status === "migrated") {
|
|
1869
|
+
console.log(`[mxenv] Migrated ${unit.name} -> ${target} (${unit.keyNames.length} keys).`);
|
|
1870
|
+
for (const warning of outcome.warnings) console.warn(warning);
|
|
1871
|
+
for (const backup of outcome.backups) console.log(`[mxenv] Backup (0600): ${backup}`);
|
|
1872
|
+
} else if (outcome.status === "skipped") {
|
|
1873
|
+
console.warn(`[mxenv] Skipped ${unit.name}: ${outcome.detail}`);
|
|
1874
|
+
} else {
|
|
1875
|
+
console.error(`[mxenv] Failed ${unit.name}: ${outcome.detail}`);
|
|
1876
|
+
for (const backup of outcome.backups) console.error(`[mxenv] Backup retained (0600): ${backup} \u2014 delete it by hand once verified.`);
|
|
1877
|
+
}
|
|
1878
|
+
}
|
|
1879
|
+
const failed = outcomes.filter((outcome) => outcome.status === "failed");
|
|
1880
|
+
const exitCode = failed.length ? 1 : 0;
|
|
1881
|
+
(0, import_mxenv_core3.writeAudit)({
|
|
1882
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
1883
|
+
profile: "migrate",
|
|
1884
|
+
sources: selected.map((unit) => unit.name),
|
|
1885
|
+
keys: [...new Set(selected.flatMap((unit) => unit.keyNames))].sort(),
|
|
1886
|
+
outcome: failed.length ? "failure" : "success",
|
|
1887
|
+
exitCode,
|
|
1888
|
+
durationMs: Date.now() - startedAt
|
|
1889
|
+
});
|
|
1890
|
+
if (outcomes.some((outcome) => outcome.backups.length)) {
|
|
1891
|
+
console.log("[mxenv] Backups are 0600 copies of the original plaintext \u2014 delete them once your workflows are verified.");
|
|
1892
|
+
}
|
|
1893
|
+
return exitCode;
|
|
1894
|
+
}
|
|
1895
|
+
function cmdAudit(args) {
|
|
1896
|
+
const file = (0, import_path5.join)((0, import_mxenv_core3.auditDir)(), `${(/* @__PURE__ */ new Date()).toISOString().slice(0, 10)}.jsonl`);
|
|
1897
|
+
if (!(0, import_fs5.existsSync)(file)) {
|
|
1898
|
+
console.log("[mxenv] No audit events for today.");
|
|
1899
|
+
return 0;
|
|
1900
|
+
}
|
|
1901
|
+
const lines = (0, import_fs5.readFileSync)(file, "utf8").trim().split("\n").filter(Boolean);
|
|
1902
|
+
const selected = args.subArgs[0] === "tail" ? lines.slice(-20) : lines;
|
|
1903
|
+
for (const line of selected) console.log(line);
|
|
1904
|
+
return 0;
|
|
1905
|
+
}
|
|
1906
|
+
function showHelp() {
|
|
1907
|
+
console.log(`
|
|
1908
|
+
mxenv v${VERSION} \u2014 secret composition and environment delivery
|
|
1909
|
+
|
|
1910
|
+
Usage:
|
|
1911
|
+
mxenv run [options] -- <command> Compose env + execute command
|
|
1912
|
+
mxenv fetch <key-name> Print one value from a run --serve secret server
|
|
1913
|
+
mxenv export [options] Print eval-able export KEY='value' lines
|
|
1914
|
+
mxenv render <template> <output> Substitute \${VAR} into a file (mode 0600)
|
|
1915
|
+
mxenv inject <template> <output> Resolve mxenv:// references into a file (mode 0600)
|
|
1916
|
+
mxenv generate [options] Generate public __env.js
|
|
1917
|
+
mxenv inspect [options] Print key names, sources, and status only
|
|
1918
|
+
mxenv migrate [--to dotenvx|keychain] Move plaintext local sources into encrypted storage
|
|
1919
|
+
mxenv migrate --home Move the global directory ~/.mx-env \u2192 ~/.mxenv (verified, timestamped backup)
|
|
1920
|
+
mxenv doc [options] Generate a value-free project Skill
|
|
1921
|
+
mxenv audit [tail] Read value-free local audit events
|
|
1922
|
+
mxenv edit [--profile|--source <name>] Open the visual editor (15-min session)
|
|
1923
|
+
mxenv skill install [--target <t>] Install the Agent Skill (global|project|trellis)
|
|
1924
|
+
mxenv skill show Show skill install status per target
|
|
1925
|
+
|
|
1926
|
+
The legacy bin names (mx-env, morphix-env) remain as deprecated aliases in 0.12.x.
|
|
1927
|
+
|
|
1928
|
+
Options:
|
|
1929
|
+
-p, --profile <name> Select a named source profile
|
|
1930
|
+
-f, --env-file <path> Local override file (repeatable)
|
|
1931
|
+
-e, --env <name> Infisical environment override
|
|
1932
|
+
-o, --out <path> Client __env.js output
|
|
1933
|
+
--filter <prefix> Include public keys with this prefix
|
|
1934
|
+
--serve Keep composed values out of env; serve them to the child over loopback
|
|
1935
|
+
--dry-run Report key/variable names only, never values
|
|
1936
|
+
--no-infisical Do not load Infisical sources
|
|
1937
|
+
--no-global Ignore ~/.mxenv/.env and ~/.mxenv/config.json
|
|
1938
|
+
--allow-insecure-global Allow a global .env with permissive file mode
|
|
1939
|
+
--warn-plaintext Warn once on stderr when plaintext local sources supply keys
|
|
1940
|
+
--print-editor-url Explicitly print the one-time local editor URL
|
|
1941
|
+
--target <scope> Skill install target: global, project, or trellis
|
|
1942
|
+
--to <provider> migrate destination: dotenvx or keychain (omit for a read-only plan)
|
|
1943
|
+
--source <name> edit/migrate: select a single source
|
|
1944
|
+
--service <name> migrate --to keychain: keychain service override (requires --source)
|
|
1945
|
+
--force Overwrite an installed skill that differs from this version
|
|
1946
|
+
-v, --verbose Print source status and key counts only
|
|
1947
|
+
--help, -h Show this help
|
|
1948
|
+
--version Show version
|
|
1949
|
+
`);
|
|
1950
|
+
}
|
|
1951
|
+
async function main() {
|
|
1952
|
+
(0, import_mxenv_core3.warnDeprecatedBinInvocation)(process.argv[1]);
|
|
1953
|
+
Object.assign(bootInfo, (0, import_mxenv_core3.sanitizeBootEnv)());
|
|
1954
|
+
const args = parseArgs(process.argv);
|
|
1955
|
+
switch (args.command) {
|
|
1956
|
+
case "run":
|
|
1957
|
+
return cmdRun(args);
|
|
1958
|
+
case "fetch":
|
|
1959
|
+
return cmdFetch(args);
|
|
1960
|
+
case "export":
|
|
1961
|
+
return cmdExport(args);
|
|
1962
|
+
case "render":
|
|
1963
|
+
return cmdRender(args);
|
|
1964
|
+
case "inject":
|
|
1965
|
+
return cmdInject(args);
|
|
1966
|
+
case "generate":
|
|
1967
|
+
case "gen":
|
|
1968
|
+
return cmdGenerate(args);
|
|
1969
|
+
case "inspect":
|
|
1970
|
+
return cmdInspect(args);
|
|
1971
|
+
case "migrate":
|
|
1972
|
+
return cmdMigrate(args);
|
|
1973
|
+
case "audit":
|
|
1974
|
+
return cmdAudit(args);
|
|
1975
|
+
case "edit":
|
|
1976
|
+
return cmdEdit(args);
|
|
1977
|
+
case "doc":
|
|
1978
|
+
return cmdDoc(args);
|
|
1979
|
+
case "skill": {
|
|
1980
|
+
const positional = process.argv.slice(3).find((arg) => !arg.startsWith("-")) ?? "install";
|
|
1981
|
+
return cmdSkill(positional, { target: args.target, force: args.force });
|
|
1982
|
+
}
|
|
1983
|
+
case "--help":
|
|
1984
|
+
case "-h":
|
|
1985
|
+
case "help":
|
|
1986
|
+
showHelp();
|
|
1987
|
+
return 0;
|
|
1988
|
+
case "--version":
|
|
1989
|
+
console.log(VERSION);
|
|
1990
|
+
return 0;
|
|
1991
|
+
default:
|
|
1992
|
+
if (args.command) console.error(`[mxenv] Unknown command: ${args.command}`);
|
|
1993
|
+
showHelp();
|
|
1994
|
+
return args.command ? 1 : 0;
|
|
1995
|
+
}
|
|
1996
|
+
}
|
|
1997
|
+
if (process.argv[2] === "__mx_editor") {
|
|
1998
|
+
startEditorServer(process.argv[3]).catch(() => {
|
|
1999
|
+
process.exitCode = 1;
|
|
2000
|
+
});
|
|
2001
|
+
} else {
|
|
2002
|
+
main().then((code) => {
|
|
2003
|
+
process.exitCode = code;
|
|
2004
|
+
}).catch((error) => {
|
|
2005
|
+
const message = error instanceof Error ? error.message : "[mxenv] Failed to compose environment.";
|
|
2006
|
+
console.error(message);
|
|
2007
|
+
process.exitCode = 1;
|
|
2008
|
+
});
|
|
2009
|
+
}
|