From 3f73decc3ee341bfb9537629d34712e85069ed9f Mon Sep 17 00:00:00 2001 From: Jonathan Wall Date: Tue, 15 Sep 2026 14:41:41 +0000 Subject: [PATCH 1/2] feat!: remove hosted benchmark and scenario CLI commands --- .gitignore | 3 + README.md | 17 - src/commands/benchmark-job/list.ts | 107 -- src/commands/benchmark-job/logs.ts | 398 ---- src/commands/benchmark-job/progress.ts | 237 --- src/commands/benchmark-job/run.ts | 356 ---- src/commands/benchmark-job/summary.ts | 23 - src/commands/benchmark-job/watch.ts | 510 ----- src/commands/scenario/info.ts | 20 - src/commands/scenario/list.ts | 57 - src/components/BenchmarkMenu.tsx | 238 --- src/components/MainMenu.tsx | 9 - src/components/ResourcePicker.tsx | 2 +- src/components/SectionDetailView.tsx | 2 +- src/components/StatusBadge.tsx | 16 +- src/components/agentColumns.ts | 2 +- src/mcp/README.md | 2 + src/mcp/index.js | 93 - src/router/Router.tsx | 78 - src/screens/BenchmarkDetailScreen.tsx | 289 --- src/screens/BenchmarkJobCreateScreen.tsx | 1651 ----------------- src/screens/BenchmarkJobDetailScreen.tsx | 889 --------- src/screens/BenchmarkJobListScreen.tsx | 495 ----- src/screens/BenchmarkListScreen.tsx | 478 ----- src/screens/BenchmarkMenuScreen.tsx | 36 - src/screens/BenchmarkRunDetailScreen.tsx | 635 ------- src/screens/BenchmarkRunListScreen.tsx | 449 ----- src/screens/MenuScreen.tsx | 3 - src/screens/ScenarioRunDetailScreen.tsx | 354 ---- src/screens/ScenarioRunListScreen.tsx | 438 ----- src/services/agentService.ts | 2 +- src/services/benchmarkJobService.ts | 319 ---- src/services/benchmarkService.ts | 260 --- src/services/scenarioService.ts | 61 - src/store/benchmarkJobStore.ts | 122 -- src/store/benchmarkStore.ts | 315 ---- src/store/menuStore.ts | 4 - src/store/navigationStore.tsx | 18 +- src/utils/commands.ts | 136 -- src/utils/url.ts | 32 - .../commands/benchmark-job/progress.test.ts | 301 --- .../__tests__/commands/scenario/list.test.ts | 155 -- .../services/benchmarkJobService.test.ts | 502 ----- .../services/benchmarkService.test.ts | 318 ---- tests/__tests__/utils/commands.test.ts | 22 + tests/fixtures/mocks.ts | 184 +- tests/setup-router.ts | 18 - 47 files changed, 118 insertions(+), 10538 deletions(-) delete mode 100644 src/commands/benchmark-job/list.ts delete mode 100644 src/commands/benchmark-job/logs.ts delete mode 100644 src/commands/benchmark-job/progress.ts delete mode 100644 src/commands/benchmark-job/run.ts delete mode 100644 src/commands/benchmark-job/summary.ts delete mode 100644 src/commands/benchmark-job/watch.ts delete mode 100644 src/commands/scenario/info.ts delete mode 100644 src/commands/scenario/list.ts delete mode 100644 src/components/BenchmarkMenu.tsx delete mode 100755 src/mcp/index.js delete mode 100644 src/screens/BenchmarkDetailScreen.tsx delete mode 100644 src/screens/BenchmarkJobCreateScreen.tsx delete mode 100644 src/screens/BenchmarkJobDetailScreen.tsx delete mode 100644 src/screens/BenchmarkJobListScreen.tsx delete mode 100644 src/screens/BenchmarkListScreen.tsx delete mode 100644 src/screens/BenchmarkMenuScreen.tsx delete mode 100644 src/screens/BenchmarkRunDetailScreen.tsx delete mode 100644 src/screens/BenchmarkRunListScreen.tsx delete mode 100644 src/screens/ScenarioRunDetailScreen.tsx delete mode 100644 src/screens/ScenarioRunListScreen.tsx delete mode 100644 src/services/benchmarkJobService.ts delete mode 100644 src/services/benchmarkService.ts delete mode 100644 src/services/scenarioService.ts delete mode 100644 src/store/benchmarkJobStore.ts delete mode 100644 src/store/benchmarkStore.ts delete mode 100644 tests/__tests__/commands/benchmark-job/progress.test.ts delete mode 100644 tests/__tests__/commands/scenario/list.test.ts delete mode 100644 tests/__tests__/services/benchmarkJobService.test.ts delete mode 100644 tests/__tests__/services/benchmarkService.test.ts create mode 100644 tests/__tests__/utils/commands.test.ts diff --git a/.gitignore b/.gitignore index 7a7b95cd..d47399b1 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,6 @@ dist/ .env coverage *.mcpb + +# Generated by build:mcp alongside the extension archive. +src/mcp/index.js diff --git a/README.md b/README.md index 5197948d..762c6d17 100644 --- a/README.md +++ b/README.md @@ -206,23 +206,6 @@ rli axon list # List active axons rli axon events # List events for an axon ``` -### Scenario Commands (alias: `scn`) - -```bash -rli scenario info # Display scenario definition details -rli scenario list # List scenario runs -``` - -### Benchmark-job Commands (alias: `bmj`) - -```bash -rli benchmark-job run # Run a benchmark job with one or more ... -rli benchmark-job summary # Get benchmark job summary and results -rli benchmark-job watch # Watch benchmark job progress in real-... -rli benchmark-job logs # Download devbox logs for all scenario... -rli benchmark-job list # List benchmark jobs -``` - ### Agent Commands (alias: `agt`) ```bash diff --git a/src/commands/benchmark-job/list.ts b/src/commands/benchmark-job/list.ts deleted file mode 100644 index 764e2ce7..00000000 --- a/src/commands/benchmark-job/list.ts +++ /dev/null @@ -1,107 +0,0 @@ -/** - * List benchmark jobs command - */ - -import { - listBenchmarkJobs, - type BenchmarkJob, -} from "../../services/benchmarkJobService.js"; -import { output, outputError } from "../../utils/output.js"; - -interface ListOptions { - days?: string; - all?: boolean; - status?: string; - output?: string; -} - -const VALID_STATES = [ - "initializing", - "queued", - "running", - "completed", - "failed", - "cancelled", - "timeout", -]; - -const PAGE_SIZE = 100; - -async function fetchJobs( - cutoffMs: number | null, - statusFilter: Set | null, -): Promise { - const allJobs: BenchmarkJob[] = []; - let cursor: string | undefined; - - while (true) { - const result = await listBenchmarkJobs({ - limit: PAGE_SIZE, - startingAfter: cursor, - }); - - for (const job of result.jobs) { - // Stop pagination if we've passed the time cutoff (API returns newest-first) - if (cutoffMs !== null && job.create_time_ms < cutoffMs) { - return applyStatusFilter(allJobs, statusFilter); - } - allJobs.push(job); - } - - if (!result.hasMore || result.jobs.length === 0) break; - cursor = result.jobs[result.jobs.length - 1].id; - } - - return applyStatusFilter(allJobs, statusFilter); -} - -function applyStatusFilter( - jobs: BenchmarkJob[], - statusFilter: Set | null, -): BenchmarkJob[] { - if (!statusFilter) return jobs; - return jobs.filter((job) => statusFilter.has(job.state?.toLowerCase() || "")); -} - -// --- Command entry point --- - -export async function listBenchmarkJobsCommand( - options: ListOptions, -): Promise { - try { - // Parse status filter - let statusFilter: Set | null = null; - if (options.status) { - const statuses = options.status - .split(",") - .map((s) => s.trim().toLowerCase()); - const invalid = statuses.filter((s) => !VALID_STATES.includes(s)); - if (invalid.length > 0) { - outputError( - `Invalid status: ${invalid.join(", ")}. Valid: ${VALID_STATES.join(", ")}`, - ); - } - statusFilter = new Set(statuses); - } - - // Compute time cutoff - let cutoffMs: number | null = null; - if (!options.all) { - const days = options.days ? parseInt(options.days, 10) : 1; - if (isNaN(days) || days <= 0) { - outputError("--days must be a positive integer"); - } - cutoffMs = Date.now() - days * 86_400_000; - } - - // Fetch and filter - const jobs = await fetchJobs(cutoffMs, statusFilter); - - // Sort ascending by create_time_ms (oldest first, most recent at bottom) - jobs.sort((a, b) => a.create_time_ms - b.create_time_ms); - - output(jobs, { format: options.output, defaultFormat: "json" }); - } catch (error) { - outputError("Failed to list benchmark jobs", error); - } -} diff --git a/src/commands/benchmark-job/logs.ts b/src/commands/benchmark-job/logs.ts deleted file mode 100644 index 87622a91..00000000 --- a/src/commands/benchmark-job/logs.ts +++ /dev/null @@ -1,398 +0,0 @@ -/** - * Download devbox logs for all scenario runs in a benchmark job. - * - * Traverses job -> benchmark runs -> scenario runs, downloading and extracting - * log ZIPs into an organized directory structure: /// - * - * Also writes a results.json with scoring and state info for each scenario run. - */ - -import * as fs from "fs"; -import * as path from "path"; -import AdmZip from "adm-zip"; -import chalk from "chalk"; -import { getClient } from "../../utils/client.js"; -import { - getBenchmarkJob, - listBenchmarkRunScenarioRuns, - type BenchmarkJob, - type ScenarioRun, -} from "../../services/benchmarkJobService.js"; -import { outputError } from "../../utils/output.js"; -import type { BenchmarkJobView } from "@runloop/api-client/resources/benchmark-jobs"; - -interface LogsOptions { - outputDir?: string; - run?: string; - scenario?: string; -} - -// Info gathered for each benchmark run before downloading logs -interface BenchmarkRunInfo { - benchmarkRunId: string; - agentName: string; - modelName?: string; -} - -// A scenario outcome from a completed benchmark run -type ScenarioOutcome = NonNullable< - BenchmarkJobView["benchmark_outcomes"] ->[number]["scenario_outcomes"][number]; - -// Info for a single scenario run's log download -interface ScenarioLogTarget { - agentName: string; - modelName?: string; - scenarioName: string; - scenarioRunId: string; - scenarioRun: ScenarioRun; - outcome?: ScenarioOutcome; - destDir: string; -} - -/** Build the agent directory name, including model if present */ -function agentDirName(agentName: string, modelName?: string): string { - if (modelName) { - return sanitizeDirName(`${agentName}_${modelName}`); - } - return sanitizeDirName(agentName); -} - -/** Extract agent name and model from an in-progress run's agent config */ -function getAgentInfoFromInProgressRun( - run: NonNullable[number], -): { name: string; model?: string } { - const config = run.agent_config; - if (config && config.type === "job_agent") { - return { name: config.name, model: config.model_name ?? undefined }; - } - return { name: "unknown" }; -} - -/** Collect benchmark run IDs and agent names from the job */ -function collectBenchmarkRuns(job: BenchmarkJob): BenchmarkRunInfo[] { - const runs: BenchmarkRunInfo[] = []; - - for (const outcome of job.benchmark_outcomes || []) { - runs.push({ - benchmarkRunId: outcome.benchmark_run_id, - agentName: outcome.agent_name, - modelName: outcome.model_name ?? undefined, - }); - } - - for (const run of job.in_progress_runs || []) { - const info = getAgentInfoFromInProgressRun(run); - runs.push({ - benchmarkRunId: run.benchmark_run_id, - agentName: info.name, - modelName: info.model, - }); - } - - return runs; -} - -/** Build a map of scenario_run_id -> scenario outcome from completed outcomes */ -function buildScenarioOutcomeMap( - job: BenchmarkJob, -): Map { - const map = new Map(); - for (const outcome of job.benchmark_outcomes || []) { - for (const scenario of outcome.scenario_outcomes || []) { - const runId = scenario.scenario_run_id; - if (runId) { - map.set(runId, scenario); - } - } - } - return map; -} - -/** Look up a scenario name, falling back to the API if not in the outcomes map */ -async function resolveScenarioName( - scenarioRunId: string, - scenarioId: string, - outcomeMap: Map, -): Promise { - const outcome = outcomeMap.get(scenarioRunId); - if (outcome) return outcome.scenario_name; - - try { - const client = getClient(); - const scenario = await client.scenarios.retrieve(scenarioId); - return scenario.name; - } catch { - return scenarioId; - } -} - -/** Sanitize a name for use as a directory name */ -function sanitizeDirName(name: string): string { - return name.replace(/[/\\:*?"<>|]/g, "_").replace(/\s+/g, "-"); -} - -/** - * Assign unique destination directories, appending -2, -3, etc. for duplicates. - * Mutates targets in place, setting destDir on each. - */ -function assignDestDirs(targets: ScenarioLogTarget[], outputDir: string): void { - const counts = new Map(); - - for (const target of targets) { - const baseDir = path.join( - outputDir, - agentDirName(target.agentName, target.modelName), - sanitizeDirName(target.scenarioName), - ); - const count = (counts.get(baseDir) || 0) + 1; - counts.set(baseDir, count); - target.destDir = count === 1 ? baseDir : `${baseDir}-${count}`; - } - - // If any key had duplicates, rename the first occurrence too (append -1) - const duplicateKeys = new Set( - [...counts.entries()].filter(([, c]) => c > 1).map(([k]) => k), - ); - if (duplicateKeys.size > 0) { - for (const target of targets) { - if (target.destDir && duplicateKeys.has(target.destDir)) { - target.destDir = `${target.destDir}-1`; - } - } - } -} - -/** Build a results summary object for a scenario run */ -function buildResultsSummary( - target: ScenarioLogTarget, -): Record { - const sr = target.scenarioRun; - const outcome = target.outcome; - - const summary: Record = { - scenario_run_id: sr.id, - scenario_id: sr.scenario_id, - scenario_name: target.scenarioName, - state: outcome?.state || sr.state, - score: outcome?.score ?? sr.scoring_contract_result?.score ?? null, - duration_ms: outcome?.duration_ms ?? sr.duration_ms ?? null, - }; - - // Include failure reason if present - if (outcome?.failure_reason) { - summary.failure_reason = outcome.failure_reason; - } - - // Include per-scorer details from the scenario run - const scoringResults = sr.scoring_contract_result?.scoring_function_results; - if (scoringResults && scoringResults.length > 0) { - summary.scoring_functions = scoringResults.map((fn) => ({ - name: fn.scoring_function_name, - score: fn.score, - state: fn.state, - output: fn.output, - })); - } - - return summary; -} - -/** Download logs ZIP, extract it, and write results.json for a single scenario run */ -async function downloadScenarioLogs( - target: ScenarioLogTarget, -): Promise { - const client = getClient(); - - try { - fs.mkdirSync(target.destDir, { recursive: true }); - - // Write results summary - const results = buildResultsSummary(target); - fs.writeFileSync( - path.join(target.destDir, "results.json"), - JSON.stringify(results, null, 2) + "\n", - ); - - // Download and extract log ZIP - const response = await client.scenarios.runs.downloadLogs( - target.scenarioRunId, - ); - const arrayBuffer = await response.arrayBuffer(); - const buffer = Buffer.from(arrayBuffer); - - const zip = new AdmZip(buffer); - const prefix = `${target.scenarioRunId}_`; - for (const entry of zip.getEntries()) { - const name = entry.entryName.startsWith(prefix) - ? entry.entryName.slice(prefix.length) - : entry.entryName; - - // Prevent Zip Slip / directory traversal by ensuring the target path - // stays within target.destDir. - const destPath = path.resolve(target.destDir, name); - const destRoot = path.resolve(target.destDir) + path.sep; - if (!destPath.startsWith(destRoot)) { - console.warn( - chalk.yellow( - ` Skipping suspicious log file path in archive: ${entry.entryName}`, - ), - ); - continue; - } - - fs.writeFileSync(destPath, entry.getData()); - } - - return true; - } catch (error) { - const msg = error instanceof Error ? error.message : String(error); - console.error( - chalk.yellow( - ` Warning: failed to download logs for ${target.scenarioName} (${target.scenarioRunId}): ${msg}`, - ), - ); - return false; - } -} - -/** Run tasks in parallel with a maximum concurrency limit */ -async function runWithConcurrency( - tasks: (() => Promise)[], - maxConcurrency: number, -): Promise { - const results: T[] = new Array(tasks.length); - let nextIndex = 0; - - async function worker() { - while (nextIndex < tasks.length) { - const i = nextIndex++; - results[i] = await tasks[i](); - } - } - - const workers = Array.from( - { length: Math.min(maxConcurrency, tasks.length) }, - () => worker(), - ); - await Promise.allSettled(workers); - return results; -} - -export async function downloadBenchmarkJobLogs( - jobId: string, - options: LogsOptions = {}, -) { - try { - const job = await getBenchmarkJob(jobId); - const outputDir = options.outputDir || `./logs/${jobId}`; - - // Collect all benchmark runs from the job - let runs = collectBenchmarkRuns(job); - if (runs.length === 0) { - console.log(chalk.yellow("No benchmark runs found for this job.")); - return; - } - - // Apply --run filter - if (options.run) { - runs = runs.filter((r) => r.benchmarkRunId === options.run); - if (runs.length === 0) { - outputError(`Benchmark run ${options.run} not found in job ${jobId}`); - } - } - - // Build scenario outcome lookup from completed outcomes - const outcomeMap = buildScenarioOutcomeMap(job); - - // Gather all scenario log targets across benchmark runs, fetching all - // agents' scenario run lists in parallel for speed. - console.log( - chalk.dim( - `Fetching scenario runs for ${runs.length} agent(s) in parallel...`, - ), - ); - - const agentScenarioRuns = await Promise.allSettled( - runs.map((run) => listBenchmarkRunScenarioRuns(run.benchmarkRunId)), - ); - - // Collect (run, scenarioRun) pairs, applying --scenario filter - const pairs: { run: BenchmarkRunInfo; sr: ScenarioRun }[] = []; - for (let i = 0; i < runs.length; i++) { - const result = agentScenarioRuns[i]; - if (result.status === "rejected") { - const agentLabel = runs[i].modelName - ? `${runs[i].agentName}:${runs[i].modelName}` - : runs[i].agentName; - console.error( - chalk.yellow( - ` Warning: failed to fetch scenario runs for agent "${agentLabel}": ${result.reason}`, - ), - ); - continue; - } - let scenarioRuns = result.value; - if (options.scenario) { - scenarioRuns = scenarioRuns.filter((sr) => sr.id === options.scenario); - } - for (const sr of scenarioRuns) { - pairs.push({ run: runs[i], sr }); - } - } - - // Resolve all scenario names in parallel (may hit the API for in-progress runs) - const resolvedNames = await Promise.all( - pairs.map(({ sr }) => - resolveScenarioName(sr.id, sr.scenario_id, outcomeMap), - ), - ); - - const targets: ScenarioLogTarget[] = pairs.map(({ run, sr }, i) => ({ - agentName: run.agentName, - modelName: run.modelName, - scenarioName: resolvedNames[i], - scenarioRunId: sr.id, - scenarioRun: sr, - outcome: outcomeMap.get(sr.id), - destDir: "", // assigned below - })); - - if (targets.length === 0) { - console.log(chalk.yellow("No scenario runs found to download logs for.")); - return; - } - - // Assign unique directory names, handling duplicates - assignDestDirs(targets, outputDir); - - console.log( - `\nDownloading logs for ${targets.length} scenario run(s) to ${chalk.bold(outputDir)}\n`, - ); - - // Download logs in parallel with a max concurrency of 50. - // Bumping to 100 yields no improvement in simple manual testing. - const MAX_CONCURRENCY = 50; - let succeeded = 0; - - const tasks = targets.map((target) => async () => { - const ok = await downloadScenarioLogs(target); - if (ok) { - console.log( - chalk.green(` ✓ ${target.agentName} / ${target.scenarioName}`), - ); - return true; - } - return false; - }); - - const results = await runWithConcurrency(tasks, MAX_CONCURRENCY); - succeeded = results.filter(Boolean).length; - - console.log( - `\n${chalk.green(`Downloaded logs for ${succeeded}/${targets.length} scenario run(s)`)} to ${chalk.bold(outputDir)}`, - ); - } catch (error) { - outputError("Failed to download benchmark job logs", error); - } -} diff --git a/src/commands/benchmark-job/progress.ts b/src/commands/benchmark-job/progress.ts deleted file mode 100644 index a086e1c2..00000000 --- a/src/commands/benchmark-job/progress.ts +++ /dev/null @@ -1,237 +0,0 @@ -/** - * Shared benchmark job progress helpers - * - * Provides terminal-state classification and run reconciliation logic - * used by watch, summary, and detail views. - */ - -import type { - BenchmarkJob, - ScenarioRun, -} from "../../services/benchmarkJobService.js"; - -// --------------------------------------------------------------------------- -// State Classification -// --------------------------------------------------------------------------- - -/** Job states that indicate completion */ -export const JOB_COMPLETED_STATES = [ - "completed", - "failed", - "canceled", - "cancelled", - "timeout", -]; - -/** Scenario run states that count as finished (no longer running) */ -export const SCENARIO_COMPLETED_STATES = [ - "completed", - "failed", - "canceled", - "cancelled", - "timeout", - "error", - "scored", // treat scored as complete, consistent with run detail screen -]; - -/** Check if a job is in a terminal state */ -export function isJobCompleted(state: string | undefined | null): boolean { - if (!state) return false; - return JOB_COMPLETED_STATES.includes(state.toLowerCase()); -} - -/** Check if a scenario is in a terminal state */ -export function isScenarioCompleted(state: string | undefined | null): boolean { - if (!state) return false; - return SCENARIO_COMPLETED_STATES.includes(state.toLowerCase()); -} - -// --------------------------------------------------------------------------- -// Progress Stats -// --------------------------------------------------------------------------- - -/** In-progress scenario info for display */ -export interface InProgressScenario { - name: string; - state: string; - startTimeMs?: number; -} - -/** Progress stats for a benchmark run */ -export interface RunProgress { - benchmarkRunId: string; - agentName: string; - modelName?: string; - state: string; - expectedTotal: number; - started: number; - running: number; - scoring: number; - finished: number; - avgScore: number | null; - inProgressScenarios: InProgressScenario[]; -} - -// --------------------------------------------------------------------------- -// Agent Info Extraction -// --------------------------------------------------------------------------- - -type InProgressRun = NonNullable[number]; - -/** Get agent info from in_progress_run */ -export function getAgentInfo(run: InProgressRun): { - name: string; - model?: string; -} { - const agentConfig = run.agent_config; - if (agentConfig && agentConfig.type === "job_agent") { - return { - name: agentConfig.name, - model: agentConfig.model_name ?? undefined, - }; - } - return { name: "unknown" }; -} - -// --------------------------------------------------------------------------- -// Progress Calculation -// --------------------------------------------------------------------------- - -/** Calculate progress from scenario runs */ -export function calculateRunProgress( - benchmarkRunId: string, - agentName: string, - modelName: string | undefined, - state: string, - expectedTotal: number, - scenarioRuns: ScenarioRun[], -): RunProgress { - let running = 0; - let scoring = 0; - let finished = 0; - let scoreSum = 0; - let scoreCount = 0; - const inProgressScenarios: InProgressScenario[] = []; - - for (const scenario of scenarioRuns) { - const scenarioState = scenario.state?.toLowerCase() || ""; - - if (isScenarioCompleted(scenarioState)) { - finished++; - const score = scenario.scoring_contract_result?.score; - if (score !== undefined && score !== null) { - scoreSum += score; - scoreCount++; - } - } else if (scenarioState === "scoring") { - scoring++; - inProgressScenarios.push({ - name: scenario.name || scenario.scenario_id || "unknown", - state: scenarioState, - startTimeMs: scenario.start_time_ms, - }); - } else if (scenarioState === "running") { - running++; - inProgressScenarios.push({ - name: scenario.name || scenario.scenario_id || "unknown", - state: scenarioState, - startTimeMs: scenario.start_time_ms, - }); - } else if (scenarioState && scenarioState !== "pending") { - inProgressScenarios.push({ - name: scenario.name || scenario.scenario_id || "unknown", - state: scenarioState, - startTimeMs: scenario.start_time_ms, - }); - } - } - - return { - benchmarkRunId, - agentName, - modelName, - state, - expectedTotal, - started: scenarioRuns.length, - running, - scoring, - finished, - avgScore: scoreCount > 0 ? scoreSum / scoreCount : null, - inProgressScenarios, - }; -} - -// --------------------------------------------------------------------------- -// Run Reconciliation -// --------------------------------------------------------------------------- - -/** - * Build progress for all runs in a job, preferring completed outcomes over - * stale in-progress data for the same benchmark_run_id. - * - * @param job The benchmark job - * @param fetchScenarioRuns Callback to fetch scenario runs for a benchmark run - */ -export async function fetchAllRunsProgress( - job: BenchmarkJob, - fetchScenarioRuns: (benchmarkRunId: string) => Promise, -): Promise { - const results: RunProgress[] = []; - - // Get expected scenario count from job spec - const expectedTotal = job.job_spec?.scenario_ids?.length || 0; - - // Track which runs we've already added from completed outcomes - const completedRunIds = new Set(); - - // First, add completed runs from benchmark_outcomes (authoritative) - const completedOutcomes = job.benchmark_outcomes || []; - for (const outcome of completedOutcomes) { - completedRunIds.add(outcome.benchmark_run_id); - - const scenarioOutcomes = outcome.scenario_outcomes || []; - let scoreSum = 0; - let scoreCount = 0; - for (const s of scenarioOutcomes) { - if (s.score !== undefined && s.score !== null) { - scoreSum += s.score; - scoreCount++; - } - } - results.push({ - benchmarkRunId: outcome.benchmark_run_id, - agentName: outcome.agent_name, - modelName: outcome.model_name ?? undefined, - state: "completed", - expectedTotal: expectedTotal || scenarioOutcomes.length, - started: scenarioOutcomes.length, - running: 0, - scoring: 0, - finished: scenarioOutcomes.length, - avgScore: scoreCount > 0 ? scoreSum / scoreCount : null, - inProgressScenarios: [], - }); - } - - // Then, fetch progress for in-progress runs that are NOT already in outcomes - const inProgressRuns = job.in_progress_runs || []; - const progressPromises = inProgressRuns - .filter((run) => !completedRunIds.has(run.benchmark_run_id)) - .map(async (run) => { - const agentInfo = getAgentInfo(run); - const scenarioRuns = await fetchScenarioRuns(run.benchmark_run_id); - return calculateRunProgress( - run.benchmark_run_id, - agentInfo.name, - agentInfo.model, - run.state, - expectedTotal, - scenarioRuns, - ); - }); - - const inProgressResults = await Promise.all(progressPromises); - results.push(...inProgressResults); - - return results; -} diff --git a/src/commands/benchmark-job/run.ts b/src/commands/benchmark-job/run.ts deleted file mode 100644 index 1d403c72..00000000 --- a/src/commands/benchmark-job/run.ts +++ /dev/null @@ -1,356 +0,0 @@ -/** - * Run benchmark job command - */ - -import chalk from "chalk"; -import { createBenchmarkJob } from "../../services/benchmarkJobService.js"; -import { - listBenchmarks, - listPublicBenchmarks, -} from "../../services/benchmarkService.js"; -import { getClient } from "../../utils/client.js"; -import { output, outputError } from "../../utils/output.js"; -import { parseMetadata } from "../../utils/metadata.js"; - -// Secret name prefix for benchmark job secrets -const SECRET_PREFIX = "BMJ_"; - -// Supported agents and their automatic environment variables (mapped to BMJ_* secrets) -// - automaticEnvVars: env vars that will be auto-populated from secrets or environment -// - requiresAny: if true, at least one must be set; if false, just try to auto-populate -const SUPPORTED_AGENTS = { - "claude-code": { - automaticEnvVars: ["ANTHROPIC_API_KEY", "CLAUDE_CODE_OAUTH_TOKEN"], - requiresAny: true, // At least one of these is required - }, - codex: { - automaticEnvVars: ["OPENAI_API_KEY"], - requiresAny: true, - }, - opencode: { - automaticEnvVars: ["ANTHROPIC_API_KEY", "OPENAI_API_KEY", "GOOGLE_API_KEY"], - requiresAny: false, // Try to auto-populate, but user may configure differently - }, - goose: { - automaticEnvVars: ["ANTHROPIC_API_KEY", "OPENAI_API_KEY", "GOOGLE_API_KEY"], - requiresAny: false, // Try to auto-populate, but user may configure differently - }, - "gemini-cli": { - automaticEnvVars: ["GEMINI_API_KEY", "GOOGLE_API_KEY"], - requiresAny: true, // At least one of these is required - }, -} as const; - -type SupportedAgent = keyof typeof SUPPORTED_AGENTS; - -interface RunOptions { - agent?: string[]; - benchmark?: string; - scenarios?: string[]; - jobName?: string; - envVars?: string[]; - secrets?: string[]; - timeout?: string; - nAttempts?: string; - nConcurrentTrials?: string; - timeoutMultiplier?: string; - metadata?: string[]; - output?: string; -} - -interface ParsedAgent { - name: SupportedAgent; - model: string; -} - -// Parse agent strings in "agent:model" format -function parseAgentStrings(agentStrings: string[] | undefined): ParsedAgent[] { - if (!agentStrings || agentStrings.length === 0) { - throw new Error( - "At least one --agent is required. Format: --agent agent:model (e.g., --agent claude-code:claude-sonnet-4)", - ); - } - - const agents: ParsedAgent[] = []; - - for (const agentStr of agentStrings) { - const colonIndex = agentStr.indexOf(":"); - if (colonIndex === -1) { - throw new Error( - `Invalid agent format: "${agentStr}". Use format: agent:model (e.g., claude-code:claude-sonnet-4)`, - ); - } - - const agentName = agentStr.substring(0, colonIndex); - const model = agentStr.substring(colonIndex + 1); - - if (!model) { - throw new Error( - `No model specified for agent "${agentName}". Use format: --agent ${agentName}:model-name`, - ); - } - - // Validate agent - validateAgent(agentName); - - agents.push({ - name: agentName as SupportedAgent, - model, - }); - } - - return agents; -} - -// Parse environment variables from KEY=value format -function parseEnvVars(envVars: string[]): Record { - const result: Record = {}; - for (const envVar of envVars) { - const eqIndex = envVar.indexOf("="); - if (eqIndex === -1) { - throw new Error( - `Invalid environment variable format: ${envVar}. Expected KEY=value`, - ); - } - const key = envVar.substring(0, eqIndex); - const value = envVar.substring(eqIndex + 1); - result[key] = value; - } - return result; -} - -// Parse secrets from ENV_VAR=SECRET_NAME format -function parseSecrets(secrets: string[]): Record { - const result: Record = {}; - for (const secret of secrets) { - const eqIndex = secret.indexOf("="); - if (eqIndex === -1) { - throw new Error( - `Invalid secret format: ${secret}. Expected ENV_VAR=SECRET_NAME`, - ); - } - const envVarName = secret.substring(0, eqIndex); - const secretName = secret.substring(eqIndex + 1); - result[envVarName] = secretName; - } - return result; -} - -// Validate agent is supported -function validateAgent(agent: string): asserts agent is SupportedAgent { - if (!(agent in SUPPORTED_AGENTS)) { - const supportedList = Object.keys(SUPPORTED_AGENTS).join(", "); - throw new Error( - `Unsupported agent: ${agent}. Supported agents: ${supportedList}`, - ); - } -} - -// Check if a secret exists by name -async function secretExists(secretName: string): Promise { - const client = getClient(); - // TODO: Fetch by name when API exposed. - const result = await client.secrets.list({ limit: 5000 }); - return result.secrets?.some((s) => s.name === secretName) ?? false; -} - -// Create a secret -async function createSecret(name: string, value: string): Promise { - const client = getClient(); - await client.secrets.create({ name, value }); -} - -// Ensure agent secrets exist, creating them from env vars if needed -// Returns the secrets mapping (ENV_VAR -> BMJ_ENV_VAR) -async function ensureAgentSecrets( - agent: SupportedAgent, -): Promise> { - const agentConfig = SUPPORTED_AGENTS[agent]; - const secrets: Record = {}; - const missing: string[] = []; - - for (const varName of agentConfig.automaticEnvVars) { - const secretName = `${SECRET_PREFIX}${varName}`; - const envValue = process.env[varName]; - - // Check if secret exists - const exists = await secretExists(secretName); - - if (exists) { - secrets[varName] = secretName; - } else if (envValue) { - // Create secret from env var - console.log( - chalk.cyan(`Creating secret ${secretName} from ${varName} env var`), - ); - await createSecret(secretName, envValue); - secrets[varName] = secretName; - } else { - missing.push(varName); - } - } - - // Only warn about missing vars when none were resolved at all - if (missing.length > 0 && Object.keys(secrets).length === 0) { - for (const varName of missing) { - const secretName = `${SECRET_PREFIX}${varName}`; - console.log( - chalk.yellow( - `Secret ${secretName} not found and ${varName} not set in environment`, - ), - ); - } - } - - return secrets; -} - -// Resolve benchmark name to ID if needed -async function resolveBenchmarkId(benchmarkIdOrName: string): Promise { - // If it looks like a benchmark ID, return as-is - if (benchmarkIdOrName.startsWith("bmd_")) { - return benchmarkIdOrName; - } - - // Search both user benchmarks and public benchmarks - const [userResult, publicResult] = await Promise.all([ - listBenchmarks({ - limit: 100, - search: benchmarkIdOrName, - }), - listPublicBenchmarks({ - limit: 100, - search: benchmarkIdOrName, - }), - ]); - - // Combine results - const allBenchmarks = [...userResult.benchmarks, ...publicResult.benchmarks]; - - // Look for exact name match - const exactMatch = allBenchmarks.find((b) => b.name === benchmarkIdOrName); - - if (exactMatch) { - return exactMatch.id; - } - - if (allBenchmarks.length === 0) { - throw new Error(`No benchmark found with name: ${benchmarkIdOrName}`); - } - - // If no exact match but we have results, suggest them - const suggestions = allBenchmarks - .slice(0, 5) - .map((b) => ` - ${b.name} (${b.id})`) - .join("\n"); - throw new Error( - `No exact match for benchmark "${benchmarkIdOrName}". Did you mean:\n${suggestions}`, - ); -} - -export async function runBenchmarkJob(options: RunOptions) { - try { - // Parse agent strings (format: agent:model) - const parsedAgents = parseAgentStrings(options.agent); - - // Parse provided env vars and secrets - const providedEnvVars = options.envVars - ? parseEnvVars(options.envVars) - : {}; - const providedSecrets = options.secrets - ? parseSecrets(options.secrets) - : {}; - - // Get unique agent names for secret setup - const uniqueAgentNames = [...new Set(parsedAgents.map((a) => a.name))]; - - // Ensure secrets exist for all unique agents - // Collect all secrets across agents - const allAgentSecrets: Record = {}; - for (const agentName of uniqueAgentNames) { - const agentSecrets = await ensureAgentSecrets(agentName); - - // Validate that at least one secret is available (only if requiresAny is true) - const agentConfig = SUPPORTED_AGENTS[agentName]; - if (agentConfig.requiresAny) { - const hasAny = agentConfig.automaticEnvVars.some( - (varName) => agentSecrets[varName], - ); - if (!hasAny) { - throw new Error( - `Agent ${agentName} requires at least one of: ${agentConfig.automaticEnvVars.join(", ")}. ` + - `Create secrets (${agentConfig.automaticEnvVars.map((v) => `${SECRET_PREFIX}${v}`).join(", ")}) ` + - `or set environment variables.`, - ); - } - } - - // Merge secrets (later agents can use same secrets) - Object.assign(allAgentSecrets, agentSecrets); - } - - // Combine agent secrets with user-provided secrets - const secrets = { - ...allAgentSecrets, - ...providedSecrets, - }; - - // Validate that either benchmark or scenarios is provided, but not both - if (!options.benchmark && !options.scenarios) { - throw new Error("Either --benchmark or --scenarios must be specified"); - } - if (options.benchmark && options.scenarios) { - throw new Error("Cannot specify both --benchmark and --scenarios"); - } - - // Resolve benchmark ID if name was provided - let benchmarkId: string | undefined; - if (options.benchmark) { - benchmarkId = await resolveBenchmarkId(options.benchmark); - } - - // Build orchestrator config with defaults - const orchestratorConfig = { - nConcurrentTrials: options.nConcurrentTrials - ? parseInt(options.nConcurrentTrials, 10) - : 10, - nAttempts: options.nAttempts ? parseInt(options.nAttempts, 10) : 1, - timeoutMultiplier: options.timeoutMultiplier - ? parseFloat(options.timeoutMultiplier) - : 1.0, - quiet: false, - }; - - // Build agent configs for all parsed agents - const agentConfigs = parsedAgents.map((agent) => ({ - name: agent.name, - modelName: agent.model, - timeoutSeconds: options.timeout ? parseInt(options.timeout, 10) : 7200, // Default to 2 hours - environmentVariables: - Object.keys(providedEnvVars).length > 0 ? providedEnvVars : undefined, - secrets, - })); - - // Create the benchmark job - const job = await createBenchmarkJob({ - name: options.jobName, - benchmarkId, - scenarioIds: options.scenarios, - agentConfigs, - orchestratorConfig, - metadata: options.metadata ? parseMetadata(options.metadata) : undefined, - }); - - // Output result - if (!options.output || options.output === "text") { - console.log( - `Benchmark job created: ${job.id} (agent timeout = ${agentConfigs[0].timeoutSeconds}s)`, - ); - console.log(`Follow the run with "rli benchmark-job watch ${job.id}"`); - } else { - output(job, { format: options.output, defaultFormat: "json" }); - } - } catch (error) { - outputError("Failed to run benchmark job", error); - } -} diff --git a/src/commands/benchmark-job/summary.ts b/src/commands/benchmark-job/summary.ts deleted file mode 100644 index 07df4797..00000000 --- a/src/commands/benchmark-job/summary.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Summary benchmark job command - */ - -import { getBenchmarkJob } from "../../services/benchmarkJobService.js"; -import { output, outputError } from "../../utils/output.js"; - -interface SummaryOptions { - output?: string; - extended?: boolean; -} - -export async function summaryBenchmarkJob( - id: string, - options: SummaryOptions = {}, -) { - try { - const job = await getBenchmarkJob(id); - output(job, { format: options.output, defaultFormat: "json" }); - } catch (error) { - outputError("Failed to get benchmark job summary", error); - } -} diff --git a/src/commands/benchmark-job/watch.ts b/src/commands/benchmark-job/watch.ts deleted file mode 100644 index 307f0433..00000000 --- a/src/commands/benchmark-job/watch.ts +++ /dev/null @@ -1,510 +0,0 @@ -/** - * Watch benchmark job command - full-screen live progress view - */ - -import chalk from "chalk"; -import { - getBenchmarkJob, - listBenchmarkRunScenarioRuns, - type BenchmarkJob, -} from "../../services/benchmarkJobService.js"; -import { outputError } from "../../utils/output.js"; -import { - isJobCompleted, - fetchAllRunsProgress, - type RunProgress, - type InProgressScenario, -} from "./progress.js"; - -// Polling config -const POLL_INTERVAL_MS = 5 * 1000; // 5 seconds -const MAX_WAIT_MS = 60 * 60 * 4 * 1000; // 4 hours - -// Sleep utility -function sleep(ms: number): Promise { - return new Promise((resolve) => setTimeout(resolve, ms)); -} - -// Terminal control utilities for full-screen mode -const ANSI = { - hideCursor: "\x1b[?25l", - showCursor: "\x1b[?25h", - clearScreen: "\x1b[2J", - moveTo: (row: number, col: number) => `\x1b[${row};${col}H`, - clearLine: "\x1b[2K", - enterAltScreen: "\x1b[?1049h", - exitAltScreen: "\x1b[?1049l", -}; - -// Enter full-screen mode -function enterFullScreen(): void { - process.stdout.write(ANSI.enterAltScreen); - process.stdout.write(ANSI.hideCursor); - process.stdout.write(ANSI.clearScreen); -} - -// Exit full-screen mode -function exitFullScreen(): void { - process.stdout.write(ANSI.showCursor); - process.stdout.write(ANSI.exitAltScreen); -} - -// Track how many lines the last render wrote so we can clear stale lines -let lastRenderedLineCount = 0; - -// Render content at top of screen by overwriting lines in place. -// This avoids the flicker caused by clearing the entire screen each frame. -function renderScreen(lines: string[]): void { - const maxLines = (process.stdout.rows || 24) - 1; - const truncatedLines = lines.slice(0, maxLines); - - let buf = ANSI.moveTo(1, 1); - for (const line of truncatedLines) { - buf += ANSI.clearLine + line + "\n"; - } - // Clear any leftover lines from the previous (longer) render - for (let i = truncatedLines.length; i < lastRenderedLineCount; i++) { - buf += ANSI.clearLine + "\n"; - } - lastRenderedLineCount = truncatedLines.length; - - process.stdout.write(buf); -} - -// Format percentage -function formatPercent(count: number, total: number): string { - if (total === 0) return "0.0%"; - return ((count / total) * 100).toFixed(1) + "%"; -} - -// Format duration in human-readable format -function formatDuration(ms: number): string { - const seconds = Math.floor(ms / 1000); - const minutes = Math.floor(seconds / 60); - const hours = Math.floor(minutes / 60); - const remainingMinutes = minutes % 60; - const remainingSeconds = seconds % 60; - if (hours > 0) { - return `${hours}h ${remainingMinutes}m ${remainingSeconds}s`; - } - if (minutes > 0) { - return `${minutes}m ${remainingSeconds}s`; - } - return `${seconds}s`; -} - -// Re-export types from shared module for internal use -export type { RunProgress, InProgressScenario }; - -// Spinner frames for running indicators -const SPINNER_FRAMES = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"]; - -// Get current spinner frame -function getSpinnerFrame(tick: number): string { - return SPINNER_FRAMES[tick % SPINNER_FRAMES.length]; -} - -// Calculate max scenarios per run based on terminal height -function getMaxScenariosPerRun(numRuns: number): number { - const termHeight = process.stdout.rows || 24; - // Reserve lines for: header (3), footer (2), per-run header (1 per run), buffer (2) - const reservedLines = 3 + 2 + numRuns + 2; - const availableLines = Math.max(termHeight - reservedLines, 3); - // Distribute available lines across runs, minimum 3 per run - return Math.max(Math.floor(availableLines / Math.max(numRuns, 1)), 3); -} - -// Format a single run's progress line -function formatRunProgressLine(progress: RunProgress): string { - let label = progress.agentName; - if (progress.modelName) { - label += `:${progress.modelName}`; - } - if (label.length > 30) { - label = label.slice(0, 27) + "..."; - } - - const total = - progress.expectedTotal > 0 ? progress.expectedTotal : progress.started; - const isComplete = progress.finished === total && total > 0; - - if (isComplete) { - const scoreStr = - progress.avgScore !== null - ? `score: ${(progress.avgScore * 100).toFixed(0)}%` - : "done"; - return `${chalk.green("✓")} ${label.padEnd(30)} ${chalk.green(scoreStr)}`; - } - - const parts: string[] = []; - parts.push(`${progress.finished}/${total} complete`); - - if (progress.running > 0) { - parts.push(`${progress.running} running`); - } - - if (progress.scoring > 0) { - parts.push(`${progress.scoring} scoring`); - } - - // Pending = scenarios not yet started (expected minus actually started) - const notStarted = total - progress.started; - if (notStarted > 0) { - parts.push(`${notStarted} pending`); - } - - if (progress.avgScore !== null) { - parts.push(`score: ${(progress.avgScore * 100).toFixed(0)}%`); - } - - return ` ${label.padEnd(30)} ${parts.join(", ")}`; -} - -// Format a scenario state with color and spinner -function formatScenarioState(state: string, tick: number): string { - const spinner = getSpinnerFrame(tick); - switch (state.toLowerCase()) { - case "running": - return chalk.blue(spinner + " " + state); - case "scoring": - case "scored": - return chalk.magenta(spinner + " " + state); - case "starting": - case "queued": - return chalk.dim(spinner + " " + state); - default: - return chalk.dim(state); - } -} - -// Format scenario lines for watch mode -function formatScenarioLines( - scenarios: InProgressScenario[], - maxScenarios: number, - tick: number, -): string[] { - const limited = scenarios.slice(0, maxScenarios); - const remaining = scenarios.length - limited.length; - const now = Date.now(); - - const lines: string[] = []; - for (const scenario of limited) { - let name = scenario.name; - if (name.length > 35) { - name = name.slice(0, 32) + "..."; - } - const stateStr = formatScenarioState(scenario.state, tick); - - // Calculate elapsed time if start time is available - let elapsedStr = ""; - if (scenario.startTimeMs) { - const elapsedMs = now - scenario.startTimeMs; - elapsedStr = chalk.dim(` (${formatDuration(elapsedMs)})`); - } - - lines.push( - chalk.dim(" └ ") + - chalk.dim(name.padEnd(36)) + - stateStr + - elapsedStr, - ); - } - - if (remaining > 0) { - lines.push(chalk.dim(` ... and ${remaining} more`)); - } - - return lines; -} - -// Format progress for watch mode - shows per-run progress with scenarios -function formatWatchProgress( - progressList: RunProgress[], - tick: number, -): string[] { - if (progressList.length === 0) { - return []; - } - - const inProgressRuns = progressList.filter((p) => { - const total = p.expectedTotal > 0 ? p.expectedTotal : p.started; - return !(p.finished === total && total > 0); - }); - const maxScenariosPerRun = getMaxScenariosPerRun(inProgressRuns.length || 1); - - const lines: string[] = []; - for (const progress of progressList) { - lines.push(formatRunProgressLine(progress)); - - const total = - progress.expectedTotal > 0 ? progress.expectedTotal : progress.started; - const isComplete = progress.finished === total && total > 0; - - if (!isComplete && progress.inProgressScenarios.length > 0) { - lines.push( - ...formatScenarioLines( - progress.inProgressScenarios, - maxScenariosPerRun, - tick, - ), - ); - } - } - - return lines; -} - -// Print results table for completed jobs -function printResultsTable(job: BenchmarkJob): void { - const outcomes = job.benchmark_outcomes || []; - - if (outcomes.length === 0) { - if (job.failure_reason) { - console.log(chalk.red(`Job failed: ${job.failure_reason}`)); - } else { - console.log(chalk.yellow("No benchmark outcomes found")); - } - return; - } - - console.log(); - console.log(chalk.bold("Benchmark Job Results")); - console.log(chalk.dim(`Job ID: ${job.id}`)); - if (job.name) { - console.log(chalk.dim(`Name: ${job.name}`)); - } - console.log(chalk.dim(`State: ${job.state}`)); - console.log(); - - const agentCol = "Agent / Model".padEnd(40); - const passedCol = "Passed".padStart(10); - const failedCol = "Failed (0.0)".padStart(14); - const errorCol = "Failed (error)".padStart(16); - const totalCol = "Total".padStart(8); - - console.log( - chalk.bold(agentCol + passedCol + failedCol + errorCol + totalCol), - ); - console.log(chalk.dim("-".repeat(88))); - - for (const outcome of outcomes) { - const agentName = outcome.agent_name || "unknown"; - const modelName = outcome.model_name || "default"; - const scenarioOutcomes = outcome.scenario_outcomes || []; - - let passed = 0; - let failedZero = 0; - let failedError = 0; - - for (const s of scenarioOutcomes) { - const state = s.state?.toUpperCase(); - const score = s.score; - if (state === "COMPLETED") { - if (score === 1.0) { - passed++; - } else { - failedZero++; - } - } else { - failedError++; - } - } - - const total = scenarioOutcomes.length; - - let agentModelStr = agentName; - if (modelName && modelName !== "default") { - agentModelStr += ` (${modelName})`; - } - if (agentModelStr.length > 38) { - agentModelStr = agentModelStr.slice(0, 35) + "..."; - } - const agentModelCol = agentModelStr.padEnd(40); - - const passedStr = formatPercent(passed, total); - const failedZeroStr = formatPercent(failedZero, total); - const failedErrorStr = formatPercent(failedError, total); - - const passedColored = - passed > 0 - ? chalk.green(passedStr.padStart(10)) - : chalk.dim(passedStr.padStart(10)); - - const failedZeroColored = - failedZero > 0 - ? chalk.yellow(failedZeroStr.padStart(14)) - : chalk.dim(failedZeroStr.padStart(14)); - - const failedErrorColored = - failedError > 0 - ? chalk.red(failedErrorStr.padStart(16)) - : chalk.dim(failedErrorStr.padStart(16)); - - const totalColStr = String(total).padStart(8); - - console.log( - agentModelCol + - passedColored + - failedZeroColored + - failedErrorColored + - chalk.dim(totalColStr), - ); - } - - console.log(); -} - -export async function watchBenchmarkJob(id: string) { - try { - let job = await getBenchmarkJob(id); - - // If job is already complete, just show results - if (isJobCompleted(job.state)) { - printResultsTable(job); - return; - } - - const jobName = job.name || job.id; - const jobStartMs = job.create_time_ms; - - // Enter full-screen mode and set up cleanup - enterFullScreen(); - - let cleaned = false; - const cleanup = () => { - if (cleaned) return; - cleaned = true; - exitFullScreen(); - }; - - // Ensure cleanup on any exit - process.once("exit", cleanup); - process.once("SIGINT", () => { - cleanup(); - process.exit(0); - }); - process.once("SIGTERM", () => { - cleanup(); - process.exit(0); - }); - // Handle uncaught errors - process.once("uncaughtException", (err) => { - cleanup(); - console.error(err); - process.exit(1); - }); - - // Spinner update interval (100ms for smooth animation) - const SPINNER_INTERVAL_MS = 100; - const UPDATES_PER_POLL = Math.floor(POLL_INTERVAL_MS / SPINNER_INTERVAL_MS); - - // Handle terminal resize - force a full redraw to clear stale content - let needsFullRedraw = false; - const handleResize = () => { - needsFullRedraw = true; - }; - process.stdout.on("resize", handleResize); - - try { - let tick = 0; - let progressList = await fetchAllRunsProgress( - job, - listBenchmarkRunScenarioRuns, - ); - - while (!isJobCompleted(job.state)) { - // Check timeout - if (Date.now() - jobStartMs > MAX_WAIT_MS) { - cleanup(); - outputError( - `Timeout waiting for job completion after ${MAX_WAIT_MS / 1000 / 60} minutes`, - ); - } - - // Render current state with updated spinner - const progressLines = formatWatchProgress(progressList, tick); - - // Build screen content - const elapsedStr = formatDuration(Date.now() - jobStartMs); - - const screenLines: string[] = []; - screenLines.push( - chalk.bold.cyan(`Benchmark Job: ${jobName}`) + - chalk.dim(` (${elapsedStr})`), - ); - screenLines.push(chalk.dim(`ID: ${job.id}`)); - screenLines.push(chalk.dim(`State: ${job.state}`)); - screenLines.push(""); - - if (progressLines.length > 0) { - screenLines.push(chalk.bold("Progress:")); - screenLines.push(...progressLines); - } else { - screenLines.push(chalk.dim("Waiting for scenarios to start...")); - } - - screenLines.push(""); - screenLines.push(chalk.dim("Press Ctrl+C to exit")); - - // On resize, bump the line count so renderScreen clears the full area - if (needsFullRedraw) { - lastRenderedLineCount = process.stdout.rows || 24; - needsFullRedraw = false; - } - - // Render the screen - renderScreen(screenLines); - - tick++; - - // Every UPDATES_PER_POLL ticks, poll the API for fresh data - if (tick % UPDATES_PER_POLL === 0) { - job = await getBenchmarkJob(id); - if (!isJobCompleted(job.state)) { - progressList = await fetchAllRunsProgress( - job, - listBenchmarkRunScenarioRuns, - ); - } - } - - await sleep(SPINNER_INTERVAL_MS); - } - - // Final reconciliation: refresh job and progress one more time to ensure - // we have the most up-to-date data before printing results. This prevents - // stale in-progress state from persisting after the job completes. - job = await getBenchmarkJob(id); - progressList = await fetchAllRunsProgress( - job, - listBenchmarkRunScenarioRuns, - ); - } finally { - process.stdout.off("resize", handleResize); - cleanup(); - } - - // Calculate total elapsed time from job creation - const totalElapsedStr = formatDuration(Date.now() - jobStartMs); - - // Show completion message - if (job.state === "failed") { - console.log(chalk.red.bold("Benchmark job failed.")); - } else { - console.log(chalk.green.bold("Benchmark job completed!")); - } - console.log(chalk.dim(`Total time: ${totalElapsedStr}`)); - - // Show final results (summary only) - printResultsTable(job); - - // Show hint for full results - console.log( - chalk.dim( - `To see full results, run: rli benchmark-job summary -e ${job.id}`, - ), - ); - } catch (error) { - outputError("Failed to watch benchmark job", error); - } -} diff --git a/src/commands/scenario/info.ts b/src/commands/scenario/info.ts deleted file mode 100644 index 66f0a2e4..00000000 --- a/src/commands/scenario/info.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Display scenario definition details. - */ - -import { getClient } from "../../utils/client.js"; -import { output, outputError } from "../../utils/output.js"; - -interface InfoOptions { - output?: string; -} - -export async function scenarioInfo(id: string, options: InfoOptions = {}) { - try { - const client = getClient(); - const scenario = await client.scenarios.retrieve(id); - output(scenario, { format: options.output, defaultFormat: "json" }); - } catch (error) { - outputError("Failed to get scenario info", error); - } -} diff --git a/src/commands/scenario/list.ts b/src/commands/scenario/list.ts deleted file mode 100644 index 1c08d2a8..00000000 --- a/src/commands/scenario/list.ts +++ /dev/null @@ -1,57 +0,0 @@ -/** - * List scenario runs command - */ - -import { listScenarioRuns } from "../../services/benchmarkService.js"; -import type { ScenarioRun } from "../../store/benchmarkStore.js"; -import { output, outputError, parseLimit } from "../../utils/output.js"; - -interface ListOptions { - limit?: string; - benchmarkRunId?: string; - output?: string; -} - -const PAGE_SIZE = 100; - -async function fetchRuns( - benchmarkRunId?: string, - maxResults?: number, -): Promise { - const all: ScenarioRun[] = []; - let cursor: string | undefined; - while (true) { - const pageLimit = - maxResults && maxResults > 0 - ? Math.min(PAGE_SIZE, maxResults - all.length) - : PAGE_SIZE; - const result = await listScenarioRuns({ - limit: pageLimit, - startingAfter: cursor, - benchmarkRunId, - }); - all.push(...result.scenarioRuns); - if (!result.hasMore || result.scenarioRuns.length === 0) break; - if (maxResults && maxResults > 0 && all.length >= maxResults) break; - cursor = result.scenarioRuns[result.scenarioRuns.length - 1].id; - } - return all; -} - -export async function listScenarioRunsCommand( - options: ListOptions, -): Promise { - try { - const maxResults = parseLimit(options.limit); - const runs = await fetchRuns( - options.benchmarkRunId, - maxResults === Infinity ? undefined : maxResults, - ); - - runs.sort((a, b) => (a.start_time_ms || 0) - (b.start_time_ms || 0)); - - output(runs, { format: options.output, defaultFormat: "json" }); - } catch (error) { - outputError("Failed to list scenario runs", error); - } -} diff --git a/src/components/BenchmarkMenu.tsx b/src/components/BenchmarkMenu.tsx deleted file mode 100644 index 279198d1..00000000 --- a/src/components/BenchmarkMenu.tsx +++ /dev/null @@ -1,238 +0,0 @@ -/** - * BenchmarkMenu - Sub-menu for benchmark-related resources - */ -import React from "react"; -import { Box, Text, useInput, useApp, useStdout } from "ink"; -import figures from "figures"; -import { Breadcrumb } from "./Breadcrumb.js"; -import { NavigationTips } from "./NavigationTips.js"; -import { colors } from "../utils/theme.js"; -import { useExitOnCtrlC } from "../hooks/useExitOnCtrlC.js"; -import { useMenuStore } from "../store/menuStore.js"; - -/* -Some useful icon chars - - Circles: - ◉ FISHEYE (U+25C9) - currently used for Benchmark Defs - ◎ BULLSEYE (U+25CE) - ◐ CIRCLE LEFT HALF BLACK (U+25D0) - ◑ CIRCLE RIGHT HALF BLACK (U+25D1) - ⊕ CIRCLED PLUS (U+2295) - ⊗ CIRCLED TIMES (U+2297) - ⊙ CIRCLED DOT (U+2299) - - Squares: - ▣ SQUARE W/ BLACK SMALL SQ - currently used for Orchestrator Jobs - ▩ SQUARE W/ DIAGONAL CROSS - currently used for Legacy Runs - ◧ SQUARE LEFT HALF BLACK (U+25E7) - ◨ SQUARE RIGHT HALF BLACK (U+25E8) - ◫ SQUARE W/ VERTICAL LINE (U+25EB) - ▦ SQUARE W/ CROSSHATCH (U+25A6) - ▧ SQUARE W/ DIAGONAL FILL (U+25A7) - - Diamonds / Triangles / Stars: - ◈ DIAMOND W/ BLACK DIAMOND - currently used for Scenario Runs - ◆ BLACK DIAMOND (U+25C6) - ◇ WHITE DIAMOND (U+25C7) - ▲ BLACK UP TRIANGLE (U+25B2) - △ WHITE UP TRIANGLE (U+25B3) - ★ BLACK STAR (U+2605) - ⬡ WHITE HEXAGON (U+2B21) - ⬢ BLACK HEXAGON (U+2B22) - ▶ BLACK RIGHT-POINTING TRIANGLE (U+25B6) This one renders weirdly, with an extra space - ▷ WHITE RIGHT-POINTING TRIANGLE (U+25B7) - ► BLACK RIGHT-POINTING POINTER (U+25BA) - ▻ WHITE RIGHT-POINTING POINTER (U+25BB) - - ✦ BLACK FOUR POINTED STAR (U+2726) - ✧ WHITE FOUR POINTED STAR (U+2727) - ✚ HEAVY GREEK CROSS (U+271A) - ✜ HEAVY OPEN CENTRE CROSS (U+271C) - ✛ OPEN CENTRE CROSS (U+271B) - ❖ BLACK DIAMOND MINUS WHITE X (U+2756) - ✥ FOUR CLUB-SPOKED ASTERISK (U+2725) - ❋ HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK (U+274B) - ✳ EIGHT SPOKED ASTERISK (U+2733) - ✴ EIGHT POINTED BLACK STAR (U+2734) -*/ - -interface BenchmarkMenuItem { - key: string; - label: string; - description: string; - icon: string; - color: string; -} - -const benchmarkMenuItems: BenchmarkMenuItem[] = [ - { - key: "benchmarks", - label: "Available Benchmarks", - description: "View benchmark definitions", - icon: "◉", - color: colors.primary, - }, - { - key: "benchmark-jobs", - label: "Benchmark Orchestrator Jobs", - description: "Run and manage benchmark jobs", - icon: "▲", - color: colors.warning, - }, - { - key: "benchmark-runs", - label: "Manual Benchmark Runs", - description: "View and manage benchmark executions", - icon: "◇", - color: colors.success, - }, - { - key: "scenario-runs", - label: "Scenario Runs", - description: "View individual scenario results", - icon: "◈", - color: colors.info, - }, -]; - -interface BenchmarkMenuProps { - onSelect: (key: string) => void; - onBack: () => void; -} - -export const BenchmarkMenu = ({ onSelect, onBack }: BenchmarkMenuProps) => { - const { exit } = useApp(); - const { stdout } = useStdout(); - const { benchmarkSelectedKey, setBenchmarkSelectedKey } = useMenuStore(); - - // Calculate initial index from persisted key - const initialIndex = React.useMemo(() => { - const index = benchmarkMenuItems.findIndex( - (item) => item.key === benchmarkSelectedKey, - ); - return index >= 0 ? index : 0; - }, [benchmarkSelectedKey]); - - const [selectedIndex, setSelectedIndex] = React.useState(initialIndex); - - // Persist selection when it changes - React.useEffect(() => { - const currentKey = benchmarkMenuItems[selectedIndex]?.key; - if (currentKey && currentKey !== benchmarkSelectedKey) { - setBenchmarkSelectedKey(currentKey); - } - }, [selectedIndex, benchmarkSelectedKey, setBenchmarkSelectedKey]); - - // Get terminal dimensions for responsive layout - const getTerminalDimensions = React.useCallback(() => { - return { - height: stdout?.rows && stdout.rows > 0 ? stdout.rows : 20, - width: stdout?.columns && stdout.columns > 0 ? stdout.columns : 80, - }; - }, [stdout]); - - const [terminalDimensions, setTerminalDimensions] = React.useState( - getTerminalDimensions, - ); - - React.useEffect(() => { - setTerminalDimensions(getTerminalDimensions()); - - if (!stdout) return; - - const handleResize = () => { - setTerminalDimensions(getTerminalDimensions()); - }; - - stdout.on("resize", handleResize); - - return () => { - stdout.off("resize", handleResize); - }; - }, [stdout, getTerminalDimensions]); - - const terminalWidth = terminalDimensions.width; - const isNarrow = terminalWidth < 70; - - // Handle Ctrl+C to exit - useExitOnCtrlC(); - - useInput((input, key) => { - if (key.upArrow && selectedIndex > 0) { - setSelectedIndex(selectedIndex - 1); - } else if (key.downArrow && selectedIndex < benchmarkMenuItems.length - 1) { - setSelectedIndex(selectedIndex + 1); - } else if (key.return) { - onSelect(benchmarkMenuItems[selectedIndex].key); - } else if (key.escape) { - onBack(); - } else if (input >= "1" && input <= String(benchmarkMenuItems.length)) { - onSelect(benchmarkMenuItems[parseInt(input) - 1].key); - } else if (input === "q") { - exit(); - } - }); - - return ( - - - - - - Benchmarks - - - {isNarrow ? "" : " • Performance testing and evaluation"} - - - - - {benchmarkMenuItems.map((item, index) => { - const isSelected = index === selectedIndex; - return ( - - - {isSelected ? figures.pointer : " "} - - - - {item.icon} - - - {" "} - {item.label} - - {!isNarrow && ( - - {" "} - - {item.description} - - )} - - {" "} - [{index + 1}] - - - ); - })} - - - - - ); -}; diff --git a/src/components/MainMenu.tsx b/src/components/MainMenu.tsx index 373715df..c5c763b9 100644 --- a/src/components/MainMenu.tsx +++ b/src/components/MainMenu.tsx @@ -54,13 +54,6 @@ const allMenuItems: MenuItem[] = [ icon: "◆", color: colors.warning, }, - { - key: "benchmarks", - label: "Benchmarks", - description: "Performance testing and evaluation", - icon: "▷", - color: colors.success, - }, { key: "settings", label: "Settings", @@ -206,8 +199,6 @@ export const MainMenu = ({ onSelect }: MainMenuProps) => { selectByKey("blueprints"); } else if (input === "a") { selectByKey("agents-objects"); - } else if (input === "e") { - selectByKey("benchmarks"); } else if (input === "n") { selectByKey("settings"); } else if (input >= "1" && input <= "9") { diff --git a/src/components/ResourcePicker.tsx b/src/components/ResourcePicker.tsx index 48a660d6..7afec991 100644 --- a/src/components/ResourcePicker.tsx +++ b/src/components/ResourcePicker.tsx @@ -31,7 +31,7 @@ import { useListSearch } from "../hooks/useListSearch.js"; * Configuration for the ResourcePicker */ export interface ResourcePickerConfig { - /** Title for the picker (e.g., "Select Benchmarks") */ + /** Title for the picker (e.g., "Select Agents") */ title: string; /** Function to fetch a page of resources */ diff --git a/src/components/SectionDetailView.tsx b/src/components/SectionDetailView.tsx index 37335b4d..3eab8a09 100644 --- a/src/components/SectionDetailView.tsx +++ b/src/components/SectionDetailView.tsx @@ -20,7 +20,7 @@ export interface SectionDetailViewProps { viewportHeight: number; /** Callback when user exits (q/esc) */ onBack: () => void; - /** Resource type for breadcrumbs (e.g. "Benchmark Runs") */ + /** Resource type for breadcrumbs (e.g. "Devboxes") */ resourceType: string; /** Resource display name for breadcrumbs */ displayName: string; diff --git a/src/components/StatusBadge.tsx b/src/components/StatusBadge.tsx index 66ec3956..a7e68bb4 100644 --- a/src/components/StatusBadge.tsx +++ b/src/components/StatusBadge.tsx @@ -135,7 +135,7 @@ export const getStatusDisplay = (status: string): StatusDisplay => { label: "Building: In Progress", }; - // === BENCHMARK/SCENARIO STATES === + // === EXECUTION STATES === case "completed": return { icon: figures.tick, @@ -150,20 +150,6 @@ export const getStatusDisplay = (status: string): StatusDisplay => { text: "CANCELED ", label: "Canceled", }; - case "scoring": - return { - icon: figures.arrowUp, - color: colors.warning, - text: "SCORING ", - label: "Scoring", - }; - case "scored": - return { - icon: figures.tick, - color: colors.info, - text: "SCORED ", - label: "Scored", - }; case "timeout": return { icon: figures.warning, diff --git a/src/components/agentColumns.ts b/src/components/agentColumns.ts index dd87de1e..fc1cf13f 100644 --- a/src/components/agentColumns.ts +++ b/src/components/agentColumns.ts @@ -2,7 +2,7 @@ * Shared agent table column builder for interactive views. * * Wraps the data-layer `getAgentColumns()` with Table Column styling - * so the agent list screen, devbox create picker, and benchmark job create + * so the agent list screen and devbox create picker * picker all render agents consistently. */ import { createTextColumn, type Column } from "./Table.js"; diff --git a/src/mcp/README.md b/src/mcp/README.md index f08af79b..b8ab1e6b 100644 --- a/src/mcp/README.md +++ b/src/mcp/README.md @@ -15,6 +15,8 @@ This will: 2. Bundle `dist/mcp/server.js` with all dependencies into `src/mcp/index.js` 3. Create `runloop-mcp-server.mcpb` in the project root +The bundle and archive are generated artifacts, not checked-in source. Run this build before packaging or installing the extension; do not reuse a stale bundle. + The resulting `.mcpb` file is a zip archive containing: - `index.js` - Bundled server code with all dependencies (~850KB minified) - `manifest.json` - MCP extension metadata diff --git a/src/mcp/index.js b/src/mcp/index.js deleted file mode 100755 index 61de8330..00000000 --- a/src/mcp/index.js +++ /dev/null @@ -1,93 +0,0 @@ -#!/usr/bin/env node -"use strict";var cT=Object.create;var Ym=Object.defineProperty;var uT=Object.getOwnPropertyDescriptor;var mT=Object.getOwnPropertyNames;var fT=Object.getPrototypeOf,hT=Object.prototype.hasOwnProperty;var sa=(t,e)=>()=>(t&&(e=t(t=0)),e);var v=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),di=(t,e)=>{for(var r in e)Ym(t,r,{get:e[r],enumerable:!0})},gT=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of mT(e))!hT.call(t,a)&&a!==r&&Ym(t,a,{get:()=>e[a],enumerable:!(n=uT(e,a))||n.enumerable});return t};var Ze=(t,e,r)=>(r=t!=null?cT(fT(t)):{},gT(e||!t||!t.__esModule?Ym(r,"default",{value:t,enumerable:!0}):r,t));var xp=v(Ee=>{"use strict";Object.defineProperty(Ee,"__esModule",{value:!0});Ee.regexpCode=Ee.getEsmExportName=Ee.getProperty=Ee.safeStringify=Ee.stringify=Ee.strConcat=Ee.addCodeArg=Ee.str=Ee._=Ee.nil=Ee._Code=Ee.Name=Ee.IDENTIFIER=Ee._CodeOrName=void 0;var bp=class{};Ee._CodeOrName=bp;Ee.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var yi=class extends bp{constructor(e){if(super(),!Ee.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};Ee.Name=yi;var $r=class extends bp{constructor(e){super(),this._items=typeof e=="string"?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===""||e==='""'}get str(){var e;return(e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce((r,n)=>`${r}${n}`,"")}get names(){var e;return(e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce((r,n)=>(n instanceof yi&&(r[n.str]=(r[n.str]||0)+1),r),{})}};Ee._Code=$r;Ee.nil=new $r("");function Xg(t,...e){let r=[t[0]],n=0;for(;n{"use strict";Object.defineProperty(Yt,"__esModule",{value:!0});Yt.ValueScope=Yt.ValueScopeName=Yt.Scope=Yt.varKinds=Yt.UsedValueState=void 0;var Xt=xp(),H4=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},bu;(function(t){t[t.Started=0]="Started",t[t.Completed=1]="Completed"})(bu||(Yt.UsedValueState=bu={}));Yt.varKinds={const:new Xt.Name("const"),let:new Xt.Name("let"),var:new Xt.Name("var")};var wu=class{constructor({prefixes:e,parent:r}={}){this._names={},this._prefixes=e,this._parent=r}toName(e){return e instanceof Xt.Name?e:this.name(e)}name(e){return new Xt.Name(this._newName(e))}_newName(e){let r=this._names[e]||this._nameGroup(e);return`${e}${r.index++}`}_nameGroup(e){var r,n;if(!((n=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||n===void 0)&&n.has(e)||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};Yt.Scope=wu;var xu=class extends Xt.Name{constructor(e,r){super(r),this.prefix=e}setValue(e,{property:r,itemIndex:n}){this.value=e,this.scopePath=(0,Xt._)`.${new Xt.Name(r)}[${n}]`}};Yt.ValueScopeName=xu;var cz=(0,Xt._)`\n`,K4=class extends wu{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?cz:Xt.nil}}get(){return this._scope}name(e){return new xu(e,this._newName(e))}value(e,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let a=this.toName(e),{prefix:i}=a,o=(n=r.key)!==null&&n!==void 0?n:r.ref,s=this._values[i];if(s){let l=s.get(o);if(l)return l}else s=this._values[i]=new Map;s.set(o,a);let d=this._scope[i]||(this._scope[i]=[]),p=d.length;return d[p]=r.ref,a.setValue(r,{property:i,itemIndex:p}),a}getValue(e,r){let n=this._values[e];if(n)return n.get(r)}scopeRefs(e,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,Xt._)`${e}${n.scopePath}`})}scopeCode(e=this._values,r,n){return this._reduceValues(e,a=>{if(a.value===void 0)throw new Error(`CodeGen: name "${a}" has no value`);return a.value.code},r,n)}_reduceValues(e,r,n={},a){let i=Xt.nil;for(let o in e){let s=e[o];if(!s)continue;let d=n[o]=n[o]||new Map;s.forEach(p=>{if(d.has(p))return;d.set(p,bu.Started);let l=r(p);if(l){let c=this.opts.es5?Yt.varKinds.var:Yt.varKinds.const;i=(0,Xt._)`${i}${c} ${p} = ${l};${this.opts._n}`}else if(l=a?.(p))i=(0,Xt._)`${i}${l}${this.opts._n}`;else throw new H4(p);d.set(p,bu.Completed)})}return i}};Yt.ValueScope=K4});var Q=v(ue=>{"use strict";Object.defineProperty(ue,"__esModule",{value:!0});ue.or=ue.and=ue.not=ue.CodeGen=ue.operators=ue.varKinds=ue.ValueScopeName=ue.ValueScope=ue.Scope=ue.Name=ue.regexpCode=ue.stringify=ue.getProperty=ue.nil=ue.strConcat=ue.str=ue._=void 0;var xe=xp(),Mr=X4(),_a=xp();Object.defineProperty(ue,"_",{enumerable:!0,get:function(){return _a._}});Object.defineProperty(ue,"str",{enumerable:!0,get:function(){return _a.str}});Object.defineProperty(ue,"strConcat",{enumerable:!0,get:function(){return _a.strConcat}});Object.defineProperty(ue,"nil",{enumerable:!0,get:function(){return _a.nil}});Object.defineProperty(ue,"getProperty",{enumerable:!0,get:function(){return _a.getProperty}});Object.defineProperty(ue,"stringify",{enumerable:!0,get:function(){return _a.stringify}});Object.defineProperty(ue,"regexpCode",{enumerable:!0,get:function(){return _a.regexpCode}});Object.defineProperty(ue,"Name",{enumerable:!0,get:function(){return _a.Name}});var Tu=X4();Object.defineProperty(ue,"Scope",{enumerable:!0,get:function(){return Tu.Scope}});Object.defineProperty(ue,"ValueScope",{enumerable:!0,get:function(){return Tu.ValueScope}});Object.defineProperty(ue,"ValueScopeName",{enumerable:!0,get:function(){return Tu.ValueScopeName}});Object.defineProperty(ue,"varKinds",{enumerable:!0,get:function(){return Tu.varKinds}});ue.operators={GT:new xe._Code(">"),GTE:new xe._Code(">="),LT:new xe._Code("<"),LTE:new xe._Code("<="),EQ:new xe._Code("==="),NEQ:new xe._Code("!=="),NOT:new xe._Code("!"),OR:new xe._Code("||"),AND:new xe._Code("&&"),ADD:new xe._Code("+")};var Un=class{optimizeNodes(){return this}optimizeNames(e,r){return this}},Y4=class extends Un{constructor(e,r,n){super(),this.varKind=e,this.name=r,this.rhs=n}render({es5:e,_n:r}){let n=e?Mr.varKinds.var:this.varKind,a=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${a};`+r}optimizeNames(e,r){if(e[this.name.str])return this.rhs&&(this.rhs=Qo(this.rhs,e,r)),this}get names(){return this.rhs instanceof xe._CodeOrName?this.rhs.names:{}}},$u=class extends Un{constructor(e,r,n){super(),this.lhs=e,this.rhs=r,this.sideEffects=n}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,r){if(!(this.lhs instanceof xe.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=Qo(this.rhs,e,r),this}get names(){let e=this.lhs instanceof xe.Name?{}:{...this.lhs.names};return ku(e,this.rhs)}},Q4=class extends $u{constructor(e,r,n,a){super(e,n,a),this.op=r}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},e6=class extends Un{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},t6=class extends Un{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},r6=class extends Un{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},n6=class extends Un{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,r){return this.code=Qo(this.code,e,r),this}get names(){return this.code instanceof xe._CodeOrName?this.code.names:{}}},$p=class extends Un{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((r,n)=>r+n.render(e),"")}optimizeNodes(){let{nodes:e}=this,r=e.length;for(;r--;){let n=e[r].optimizeNodes();Array.isArray(n)?e.splice(r,1,...n):n?e[r]=n:e.splice(r,1)}return e.length>0?this:void 0}optimizeNames(e,r){let{nodes:n}=this,a=n.length;for(;a--;){let i=n[a];i.optimizeNames(e,r)||(uz(e,i.names),n.splice(a,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,r)=>wi(e,r.names),{})}},Vn=class extends $p{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},a6=class extends $p{},Yo=class extends Vn{};Yo.kind="else";var _i=class t extends Vn{constructor(e,r){super(r),this.condition=e}render(e){let r=`if(${this.condition})`+super.render(e);return this.else&&(r+="else "+this.else.render(e)),r}optimizeNodes(){super.optimizeNodes();let e=this.condition;if(e===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new Yo(n):n}if(r)return e===!1?r instanceof t?r:r.nodes:this.nodes.length?this:new t(Qg(e),r instanceof t?[r]:r.nodes);if(!(e===!1||!this.nodes.length))return this}optimizeNames(e,r){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(e,r),!!(super.optimizeNames(e,r)||this.else))return this.condition=Qo(this.condition,e,r),this}get names(){let e=super.names;return ku(e,this.condition),this.else&&wi(e,this.else.names),e}};_i.kind="if";var bi=class extends Vn{};bi.kind="for";var i6=class extends bi{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,r){if(super.optimizeNames(e,r))return this.iteration=Qo(this.iteration,e,r),this}get names(){return wi(super.names,this.iteration.names)}},o6=class extends bi{constructor(e,r,n,a){super(),this.varKind=e,this.name=r,this.from=n,this.to=a}render(e){let r=e.es5?Mr.varKinds.var:this.varKind,{name:n,from:a,to:i}=this;return`for(${r} ${n}=${a}; ${n}<${i}; ${n}++)`+super.render(e)}get names(){let e=ku(super.names,this.from);return ku(e,this.to)}},Su=class extends bi{constructor(e,r,n,a){super(),this.loop=e,this.varKind=r,this.name=n,this.iterable=a}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,r){if(super.optimizeNames(e,r))return this.iterable=Qo(this.iterable,e,r),this}get names(){return wi(super.names,this.iterable.names)}},Sp=class extends Vn{constructor(e,r,n){super(),this.name=e,this.args=r,this.async=n}render(e){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(e)}};Sp.kind="func";var kp=class extends $p{render(e){return"return "+super.render(e)}};kp.kind="return";var s6=class extends Vn{render(e){let r="try"+super.render(e);return this.catch&&(r+=this.catch.render(e)),this.finally&&(r+=this.finally.render(e)),r}optimizeNodes(){var e,r;return super.optimizeNodes(),(e=this.catch)===null||e===void 0||e.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(e,r){var n,a;return super.optimizeNames(e,r),(n=this.catch)===null||n===void 0||n.optimizeNames(e,r),(a=this.finally)===null||a===void 0||a.optimizeNames(e,r),this}get names(){let e=super.names;return this.catch&&wi(e,this.catch.names),this.finally&&wi(e,this.finally.names),e}},Tp=class extends Vn{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};Tp.kind="catch";var Ep=class extends Vn{render(e){return"finally"+super.render(e)}};Ep.kind="finally";var d6=class{constructor(e,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?` -`:""},this._extScope=e,this._scope=new Mr.Scope({parent:e}),this._nodes=[new a6]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,r){let n=this._extScope.value(e,r);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(e,r){return this._extScope.getValue(e,r)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,r,n,a){let i=this._scope.toName(r);return n!==void 0&&a&&(this._constants[i.str]=n),this._leafNode(new Y4(e,i,n)),i}const(e,r,n){return this._def(Mr.varKinds.const,e,r,n)}let(e,r,n){return this._def(Mr.varKinds.let,e,r,n)}var(e,r,n){return this._def(Mr.varKinds.var,e,r,n)}assign(e,r,n){return this._leafNode(new $u(e,r,n))}add(e,r){return this._leafNode(new Q4(e,ue.operators.ADD,r))}code(e){return typeof e=="function"?e():e!==xe.nil&&this._leafNode(new n6(e)),this}object(...e){let r=["{"];for(let[n,a]of e)r.length>1&&r.push(","),r.push(n),(n!==a||this.opts.es5)&&(r.push(":"),(0,xe.addCodeArg)(r,a));return r.push("}"),new xe._Code(r)}if(e,r,n){if(this._blockNode(new _i(e)),r&&n)this.code(r).else().code(n).endIf();else if(r)this.code(r).endIf();else if(n)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(e){return this._elseNode(new _i(e))}else(){return this._elseNode(new Yo)}endIf(){return this._endBlockNode(_i,Yo)}_for(e,r){return this._blockNode(e),r&&this.code(r).endFor(),this}for(e,r){return this._for(new i6(e),r)}forRange(e,r,n,a,i=this.opts.es5?Mr.varKinds.var:Mr.varKinds.let){let o=this._scope.toName(e);return this._for(new o6(i,o,r,n),()=>a(o))}forOf(e,r,n,a=Mr.varKinds.const){let i=this._scope.toName(e);if(this.opts.es5){let o=r instanceof xe.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,xe._)`${o}.length`,s=>{this.var(i,(0,xe._)`${o}[${s}]`),n(i)})}return this._for(new Su("of",a,i,r),()=>n(i))}forIn(e,r,n,a=this.opts.es5?Mr.varKinds.var:Mr.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,xe._)`Object.keys(${r})`,n);let i=this._scope.toName(e);return this._for(new Su("in",a,i,r),()=>n(i))}endFor(){return this._endBlockNode(bi)}label(e){return this._leafNode(new e6(e))}break(e){return this._leafNode(new t6(e))}return(e){let r=new kp;if(this._blockNode(r),this.code(e),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(kp)}try(e,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let a=new s6;if(this._blockNode(a),this.code(e),r){let i=this.name("e");this._currNode=a.catch=new Tp(i),r(i)}return n&&(this._currNode=a.finally=new Ep,this.code(n)),this._endBlockNode(Tp,Ep)}throw(e){return this._leafNode(new r6(e))}block(e,r){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(r),this}endBlock(e){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-r;if(n<0||e!==void 0&&n!==e)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${e} expected`);return this._nodes.length=r,this}func(e,r=xe.nil,n,a){return this._blockNode(new Sp(e,r,n)),a&&this.code(a).endFunc(),this}endFunc(){return this._endBlockNode(Sp)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,r){let n=this._currNode;if(n instanceof e||r&&n instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${e.kind}/${r.kind}`:e.kind}"`)}_elseNode(e){let r=this._currNode;if(!(r instanceof _i))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let r=this._nodes;r[r.length-1]=e}};ue.CodeGen=d6;function wi(t,e){for(let r in e)t[r]=(t[r]||0)+(e[r]||0);return t}function ku(t,e){return e instanceof xe._CodeOrName?wi(t,e.names):t}function Qo(t,e,r){if(t instanceof xe.Name)return n(t);if(!a(t))return t;return new xe._Code(t._items.reduce((i,o)=>(o instanceof xe.Name&&(o=n(o)),o instanceof xe._Code?i.push(...o._items):i.push(o),i),[]));function n(i){let o=r[i.str];return o===void 0||e[i.str]!==1?i:(delete e[i.str],o)}function a(i){return i instanceof xe._Code&&i._items.some(o=>o instanceof xe.Name&&e[o.str]===1&&r[o.str]!==void 0)}}function uz(t,e){for(let r in e)t[r]=(t[r]||0)-(e[r]||0)}function Qg(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,xe._)`!${p6(t)}`}ue.not=Qg;var mz=ev(ue.operators.AND);function fz(...t){return t.reduce(mz)}ue.and=fz;var hz=ev(ue.operators.OR);function gz(...t){return t.reduce(hz)}ue.or=gz;function ev(t){return(e,r)=>e===xe.nil?r:r===xe.nil?e:(0,xe._)`${p6(e)} ${t} ${p6(r)}`}function p6(t){return t instanceof xe.Name?t:(0,xe._)`(${t})`}});var he=v(fe=>{"use strict";Object.defineProperty(fe,"__esModule",{value:!0});fe.checkStrictMode=fe.getErrorPath=fe.Type=fe.useFunc=fe.setEvaluated=fe.evaluatedPropsToName=fe.mergeEvaluated=fe.eachItem=fe.unescapeJsonPointer=fe.escapeJsonPointer=fe.escapeFragment=fe.unescapeFragment=fe.schemaRefOrVal=fe.schemaHasRulesButRef=fe.schemaHasRules=fe.checkUnknownRules=fe.alwaysValidSchema=fe.toHash=void 0;var Le=Q(),vz=xp();function yz(t){let e={};for(let r of t)e[r]=!0;return e}fe.toHash=yz;function _z(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(nv(t,e),!av(e,t.self.RULES.all))}fe.alwaysValidSchema=_z;function nv(t,e=t.schema){let{opts:r,self:n}=t;if(!r.strictSchema||typeof e=="boolean")return;let a=n.RULES.keywords;for(let i in e)a[i]||sv(t,`unknown keyword: "${i}"`)}fe.checkUnknownRules=nv;function av(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(e[r])return!0;return!1}fe.schemaHasRules=av;function bz(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(r!=="$ref"&&e.all[r])return!0;return!1}fe.schemaHasRulesButRef=bz;function wz({topSchemaRef:t,schemaPath:e},r,n,a){if(!a){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,Le._)`${r}`}return(0,Le._)`${t}${e}${(0,Le.getProperty)(n)}`}fe.schemaRefOrVal=wz;function xz(t){return iv(decodeURIComponent(t))}fe.unescapeFragment=xz;function $z(t){return encodeURIComponent(c6(t))}fe.escapeFragment=$z;function c6(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}fe.escapeJsonPointer=c6;function iv(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}fe.unescapeJsonPointer=iv;function Sz(t,e){if(Array.isArray(t))for(let r of t)e(r);else e(t)}fe.eachItem=Sz;function tv({mergeNames:t,mergeToName:e,mergeValues:r,resultToName:n}){return(a,i,o,s)=>{let d=o===void 0?i:o instanceof Le.Name?(i instanceof Le.Name?t(a,i,o):e(a,i,o),o):i instanceof Le.Name?(e(a,o,i),i):r(i,o);return s===Le.Name&&!(d instanceof Le.Name)?n(a,d):d}}fe.mergeEvaluated={props:tv({mergeNames:(t,e,r)=>t.if((0,Le._)`${r} !== true && ${e} !== undefined`,()=>{t.if((0,Le._)`${e} === true`,()=>t.assign(r,!0),()=>t.assign(r,(0,Le._)`${r} || {}`).code((0,Le._)`Object.assign(${r}, ${e})`))}),mergeToName:(t,e,r)=>t.if((0,Le._)`${r} !== true`,()=>{e===!0?t.assign(r,!0):(t.assign(r,(0,Le._)`${r} || {}`),u6(t,r,e))}),mergeValues:(t,e)=>t===!0?!0:{...t,...e},resultToName:ov}),items:tv({mergeNames:(t,e,r)=>t.if((0,Le._)`${r} !== true && ${e} !== undefined`,()=>t.assign(r,(0,Le._)`${e} === true ? true : ${r} > ${e} ? ${r} : ${e}`)),mergeToName:(t,e,r)=>t.if((0,Le._)`${r} !== true`,()=>t.assign(r,e===!0?!0:(0,Le._)`${r} > ${e} ? ${r} : ${e}`)),mergeValues:(t,e)=>t===!0?!0:Math.max(t,e),resultToName:(t,e)=>t.var("items",e)})};function ov(t,e){if(e===!0)return t.var("props",!0);let r=t.var("props",(0,Le._)`{}`);return e!==void 0&&u6(t,r,e),r}fe.evaluatedPropsToName=ov;function u6(t,e,r){Object.keys(r).forEach(n=>t.assign((0,Le._)`${e}${(0,Le.getProperty)(n)}`,!0))}fe.setEvaluated=u6;var rv={};function kz(t,e){return t.scopeValue("func",{ref:e,code:rv[e.code]||(rv[e.code]=new vz._Code(e.code))})}fe.useFunc=kz;var l6;(function(t){t[t.Num=0]="Num",t[t.Str=1]="Str"})(l6||(fe.Type=l6={}));function Tz(t,e,r){if(t instanceof Le.Name){let n=e===l6.Num;return r?n?(0,Le._)`"[" + ${t} + "]"`:(0,Le._)`"['" + ${t} + "']"`:n?(0,Le._)`"/" + ${t}`:(0,Le._)`"/" + ${t}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,Le.getProperty)(t).toString():"/"+c6(t)}fe.getErrorPath=Tz;function sv(t,e,r=t.opts.strictSchema){if(r){if(e=`strict mode: ${e}`,r===!0)throw new Error(e);t.self.logger.warn(e)}}fe.checkStrictMode=sv});var Sr=v(m6=>{"use strict";Object.defineProperty(m6,"__esModule",{value:!0});var Nt=Q(),Ez={data:new Nt.Name("data"),valCxt:new Nt.Name("valCxt"),instancePath:new Nt.Name("instancePath"),parentData:new Nt.Name("parentData"),parentDataProperty:new Nt.Name("parentDataProperty"),rootData:new Nt.Name("rootData"),dynamicAnchors:new Nt.Name("dynamicAnchors"),vErrors:new Nt.Name("vErrors"),errors:new Nt.Name("errors"),this:new Nt.Name("this"),self:new Nt.Name("self"),scope:new Nt.Name("scope"),json:new Nt.Name("json"),jsonPos:new Nt.Name("jsonPos"),jsonLen:new Nt.Name("jsonLen"),jsonPart:new Nt.Name("jsonPart")};m6.default=Ez});var Ip=v(zt=>{"use strict";Object.defineProperty(zt,"__esModule",{value:!0});zt.extendErrors=zt.resetErrorsCount=zt.reportExtraError=zt.reportError=zt.keyword$DataError=zt.keywordError=void 0;var Se=Q(),Eu=he(),Ft=Sr();zt.keywordError={message:({keyword:t})=>(0,Se.str)`must pass "${t}" keyword validation`};zt.keyword$DataError={message:({keyword:t,schemaType:e})=>e?(0,Se.str)`"${t}" keyword must be ${e} ($data)`:(0,Se.str)`"${t}" keyword is invalid ($data)`};function Iz(t,e=zt.keywordError,r,n){let{it:a}=t,{gen:i,compositeRule:o,allErrors:s}=a,d=lv(t,e,r);n??(o||s)?dv(i,d):pv(a,(0,Se._)`[${d}]`)}zt.reportError=Iz;function Pz(t,e=zt.keywordError,r){let{it:n}=t,{gen:a,compositeRule:i,allErrors:o}=n,s=lv(t,e,r);dv(a,s),i||o||pv(n,Ft.default.vErrors)}zt.reportExtraError=Pz;function Nz(t,e){t.assign(Ft.default.errors,e),t.if((0,Se._)`${Ft.default.vErrors} !== null`,()=>t.if(e,()=>t.assign((0,Se._)`${Ft.default.vErrors}.length`,e),()=>t.assign(Ft.default.vErrors,null)))}zt.resetErrorsCount=Nz;function zz({gen:t,keyword:e,schemaValue:r,data:n,errsCount:a,it:i}){if(a===void 0)throw new Error("ajv implementation error");let o=t.name("err");t.forRange("i",a,Ft.default.errors,s=>{t.const(o,(0,Se._)`${Ft.default.vErrors}[${s}]`),t.if((0,Se._)`${o}.instancePath === undefined`,()=>t.assign((0,Se._)`${o}.instancePath`,(0,Se.strConcat)(Ft.default.instancePath,i.errorPath))),t.assign((0,Se._)`${o}.schemaPath`,(0,Se.str)`${i.errSchemaPath}/${e}`),i.opts.verbose&&(t.assign((0,Se._)`${o}.schema`,r),t.assign((0,Se._)`${o}.data`,n))})}zt.extendErrors=zz;function dv(t,e){let r=t.const("err",e);t.if((0,Se._)`${Ft.default.vErrors} === null`,()=>t.assign(Ft.default.vErrors,(0,Se._)`[${r}]`),(0,Se._)`${Ft.default.vErrors}.push(${r})`),t.code((0,Se._)`${Ft.default.errors}++`)}function pv(t,e){let{gen:r,validateName:n,schemaEnv:a}=t;a.$async?r.throw((0,Se._)`new ${t.ValidationError}(${e})`):(r.assign((0,Se._)`${n}.errors`,e),r.return(!1))}var xi={keyword:new Se.Name("keyword"),schemaPath:new Se.Name("schemaPath"),params:new Se.Name("params"),propertyName:new Se.Name("propertyName"),message:new Se.Name("message"),schema:new Se.Name("schema"),parentSchema:new Se.Name("parentSchema")};function lv(t,e,r){let{createErrors:n}=t.it;return n===!1?(0,Se._)`{}`:Oz(t,e,r)}function Oz(t,e,r={}){let{gen:n,it:a}=t,i=[Rz(a,r),Dz(t,r)];return Az(t,e,i),n.object(...i)}function Rz({errorPath:t},{instancePath:e}){let r=e?(0,Se.str)`${t}${(0,Eu.getErrorPath)(e,Eu.Type.Str)}`:t;return[Ft.default.instancePath,(0,Se.strConcat)(Ft.default.instancePath,r)]}function Dz({keyword:t,it:{errSchemaPath:e}},{schemaPath:r,parentSchema:n}){let a=n?e:(0,Se.str)`${e}/${t}`;return r&&(a=(0,Se.str)`${a}${(0,Eu.getErrorPath)(r,Eu.Type.Str)}`),[xi.schemaPath,a]}function Az(t,{params:e,message:r},n){let{keyword:a,data:i,schemaValue:o,it:s}=t,{opts:d,propertyName:p,topSchemaRef:l,schemaPath:c}=s;n.push([xi.keyword,a],[xi.params,typeof e=="function"?e(t):e||(0,Se._)`{}`]),d.messages&&n.push([xi.message,typeof r=="function"?r(t):r]),d.verbose&&n.push([xi.schema,o],[xi.parentSchema,(0,Se._)`${l}${c}`],[Ft.default.data,i]),p&&n.push([xi.propertyName,p])}});var uv=v(es=>{"use strict";Object.defineProperty(es,"__esModule",{value:!0});es.boolOrEmptySchema=es.topBoolOrEmptySchema=void 0;var jz=Ip(),Cz=Q(),Uz=Sr(),Vz={message:"boolean schema is false"};function Lz(t){let{gen:e,schema:r,validateName:n}=t;r===!1?cv(t,!1):typeof r=="object"&&r.$async===!0?e.return(Uz.default.data):(e.assign((0,Cz._)`${n}.errors`,null),e.return(!0))}es.topBoolOrEmptySchema=Lz;function Mz(t,e){let{gen:r,schema:n}=t;n===!1?(r.var(e,!1),cv(t)):r.var(e,!0)}es.boolOrEmptySchema=Mz;function cv(t,e){let{gen:r,data:n}=t,a={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:t};(0,jz.reportError)(a,Vz,void 0,e)}});var f6=v(ts=>{"use strict";Object.defineProperty(ts,"__esModule",{value:!0});ts.getRules=ts.isJSONType=void 0;var qz=["string","number","integer","boolean","null","object","array"],Zz=new Set(qz);function Fz(t){return typeof t=="string"&&Zz.has(t)}ts.isJSONType=Fz;function Bz(){let t={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...t,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},t.number,t.string,t.array,t.object],post:{rules:[]},all:{},keywords:{}}}ts.getRules=Bz});var h6=v(ba=>{"use strict";Object.defineProperty(ba,"__esModule",{value:!0});ba.shouldUseRule=ba.shouldUseGroup=ba.schemaHasRulesForType=void 0;function Wz({schema:t,self:e},r){let n=e.RULES.types[r];return n&&n!==!0&&mv(t,n)}ba.schemaHasRulesForType=Wz;function mv(t,e){return e.rules.some(r=>fv(t,r))}ba.shouldUseGroup=mv;function fv(t,e){var r;return t[e.keyword]!==void 0||((r=e.definition.implements)===null||r===void 0?void 0:r.some(n=>t[n]!==void 0))}ba.shouldUseRule=fv});var Pp=v(Ot=>{"use strict";Object.defineProperty(Ot,"__esModule",{value:!0});Ot.reportTypeError=Ot.checkDataTypes=Ot.checkDataType=Ot.coerceAndCheckDataType=Ot.getJSONTypes=Ot.getSchemaTypes=Ot.DataType=void 0;var Jz=f6(),Gz=h6(),Hz=Ip(),se=Q(),hv=he(),rs;(function(t){t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong"})(rs||(Ot.DataType=rs={}));function Kz(t){let e=gv(t.type);if(e.includes("null")){if(t.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!e.length&&t.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');t.nullable===!0&&e.push("null")}return e}Ot.getSchemaTypes=Kz;function gv(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(Jz.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}Ot.getJSONTypes=gv;function Xz(t,e){let{gen:r,data:n,opts:a}=t,i=Yz(e,a.coerceTypes),o=e.length>0&&!(i.length===0&&e.length===1&&(0,Gz.schemaHasRulesForType)(t,e[0]));if(o){let s=v6(e,n,a.strictNumbers,rs.Wrong);r.if(s,()=>{i.length?Qz(t,e,i):y6(t)})}return o}Ot.coerceAndCheckDataType=Xz;var vv=new Set(["string","number","integer","boolean","null"]);function Yz(t,e){return e?t.filter(r=>vv.has(r)||e==="array"&&r==="array"):[]}function Qz(t,e,r){let{gen:n,data:a,opts:i}=t,o=n.let("dataType",(0,se._)`typeof ${a}`),s=n.let("coerced",(0,se._)`undefined`);i.coerceTypes==="array"&&n.if((0,se._)`${o} == 'object' && Array.isArray(${a}) && ${a}.length == 1`,()=>n.assign(a,(0,se._)`${a}[0]`).assign(o,(0,se._)`typeof ${a}`).if(v6(e,a,i.strictNumbers),()=>n.assign(s,a))),n.if((0,se._)`${s} !== undefined`);for(let p of r)(vv.has(p)||p==="array"&&i.coerceTypes==="array")&&d(p);n.else(),y6(t),n.endIf(),n.if((0,se._)`${s} !== undefined`,()=>{n.assign(a,s),eO(t,s)});function d(p){switch(p){case"string":n.elseIf((0,se._)`${o} == "number" || ${o} == "boolean"`).assign(s,(0,se._)`"" + ${a}`).elseIf((0,se._)`${a} === null`).assign(s,(0,se._)`""`);return;case"number":n.elseIf((0,se._)`${o} == "boolean" || ${a} === null - || (${o} == "string" && ${a} && ${a} == +${a})`).assign(s,(0,se._)`+${a}`);return;case"integer":n.elseIf((0,se._)`${o} === "boolean" || ${a} === null - || (${o} === "string" && ${a} && ${a} == +${a} && !(${a} % 1))`).assign(s,(0,se._)`+${a}`);return;case"boolean":n.elseIf((0,se._)`${a} === "false" || ${a} === 0 || ${a} === null`).assign(s,!1).elseIf((0,se._)`${a} === "true" || ${a} === 1`).assign(s,!0);return;case"null":n.elseIf((0,se._)`${a} === "" || ${a} === 0 || ${a} === false`),n.assign(s,null);return;case"array":n.elseIf((0,se._)`${o} === "string" || ${o} === "number" - || ${o} === "boolean" || ${a} === null`).assign(s,(0,se._)`[${a}]`)}}}function eO({gen:t,parentData:e,parentDataProperty:r},n){t.if((0,se._)`${e} !== undefined`,()=>t.assign((0,se._)`${e}[${r}]`,n))}function g6(t,e,r,n=rs.Correct){let a=n===rs.Correct?se.operators.EQ:se.operators.NEQ,i;switch(t){case"null":return(0,se._)`${e} ${a} null`;case"array":i=(0,se._)`Array.isArray(${e})`;break;case"object":i=(0,se._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case"integer":i=o((0,se._)`!(${e} % 1) && !isNaN(${e})`);break;case"number":i=o();break;default:return(0,se._)`typeof ${e} ${a} ${t}`}return n===rs.Correct?i:(0,se.not)(i);function o(s=se.nil){return(0,se.and)((0,se._)`typeof ${e} == "number"`,s,r?(0,se._)`isFinite(${e})`:se.nil)}}Ot.checkDataType=g6;function v6(t,e,r,n){if(t.length===1)return g6(t[0],e,r,n);let a,i=(0,hv.toHash)(t);if(i.array&&i.object){let o=(0,se._)`typeof ${e} != "object"`;a=i.null?o:(0,se._)`!${e} || ${o}`,delete i.null,delete i.array,delete i.object}else a=se.nil;i.number&&delete i.integer;for(let o in i)a=(0,se.and)(a,g6(o,e,r,n));return a}Ot.checkDataTypes=v6;var tO={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,se._)`{type: ${t}}`:(0,se._)`{type: ${e}}`};function y6(t){let e=rO(t);(0,Hz.reportError)(e,tO)}Ot.reportTypeError=y6;function rO(t){let{gen:e,data:r,schema:n}=t,a=(0,hv.schemaRefOrVal)(t,n,"type");return{gen:e,keyword:"type",data:r,schema:n.type,schemaCode:a,schemaValue:a,parentSchema:n,params:{},it:t}}});var _v=v(Iu=>{"use strict";Object.defineProperty(Iu,"__esModule",{value:!0});Iu.assignDefaults=void 0;var ns=Q(),nO=he();function aO(t,e){let{properties:r,items:n}=t.schema;if(e==="object"&&r)for(let a in r)yv(t,a,r[a].default);else e==="array"&&Array.isArray(n)&&n.forEach((a,i)=>yv(t,i,a.default))}Iu.assignDefaults=aO;function yv(t,e,r){let{gen:n,compositeRule:a,data:i,opts:o}=t;if(r===void 0)return;let s=(0,ns._)`${i}${(0,ns.getProperty)(e)}`;if(a){(0,nO.checkStrictMode)(t,`default is ignored for: ${s}`);return}let d=(0,ns._)`${s} === undefined`;o.useDefaults==="empty"&&(d=(0,ns._)`${d} || ${s} === null || ${s} === ""`),n.if(d,(0,ns._)`${s} = ${(0,ns.stringify)(r)}`)}});var kr=v(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});je.validateUnion=je.validateArray=je.usePattern=je.callValidateCode=je.schemaProperties=je.allSchemaProperties=je.noPropertyInData=je.propertyInData=je.isOwnProperty=je.hasPropFunc=je.reportMissingProp=je.checkMissingProp=je.checkReportMissingProp=void 0;var Je=Q(),_6=he(),wa=Sr(),iO=he();function oO(t,e){let{gen:r,data:n,it:a}=t;r.if(w6(r,n,e,a.opts.ownProperties),()=>{t.setParams({missingProperty:(0,Je._)`${e}`},!0),t.error()})}je.checkReportMissingProp=oO;function sO({gen:t,data:e,it:{opts:r}},n,a){return(0,Je.or)(...n.map(i=>(0,Je.and)(w6(t,e,i,r.ownProperties),(0,Je._)`${a} = ${i}`)))}je.checkMissingProp=sO;function dO(t,e){t.setParams({missingProperty:e},!0),t.error()}je.reportMissingProp=dO;function bv(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,Je._)`Object.prototype.hasOwnProperty`})}je.hasPropFunc=bv;function b6(t,e,r){return(0,Je._)`${bv(t)}.call(${e}, ${r})`}je.isOwnProperty=b6;function pO(t,e,r,n){let a=(0,Je._)`${e}${(0,Je.getProperty)(r)} !== undefined`;return n?(0,Je._)`${a} && ${b6(t,e,r)}`:a}je.propertyInData=pO;function w6(t,e,r,n){let a=(0,Je._)`${e}${(0,Je.getProperty)(r)} === undefined`;return n?(0,Je.or)(a,(0,Je.not)(b6(t,e,r))):a}je.noPropertyInData=w6;function wv(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}je.allSchemaProperties=wv;function lO(t,e){return wv(e).filter(r=>!(0,_6.alwaysValidSchema)(t,e[r]))}je.schemaProperties=lO;function cO({schemaCode:t,data:e,it:{gen:r,topSchemaRef:n,schemaPath:a,errorPath:i},it:o},s,d,p){let l=p?(0,Je._)`${t}, ${e}, ${n}${a}`:e,c=[[wa.default.instancePath,(0,Je.strConcat)(wa.default.instancePath,i)],[wa.default.parentData,o.parentData],[wa.default.parentDataProperty,o.parentDataProperty],[wa.default.rootData,wa.default.rootData]];o.opts.dynamicRef&&c.push([wa.default.dynamicAnchors,wa.default.dynamicAnchors]);let u=(0,Je._)`${l}, ${r.object(...c)}`;return d!==Je.nil?(0,Je._)`${s}.call(${d}, ${u})`:(0,Je._)`${s}(${u})`}je.callValidateCode=cO;var uO=(0,Je._)`new RegExp`;function mO({gen:t,it:{opts:e}},r){let n=e.unicodeRegExp?"u":"",{regExp:a}=e.code,i=a(r,n);return t.scopeValue("pattern",{key:i.toString(),ref:i,code:(0,Je._)`${a.code==="new RegExp"?uO:(0,iO.useFunc)(t,a)}(${r}, ${n})`})}je.usePattern=mO;function fO(t){let{gen:e,data:r,keyword:n,it:a}=t,i=e.name("valid");if(a.allErrors){let s=e.let("valid",!0);return o(()=>e.assign(s,!1)),s}return e.var(i,!0),o(()=>e.break()),i;function o(s){let d=e.const("len",(0,Je._)`${r}.length`);e.forRange("i",0,d,p=>{t.subschema({keyword:n,dataProp:p,dataPropType:_6.Type.Num},i),e.if((0,Je.not)(i),s)})}}je.validateArray=fO;function hO(t){let{gen:e,schema:r,keyword:n,it:a}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(d=>(0,_6.alwaysValidSchema)(a,d))&&!a.opts.unevaluated)return;let o=e.let("valid",!1),s=e.name("_valid");e.block(()=>r.forEach((d,p)=>{let l=t.subschema({keyword:n,schemaProp:p,compositeRule:!0},s);e.assign(o,(0,Je._)`${o} || ${s}`),t.mergeValidEvaluated(l,s)||e.if((0,Je.not)(o))})),t.result(o,()=>t.reset(),()=>t.error(!0))}je.validateUnion=hO});var Sv=v(on=>{"use strict";Object.defineProperty(on,"__esModule",{value:!0});on.validateKeywordUsage=on.validSchemaType=on.funcKeywordCode=on.macroKeywordCode=void 0;var Bt=Q(),$i=Sr(),gO=kr(),vO=Ip();function yO(t,e){let{gen:r,keyword:n,schema:a,parentSchema:i,it:o}=t,s=e.macro.call(o.self,a,i,o),d=$v(r,n,s);o.opts.validateSchema!==!1&&o.self.validateSchema(s,!0);let p=r.name("valid");t.subschema({schema:s,schemaPath:Bt.nil,errSchemaPath:`${o.errSchemaPath}/${n}`,topSchemaRef:d,compositeRule:!0},p),t.pass(p,()=>t.error(!0))}on.macroKeywordCode=yO;function _O(t,e){var r;let{gen:n,keyword:a,schema:i,parentSchema:o,$data:s,it:d}=t;wO(d,e);let p=!s&&e.compile?e.compile.call(d.self,i,o,d):e.validate,l=$v(n,a,p),c=n.let("valid");t.block$data(c,u),t.ok((r=e.valid)!==null&&r!==void 0?r:c);function u(){if(e.errors===!1)g(),e.modifying&&xv(t),y(()=>t.error());else{let b=e.async?m():f();e.modifying&&xv(t),y(()=>bO(t,b))}}function m(){let b=n.let("ruleErrs",null);return n.try(()=>g((0,Bt._)`await `),S=>n.assign(c,!1).if((0,Bt._)`${S} instanceof ${d.ValidationError}`,()=>n.assign(b,(0,Bt._)`${S}.errors`),()=>n.throw(S))),b}function f(){let b=(0,Bt._)`${l}.errors`;return n.assign(b,null),g(Bt.nil),b}function g(b=e.async?(0,Bt._)`await `:Bt.nil){let S=d.opts.passContext?$i.default.this:$i.default.self,E=!("compile"in e&&!s||e.schema===!1);n.assign(c,(0,Bt._)`${b}${(0,gO.callValidateCode)(t,l,S,E)}`,e.modifying)}function y(b){var S;n.if((0,Bt.not)((S=e.valid)!==null&&S!==void 0?S:c),b)}}on.funcKeywordCode=_O;function xv(t){let{gen:e,data:r,it:n}=t;e.if(n.parentData,()=>e.assign(r,(0,Bt._)`${n.parentData}[${n.parentDataProperty}]`))}function bO(t,e){let{gen:r}=t;r.if((0,Bt._)`Array.isArray(${e})`,()=>{r.assign($i.default.vErrors,(0,Bt._)`${$i.default.vErrors} === null ? ${e} : ${$i.default.vErrors}.concat(${e})`).assign($i.default.errors,(0,Bt._)`${$i.default.vErrors}.length`),(0,vO.extendErrors)(t)},()=>t.error())}function wO({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function $v(t,e,r){if(r===void 0)throw new Error(`keyword "${e}" failed to compile`);return t.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,Bt.stringify)(r)})}function xO(t,e,r=!1){return!e.length||e.some(n=>n==="array"?Array.isArray(t):n==="object"?t&&typeof t=="object"&&!Array.isArray(t):typeof t==n||r&&typeof t>"u")}on.validSchemaType=xO;function $O({schema:t,opts:e,self:r,errSchemaPath:n},a,i){if(Array.isArray(a.keyword)?!a.keyword.includes(i):a.keyword!==i)throw new Error("ajv implementation error");let o=a.dependencies;if(o?.some(s=>!Object.prototype.hasOwnProperty.call(t,s)))throw new Error(`parent schema must have dependencies of ${i}: ${o.join(",")}`);if(a.validateSchema&&!a.validateSchema(t[i])){let d=`keyword "${i}" value is invalid at path "${n}": `+r.errorsText(a.validateSchema.errors);if(e.validateSchema==="log")r.logger.error(d);else throw new Error(d)}}on.validateKeywordUsage=$O});var Tv=v(xa=>{"use strict";Object.defineProperty(xa,"__esModule",{value:!0});xa.extendSubschemaMode=xa.extendSubschemaData=xa.getSubschema=void 0;var sn=Q(),kv=he();function SO(t,{keyword:e,schemaProp:r,schema:n,schemaPath:a,errSchemaPath:i,topSchemaRef:o}){if(e!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(e!==void 0){let s=t.schema[e];return r===void 0?{schema:s,schemaPath:(0,sn._)`${t.schemaPath}${(0,sn.getProperty)(e)}`,errSchemaPath:`${t.errSchemaPath}/${e}`}:{schema:s[r],schemaPath:(0,sn._)`${t.schemaPath}${(0,sn.getProperty)(e)}${(0,sn.getProperty)(r)}`,errSchemaPath:`${t.errSchemaPath}/${e}/${(0,kv.escapeFragment)(r)}`}}if(n!==void 0){if(a===void 0||i===void 0||o===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:a,topSchemaRef:o,errSchemaPath:i}}throw new Error('either "keyword" or "schema" must be passed')}xa.getSubschema=SO;function kO(t,e,{dataProp:r,dataPropType:n,data:a,dataTypes:i,propertyName:o}){if(a!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:s}=e;if(r!==void 0){let{errorPath:p,dataPathArr:l,opts:c}=e,u=s.let("data",(0,sn._)`${e.data}${(0,sn.getProperty)(r)}`,!0);d(u),t.errorPath=(0,sn.str)`${p}${(0,kv.getErrorPath)(r,n,c.jsPropertySyntax)}`,t.parentDataProperty=(0,sn._)`${r}`,t.dataPathArr=[...l,t.parentDataProperty]}if(a!==void 0){let p=a instanceof sn.Name?a:s.let("data",a,!0);d(p),o!==void 0&&(t.propertyName=o)}i&&(t.dataTypes=i);function d(p){t.data=p,t.dataLevel=e.dataLevel+1,t.dataTypes=[],e.definedProperties=new Set,t.parentData=e.data,t.dataNames=[...e.dataNames,p]}}xa.extendSubschemaData=kO;function TO(t,{jtdDiscriminator:e,jtdMetadata:r,compositeRule:n,createErrors:a,allErrors:i}){n!==void 0&&(t.compositeRule=n),a!==void 0&&(t.createErrors=a),i!==void 0&&(t.allErrors=i),t.jtdDiscriminator=e,t.jtdMetadata=r}xa.extendSubschemaMode=TO});var x6=v((vte,Ev)=>{"use strict";Ev.exports=function t(e,r){if(e===r)return!0;if(e&&r&&typeof e=="object"&&typeof r=="object"){if(e.constructor!==r.constructor)return!1;var n,a,i;if(Array.isArray(e)){if(n=e.length,n!=r.length)return!1;for(a=n;a--!==0;)if(!t(e[a],r[a]))return!1;return!0}if(e.constructor===RegExp)return e.source===r.source&&e.flags===r.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===r.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===r.toString();if(i=Object.keys(e),n=i.length,n!==Object.keys(r).length)return!1;for(a=n;a--!==0;)if(!Object.prototype.hasOwnProperty.call(r,i[a]))return!1;for(a=n;a--!==0;){var o=i[a];if(!t(e[o],r[o]))return!1}return!0}return e!==e&&r!==r}});var Pv=v((yte,Iv)=>{"use strict";var $a=Iv.exports=function(t,e,r){typeof e=="function"&&(r=e,e={}),r=e.cb||r;var n=typeof r=="function"?r:r.pre||function(){},a=r.post||function(){};Pu(e,n,a,t,"",t)};$a.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};$a.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};$a.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};$a.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function Pu(t,e,r,n,a,i,o,s,d,p){if(n&&typeof n=="object"&&!Array.isArray(n)){e(n,a,i,o,s,d,p);for(var l in n){var c=n[l];if(Array.isArray(c)){if(l in $a.arrayKeywords)for(var u=0;u{"use strict";Object.defineProperty(Qt,"__esModule",{value:!0});Qt.getSchemaRefs=Qt.resolveUrl=Qt.normalizeId=Qt._getFullPath=Qt.getFullPath=Qt.inlineRef=void 0;var IO=he(),PO=x6(),NO=Pv(),zO=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function OO(t,e=!0){return typeof t=="boolean"?!0:e===!0?!$6(t):e?Nv(t)<=e:!1}Qt.inlineRef=OO;var RO=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function $6(t){for(let e in t){if(RO.has(e))return!0;let r=t[e];if(Array.isArray(r)&&r.some($6)||typeof r=="object"&&$6(r))return!0}return!1}function Nv(t){let e=0;for(let r in t){if(r==="$ref")return 1/0;if(e++,!zO.has(r)&&(typeof t[r]=="object"&&(0,IO.eachItem)(t[r],n=>e+=Nv(n)),e===1/0))return 1/0}return e}function zv(t,e="",r){r!==!1&&(e=as(e));let n=t.parse(e);return Ov(t,n)}Qt.getFullPath=zv;function Ov(t,e){return t.serialize(e).split("#")[0]+"#"}Qt._getFullPath=Ov;var DO=/#\/?$/;function as(t){return t?t.replace(DO,""):""}Qt.normalizeId=as;function AO(t,e,r){return r=as(r),t.resolve(e,r)}Qt.resolveUrl=AO;var jO=/^[a-z_][-a-z0-9._]*$/i;function CO(t,e){if(typeof t=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,a=as(t[r]||e),i={"":a},o=zv(n,a,!1),s={},d=new Set;return NO(t,{allKeys:!0},(c,u,m,f)=>{if(f===void 0)return;let g=o+u,y=i[f];typeof c[r]=="string"&&(y=b.call(this,c[r])),S.call(this,c.$anchor),S.call(this,c.$dynamicAnchor),i[u]=y;function b(E){let T=this.opts.uriResolver.resolve;if(E=as(y?T(y,E):E),d.has(E))throw l(E);d.add(E);let k=this.refs[E];return typeof k=="string"&&(k=this.refs[k]),typeof k=="object"?p(c,k.schema,E):E!==as(g)&&(E[0]==="#"?(p(c,s[E],E),s[E]=c):this.refs[E]=g),E}function S(E){if(typeof E=="string"){if(!jO.test(E))throw new Error(`invalid anchor "${E}"`);b.call(this,`#${E}`)}}}),s;function p(c,u,m){if(u!==void 0&&!PO(c,u))throw l(m)}function l(c){return new Error(`reference "${c}" resolves to more than one schema`)}}Qt.getSchemaRefs=CO});var is=v(Sa=>{"use strict";Object.defineProperty(Sa,"__esModule",{value:!0});Sa.getData=Sa.KeywordCxt=Sa.validateFunctionCode=void 0;var Cv=uv(),Rv=Pp(),k6=h6(),Nu=Pp(),UO=_v(),Op=Sv(),S6=Tv(),V=Q(),X=Sr(),VO=Np(),Ln=he(),zp=Ip();function LO(t){if(Lv(t)&&(Mv(t),Vv(t))){ZO(t);return}Uv(t,()=>(0,Cv.topBoolOrEmptySchema)(t))}Sa.validateFunctionCode=LO;function Uv({gen:t,validateName:e,schema:r,schemaEnv:n,opts:a},i){a.code.es5?t.func(e,(0,V._)`${X.default.data}, ${X.default.valCxt}`,n.$async,()=>{t.code((0,V._)`"use strict"; ${Dv(r,a)}`),qO(t,a),t.code(i)}):t.func(e,(0,V._)`${X.default.data}, ${MO(a)}`,n.$async,()=>t.code(Dv(r,a)).code(i))}function MO(t){return(0,V._)`{${X.default.instancePath}="", ${X.default.parentData}, ${X.default.parentDataProperty}, ${X.default.rootData}=${X.default.data}${t.dynamicRef?(0,V._)`, ${X.default.dynamicAnchors}={}`:V.nil}}={}`}function qO(t,e){t.if(X.default.valCxt,()=>{t.var(X.default.instancePath,(0,V._)`${X.default.valCxt}.${X.default.instancePath}`),t.var(X.default.parentData,(0,V._)`${X.default.valCxt}.${X.default.parentData}`),t.var(X.default.parentDataProperty,(0,V._)`${X.default.valCxt}.${X.default.parentDataProperty}`),t.var(X.default.rootData,(0,V._)`${X.default.valCxt}.${X.default.rootData}`),e.dynamicRef&&t.var(X.default.dynamicAnchors,(0,V._)`${X.default.valCxt}.${X.default.dynamicAnchors}`)},()=>{t.var(X.default.instancePath,(0,V._)`""`),t.var(X.default.parentData,(0,V._)`undefined`),t.var(X.default.parentDataProperty,(0,V._)`undefined`),t.var(X.default.rootData,X.default.data),e.dynamicRef&&t.var(X.default.dynamicAnchors,(0,V._)`{}`)})}function ZO(t){let{schema:e,opts:r,gen:n}=t;Uv(t,()=>{r.$comment&&e.$comment&&Zv(t),GO(t),n.let(X.default.vErrors,null),n.let(X.default.errors,0),r.unevaluated&&FO(t),qv(t),XO(t)})}function FO(t){let{gen:e,validateName:r}=t;t.evaluated=e.const("evaluated",(0,V._)`${r}.evaluated`),e.if((0,V._)`${t.evaluated}.dynamicProps`,()=>e.assign((0,V._)`${t.evaluated}.props`,(0,V._)`undefined`)),e.if((0,V._)`${t.evaluated}.dynamicItems`,()=>e.assign((0,V._)`${t.evaluated}.items`,(0,V._)`undefined`))}function Dv(t,e){let r=typeof t=="object"&&t[e.schemaId];return r&&(e.code.source||e.code.process)?(0,V._)`/*# sourceURL=${r} */`:V.nil}function BO(t,e){if(Lv(t)&&(Mv(t),Vv(t))){WO(t,e);return}(0,Cv.boolOrEmptySchema)(t,e)}function Vv({schema:t,self:e}){if(typeof t=="boolean")return!t;for(let r in t)if(e.RULES.all[r])return!0;return!1}function Lv(t){return typeof t.schema!="boolean"}function WO(t,e){let{schema:r,gen:n,opts:a}=t;a.$comment&&r.$comment&&Zv(t),HO(t),KO(t);let i=n.const("_errs",X.default.errors);qv(t,i),n.var(e,(0,V._)`${i} === ${X.default.errors}`)}function Mv(t){(0,Ln.checkUnknownRules)(t),JO(t)}function qv(t,e){if(t.opts.jtd)return Av(t,[],!1,e);let r=(0,Rv.getSchemaTypes)(t.schema),n=(0,Rv.coerceAndCheckDataType)(t,r);Av(t,r,!n,e)}function JO(t){let{schema:e,errSchemaPath:r,opts:n,self:a}=t;e.$ref&&n.ignoreKeywordsWithRef&&(0,Ln.schemaHasRulesButRef)(e,a.RULES)&&a.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function GO(t){let{schema:e,opts:r}=t;e.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,Ln.checkStrictMode)(t,"default is ignored in the schema root")}function HO(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,VO.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function KO(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function Zv({gen:t,schemaEnv:e,schema:r,errSchemaPath:n,opts:a}){let i=r.$comment;if(a.$comment===!0)t.code((0,V._)`${X.default.self}.logger.log(${i})`);else if(typeof a.$comment=="function"){let o=(0,V.str)`${n}/$comment`,s=t.scopeValue("root",{ref:e.root});t.code((0,V._)`${X.default.self}.opts.$comment(${i}, ${o}, ${s}.schema)`)}}function XO(t){let{gen:e,schemaEnv:r,validateName:n,ValidationError:a,opts:i}=t;r.$async?e.if((0,V._)`${X.default.errors} === 0`,()=>e.return(X.default.data),()=>e.throw((0,V._)`new ${a}(${X.default.vErrors})`)):(e.assign((0,V._)`${n}.errors`,X.default.vErrors),i.unevaluated&&YO(t),e.return((0,V._)`${X.default.errors} === 0`))}function YO({gen:t,evaluated:e,props:r,items:n}){r instanceof V.Name&&t.assign((0,V._)`${e}.props`,r),n instanceof V.Name&&t.assign((0,V._)`${e}.items`,n)}function Av(t,e,r,n){let{gen:a,schema:i,data:o,allErrors:s,opts:d,self:p}=t,{RULES:l}=p;if(i.$ref&&(d.ignoreKeywordsWithRef||!(0,Ln.schemaHasRulesButRef)(i,l))){a.block(()=>Bv(t,"$ref",l.all.$ref.definition));return}d.jtd||QO(t,e),a.block(()=>{for(let u of l.rules)c(u);c(l.post)});function c(u){(0,k6.shouldUseGroup)(i,u)&&(u.type?(a.if((0,Nu.checkDataType)(u.type,o,d.strictNumbers)),jv(t,u),e.length===1&&e[0]===u.type&&r&&(a.else(),(0,Nu.reportTypeError)(t)),a.endIf()):jv(t,u),s||a.if((0,V._)`${X.default.errors} === ${n||0}`))}}function jv(t,e){let{gen:r,schema:n,opts:{useDefaults:a}}=t;a&&(0,UO.assignDefaults)(t,e.type),r.block(()=>{for(let i of e.rules)(0,k6.shouldUseRule)(n,i)&&Bv(t,i.keyword,i.definition,e.type)})}function QO(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(eR(t,e),t.opts.allowUnionTypes||tR(t,e),rR(t,t.dataTypes))}function eR(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(r=>{Fv(t.dataTypes,r)||T6(t,`type "${r}" not allowed by context "${t.dataTypes.join(",")}"`)}),aR(t,e)}}function tR(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&T6(t,"use allowUnionTypes to allow union type keyword")}function rR(t,e){let r=t.self.RULES.all;for(let n in r){let a=r[n];if(typeof a=="object"&&(0,k6.shouldUseRule)(t.schema,a)){let{type:i}=a.definition;i.length&&!i.some(o=>nR(e,o))&&T6(t,`missing type "${i.join(",")}" for keyword "${n}"`)}}}function nR(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function Fv(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function aR(t,e){let r=[];for(let n of t.dataTypes)Fv(e,n)?r.push(n):e.includes("integer")&&n==="number"&&r.push("integer");t.dataTypes=r}function T6(t,e){let r=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${r}" (strictTypes)`,(0,Ln.checkStrictMode)(t,e,t.opts.strictTypes)}var zu=class{constructor(e,r,n){if((0,Op.validateKeywordUsage)(e,r,n),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=n,this.data=e.data,this.schema=e.schema[n],this.$data=r.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,Ln.schemaRefOrVal)(e,this.schema,n,this.$data),this.schemaType=r.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=r,this.$data)this.schemaCode=e.gen.const("vSchema",Wv(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,Op.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=e.gen.const("_errs",X.default.errors))}result(e,r,n){this.failResult((0,V.not)(e),r,n)}failResult(e,r,n){this.gen.if(e),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(e,r){this.failResult((0,V.not)(e),void 0,r)}fail(e){if(e===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);let{schemaCode:r}=this;this.fail((0,V._)`${r} !== undefined && (${(0,V.or)(this.invalid$data(),e)})`)}error(e,r,n){if(r){this.setParams(r),this._error(e,n),this.setParams({});return}this._error(e,n)}_error(e,r){(e?zp.reportExtraError:zp.reportError)(this,this.def.error,r)}$dataError(){(0,zp.reportError)(this,this.def.$dataError||zp.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,zp.resetErrorsCount)(this.gen,this.errsCount)}ok(e){this.allErrors||this.gen.if(e)}setParams(e,r){r?Object.assign(this.params,e):this.params=e}block$data(e,r,n=V.nil){this.gen.block(()=>{this.check$data(e,n),r()})}check$data(e=V.nil,r=V.nil){if(!this.$data)return;let{gen:n,schemaCode:a,schemaType:i,def:o}=this;n.if((0,V.or)((0,V._)`${a} === undefined`,r)),e!==V.nil&&n.assign(e,!0),(i.length||o.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),e!==V.nil&&n.assign(e,!1)),n.else()}invalid$data(){let{gen:e,schemaCode:r,schemaType:n,def:a,it:i}=this;return(0,V.or)(o(),s());function o(){if(n.length){if(!(r instanceof V.Name))throw new Error("ajv implementation error");let d=Array.isArray(n)?n:[n];return(0,V._)`${(0,Nu.checkDataTypes)(d,r,i.opts.strictNumbers,Nu.DataType.Wrong)}`}return V.nil}function s(){if(a.validateSchema){let d=e.scopeValue("validate$data",{ref:a.validateSchema});return(0,V._)`!${d}(${r})`}return V.nil}}subschema(e,r){let n=(0,S6.getSubschema)(this.it,e);(0,S6.extendSubschemaData)(n,this.it,e),(0,S6.extendSubschemaMode)(n,e);let a={...this.it,...n,items:void 0,props:void 0};return BO(a,r),a}mergeEvaluated(e,r){let{it:n,gen:a}=this;n.opts.unevaluated&&(n.props!==!0&&e.props!==void 0&&(n.props=Ln.mergeEvaluated.props(a,e.props,n.props,r)),n.items!==!0&&e.items!==void 0&&(n.items=Ln.mergeEvaluated.items(a,e.items,n.items,r)))}mergeValidEvaluated(e,r){let{it:n,gen:a}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return a.if(r,()=>this.mergeEvaluated(e,V.Name)),!0}};Sa.KeywordCxt=zu;function Bv(t,e,r,n){let a=new zu(t,r,e);"code"in r?r.code(a,n):a.$data&&r.validate?(0,Op.funcKeywordCode)(a,r):"macro"in r?(0,Op.macroKeywordCode)(a,r):(r.compile||r.validate)&&(0,Op.funcKeywordCode)(a,r)}var iR=/^\/(?:[^~]|~0|~1)*$/,oR=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Wv(t,{dataLevel:e,dataNames:r,dataPathArr:n}){let a,i;if(t==="")return X.default.rootData;if(t[0]==="/"){if(!iR.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);a=t,i=X.default.rootData}else{let p=oR.exec(t);if(!p)throw new Error(`Invalid JSON-pointer: ${t}`);let l=+p[1];if(a=p[2],a==="#"){if(l>=e)throw new Error(d("property/index",l));return n[e-l]}if(l>e)throw new Error(d("data",l));if(i=r[e-l],!a)return i}let o=i,s=a.split("/");for(let p of s)p&&(i=(0,V._)`${i}${(0,V.getProperty)((0,Ln.unescapeJsonPointer)(p))}`,o=(0,V._)`${o} && ${i}`);return o;function d(p,l){return`Cannot access ${p} ${l} levels up, current level is ${e}`}}Sa.getData=Wv});var Rp=v(I6=>{"use strict";Object.defineProperty(I6,"__esModule",{value:!0});var E6=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};I6.default=E6});var os=v(z6=>{"use strict";Object.defineProperty(z6,"__esModule",{value:!0});var P6=Np(),N6=class extends Error{constructor(e,r,n,a){super(a||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,P6.resolveUrl)(e,r,n),this.missingSchema=(0,P6.normalizeId)((0,P6.getFullPath)(e,this.missingRef))}};z6.default=N6});var Dp=v(Tr=>{"use strict";Object.defineProperty(Tr,"__esModule",{value:!0});Tr.resolveSchema=Tr.getCompilingSchema=Tr.resolveRef=Tr.compileSchema=Tr.SchemaEnv=void 0;var qr=Q(),sR=Rp(),Si=Sr(),Zr=Np(),Jv=he(),dR=is(),ss=class{constructor(e){var r;this.refs={},this.dynamicAnchors={};let n;typeof e.schema=="object"&&(n=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=(r=e.baseId)!==null&&r!==void 0?r:(0,Zr.normalizeId)(n?.[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=n?.$async,this.refs={}}};Tr.SchemaEnv=ss;function R6(t){let e=Gv.call(this,t);if(e)return e;let r=(0,Zr.getFullPath)(this.opts.uriResolver,t.root.baseId),{es5:n,lines:a}=this.opts.code,{ownProperties:i}=this.opts,o=new qr.CodeGen(this.scope,{es5:n,lines:a,ownProperties:i}),s;t.$async&&(s=o.scopeValue("Error",{ref:sR.default,code:(0,qr._)`require("ajv/dist/runtime/validation_error").default`}));let d=o.scopeName("validate");t.validateName=d;let p={gen:o,allErrors:this.opts.allErrors,data:Si.default.data,parentData:Si.default.parentData,parentDataProperty:Si.default.parentDataProperty,dataNames:[Si.default.data],dataPathArr:[qr.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:o.scopeValue("schema",this.opts.code.source===!0?{ref:t.schema,code:(0,qr.stringify)(t.schema)}:{ref:t.schema}),validateName:d,ValidationError:s,schema:t.schema,schemaEnv:t,rootId:r,baseId:t.baseId||r,schemaPath:qr.nil,errSchemaPath:t.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,qr._)`""`,opts:this.opts,self:this},l;try{this._compilations.add(t),(0,dR.validateFunctionCode)(p),o.optimize(this.opts.code.optimize);let c=o.toString();l=`${o.scopeRefs(Si.default.scope)}return ${c}`,this.opts.code.process&&(l=this.opts.code.process(l,t));let m=new Function(`${Si.default.self}`,`${Si.default.scope}`,l)(this,this.scope.get());if(this.scope.value(d,{ref:m}),m.errors=null,m.schema=t.schema,m.schemaEnv=t,t.$async&&(m.$async=!0),this.opts.code.source===!0&&(m.source={validateName:d,validateCode:c,scopeValues:o._values}),this.opts.unevaluated){let{props:f,items:g}=p;m.evaluated={props:f instanceof qr.Name?void 0:f,items:g instanceof qr.Name?void 0:g,dynamicProps:f instanceof qr.Name,dynamicItems:g instanceof qr.Name},m.source&&(m.source.evaluated=(0,qr.stringify)(m.evaluated))}return t.validate=m,t}catch(c){throw delete t.validate,delete t.validateName,l&&this.logger.error("Error compiling schema, function code:",l),c}finally{this._compilations.delete(t)}}Tr.compileSchema=R6;function pR(t,e,r){var n;r=(0,Zr.resolveUrl)(this.opts.uriResolver,e,r);let a=t.refs[r];if(a)return a;let i=uR.call(this,t,r);if(i===void 0){let o=(n=t.localRefs)===null||n===void 0?void 0:n[r],{schemaId:s}=this.opts;o&&(i=new ss({schema:o,schemaId:s,root:t,baseId:e}))}if(i!==void 0)return t.refs[r]=lR.call(this,i)}Tr.resolveRef=pR;function lR(t){return(0,Zr.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:R6.call(this,t)}function Gv(t){for(let e of this._compilations)if(cR(e,t))return e}Tr.getCompilingSchema=Gv;function cR(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function uR(t,e){let r;for(;typeof(r=this.refs[e])=="string";)e=r;return r||this.schemas[e]||Ou.call(this,t,e)}function Ou(t,e){let r=this.opts.uriResolver.parse(e),n=(0,Zr._getFullPath)(this.opts.uriResolver,r),a=(0,Zr.getFullPath)(this.opts.uriResolver,t.baseId,void 0);if(Object.keys(t.schema).length>0&&n===a)return O6.call(this,r,t);let i=(0,Zr.normalizeId)(n),o=this.refs[i]||this.schemas[i];if(typeof o=="string"){let s=Ou.call(this,t,o);return typeof s?.schema!="object"?void 0:O6.call(this,r,s)}if(typeof o?.schema=="object"){if(o.validate||R6.call(this,o),i===(0,Zr.normalizeId)(e)){let{schema:s}=o,{schemaId:d}=this.opts,p=s[d];return p&&(a=(0,Zr.resolveUrl)(this.opts.uriResolver,a,p)),new ss({schema:s,schemaId:d,root:t,baseId:a})}return O6.call(this,r,o)}}Tr.resolveSchema=Ou;var mR=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function O6(t,{baseId:e,schema:r,root:n}){var a;if(((a=t.fragment)===null||a===void 0?void 0:a[0])!=="/")return;for(let s of t.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let d=r[(0,Jv.unescapeFragment)(s)];if(d===void 0)return;r=d;let p=typeof r=="object"&&r[this.opts.schemaId];!mR.has(s)&&p&&(e=(0,Zr.resolveUrl)(this.opts.uriResolver,e,p))}let i;if(typeof r!="boolean"&&r.$ref&&!(0,Jv.schemaHasRulesButRef)(r,this.RULES)){let s=(0,Zr.resolveUrl)(this.opts.uriResolver,e,r.$ref);i=Ou.call(this,n,s)}let{schemaId:o}=this.opts;if(i=i||new ss({schema:r,schemaId:o,root:n,baseId:e}),i.schema!==i.root.schema)return i}});var Hv=v((Ste,fR)=>{fR.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var A6=v((kte,Qv)=>{"use strict";var hR=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),Xv=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);function D6(t){let e="",r=0,n=0;for(n=0;n=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";e+=t[n];break}for(n+=1;n=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";e+=t[n]}return e}var gR=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function Kv(t){return t.length=0,!0}function vR(t,e,r){if(t.length){let n=D6(t);if(n!=="")e.push(n);else return r.error=!0,!1;t.length=0}return!0}function yR(t){let e=0,r={error:!1,address:"",zone:""},n=[],a=[],i=!1,o=!1,s=vR;for(let d=0;d7){r.error=!0;break}d>0&&t[d-1]===":"&&(i=!0),n.push(":");continue}else if(p==="%"){if(!s(a,n,r))break;s=Kv}else{a.push(p);continue}}return a.length&&(s===Kv?r.zone=a.join(""):o?n.push(a.join("")):n.push(D6(a))),r.address=n.join(""),r}function Yv(t){if(_R(t,":")<2)return{host:t,isIPV6:!1};let e=yR(t);if(e.error)return{host:t,isIPV6:!1};{let r=e.address,n=e.address;return e.zone&&(r+="%"+e.zone,n+="%25"+e.zone),{host:r,isIPV6:!0,escapedHost:n}}}function _R(t,e){let r=0;for(let n=0;n{"use strict";var{isUUID:$R}=A6(),SR=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,kR=["http","https","ws","wss","urn","urn:uuid"];function TR(t){return kR.indexOf(t)!==-1}function j6(t){return t.secure===!0?!0:t.secure===!1?!1:t.scheme?t.scheme.length===3&&(t.scheme[0]==="w"||t.scheme[0]==="W")&&(t.scheme[1]==="s"||t.scheme[1]==="S")&&(t.scheme[2]==="s"||t.scheme[2]==="S"):!1}function ey(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function ty(t){let e=String(t.scheme).toLowerCase()==="https";return(t.port===(e?443:80)||t.port==="")&&(t.port=void 0),t.path||(t.path="/"),t}function ER(t){return t.secure=j6(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function IR(t){if((t.port===(j6(t)?443:80)||t.port==="")&&(t.port=void 0),typeof t.secure=="boolean"&&(t.scheme=t.secure?"wss":"ws",t.secure=void 0),t.resourceName){let[e,r]=t.resourceName.split("?");t.path=e&&e!=="/"?e:void 0,t.query=r,t.resourceName=void 0}return t.fragment=void 0,t}function PR(t,e){if(!t.path)return t.error="URN can not be parsed",t;let r=t.path.match(SR);if(r){let n=e.scheme||t.scheme||"urn";t.nid=r[1].toLowerCase(),t.nss=r[2];let a=`${n}:${e.nid||t.nid}`,i=C6(a);t.path=void 0,i&&(t=i.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function NR(t,e){if(t.nid===void 0)throw new Error("URN without nid cannot be serialized");let r=e.scheme||t.scheme||"urn",n=t.nid.toLowerCase(),a=`${r}:${e.nid||n}`,i=C6(a);i&&(t=i.serialize(t,e));let o=t,s=t.nss;return o.path=`${n||e.nid}:${s}`,e.skipEscape=!0,o}function zR(t,e){let r=t;return r.uuid=r.nss,r.nss=void 0,!e.tolerant&&(!r.uuid||!$R(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function OR(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var ry={scheme:"http",domainHost:!0,parse:ey,serialize:ty},RR={scheme:"https",domainHost:ry.domainHost,parse:ey,serialize:ty},Ru={scheme:"ws",domainHost:!0,parse:ER,serialize:IR},DR={scheme:"wss",domainHost:Ru.domainHost,parse:Ru.parse,serialize:Ru.serialize},AR={scheme:"urn",parse:PR,serialize:NR,skipNormalize:!0},jR={scheme:"urn:uuid",parse:zR,serialize:OR,skipNormalize:!0},Du={http:ry,https:RR,ws:Ru,wss:DR,urn:AR,"urn:uuid":jR};Object.setPrototypeOf(Du,null);function C6(t){return t&&(Du[t]||Du[t.toLowerCase()])||void 0}ny.exports={wsIsSecure:j6,SCHEMES:Du,isValidSchemeName:TR,getSchemeHandler:C6}});var sy=v((Ete,ju)=>{"use strict";var{normalizeIPv6:CR,removeDotSegments:Ap,recomposeAuthority:UR,normalizeComponentEncoding:Au,isIPv4:VR,nonSimpleDomain:LR}=A6(),{SCHEMES:MR,getSchemeHandler:iy}=ay();function qR(t,e){return typeof t=="string"?t=dn(Mn(t,e),e):typeof t=="object"&&(t=Mn(dn(t,e),e)),t}function ZR(t,e,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},a=oy(Mn(t,n),Mn(e,n),n,!0);return n.skipEscape=!0,dn(a,n)}function oy(t,e,r,n){let a={};return n||(t=Mn(dn(t,r),r),e=Mn(dn(e,r),r)),r=r||{},!r.tolerant&&e.scheme?(a.scheme=e.scheme,a.userinfo=e.userinfo,a.host=e.host,a.port=e.port,a.path=Ap(e.path||""),a.query=e.query):(e.userinfo!==void 0||e.host!==void 0||e.port!==void 0?(a.userinfo=e.userinfo,a.host=e.host,a.port=e.port,a.path=Ap(e.path||""),a.query=e.query):(e.path?(e.path[0]==="/"?a.path=Ap(e.path):((t.userinfo!==void 0||t.host!==void 0||t.port!==void 0)&&!t.path?a.path="/"+e.path:t.path?a.path=t.path.slice(0,t.path.lastIndexOf("/")+1)+e.path:a.path=e.path,a.path=Ap(a.path)),a.query=e.query):(a.path=t.path,e.query!==void 0?a.query=e.query:a.query=t.query),a.userinfo=t.userinfo,a.host=t.host,a.port=t.port),a.scheme=t.scheme),a.fragment=e.fragment,a}function FR(t,e,r){return typeof t=="string"?(t=unescape(t),t=dn(Au(Mn(t,r),!0),{...r,skipEscape:!0})):typeof t=="object"&&(t=dn(Au(t,!0),{...r,skipEscape:!0})),typeof e=="string"?(e=unescape(e),e=dn(Au(Mn(e,r),!0),{...r,skipEscape:!0})):typeof e=="object"&&(e=dn(Au(e,!0),{...r,skipEscape:!0})),t.toLowerCase()===e.toLowerCase()}function dn(t,e){let r={host:t.host,scheme:t.scheme,userinfo:t.userinfo,port:t.port,path:t.path,query:t.query,nid:t.nid,nss:t.nss,uuid:t.uuid,fragment:t.fragment,reference:t.reference,resourceName:t.resourceName,secure:t.secure,error:""},n=Object.assign({},e),a=[],i=iy(n.scheme||r.scheme);i&&i.serialize&&i.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=unescape(r.path):(r.path=escape(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&a.push(r.scheme,":");let o=UR(r);if(o!==void 0&&(n.reference!=="suffix"&&a.push("//"),a.push(o),r.path&&r.path[0]!=="/"&&a.push("/")),r.path!==void 0){let s=r.path;!n.absolutePath&&(!i||!i.absolutePath)&&(s=Ap(s)),o===void 0&&s[0]==="/"&&s[1]==="/"&&(s="/%2F"+s.slice(2)),a.push(s)}return r.query!==void 0&&a.push("?",r.query),r.fragment!==void 0&&a.push("#",r.fragment),a.join("")}var BR=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function Mn(t,e){let r=Object.assign({},e),n={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},a=!1;r.reference==="suffix"&&(r.scheme?t=r.scheme+":"+t:t="//"+t);let i=t.match(BR);if(i){if(n.scheme=i[1],n.userinfo=i[3],n.host=i[4],n.port=parseInt(i[5],10),n.path=i[6]||"",n.query=i[7],n.fragment=i[8],isNaN(n.port)&&(n.port=i[5]),n.host)if(VR(n.host)===!1){let d=CR(n.host);n.host=d.host.toLowerCase(),a=d.isIPV6}else a=!0;n.scheme===void 0&&n.userinfo===void 0&&n.host===void 0&&n.port===void 0&&n.query===void 0&&!n.path?n.reference="same-document":n.scheme===void 0?n.reference="relative":n.fragment===void 0?n.reference="absolute":n.reference="uri",r.reference&&r.reference!=="suffix"&&r.reference!==n.reference&&(n.error=n.error||"URI is not a "+r.reference+" reference.");let o=iy(r.scheme||n.scheme);if(!r.unicodeSupport&&(!o||!o.unicodeSupport)&&n.host&&(r.domainHost||o&&o.domainHost)&&a===!1&&LR(n.host))try{n.host=URL.domainToASCII(n.host.toLowerCase())}catch(s){n.error=n.error||"Host's domain name can not be converted to ASCII: "+s}(!o||o&&!o.skipNormalize)&&(t.indexOf("%")!==-1&&(n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),n.host!==void 0&&(n.host=unescape(n.host))),n.path&&(n.path=escape(unescape(n.path))),n.fragment&&(n.fragment=encodeURI(decodeURIComponent(n.fragment)))),o&&o.parse&&o.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return n}var U6={SCHEMES:MR,normalize:qR,resolve:ZR,resolveComponent:oy,equal:FR,serialize:dn,parse:Mn};ju.exports=U6;ju.exports.default=U6;ju.exports.fastUri=U6});var py=v(V6=>{"use strict";Object.defineProperty(V6,"__esModule",{value:!0});var dy=sy();dy.code='require("ajv/dist/runtime/uri").default';V6.default=dy});var q6=v(wt=>{"use strict";Object.defineProperty(wt,"__esModule",{value:!0});wt.CodeGen=wt.Name=wt.nil=wt.stringify=wt.str=wt._=wt.KeywordCxt=void 0;var WR=is();Object.defineProperty(wt,"KeywordCxt",{enumerable:!0,get:function(){return WR.KeywordCxt}});var ds=Q();Object.defineProperty(wt,"_",{enumerable:!0,get:function(){return ds._}});Object.defineProperty(wt,"str",{enumerable:!0,get:function(){return ds.str}});Object.defineProperty(wt,"stringify",{enumerable:!0,get:function(){return ds.stringify}});Object.defineProperty(wt,"nil",{enumerable:!0,get:function(){return ds.nil}});Object.defineProperty(wt,"Name",{enumerable:!0,get:function(){return ds.Name}});Object.defineProperty(wt,"CodeGen",{enumerable:!0,get:function(){return ds.CodeGen}});var JR=Rp(),fy=os(),GR=f6(),jp=Dp(),HR=Q(),Cp=Np(),Cu=Pp(),M6=he(),ly=Hv(),KR=py(),hy=(t,e)=>new RegExp(t,e);hy.code="new RegExp";var XR=["removeAdditional","useDefaults","coerceTypes"],YR=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),QR={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},eD={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},cy=200;function tD(t){var e,r,n,a,i,o,s,d,p,l,c,u,m,f,g,y,b,S,E,T,k,Te,qe,M,q;let ae=t.strict,Pe=(e=t.code)===null||e===void 0?void 0:e.optimize,ct=Pe===!0||Pe===void 0?1:Pe||0,le=(n=(r=t.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:hy,Oe=(a=t.uriResolver)!==null&&a!==void 0?a:KR.default;return{strictSchema:(o=(i=t.strictSchema)!==null&&i!==void 0?i:ae)!==null&&o!==void 0?o:!0,strictNumbers:(d=(s=t.strictNumbers)!==null&&s!==void 0?s:ae)!==null&&d!==void 0?d:!0,strictTypes:(l=(p=t.strictTypes)!==null&&p!==void 0?p:ae)!==null&&l!==void 0?l:"log",strictTuples:(u=(c=t.strictTuples)!==null&&c!==void 0?c:ae)!==null&&u!==void 0?u:"log",strictRequired:(f=(m=t.strictRequired)!==null&&m!==void 0?m:ae)!==null&&f!==void 0?f:!1,code:t.code?{...t.code,optimize:ct,regExp:le}:{optimize:ct,regExp:le},loopRequired:(g=t.loopRequired)!==null&&g!==void 0?g:cy,loopEnum:(y=t.loopEnum)!==null&&y!==void 0?y:cy,meta:(b=t.meta)!==null&&b!==void 0?b:!0,messages:(S=t.messages)!==null&&S!==void 0?S:!0,inlineRefs:(E=t.inlineRefs)!==null&&E!==void 0?E:!0,schemaId:(T=t.schemaId)!==null&&T!==void 0?T:"$id",addUsedSchema:(k=t.addUsedSchema)!==null&&k!==void 0?k:!0,validateSchema:(Te=t.validateSchema)!==null&&Te!==void 0?Te:!0,validateFormats:(qe=t.validateFormats)!==null&&qe!==void 0?qe:!0,unicodeRegExp:(M=t.unicodeRegExp)!==null&&M!==void 0?M:!0,int32range:(q=t.int32range)!==null&&q!==void 0?q:!0,uriResolver:Oe}}var Up=class{constructor(e={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...tD(e)};let{es5:r,lines:n}=this.opts.code;this.scope=new HR.ValueScope({scope:{},prefixes:YR,es5:r,lines:n}),this.logger=sD(e.logger);let a=e.validateFormats;e.validateFormats=!1,this.RULES=(0,GR.getRules)(),uy.call(this,QR,e,"NOT SUPPORTED"),uy.call(this,eD,e,"DEPRECATED","warn"),this._metaOpts=iD.call(this),e.formats&&nD.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&aD.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),rD.call(this),e.validateFormats=a}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:r,schemaId:n}=this.opts,a=ly;n==="id"&&(a={...ly},a.id=a.$id,delete a.$id),r&&e&&this.addMetaSchema(a,a[n],!1)}defaultMeta(){let{meta:e,schemaId:r}=this.opts;return this.opts.defaultMeta=typeof e=="object"?e[r]||e:void 0}validate(e,r){let n;if(typeof e=="string"){if(n=this.getSchema(e),!n)throw new Error(`no schema with key or ref "${e}"`)}else n=this.compile(e);let a=n(r);return"$async"in n||(this.errors=n.errors),a}compile(e,r){let n=this._addSchema(e,r);return n.validate||this._compileSchemaEnv(n)}compileAsync(e,r){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:n}=this.opts;return a.call(this,e,r);async function a(l,c){await i.call(this,l.$schema);let u=this._addSchema(l,c);return u.validate||o.call(this,u)}async function i(l){l&&!this.getSchema(l)&&await a.call(this,{$ref:l},!0)}async function o(l){try{return this._compileSchemaEnv(l)}catch(c){if(!(c instanceof fy.default))throw c;return s.call(this,c),await d.call(this,c.missingSchema),o.call(this,l)}}function s({missingSchema:l,missingRef:c}){if(this.refs[l])throw new Error(`AnySchema ${l} is loaded but ${c} cannot be resolved`)}async function d(l){let c=await p.call(this,l);this.refs[l]||await i.call(this,c.$schema),this.refs[l]||this.addSchema(c,l,r)}async function p(l){let c=this._loading[l];if(c)return c;try{return await(this._loading[l]=n(l))}finally{delete this._loading[l]}}}addSchema(e,r,n,a=this.opts.validateSchema){if(Array.isArray(e)){for(let o of e)this.addSchema(o,void 0,n,a);return this}let i;if(typeof e=="object"){let{schemaId:o}=this.opts;if(i=e[o],i!==void 0&&typeof i!="string")throw new Error(`schema ${o} must be string`)}return r=(0,Cp.normalizeId)(r||i),this._checkUnique(r),this.schemas[r]=this._addSchema(e,n,r,a,!0),this}addMetaSchema(e,r,n=this.opts.validateSchema){return this.addSchema(e,r,!0,n),this}validateSchema(e,r){if(typeof e=="boolean")return!0;let n;if(n=e.$schema,n!==void 0&&typeof n!="string")throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let a=this.validate(n,e);if(!a&&r){let i="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(i);else throw new Error(i)}return a}getSchema(e){let r;for(;typeof(r=my.call(this,e))=="string";)e=r;if(r===void 0){let{schemaId:n}=this.opts,a=new jp.SchemaEnv({schema:{},schemaId:n});if(r=jp.resolveSchema.call(this,a,e),!r)return;this.refs[e]=r}return r.validate||this._compileSchemaEnv(r)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let r=my.call(this,e);return typeof r=="object"&&this._cache.delete(r.schema),delete this.schemas[e],delete this.refs[e],this}case"object":{let r=e;this._cache.delete(r);let n=e[this.opts.schemaId];return n&&(n=(0,Cp.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(let r of e)this.addKeyword(r);return this}addKeyword(e,r){let n;if(typeof e=="string")n=e,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=n);else if(typeof e=="object"&&r===void 0){if(r=e,n=r.keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(pD.call(this,n,r),!r)return(0,M6.eachItem)(n,i=>L6.call(this,i)),this;cD.call(this,r);let a={...r,type:(0,Cu.getJSONTypes)(r.type),schemaType:(0,Cu.getJSONTypes)(r.schemaType)};return(0,M6.eachItem)(n,a.type.length===0?i=>L6.call(this,i,a):i=>a.type.forEach(o=>L6.call(this,i,a,o))),this}getKeyword(e){let r=this.RULES.all[e];return typeof r=="object"?r.definition:!!r}removeKeyword(e){let{RULES:r}=this;delete r.keywords[e],delete r.all[e];for(let n of r.rules){let a=n.rules.findIndex(i=>i.keyword===e);a>=0&&n.rules.splice(a,1)}return this}addFormat(e,r){return typeof r=="string"&&(r=new RegExp(r)),this.formats[e]=r,this}errorsText(e=this.errors,{separator:r=", ",dataVar:n="data"}={}){return!e||e.length===0?"No errors":e.map(a=>`${n}${a.instancePath} ${a.message}`).reduce((a,i)=>a+r+i)}$dataMetaSchema(e,r){let n=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let a of r){let i=a.split("/").slice(1),o=e;for(let s of i)o=o[s];for(let s in n){let d=n[s];if(typeof d!="object")continue;let{$data:p}=d.definition,l=o[s];p&&l&&(o[s]=gy(l))}}return e}_removeAllSchemas(e,r){for(let n in e){let a=e[n];(!r||r.test(n))&&(typeof a=="string"?delete e[n]:a&&!a.meta&&(this._cache.delete(a.schema),delete e[n]))}}_addSchema(e,r,n,a=this.opts.validateSchema,i=this.opts.addUsedSchema){let o,{schemaId:s}=this.opts;if(typeof e=="object")o=e[s];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof e!="boolean")throw new Error("schema must be object or boolean")}let d=this._cache.get(e);if(d!==void 0)return d;n=(0,Cp.normalizeId)(o||n);let p=Cp.getSchemaRefs.call(this,e,n);return d=new jp.SchemaEnv({schema:e,schemaId:s,meta:r,baseId:n,localRefs:p}),this._cache.set(d.schema,d),i&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=d),a&&this.validateSchema(e,!0),d}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):jp.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){let r=this.opts;this.opts=this._metaOpts;try{jp.compileSchema.call(this,e)}finally{this.opts=r}}};Up.ValidationError=JR.default;Up.MissingRefError=fy.default;wt.default=Up;function uy(t,e,r,n="error"){for(let a in t){let i=a;i in e&&this.logger[n](`${r}: option ${a}. ${t[i]}`)}}function my(t){return t=(0,Cp.normalizeId)(t),this.schemas[t]||this.refs[t]}function rD(){let t=this.opts.schemas;if(t)if(Array.isArray(t))this.addSchema(t);else for(let e in t)this.addSchema(t[e],e)}function nD(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function aD(t){if(Array.isArray(t)){this.addVocabulary(t);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let e in t){let r=t[e];r.keyword||(r.keyword=e),this.addKeyword(r)}}function iD(){let t={...this.opts};for(let e of XR)delete t[e];return t}var oD={log(){},warn(){},error(){}};function sD(t){if(t===!1)return oD;if(t===void 0)return console;if(t.log&&t.warn&&t.error)return t;throw new Error("logger must implement log, warn and error methods")}var dD=/^[a-z_$][a-z0-9_$:-]*$/i;function pD(t,e){let{RULES:r}=this;if((0,M6.eachItem)(t,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!dD.test(n))throw new Error(`Keyword ${n} has invalid name`)}),!!e&&e.$data&&!("code"in e||"validate"in e))throw new Error('$data keyword must have "code" or "validate" function')}function L6(t,e,r){var n;let a=e?.post;if(r&&a)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:i}=this,o=a?i.post:i.rules.find(({type:d})=>d===r);if(o||(o={type:r,rules:[]},i.rules.push(o)),i.keywords[t]=!0,!e)return;let s={keyword:t,definition:{...e,type:(0,Cu.getJSONTypes)(e.type),schemaType:(0,Cu.getJSONTypes)(e.schemaType)}};e.before?lD.call(this,o,s,e.before):o.rules.push(s),i.all[t]=s,(n=e.implements)===null||n===void 0||n.forEach(d=>this.addKeyword(d))}function lD(t,e,r){let n=t.rules.findIndex(a=>a.keyword===r);n>=0?t.rules.splice(n,0,e):(t.rules.push(e),this.logger.warn(`rule ${r} is not defined`))}function cD(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=gy(e)),t.validateSchema=this.compile(e,!0))}var uD={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function gy(t){return{anyOf:[t,uD]}}});var vy=v(Z6=>{"use strict";Object.defineProperty(Z6,"__esModule",{value:!0});var mD={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};Z6.default=mD});var Lu=v(ki=>{"use strict";Object.defineProperty(ki,"__esModule",{value:!0});ki.callRef=ki.getValidate=void 0;var fD=os(),yy=kr(),er=Q(),ps=Sr(),_y=Dp(),Uu=he(),hD={keyword:"$ref",schemaType:"string",code(t){let{gen:e,schema:r,it:n}=t,{baseId:a,schemaEnv:i,validateName:o,opts:s,self:d}=n,{root:p}=i;if((r==="#"||r==="#/")&&a===p.baseId)return c();let l=_y.resolveRef.call(d,p,a,r);if(l===void 0)throw new fD.default(n.opts.uriResolver,a,r);if(l instanceof _y.SchemaEnv)return u(l);return m(l);function c(){if(i===p)return Vu(t,o,i,i.$async);let f=e.scopeValue("root",{ref:p});return Vu(t,(0,er._)`${f}.validate`,p,p.$async)}function u(f){let g=by(t,f);Vu(t,g,f,f.$async)}function m(f){let g=e.scopeValue("schema",s.code.source===!0?{ref:f,code:(0,er.stringify)(f)}:{ref:f}),y=e.name("valid"),b=t.subschema({schema:f,dataTypes:[],schemaPath:er.nil,topSchemaRef:g,errSchemaPath:r},y);t.mergeEvaluated(b),t.ok(y)}}};function by(t,e){let{gen:r}=t;return e.validate?r.scopeValue("validate",{ref:e.validate}):(0,er._)`${r.scopeValue("wrapper",{ref:e})}.validate`}ki.getValidate=by;function Vu(t,e,r,n){let{gen:a,it:i}=t,{allErrors:o,schemaEnv:s,opts:d}=i,p=d.passContext?ps.default.this:er.nil;n?l():c();function l(){if(!s.$async)throw new Error("async schema referenced by sync schema");let f=a.let("valid");a.try(()=>{a.code((0,er._)`await ${(0,yy.callValidateCode)(t,e,p)}`),m(e),o||a.assign(f,!0)},g=>{a.if((0,er._)`!(${g} instanceof ${i.ValidationError})`,()=>a.throw(g)),u(g),o||a.assign(f,!1)}),t.ok(f)}function c(){t.result((0,yy.callValidateCode)(t,e,p),()=>m(e),()=>u(e))}function u(f){let g=(0,er._)`${f}.errors`;a.assign(ps.default.vErrors,(0,er._)`${ps.default.vErrors} === null ? ${g} : ${ps.default.vErrors}.concat(${g})`),a.assign(ps.default.errors,(0,er._)`${ps.default.vErrors}.length`)}function m(f){var g;if(!i.opts.unevaluated)return;let y=(g=r?.validate)===null||g===void 0?void 0:g.evaluated;if(i.props!==!0)if(y&&!y.dynamicProps)y.props!==void 0&&(i.props=Uu.mergeEvaluated.props(a,y.props,i.props));else{let b=a.var("props",(0,er._)`${f}.evaluated.props`);i.props=Uu.mergeEvaluated.props(a,b,i.props,er.Name)}if(i.items!==!0)if(y&&!y.dynamicItems)y.items!==void 0&&(i.items=Uu.mergeEvaluated.items(a,y.items,i.items));else{let b=a.var("items",(0,er._)`${f}.evaluated.items`);i.items=Uu.mergeEvaluated.items(a,b,i.items,er.Name)}}}ki.callRef=Vu;ki.default=hD});var B6=v(F6=>{"use strict";Object.defineProperty(F6,"__esModule",{value:!0});var gD=vy(),vD=Lu(),yD=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",gD.default,vD.default];F6.default=yD});var wy=v(W6=>{"use strict";Object.defineProperty(W6,"__esModule",{value:!0});var Mu=Q(),ka=Mu.operators,qu={maximum:{okStr:"<=",ok:ka.LTE,fail:ka.GT},minimum:{okStr:">=",ok:ka.GTE,fail:ka.LT},exclusiveMaximum:{okStr:"<",ok:ka.LT,fail:ka.GTE},exclusiveMinimum:{okStr:">",ok:ka.GT,fail:ka.LTE}},_D={message:({keyword:t,schemaCode:e})=>(0,Mu.str)`must be ${qu[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Mu._)`{comparison: ${qu[t].okStr}, limit: ${e}}`},bD={keyword:Object.keys(qu),type:"number",schemaType:"number",$data:!0,error:_D,code(t){let{keyword:e,data:r,schemaCode:n}=t;t.fail$data((0,Mu._)`${r} ${qu[e].fail} ${n} || isNaN(${r})`)}};W6.default=bD});var xy=v(J6=>{"use strict";Object.defineProperty(J6,"__esModule",{value:!0});var Vp=Q(),wD={message:({schemaCode:t})=>(0,Vp.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,Vp._)`{multipleOf: ${t}}`},xD={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:wD,code(t){let{gen:e,data:r,schemaCode:n,it:a}=t,i=a.opts.multipleOfPrecision,o=e.let("res"),s=i?(0,Vp._)`Math.abs(Math.round(${o}) - ${o}) > 1e-${i}`:(0,Vp._)`${o} !== parseInt(${o})`;t.fail$data((0,Vp._)`(${n} === 0 || (${o} = ${r}/${n}, ${s}))`)}};J6.default=xD});var Sy=v(G6=>{"use strict";Object.defineProperty(G6,"__esModule",{value:!0});function $y(t){let e=t.length,r=0,n=0,a;for(;n=55296&&a<=56319&&n{"use strict";Object.defineProperty(H6,"__esModule",{value:!0});var Ti=Q(),$D=he(),SD=Sy(),kD={message({keyword:t,schemaCode:e}){let r=t==="maxLength"?"more":"fewer";return(0,Ti.str)`must NOT have ${r} than ${e} characters`},params:({schemaCode:t})=>(0,Ti._)`{limit: ${t}}`},TD={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:kD,code(t){let{keyword:e,data:r,schemaCode:n,it:a}=t,i=e==="maxLength"?Ti.operators.GT:Ti.operators.LT,o=a.opts.unicode===!1?(0,Ti._)`${r}.length`:(0,Ti._)`${(0,$D.useFunc)(t.gen,SD.default)}(${r})`;t.fail$data((0,Ti._)`${o} ${i} ${n}`)}};H6.default=TD});var Ty=v(K6=>{"use strict";Object.defineProperty(K6,"__esModule",{value:!0});var ED=kr(),Zu=Q(),ID={message:({schemaCode:t})=>(0,Zu.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,Zu._)`{pattern: ${t}}`},PD={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:ID,code(t){let{data:e,$data:r,schema:n,schemaCode:a,it:i}=t,o=i.opts.unicodeRegExp?"u":"",s=r?(0,Zu._)`(new RegExp(${a}, ${o}))`:(0,ED.usePattern)(t,n);t.fail$data((0,Zu._)`!${s}.test(${e})`)}};K6.default=PD});var Ey=v(X6=>{"use strict";Object.defineProperty(X6,"__esModule",{value:!0});var Lp=Q(),ND={message({keyword:t,schemaCode:e}){let r=t==="maxProperties"?"more":"fewer";return(0,Lp.str)`must NOT have ${r} than ${e} properties`},params:({schemaCode:t})=>(0,Lp._)`{limit: ${t}}`},zD={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:ND,code(t){let{keyword:e,data:r,schemaCode:n}=t,a=e==="maxProperties"?Lp.operators.GT:Lp.operators.LT;t.fail$data((0,Lp._)`Object.keys(${r}).length ${a} ${n}`)}};X6.default=zD});var Iy=v(Y6=>{"use strict";Object.defineProperty(Y6,"__esModule",{value:!0});var Mp=kr(),qp=Q(),OD=he(),RD={message:({params:{missingProperty:t}})=>(0,qp.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,qp._)`{missingProperty: ${t}}`},DD={keyword:"required",type:"object",schemaType:"array",$data:!0,error:RD,code(t){let{gen:e,schema:r,schemaCode:n,data:a,$data:i,it:o}=t,{opts:s}=o;if(!i&&r.length===0)return;let d=r.length>=s.loopRequired;if(o.allErrors?p():l(),s.strictRequired){let m=t.parentSchema.properties,{definedProperties:f}=t.it;for(let g of r)if(m?.[g]===void 0&&!f.has(g)){let y=o.schemaEnv.baseId+o.errSchemaPath,b=`required property "${g}" is not defined at "${y}" (strictRequired)`;(0,OD.checkStrictMode)(o,b,o.opts.strictRequired)}}function p(){if(d||i)t.block$data(qp.nil,c);else for(let m of r)(0,Mp.checkReportMissingProp)(t,m)}function l(){let m=e.let("missing");if(d||i){let f=e.let("valid",!0);t.block$data(f,()=>u(m,f)),t.ok(f)}else e.if((0,Mp.checkMissingProp)(t,r,m)),(0,Mp.reportMissingProp)(t,m),e.else()}function c(){e.forOf("prop",n,m=>{t.setParams({missingProperty:m}),e.if((0,Mp.noPropertyInData)(e,a,m,s.ownProperties),()=>t.error())})}function u(m,f){t.setParams({missingProperty:m}),e.forOf(m,n,()=>{e.assign(f,(0,Mp.propertyInData)(e,a,m,s.ownProperties)),e.if((0,qp.not)(f),()=>{t.error(),e.break()})},qp.nil)}}};Y6.default=DD});var Py=v(Q6=>{"use strict";Object.defineProperty(Q6,"__esModule",{value:!0});var Zp=Q(),AD={message({keyword:t,schemaCode:e}){let r=t==="maxItems"?"more":"fewer";return(0,Zp.str)`must NOT have ${r} than ${e} items`},params:({schemaCode:t})=>(0,Zp._)`{limit: ${t}}`},jD={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:AD,code(t){let{keyword:e,data:r,schemaCode:n}=t,a=e==="maxItems"?Zp.operators.GT:Zp.operators.LT;t.fail$data((0,Zp._)`${r}.length ${a} ${n}`)}};Q6.default=jD});var Fu=v(eh=>{"use strict";Object.defineProperty(eh,"__esModule",{value:!0});var Ny=x6();Ny.code='require("ajv/dist/runtime/equal").default';eh.default=Ny});var zy=v(rh=>{"use strict";Object.defineProperty(rh,"__esModule",{value:!0});var th=Pp(),xt=Q(),CD=he(),UD=Fu(),VD={message:({params:{i:t,j:e}})=>(0,xt.str)`must NOT have duplicate items (items ## ${e} and ${t} are identical)`,params:({params:{i:t,j:e}})=>(0,xt._)`{i: ${t}, j: ${e}}`},LD={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:VD,code(t){let{gen:e,data:r,$data:n,schema:a,parentSchema:i,schemaCode:o,it:s}=t;if(!n&&!a)return;let d=e.let("valid"),p=i.items?(0,th.getSchemaTypes)(i.items):[];t.block$data(d,l,(0,xt._)`${o} === false`),t.ok(d);function l(){let f=e.let("i",(0,xt._)`${r}.length`),g=e.let("j");t.setParams({i:f,j:g}),e.assign(d,!0),e.if((0,xt._)`${f} > 1`,()=>(c()?u:m)(f,g))}function c(){return p.length>0&&!p.some(f=>f==="object"||f==="array")}function u(f,g){let y=e.name("item"),b=(0,th.checkDataTypes)(p,y,s.opts.strictNumbers,th.DataType.Wrong),S=e.const("indices",(0,xt._)`{}`);e.for((0,xt._)`;${f}--;`,()=>{e.let(y,(0,xt._)`${r}[${f}]`),e.if(b,(0,xt._)`continue`),p.length>1&&e.if((0,xt._)`typeof ${y} == "string"`,(0,xt._)`${y} += "_"`),e.if((0,xt._)`typeof ${S}[${y}] == "number"`,()=>{e.assign(g,(0,xt._)`${S}[${y}]`),t.error(),e.assign(d,!1).break()}).code((0,xt._)`${S}[${y}] = ${f}`)})}function m(f,g){let y=(0,CD.useFunc)(e,UD.default),b=e.name("outer");e.label(b).for((0,xt._)`;${f}--;`,()=>e.for((0,xt._)`${g} = ${f}; ${g}--;`,()=>e.if((0,xt._)`${y}(${r}[${f}], ${r}[${g}])`,()=>{t.error(),e.assign(d,!1).break(b)})))}}};rh.default=LD});var Oy=v(ah=>{"use strict";Object.defineProperty(ah,"__esModule",{value:!0});var nh=Q(),MD=he(),qD=Fu(),ZD={message:"must be equal to constant",params:({schemaCode:t})=>(0,nh._)`{allowedValue: ${t}}`},FD={keyword:"const",$data:!0,error:ZD,code(t){let{gen:e,data:r,$data:n,schemaCode:a,schema:i}=t;n||i&&typeof i=="object"?t.fail$data((0,nh._)`!${(0,MD.useFunc)(e,qD.default)}(${r}, ${a})`):t.fail((0,nh._)`${i} !== ${r}`)}};ah.default=FD});var Ry=v(ih=>{"use strict";Object.defineProperty(ih,"__esModule",{value:!0});var Fp=Q(),BD=he(),WD=Fu(),JD={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,Fp._)`{allowedValues: ${t}}`},GD={keyword:"enum",schemaType:"array",$data:!0,error:JD,code(t){let{gen:e,data:r,$data:n,schema:a,schemaCode:i,it:o}=t;if(!n&&a.length===0)throw new Error("enum must have non-empty array");let s=a.length>=o.opts.loopEnum,d,p=()=>d??(d=(0,BD.useFunc)(e,WD.default)),l;if(s||n)l=e.let("valid"),t.block$data(l,c);else{if(!Array.isArray(a))throw new Error("ajv implementation error");let m=e.const("vSchema",i);l=(0,Fp.or)(...a.map((f,g)=>u(m,g)))}t.pass(l);function c(){e.assign(l,!1),e.forOf("v",i,m=>e.if((0,Fp._)`${p()}(${r}, ${m})`,()=>e.assign(l,!0).break()))}function u(m,f){let g=a[f];return typeof g=="object"&&g!==null?(0,Fp._)`${p()}(${r}, ${m}[${f}])`:(0,Fp._)`${r} === ${g}`}}};ih.default=GD});var sh=v(oh=>{"use strict";Object.defineProperty(oh,"__esModule",{value:!0});var HD=wy(),KD=xy(),XD=ky(),YD=Ty(),QD=Ey(),eA=Iy(),tA=Py(),rA=zy(),nA=Oy(),aA=Ry(),iA=[HD.default,KD.default,XD.default,YD.default,QD.default,eA.default,tA.default,rA.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},nA.default,aA.default];oh.default=iA});var ph=v(Bp=>{"use strict";Object.defineProperty(Bp,"__esModule",{value:!0});Bp.validateAdditionalItems=void 0;var Ei=Q(),dh=he(),oA={message:({params:{len:t}})=>(0,Ei.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,Ei._)`{limit: ${t}}`},sA={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:oA,code(t){let{parentSchema:e,it:r}=t,{items:n}=e;if(!Array.isArray(n)){(0,dh.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}Dy(t,n)}};function Dy(t,e){let{gen:r,schema:n,data:a,keyword:i,it:o}=t;o.items=!0;let s=r.const("len",(0,Ei._)`${a}.length`);if(n===!1)t.setParams({len:e.length}),t.pass((0,Ei._)`${s} <= ${e.length}`);else if(typeof n=="object"&&!(0,dh.alwaysValidSchema)(o,n)){let p=r.var("valid",(0,Ei._)`${s} <= ${e.length}`);r.if((0,Ei.not)(p),()=>d(p)),t.ok(p)}function d(p){r.forRange("i",e.length,s,l=>{t.subschema({keyword:i,dataProp:l,dataPropType:dh.Type.Num},p),o.allErrors||r.if((0,Ei.not)(p),()=>r.break())})}}Bp.validateAdditionalItems=Dy;Bp.default=sA});var lh=v(Wp=>{"use strict";Object.defineProperty(Wp,"__esModule",{value:!0});Wp.validateTuple=void 0;var Ay=Q(),Bu=he(),dA=kr(),pA={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:r}=t;if(Array.isArray(e))return jy(t,"additionalItems",e);r.items=!0,!(0,Bu.alwaysValidSchema)(r,e)&&t.ok((0,dA.validateArray)(t))}};function jy(t,e,r=t.schema){let{gen:n,parentSchema:a,data:i,keyword:o,it:s}=t;l(a),s.opts.unevaluated&&r.length&&s.items!==!0&&(s.items=Bu.mergeEvaluated.items(n,r.length,s.items));let d=n.name("valid"),p=n.const("len",(0,Ay._)`${i}.length`);r.forEach((c,u)=>{(0,Bu.alwaysValidSchema)(s,c)||(n.if((0,Ay._)`${p} > ${u}`,()=>t.subschema({keyword:o,schemaProp:u,dataProp:u},d)),t.ok(d))});function l(c){let{opts:u,errSchemaPath:m}=s,f=r.length,g=f===c.minItems&&(f===c.maxItems||c[e]===!1);if(u.strictTuples&&!g){let y=`"${o}" is ${f}-tuple, but minItems or maxItems/${e} are not specified or different at path "${m}"`;(0,Bu.checkStrictMode)(s,y,u.strictTuples)}}}Wp.validateTuple=jy;Wp.default=pA});var Cy=v(ch=>{"use strict";Object.defineProperty(ch,"__esModule",{value:!0});var lA=lh(),cA={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,lA.validateTuple)(t,"items")};ch.default=cA});var Vy=v(uh=>{"use strict";Object.defineProperty(uh,"__esModule",{value:!0});var Uy=Q(),uA=he(),mA=kr(),fA=ph(),hA={message:({params:{len:t}})=>(0,Uy.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,Uy._)`{limit: ${t}}`},gA={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:hA,code(t){let{schema:e,parentSchema:r,it:n}=t,{prefixItems:a}=r;n.items=!0,!(0,uA.alwaysValidSchema)(n,e)&&(a?(0,fA.validateAdditionalItems)(t,a):t.ok((0,mA.validateArray)(t)))}};uh.default=gA});var Ly=v(mh=>{"use strict";Object.defineProperty(mh,"__esModule",{value:!0});var Er=Q(),Wu=he(),vA={message:({params:{min:t,max:e}})=>e===void 0?(0,Er.str)`must contain at least ${t} valid item(s)`:(0,Er.str)`must contain at least ${t} and no more than ${e} valid item(s)`,params:({params:{min:t,max:e}})=>e===void 0?(0,Er._)`{minContains: ${t}}`:(0,Er._)`{minContains: ${t}, maxContains: ${e}}`},yA={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:vA,code(t){let{gen:e,schema:r,parentSchema:n,data:a,it:i}=t,o,s,{minContains:d,maxContains:p}=n;i.opts.next?(o=d===void 0?1:d,s=p):o=1;let l=e.const("len",(0,Er._)`${a}.length`);if(t.setParams({min:o,max:s}),s===void 0&&o===0){(0,Wu.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&o>s){(0,Wu.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,Wu.alwaysValidSchema)(i,r)){let g=(0,Er._)`${l} >= ${o}`;s!==void 0&&(g=(0,Er._)`${g} && ${l} <= ${s}`),t.pass(g);return}i.items=!0;let c=e.name("valid");s===void 0&&o===1?m(c,()=>e.if(c,()=>e.break())):o===0?(e.let(c,!0),s!==void 0&&e.if((0,Er._)`${a}.length > 0`,u)):(e.let(c,!1),u()),t.result(c,()=>t.reset());function u(){let g=e.name("_valid"),y=e.let("count",0);m(g,()=>e.if(g,()=>f(y)))}function m(g,y){e.forRange("i",0,l,b=>{t.subschema({keyword:"contains",dataProp:b,dataPropType:Wu.Type.Num,compositeRule:!0},g),y()})}function f(g){e.code((0,Er._)`${g}++`),s===void 0?e.if((0,Er._)`${g} >= ${o}`,()=>e.assign(c,!0).break()):(e.if((0,Er._)`${g} > ${s}`,()=>e.assign(c,!1).break()),o===1?e.assign(c,!0):e.if((0,Er._)`${g} >= ${o}`,()=>e.assign(c,!0)))}}};mh.default=yA});var Ju=v(pn=>{"use strict";Object.defineProperty(pn,"__esModule",{value:!0});pn.validateSchemaDeps=pn.validatePropertyDeps=pn.error=void 0;var fh=Q(),_A=he(),Jp=kr();pn.error={message:({params:{property:t,depsCount:e,deps:r}})=>{let n=e===1?"property":"properties";return(0,fh.str)`must have ${n} ${r} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:r,missingProperty:n}})=>(0,fh._)`{property: ${t}, - missingProperty: ${n}, - depsCount: ${e}, - deps: ${r}}`};var bA={keyword:"dependencies",type:"object",schemaType:"object",error:pn.error,code(t){let[e,r]=wA(t);My(t,e),qy(t,r)}};function wA({schema:t}){let e={},r={};for(let n in t){if(n==="__proto__")continue;let a=Array.isArray(t[n])?e:r;a[n]=t[n]}return[e,r]}function My(t,e=t.schema){let{gen:r,data:n,it:a}=t;if(Object.keys(e).length===0)return;let i=r.let("missing");for(let o in e){let s=e[o];if(s.length===0)continue;let d=(0,Jp.propertyInData)(r,n,o,a.opts.ownProperties);t.setParams({property:o,depsCount:s.length,deps:s.join(", ")}),a.allErrors?r.if(d,()=>{for(let p of s)(0,Jp.checkReportMissingProp)(t,p)}):(r.if((0,fh._)`${d} && (${(0,Jp.checkMissingProp)(t,s,i)})`),(0,Jp.reportMissingProp)(t,i),r.else())}}pn.validatePropertyDeps=My;function qy(t,e=t.schema){let{gen:r,data:n,keyword:a,it:i}=t,o=r.name("valid");for(let s in e)(0,_A.alwaysValidSchema)(i,e[s])||(r.if((0,Jp.propertyInData)(r,n,s,i.opts.ownProperties),()=>{let d=t.subschema({keyword:a,schemaProp:s},o);t.mergeValidEvaluated(d,o)},()=>r.var(o,!0)),t.ok(o))}pn.validateSchemaDeps=qy;pn.default=bA});var Fy=v(hh=>{"use strict";Object.defineProperty(hh,"__esModule",{value:!0});var Zy=Q(),xA=he(),$A={message:"property name must be valid",params:({params:t})=>(0,Zy._)`{propertyName: ${t.propertyName}}`},SA={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:$A,code(t){let{gen:e,schema:r,data:n,it:a}=t;if((0,xA.alwaysValidSchema)(a,r))return;let i=e.name("valid");e.forIn("key",n,o=>{t.setParams({propertyName:o}),t.subschema({keyword:"propertyNames",data:o,dataTypes:["string"],propertyName:o,compositeRule:!0},i),e.if((0,Zy.not)(i),()=>{t.error(!0),a.allErrors||e.break()})}),t.ok(i)}};hh.default=SA});var vh=v(gh=>{"use strict";Object.defineProperty(gh,"__esModule",{value:!0});var Gu=kr(),Fr=Q(),kA=Sr(),Hu=he(),TA={message:"must NOT have additional properties",params:({params:t})=>(0,Fr._)`{additionalProperty: ${t.additionalProperty}}`},EA={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:TA,code(t){let{gen:e,schema:r,parentSchema:n,data:a,errsCount:i,it:o}=t;if(!i)throw new Error("ajv implementation error");let{allErrors:s,opts:d}=o;if(o.props=!0,d.removeAdditional!=="all"&&(0,Hu.alwaysValidSchema)(o,r))return;let p=(0,Gu.allSchemaProperties)(n.properties),l=(0,Gu.allSchemaProperties)(n.patternProperties);c(),t.ok((0,Fr._)`${i} === ${kA.default.errors}`);function c(){e.forIn("key",a,y=>{!p.length&&!l.length?f(y):e.if(u(y),()=>f(y))})}function u(y){let b;if(p.length>8){let S=(0,Hu.schemaRefOrVal)(o,n.properties,"properties");b=(0,Gu.isOwnProperty)(e,S,y)}else p.length?b=(0,Fr.or)(...p.map(S=>(0,Fr._)`${y} === ${S}`)):b=Fr.nil;return l.length&&(b=(0,Fr.or)(b,...l.map(S=>(0,Fr._)`${(0,Gu.usePattern)(t,S)}.test(${y})`))),(0,Fr.not)(b)}function m(y){e.code((0,Fr._)`delete ${a}[${y}]`)}function f(y){if(d.removeAdditional==="all"||d.removeAdditional&&r===!1){m(y);return}if(r===!1){t.setParams({additionalProperty:y}),t.error(),s||e.break();return}if(typeof r=="object"&&!(0,Hu.alwaysValidSchema)(o,r)){let b=e.name("valid");d.removeAdditional==="failing"?(g(y,b,!1),e.if((0,Fr.not)(b),()=>{t.reset(),m(y)})):(g(y,b),s||e.if((0,Fr.not)(b),()=>e.break()))}}function g(y,b,S){let E={keyword:"additionalProperties",dataProp:y,dataPropType:Hu.Type.Str};S===!1&&Object.assign(E,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(E,b)}}};gh.default=EA});var Jy=v(_h=>{"use strict";Object.defineProperty(_h,"__esModule",{value:!0});var IA=is(),By=kr(),yh=he(),Wy=vh(),PA={keyword:"properties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,parentSchema:n,data:a,it:i}=t;i.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&Wy.default.code(new IA.KeywordCxt(i,Wy.default,"additionalProperties"));let o=(0,By.allSchemaProperties)(r);for(let c of o)i.definedProperties.add(c);i.opts.unevaluated&&o.length&&i.props!==!0&&(i.props=yh.mergeEvaluated.props(e,(0,yh.toHash)(o),i.props));let s=o.filter(c=>!(0,yh.alwaysValidSchema)(i,r[c]));if(s.length===0)return;let d=e.name("valid");for(let c of s)p(c)?l(c):(e.if((0,By.propertyInData)(e,a,c,i.opts.ownProperties)),l(c),i.allErrors||e.else().var(d,!0),e.endIf()),t.it.definedProperties.add(c),t.ok(d);function p(c){return i.opts.useDefaults&&!i.compositeRule&&r[c].default!==void 0}function l(c){t.subschema({keyword:"properties",schemaProp:c,dataProp:c},d)}}};_h.default=PA});var Xy=v(bh=>{"use strict";Object.defineProperty(bh,"__esModule",{value:!0});var Gy=kr(),Ku=Q(),Hy=he(),Ky=he(),NA={keyword:"patternProperties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,data:n,parentSchema:a,it:i}=t,{opts:o}=i,s=(0,Gy.allSchemaProperties)(r),d=s.filter(g=>(0,Hy.alwaysValidSchema)(i,r[g]));if(s.length===0||d.length===s.length&&(!i.opts.unevaluated||i.props===!0))return;let p=o.strictSchema&&!o.allowMatchingProperties&&a.properties,l=e.name("valid");i.props!==!0&&!(i.props instanceof Ku.Name)&&(i.props=(0,Ky.evaluatedPropsToName)(e,i.props));let{props:c}=i;u();function u(){for(let g of s)p&&m(g),i.allErrors?f(g):(e.var(l,!0),f(g),e.if(l))}function m(g){for(let y in p)new RegExp(g).test(y)&&(0,Hy.checkStrictMode)(i,`property ${y} matches pattern ${g} (use allowMatchingProperties)`)}function f(g){e.forIn("key",n,y=>{e.if((0,Ku._)`${(0,Gy.usePattern)(t,g)}.test(${y})`,()=>{let b=d.includes(g);b||t.subschema({keyword:"patternProperties",schemaProp:g,dataProp:y,dataPropType:Ky.Type.Str},l),i.opts.unevaluated&&c!==!0?e.assign((0,Ku._)`${c}[${y}]`,!0):!b&&!i.allErrors&&e.if((0,Ku.not)(l),()=>e.break())})})}}};bh.default=NA});var Yy=v(wh=>{"use strict";Object.defineProperty(wh,"__esModule",{value:!0});var zA=he(),OA={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:r,it:n}=t;if((0,zA.alwaysValidSchema)(n,r)){t.fail();return}let a=e.name("valid");t.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},a),t.failResult(a,()=>t.reset(),()=>t.error())},error:{message:"must NOT be valid"}};wh.default=OA});var Qy=v(xh=>{"use strict";Object.defineProperty(xh,"__esModule",{value:!0});var RA=kr(),DA={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:RA.validateUnion,error:{message:"must match a schema in anyOf"}};xh.default=DA});var e_=v($h=>{"use strict";Object.defineProperty($h,"__esModule",{value:!0});var Xu=Q(),AA=he(),jA={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,Xu._)`{passingSchemas: ${t.passing}}`},CA={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:jA,code(t){let{gen:e,schema:r,parentSchema:n,it:a}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(a.opts.discriminator&&n.discriminator)return;let i=r,o=e.let("valid",!1),s=e.let("passing",null),d=e.name("_valid");t.setParams({passing:s}),e.block(p),t.result(o,()=>t.reset(),()=>t.error(!0));function p(){i.forEach((l,c)=>{let u;(0,AA.alwaysValidSchema)(a,l)?e.var(d,!0):u=t.subschema({keyword:"oneOf",schemaProp:c,compositeRule:!0},d),c>0&&e.if((0,Xu._)`${d} && ${o}`).assign(o,!1).assign(s,(0,Xu._)`[${s}, ${c}]`).else(),e.if(d,()=>{e.assign(o,!0),e.assign(s,c),u&&t.mergeEvaluated(u,Xu.Name)})})}}};$h.default=CA});var t_=v(Sh=>{"use strict";Object.defineProperty(Sh,"__esModule",{value:!0});var UA=he(),VA={keyword:"allOf",schemaType:"array",code(t){let{gen:e,schema:r,it:n}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");let a=e.name("valid");r.forEach((i,o)=>{if((0,UA.alwaysValidSchema)(n,i))return;let s=t.subschema({keyword:"allOf",schemaProp:o},a);t.ok(a),t.mergeEvaluated(s)})}};Sh.default=VA});var a_=v(kh=>{"use strict";Object.defineProperty(kh,"__esModule",{value:!0});var Yu=Q(),n_=he(),LA={message:({params:t})=>(0,Yu.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,Yu._)`{failingKeyword: ${t.ifClause}}`},MA={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:LA,code(t){let{gen:e,parentSchema:r,it:n}=t;r.then===void 0&&r.else===void 0&&(0,n_.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let a=r_(n,"then"),i=r_(n,"else");if(!a&&!i)return;let o=e.let("valid",!0),s=e.name("_valid");if(d(),t.reset(),a&&i){let l=e.let("ifClause");t.setParams({ifClause:l}),e.if(s,p("then",l),p("else",l))}else a?e.if(s,p("then")):e.if((0,Yu.not)(s),p("else"));t.pass(o,()=>t.error(!0));function d(){let l=t.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},s);t.mergeEvaluated(l)}function p(l,c){return()=>{let u=t.subschema({keyword:l},s);e.assign(o,s),t.mergeValidEvaluated(u,o),c?e.assign(c,(0,Yu._)`${l}`):t.setParams({ifClause:l})}}}};function r_(t,e){let r=t.schema[e];return r!==void 0&&!(0,n_.alwaysValidSchema)(t,r)}kh.default=MA});var i_=v(Th=>{"use strict";Object.defineProperty(Th,"__esModule",{value:!0});var qA=he(),ZA={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:r}){e.if===void 0&&(0,qA.checkStrictMode)(r,`"${t}" without "if" is ignored`)}};Th.default=ZA});var Ih=v(Eh=>{"use strict";Object.defineProperty(Eh,"__esModule",{value:!0});var FA=ph(),BA=Cy(),WA=lh(),JA=Vy(),GA=Ly(),HA=Ju(),KA=Fy(),XA=vh(),YA=Jy(),QA=Xy(),ej=Yy(),tj=Qy(),rj=e_(),nj=t_(),aj=a_(),ij=i_();function oj(t=!1){let e=[ej.default,tj.default,rj.default,nj.default,aj.default,ij.default,KA.default,XA.default,HA.default,YA.default,QA.default];return t?e.push(BA.default,JA.default):e.push(FA.default,WA.default),e.push(GA.default),e}Eh.default=oj});var o_=v(Ph=>{"use strict";Object.defineProperty(Ph,"__esModule",{value:!0});var it=Q(),sj={message:({schemaCode:t})=>(0,it.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,it._)`{format: ${t}}`},dj={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:sj,code(t,e){let{gen:r,data:n,$data:a,schema:i,schemaCode:o,it:s}=t,{opts:d,errSchemaPath:p,schemaEnv:l,self:c}=s;if(!d.validateFormats)return;a?u():m();function u(){let f=r.scopeValue("formats",{ref:c.formats,code:d.code.formats}),g=r.const("fDef",(0,it._)`${f}[${o}]`),y=r.let("fType"),b=r.let("format");r.if((0,it._)`typeof ${g} == "object" && !(${g} instanceof RegExp)`,()=>r.assign(y,(0,it._)`${g}.type || "string"`).assign(b,(0,it._)`${g}.validate`),()=>r.assign(y,(0,it._)`"string"`).assign(b,g)),t.fail$data((0,it.or)(S(),E()));function S(){return d.strictSchema===!1?it.nil:(0,it._)`${o} && !${b}`}function E(){let T=l.$async?(0,it._)`(${g}.async ? await ${b}(${n}) : ${b}(${n}))`:(0,it._)`${b}(${n})`,k=(0,it._)`(typeof ${b} == "function" ? ${T} : ${b}.test(${n}))`;return(0,it._)`${b} && ${b} !== true && ${y} === ${e} && !${k}`}}function m(){let f=c.formats[i];if(!f){S();return}if(f===!0)return;let[g,y,b]=E(f);g===e&&t.pass(T());function S(){if(d.strictSchema===!1){c.logger.warn(k());return}throw new Error(k());function k(){return`unknown format "${i}" ignored in schema at path "${p}"`}}function E(k){let Te=k instanceof RegExp?(0,it.regexpCode)(k):d.code.formats?(0,it._)`${d.code.formats}${(0,it.getProperty)(i)}`:void 0,qe=r.scopeValue("formats",{key:i,ref:k,code:Te});return typeof k=="object"&&!(k instanceof RegExp)?[k.type||"string",k.validate,(0,it._)`${qe}.validate`]:["string",k,qe]}function T(){if(typeof f=="object"&&!(f instanceof RegExp)&&f.async){if(!l.$async)throw new Error("async format in sync schema");return(0,it._)`await ${b}(${n})`}return typeof y=="function"?(0,it._)`${b}(${n})`:(0,it._)`${b}.test(${n})`}}}};Ph.default=dj});var zh=v(Nh=>{"use strict";Object.defineProperty(Nh,"__esModule",{value:!0});var pj=o_(),lj=[pj.default];Nh.default=lj});var Oh=v(ls=>{"use strict";Object.defineProperty(ls,"__esModule",{value:!0});ls.contentVocabulary=ls.metadataVocabulary=void 0;ls.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];ls.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var d_=v(Rh=>{"use strict";Object.defineProperty(Rh,"__esModule",{value:!0});var cj=B6(),uj=sh(),mj=Ih(),fj=zh(),s_=Oh(),hj=[cj.default,uj.default,(0,mj.default)(),fj.default,s_.metadataVocabulary,s_.contentVocabulary];Rh.default=hj});var l_=v(Qu=>{"use strict";Object.defineProperty(Qu,"__esModule",{value:!0});Qu.DiscrError=void 0;var p_;(function(t){t.Tag="tag",t.Mapping="mapping"})(p_||(Qu.DiscrError=p_={}))});var jh=v(Ah=>{"use strict";Object.defineProperty(Ah,"__esModule",{value:!0});var cs=Q(),Dh=l_(),c_=Dp(),gj=os(),vj=he(),yj={message:({params:{discrError:t,tagName:e}})=>t===Dh.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:t,tag:e,tagName:r}})=>(0,cs._)`{error: ${t}, tag: ${r}, tagValue: ${e}}`},_j={keyword:"discriminator",type:"object",schemaType:"object",error:yj,code(t){let{gen:e,data:r,schema:n,parentSchema:a,it:i}=t,{oneOf:o}=a;if(!i.opts.discriminator)throw new Error("discriminator: requires discriminator option");let s=n.propertyName;if(typeof s!="string")throw new Error("discriminator: requires propertyName");if(n.mapping)throw new Error("discriminator: mapping is not supported");if(!o)throw new Error("discriminator: requires oneOf keyword");let d=e.let("valid",!1),p=e.const("tag",(0,cs._)`${r}${(0,cs.getProperty)(s)}`);e.if((0,cs._)`typeof ${p} == "string"`,()=>l(),()=>t.error(!1,{discrError:Dh.DiscrError.Tag,tag:p,tagName:s})),t.ok(d);function l(){let m=u();e.if(!1);for(let f in m)e.elseIf((0,cs._)`${p} === ${f}`),e.assign(d,c(m[f]));e.else(),t.error(!1,{discrError:Dh.DiscrError.Mapping,tag:p,tagName:s}),e.endIf()}function c(m){let f=e.name("valid"),g=t.subschema({keyword:"oneOf",schemaProp:m},f);return t.mergeEvaluated(g,cs.Name),f}function u(){var m;let f={},g=b(a),y=!0;for(let T=0;T{bj.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var Uh=v((Ge,Ch)=>{"use strict";Object.defineProperty(Ge,"__esModule",{value:!0});Ge.MissingRefError=Ge.ValidationError=Ge.CodeGen=Ge.Name=Ge.nil=Ge.stringify=Ge.str=Ge._=Ge.KeywordCxt=Ge.Ajv=void 0;var wj=q6(),xj=d_(),$j=jh(),m_=u_(),Sj=["/properties"],e1="http://json-schema.org/draft-07/schema",us=class extends wj.default{_addVocabularies(){super._addVocabularies(),xj.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword($j.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(m_,Sj):m_;this.addMetaSchema(e,e1,!1),this.refs["http://json-schema.org/schema"]=e1}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(e1)?e1:void 0)}};Ge.Ajv=us;Ch.exports=Ge=us;Ch.exports.Ajv=us;Object.defineProperty(Ge,"__esModule",{value:!0});Ge.default=us;var kj=is();Object.defineProperty(Ge,"KeywordCxt",{enumerable:!0,get:function(){return kj.KeywordCxt}});var ms=Q();Object.defineProperty(Ge,"_",{enumerable:!0,get:function(){return ms._}});Object.defineProperty(Ge,"str",{enumerable:!0,get:function(){return ms.str}});Object.defineProperty(Ge,"stringify",{enumerable:!0,get:function(){return ms.stringify}});Object.defineProperty(Ge,"nil",{enumerable:!0,get:function(){return ms.nil}});Object.defineProperty(Ge,"Name",{enumerable:!0,get:function(){return ms.Name}});Object.defineProperty(Ge,"CodeGen",{enumerable:!0,get:function(){return ms.CodeGen}});var Tj=Rp();Object.defineProperty(Ge,"ValidationError",{enumerable:!0,get:function(){return Tj.default}});var Ej=os();Object.defineProperty(Ge,"MissingRefError",{enumerable:!0,get:function(){return Ej.default}})});var w_=v(cn=>{"use strict";Object.defineProperty(cn,"__esModule",{value:!0});cn.formatNames=cn.fastFormats=cn.fullFormats=void 0;function ln(t,e){return{validate:t,compare:e}}cn.fullFormats={date:ln(v_,qh),time:ln(Lh(!0),Zh),"date-time":ln(f_(!0),__),"iso-time":ln(Lh(),y_),"iso-date-time":ln(f_(),b_),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:Rj,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:Lj,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:Dj,int32:{type:"number",validate:Cj},int64:{type:"number",validate:Uj},float:{type:"number",validate:g_},double:{type:"number",validate:g_},password:!0,binary:!0};cn.fastFormats={...cn.fullFormats,date:ln(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,qh),time:ln(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,Zh),"date-time":ln(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,__),"iso-time":ln(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,y_),"iso-date-time":ln(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,b_),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};cn.formatNames=Object.keys(cn.fullFormats);function Ij(t){return t%4===0&&(t%100!==0||t%400===0)}var Pj=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,Nj=[0,31,28,31,30,31,30,31,31,30,31,30,31];function v_(t){let e=Pj.exec(t);if(!e)return!1;let r=+e[1],n=+e[2],a=+e[3];return n>=1&&n<=12&&a>=1&&a<=(n===2&&Ij(r)?29:Nj[n])}function qh(t,e){if(t&&e)return t>e?1:t23||l>59||t&&!s)return!1;if(a<=23&&i<=59&&o<60)return!0;let c=i-l*d,u=a-p*d-(c<0?1:0);return(u===23||u===-1)&&(c===59||c===-1)&&o<61}}function Zh(t,e){if(!(t&&e))return;let r=new Date("2020-01-01T"+t).valueOf(),n=new Date("2020-01-01T"+e).valueOf();if(r&&n)return r-n}function y_(t,e){if(!(t&&e))return;let r=Vh.exec(t),n=Vh.exec(e);if(r&&n)return t=r[1]+r[2]+r[3],e=n[1]+n[2]+n[3],t>e?1:t=Aj}function Uj(t){return Number.isInteger(t)}function g_(){return!0}var Vj=/[^\\]\\Z/;function Lj(t){if(Vj.test(t))return!1;try{return new RegExp(t),!0}catch{return!1}}});var x_=v(fs=>{"use strict";Object.defineProperty(fs,"__esModule",{value:!0});fs.formatLimitDefinition=void 0;var Mj=Uh(),Br=Q(),Ta=Br.operators,t1={formatMaximum:{okStr:"<=",ok:Ta.LTE,fail:Ta.GT},formatMinimum:{okStr:">=",ok:Ta.GTE,fail:Ta.LT},formatExclusiveMaximum:{okStr:"<",ok:Ta.LT,fail:Ta.GTE},formatExclusiveMinimum:{okStr:">",ok:Ta.GT,fail:Ta.LTE}},qj={message:({keyword:t,schemaCode:e})=>(0,Br.str)`should be ${t1[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,Br._)`{comparison: ${t1[t].okStr}, limit: ${e}}`};fs.formatLimitDefinition={keyword:Object.keys(t1),type:"string",schemaType:"string",$data:!0,error:qj,code(t){let{gen:e,data:r,schemaCode:n,keyword:a,it:i}=t,{opts:o,self:s}=i;if(!o.validateFormats)return;let d=new Mj.KeywordCxt(i,s.RULES.all.format.definition,"format");d.$data?p():l();function p(){let u=e.scopeValue("formats",{ref:s.formats,code:o.code.formats}),m=e.const("fmt",(0,Br._)`${u}[${d.schemaCode}]`);t.fail$data((0,Br.or)((0,Br._)`typeof ${m} != "object"`,(0,Br._)`${m} instanceof RegExp`,(0,Br._)`typeof ${m}.compare != "function"`,c(m)))}function l(){let u=d.schema,m=s.formats[u];if(!m||m===!0)return;if(typeof m!="object"||m instanceof RegExp||typeof m.compare!="function")throw new Error(`"${a}": format "${u}" does not define "compare" function`);let f=e.scopeValue("formats",{key:u,ref:m,code:o.code.formats?(0,Br._)`${o.code.formats}${(0,Br.getProperty)(u)}`:void 0});t.fail$data(c(f))}function c(u){return(0,Br._)`${u}.compare(${r}, ${n}) ${t1[a].fail} 0`}},dependencies:["format"]};var Zj=t=>(t.addKeyword(fs.formatLimitDefinition),t);fs.default=Zj});var Wh=v((Gp,k_)=>{"use strict";Object.defineProperty(Gp,"__esModule",{value:!0});var hs=w_(),Fj=x_(),Fh=Q(),$_=new Fh.Name("fullFormats"),Bj=new Fh.Name("fastFormats"),Bh=(t,e={keywords:!0})=>{if(Array.isArray(e))return S_(t,e,hs.fullFormats,$_),t;let[r,n]=e.mode==="fast"?[hs.fastFormats,Bj]:[hs.fullFormats,$_],a=e.formats||hs.formatNames;return S_(t,a,r,n),e.keywords&&(0,Fj.default)(t),t};Bh.get=(t,e="full")=>{let n=(e==="fast"?hs.fastFormats:hs.fullFormats)[t];if(!n)throw new Error(`Unknown format "${t}"`);return n};function S_(t,e,r,n){var a,i;(a=(i=t.opts.code).formats)!==null&&a!==void 0||(i.formats=(0,Fh._)`require("ajv-formats/dist/formats").${n}`);for(let o of e)t.addFormat(o,r[o])}k_.exports=Gp=Bh;Object.defineProperty(Gp,"__esModule",{value:!0});Gp.default=Bh});var j_=v((Rre,A_)=>{"use strict";var et={};A_.exports=et;function D_(t){return t<0?-1:1}function tC(t){return t%1===.5&&(t&1)===0?Math.floor(t):Math.round(t)}function Ea(t,e){e.unsigned||--t;let r=e.unsigned?0:-Math.pow(2,t),n=Math.pow(2,t)-1,a=e.moduloBitLength?Math.pow(2,e.moduloBitLength):Math.pow(2,t),i=e.moduloBitLength?Math.pow(2,e.moduloBitLength-1):Math.pow(2,t-1);return function(o,s){s||(s={});let d=+o;if(s.enforceRange){if(!Number.isFinite(d))throw new TypeError("Argument is not a finite number");if(d=D_(d)*Math.floor(Math.abs(d)),dn)throw new TypeError("Argument is not in byte range");return d}if(!isNaN(d)&&s.clamp)return d=tC(d),dn&&(d=n),d;if(!Number.isFinite(d)||d===0)return 0;if(d=D_(d)*Math.floor(Math.abs(d)),d=d%a,!e.unsigned&&d>=i)return d-a;if(e.unsigned){if(d<0)d+=a;else if(d===-0)return 0}return d}}et.void=function(){};et.boolean=function(t){return!!t};et.byte=Ea(8,{unsigned:!1});et.octet=Ea(8,{unsigned:!0});et.short=Ea(16,{unsigned:!1});et["unsigned short"]=Ea(16,{unsigned:!0});et.long=Ea(32,{unsigned:!1});et["unsigned long"]=Ea(32,{unsigned:!0});et["long long"]=Ea(32,{unsigned:!1,moduloBitLength:64});et["unsigned long long"]=Ea(32,{unsigned:!0,moduloBitLength:64});et.double=function(t){let e=+t;if(!Number.isFinite(e))throw new TypeError("Argument is not a finite floating-point value");return e};et["unrestricted double"]=function(t){let e=+t;if(isNaN(e))throw new TypeError("Argument is NaN");return e};et.float=et.double;et["unrestricted float"]=et["unrestricted double"];et.DOMString=function(t,e){return e||(e={}),e.treatNullAsEmptyString&&t===null?"":String(t)};et.ByteString=function(t,e){let r=String(t),n;for(let a=0;(n=r.codePointAt(a))!==void 0;++a)if(n>255)throw new TypeError("Argument is not a valid bytestring");return r};et.USVString=function(t){let e=String(t),r=e.length,n=[];for(let a=0;a57343)n.push(String.fromCodePoint(i));else if(56320<=i&&i<=57343)n.push(String.fromCodePoint(65533));else if(a===r-1)n.push(String.fromCodePoint(65533));else{let o=e.charCodeAt(a+1);if(56320<=o&&o<=57343){let s=i&1023,d=o&1023;n.push(String.fromCodePoint(65536+1024*s+d)),++a}else n.push(String.fromCodePoint(65533))}}return n.join("")};et.Date=function(t,e){if(!(t instanceof Date))throw new TypeError("Argument is not a Date object");if(!isNaN(t))return t};et.RegExp=function(t,e){return t instanceof RegExp||(t=new RegExp(t)),t}});var C_=v((Dre,Ia)=>{"use strict";Ia.exports.mixin=function(e,r){let n=Object.getOwnPropertyNames(r);for(let a=0;a{rC.exports=[[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"],[[47,47],"disallowed_STD3_valid"],[[48,57],"valid"],[[58,64],"disallowed_STD3_valid"],[[65,65],"mapped",[97]],[[66,66],"mapped",[98]],[[67,67],"mapped",[99]],[[68,68],"mapped",[100]],[[69,69],"mapped",[101]],[[70,70],"mapped",[102]],[[71,71],"mapped",[103]],[[72,72],"mapped",[104]],[[73,73],"mapped",[105]],[[74,74],"mapped",[106]],[[75,75],"mapped",[107]],[[76,76],"mapped",[108]],[[77,77],"mapped",[109]],[[78,78],"mapped",[110]],[[79,79],"mapped",[111]],[[80,80],"mapped",[112]],[[81,81],"mapped",[113]],[[82,82],"mapped",[114]],[[83,83],"mapped",[115]],[[84,84],"mapped",[116]],[[85,85],"mapped",[117]],[[86,86],"mapped",[118]],[[87,87],"mapped",[119]],[[88,88],"mapped",[120]],[[89,89],"mapped",[121]],[[90,90],"mapped",[122]],[[91,96],"disallowed_STD3_valid"],[[97,122],"valid"],[[123,127],"disallowed_STD3_valid"],[[128,159],"disallowed"],[[160,160],"disallowed_STD3_mapped",[32]],[[161,167],"valid",[],"NV8"],[[168,168],"disallowed_STD3_mapped",[32,776]],[[169,169],"valid",[],"NV8"],[[170,170],"mapped",[97]],[[171,172],"valid",[],"NV8"],[[173,173],"ignored"],[[174,174],"valid",[],"NV8"],[[175,175],"disallowed_STD3_mapped",[32,772]],[[176,177],"valid",[],"NV8"],[[178,178],"mapped",[50]],[[179,179],"mapped",[51]],[[180,180],"disallowed_STD3_mapped",[32,769]],[[181,181],"mapped",[956]],[[182,182],"valid",[],"NV8"],[[183,183],"valid"],[[184,184],"disallowed_STD3_mapped",[32,807]],[[185,185],"mapped",[49]],[[186,186],"mapped",[111]],[[187,187],"valid",[],"NV8"],[[188,188],"mapped",[49,8260,52]],[[189,189],"mapped",[49,8260,50]],[[190,190],"mapped",[51,8260,52]],[[191,191],"valid",[],"NV8"],[[192,192],"mapped",[224]],[[193,193],"mapped",[225]],[[194,194],"mapped",[226]],[[195,195],"mapped",[227]],[[196,196],"mapped",[228]],[[197,197],"mapped",[229]],[[198,198],"mapped",[230]],[[199,199],"mapped",[231]],[[200,200],"mapped",[232]],[[201,201],"mapped",[233]],[[202,202],"mapped",[234]],[[203,203],"mapped",[235]],[[204,204],"mapped",[236]],[[205,205],"mapped",[237]],[[206,206],"mapped",[238]],[[207,207],"mapped",[239]],[[208,208],"mapped",[240]],[[209,209],"mapped",[241]],[[210,210],"mapped",[242]],[[211,211],"mapped",[243]],[[212,212],"mapped",[244]],[[213,213],"mapped",[245]],[[214,214],"mapped",[246]],[[215,215],"valid",[],"NV8"],[[216,216],"mapped",[248]],[[217,217],"mapped",[249]],[[218,218],"mapped",[250]],[[219,219],"mapped",[251]],[[220,220],"mapped",[252]],[[221,221],"mapped",[253]],[[222,222],"mapped",[254]],[[223,223],"deviation",[115,115]],[[224,246],"valid"],[[247,247],"valid",[],"NV8"],[[248,255],"valid"],[[256,256],"mapped",[257]],[[257,257],"valid"],[[258,258],"mapped",[259]],[[259,259],"valid"],[[260,260],"mapped",[261]],[[261,261],"valid"],[[262,262],"mapped",[263]],[[263,263],"valid"],[[264,264],"mapped",[265]],[[265,265],"valid"],[[266,266],"mapped",[267]],[[267,267],"valid"],[[268,268],"mapped",[269]],[[269,269],"valid"],[[270,270],"mapped",[271]],[[271,271],"valid"],[[272,272],"mapped",[273]],[[273,273],"valid"],[[274,274],"mapped",[275]],[[275,275],"valid"],[[276,276],"mapped",[277]],[[277,277],"valid"],[[278,278],"mapped",[279]],[[279,279],"valid"],[[280,280],"mapped",[281]],[[281,281],"valid"],[[282,282],"mapped",[283]],[[283,283],"valid"],[[284,284],"mapped",[285]],[[285,285],"valid"],[[286,286],"mapped",[287]],[[287,287],"valid"],[[288,288],"mapped",[289]],[[289,289],"valid"],[[290,290],"mapped",[291]],[[291,291],"valid"],[[292,292],"mapped",[293]],[[293,293],"valid"],[[294,294],"mapped",[295]],[[295,295],"valid"],[[296,296],"mapped",[297]],[[297,297],"valid"],[[298,298],"mapped",[299]],[[299,299],"valid"],[[300,300],"mapped",[301]],[[301,301],"valid"],[[302,302],"mapped",[303]],[[303,303],"valid"],[[304,304],"mapped",[105,775]],[[305,305],"valid"],[[306,307],"mapped",[105,106]],[[308,308],"mapped",[309]],[[309,309],"valid"],[[310,310],"mapped",[311]],[[311,312],"valid"],[[313,313],"mapped",[314]],[[314,314],"valid"],[[315,315],"mapped",[316]],[[316,316],"valid"],[[317,317],"mapped",[318]],[[318,318],"valid"],[[319,320],"mapped",[108,183]],[[321,321],"mapped",[322]],[[322,322],"valid"],[[323,323],"mapped",[324]],[[324,324],"valid"],[[325,325],"mapped",[326]],[[326,326],"valid"],[[327,327],"mapped",[328]],[[328,328],"valid"],[[329,329],"mapped",[700,110]],[[330,330],"mapped",[331]],[[331,331],"valid"],[[332,332],"mapped",[333]],[[333,333],"valid"],[[334,334],"mapped",[335]],[[335,335],"valid"],[[336,336],"mapped",[337]],[[337,337],"valid"],[[338,338],"mapped",[339]],[[339,339],"valid"],[[340,340],"mapped",[341]],[[341,341],"valid"],[[342,342],"mapped",[343]],[[343,343],"valid"],[[344,344],"mapped",[345]],[[345,345],"valid"],[[346,346],"mapped",[347]],[[347,347],"valid"],[[348,348],"mapped",[349]],[[349,349],"valid"],[[350,350],"mapped",[351]],[[351,351],"valid"],[[352,352],"mapped",[353]],[[353,353],"valid"],[[354,354],"mapped",[355]],[[355,355],"valid"],[[356,356],"mapped",[357]],[[357,357],"valid"],[[358,358],"mapped",[359]],[[359,359],"valid"],[[360,360],"mapped",[361]],[[361,361],"valid"],[[362,362],"mapped",[363]],[[363,363],"valid"],[[364,364],"mapped",[365]],[[365,365],"valid"],[[366,366],"mapped",[367]],[[367,367],"valid"],[[368,368],"mapped",[369]],[[369,369],"valid"],[[370,370],"mapped",[371]],[[371,371],"valid"],[[372,372],"mapped",[373]],[[373,373],"valid"],[[374,374],"mapped",[375]],[[375,375],"valid"],[[376,376],"mapped",[255]],[[377,377],"mapped",[378]],[[378,378],"valid"],[[379,379],"mapped",[380]],[[380,380],"valid"],[[381,381],"mapped",[382]],[[382,382],"valid"],[[383,383],"mapped",[115]],[[384,384],"valid"],[[385,385],"mapped",[595]],[[386,386],"mapped",[387]],[[387,387],"valid"],[[388,388],"mapped",[389]],[[389,389],"valid"],[[390,390],"mapped",[596]],[[391,391],"mapped",[392]],[[392,392],"valid"],[[393,393],"mapped",[598]],[[394,394],"mapped",[599]],[[395,395],"mapped",[396]],[[396,397],"valid"],[[398,398],"mapped",[477]],[[399,399],"mapped",[601]],[[400,400],"mapped",[603]],[[401,401],"mapped",[402]],[[402,402],"valid"],[[403,403],"mapped",[608]],[[404,404],"mapped",[611]],[[405,405],"valid"],[[406,406],"mapped",[617]],[[407,407],"mapped",[616]],[[408,408],"mapped",[409]],[[409,411],"valid"],[[412,412],"mapped",[623]],[[413,413],"mapped",[626]],[[414,414],"valid"],[[415,415],"mapped",[629]],[[416,416],"mapped",[417]],[[417,417],"valid"],[[418,418],"mapped",[419]],[[419,419],"valid"],[[420,420],"mapped",[421]],[[421,421],"valid"],[[422,422],"mapped",[640]],[[423,423],"mapped",[424]],[[424,424],"valid"],[[425,425],"mapped",[643]],[[426,427],"valid"],[[428,428],"mapped",[429]],[[429,429],"valid"],[[430,430],"mapped",[648]],[[431,431],"mapped",[432]],[[432,432],"valid"],[[433,433],"mapped",[650]],[[434,434],"mapped",[651]],[[435,435],"mapped",[436]],[[436,436],"valid"],[[437,437],"mapped",[438]],[[438,438],"valid"],[[439,439],"mapped",[658]],[[440,440],"mapped",[441]],[[441,443],"valid"],[[444,444],"mapped",[445]],[[445,451],"valid"],[[452,454],"mapped",[100,382]],[[455,457],"mapped",[108,106]],[[458,460],"mapped",[110,106]],[[461,461],"mapped",[462]],[[462,462],"valid"],[[463,463],"mapped",[464]],[[464,464],"valid"],[[465,465],"mapped",[466]],[[466,466],"valid"],[[467,467],"mapped",[468]],[[468,468],"valid"],[[469,469],"mapped",[470]],[[470,470],"valid"],[[471,471],"mapped",[472]],[[472,472],"valid"],[[473,473],"mapped",[474]],[[474,474],"valid"],[[475,475],"mapped",[476]],[[476,477],"valid"],[[478,478],"mapped",[479]],[[479,479],"valid"],[[480,480],"mapped",[481]],[[481,481],"valid"],[[482,482],"mapped",[483]],[[483,483],"valid"],[[484,484],"mapped",[485]],[[485,485],"valid"],[[486,486],"mapped",[487]],[[487,487],"valid"],[[488,488],"mapped",[489]],[[489,489],"valid"],[[490,490],"mapped",[491]],[[491,491],"valid"],[[492,492],"mapped",[493]],[[493,493],"valid"],[[494,494],"mapped",[495]],[[495,496],"valid"],[[497,499],"mapped",[100,122]],[[500,500],"mapped",[501]],[[501,501],"valid"],[[502,502],"mapped",[405]],[[503,503],"mapped",[447]],[[504,504],"mapped",[505]],[[505,505],"valid"],[[506,506],"mapped",[507]],[[507,507],"valid"],[[508,508],"mapped",[509]],[[509,509],"valid"],[[510,510],"mapped",[511]],[[511,511],"valid"],[[512,512],"mapped",[513]],[[513,513],"valid"],[[514,514],"mapped",[515]],[[515,515],"valid"],[[516,516],"mapped",[517]],[[517,517],"valid"],[[518,518],"mapped",[519]],[[519,519],"valid"],[[520,520],"mapped",[521]],[[521,521],"valid"],[[522,522],"mapped",[523]],[[523,523],"valid"],[[524,524],"mapped",[525]],[[525,525],"valid"],[[526,526],"mapped",[527]],[[527,527],"valid"],[[528,528],"mapped",[529]],[[529,529],"valid"],[[530,530],"mapped",[531]],[[531,531],"valid"],[[532,532],"mapped",[533]],[[533,533],"valid"],[[534,534],"mapped",[535]],[[535,535],"valid"],[[536,536],"mapped",[537]],[[537,537],"valid"],[[538,538],"mapped",[539]],[[539,539],"valid"],[[540,540],"mapped",[541]],[[541,541],"valid"],[[542,542],"mapped",[543]],[[543,543],"valid"],[[544,544],"mapped",[414]],[[545,545],"valid"],[[546,546],"mapped",[547]],[[547,547],"valid"],[[548,548],"mapped",[549]],[[549,549],"valid"],[[550,550],"mapped",[551]],[[551,551],"valid"],[[552,552],"mapped",[553]],[[553,553],"valid"],[[554,554],"mapped",[555]],[[555,555],"valid"],[[556,556],"mapped",[557]],[[557,557],"valid"],[[558,558],"mapped",[559]],[[559,559],"valid"],[[560,560],"mapped",[561]],[[561,561],"valid"],[[562,562],"mapped",[563]],[[563,563],"valid"],[[564,566],"valid"],[[567,569],"valid"],[[570,570],"mapped",[11365]],[[571,571],"mapped",[572]],[[572,572],"valid"],[[573,573],"mapped",[410]],[[574,574],"mapped",[11366]],[[575,576],"valid"],[[577,577],"mapped",[578]],[[578,578],"valid"],[[579,579],"mapped",[384]],[[580,580],"mapped",[649]],[[581,581],"mapped",[652]],[[582,582],"mapped",[583]],[[583,583],"valid"],[[584,584],"mapped",[585]],[[585,585],"valid"],[[586,586],"mapped",[587]],[[587,587],"valid"],[[588,588],"mapped",[589]],[[589,589],"valid"],[[590,590],"mapped",[591]],[[591,591],"valid"],[[592,680],"valid"],[[681,685],"valid"],[[686,687],"valid"],[[688,688],"mapped",[104]],[[689,689],"mapped",[614]],[[690,690],"mapped",[106]],[[691,691],"mapped",[114]],[[692,692],"mapped",[633]],[[693,693],"mapped",[635]],[[694,694],"mapped",[641]],[[695,695],"mapped",[119]],[[696,696],"mapped",[121]],[[697,705],"valid"],[[706,709],"valid",[],"NV8"],[[710,721],"valid"],[[722,727],"valid",[],"NV8"],[[728,728],"disallowed_STD3_mapped",[32,774]],[[729,729],"disallowed_STD3_mapped",[32,775]],[[730,730],"disallowed_STD3_mapped",[32,778]],[[731,731],"disallowed_STD3_mapped",[32,808]],[[732,732],"disallowed_STD3_mapped",[32,771]],[[733,733],"disallowed_STD3_mapped",[32,779]],[[734,734],"valid",[],"NV8"],[[735,735],"valid",[],"NV8"],[[736,736],"mapped",[611]],[[737,737],"mapped",[108]],[[738,738],"mapped",[115]],[[739,739],"mapped",[120]],[[740,740],"mapped",[661]],[[741,745],"valid",[],"NV8"],[[746,747],"valid",[],"NV8"],[[748,748],"valid"],[[749,749],"valid",[],"NV8"],[[750,750],"valid"],[[751,767],"valid",[],"NV8"],[[768,831],"valid"],[[832,832],"mapped",[768]],[[833,833],"mapped",[769]],[[834,834],"valid"],[[835,835],"mapped",[787]],[[836,836],"mapped",[776,769]],[[837,837],"mapped",[953]],[[838,846],"valid"],[[847,847],"ignored"],[[848,855],"valid"],[[856,860],"valid"],[[861,863],"valid"],[[864,865],"valid"],[[866,866],"valid"],[[867,879],"valid"],[[880,880],"mapped",[881]],[[881,881],"valid"],[[882,882],"mapped",[883]],[[883,883],"valid"],[[884,884],"mapped",[697]],[[885,885],"valid"],[[886,886],"mapped",[887]],[[887,887],"valid"],[[888,889],"disallowed"],[[890,890],"disallowed_STD3_mapped",[32,953]],[[891,893],"valid"],[[894,894],"disallowed_STD3_mapped",[59]],[[895,895],"mapped",[1011]],[[896,899],"disallowed"],[[900,900],"disallowed_STD3_mapped",[32,769]],[[901,901],"disallowed_STD3_mapped",[32,776,769]],[[902,902],"mapped",[940]],[[903,903],"mapped",[183]],[[904,904],"mapped",[941]],[[905,905],"mapped",[942]],[[906,906],"mapped",[943]],[[907,907],"disallowed"],[[908,908],"mapped",[972]],[[909,909],"disallowed"],[[910,910],"mapped",[973]],[[911,911],"mapped",[974]],[[912,912],"valid"],[[913,913],"mapped",[945]],[[914,914],"mapped",[946]],[[915,915],"mapped",[947]],[[916,916],"mapped",[948]],[[917,917],"mapped",[949]],[[918,918],"mapped",[950]],[[919,919],"mapped",[951]],[[920,920],"mapped",[952]],[[921,921],"mapped",[953]],[[922,922],"mapped",[954]],[[923,923],"mapped",[955]],[[924,924],"mapped",[956]],[[925,925],"mapped",[957]],[[926,926],"mapped",[958]],[[927,927],"mapped",[959]],[[928,928],"mapped",[960]],[[929,929],"mapped",[961]],[[930,930],"disallowed"],[[931,931],"mapped",[963]],[[932,932],"mapped",[964]],[[933,933],"mapped",[965]],[[934,934],"mapped",[966]],[[935,935],"mapped",[967]],[[936,936],"mapped",[968]],[[937,937],"mapped",[969]],[[938,938],"mapped",[970]],[[939,939],"mapped",[971]],[[940,961],"valid"],[[962,962],"deviation",[963]],[[963,974],"valid"],[[975,975],"mapped",[983]],[[976,976],"mapped",[946]],[[977,977],"mapped",[952]],[[978,978],"mapped",[965]],[[979,979],"mapped",[973]],[[980,980],"mapped",[971]],[[981,981],"mapped",[966]],[[982,982],"mapped",[960]],[[983,983],"valid"],[[984,984],"mapped",[985]],[[985,985],"valid"],[[986,986],"mapped",[987]],[[987,987],"valid"],[[988,988],"mapped",[989]],[[989,989],"valid"],[[990,990],"mapped",[991]],[[991,991],"valid"],[[992,992],"mapped",[993]],[[993,993],"valid"],[[994,994],"mapped",[995]],[[995,995],"valid"],[[996,996],"mapped",[997]],[[997,997],"valid"],[[998,998],"mapped",[999]],[[999,999],"valid"],[[1e3,1e3],"mapped",[1001]],[[1001,1001],"valid"],[[1002,1002],"mapped",[1003]],[[1003,1003],"valid"],[[1004,1004],"mapped",[1005]],[[1005,1005],"valid"],[[1006,1006],"mapped",[1007]],[[1007,1007],"valid"],[[1008,1008],"mapped",[954]],[[1009,1009],"mapped",[961]],[[1010,1010],"mapped",[963]],[[1011,1011],"valid"],[[1012,1012],"mapped",[952]],[[1013,1013],"mapped",[949]],[[1014,1014],"valid",[],"NV8"],[[1015,1015],"mapped",[1016]],[[1016,1016],"valid"],[[1017,1017],"mapped",[963]],[[1018,1018],"mapped",[1019]],[[1019,1019],"valid"],[[1020,1020],"valid"],[[1021,1021],"mapped",[891]],[[1022,1022],"mapped",[892]],[[1023,1023],"mapped",[893]],[[1024,1024],"mapped",[1104]],[[1025,1025],"mapped",[1105]],[[1026,1026],"mapped",[1106]],[[1027,1027],"mapped",[1107]],[[1028,1028],"mapped",[1108]],[[1029,1029],"mapped",[1109]],[[1030,1030],"mapped",[1110]],[[1031,1031],"mapped",[1111]],[[1032,1032],"mapped",[1112]],[[1033,1033],"mapped",[1113]],[[1034,1034],"mapped",[1114]],[[1035,1035],"mapped",[1115]],[[1036,1036],"mapped",[1116]],[[1037,1037],"mapped",[1117]],[[1038,1038],"mapped",[1118]],[[1039,1039],"mapped",[1119]],[[1040,1040],"mapped",[1072]],[[1041,1041],"mapped",[1073]],[[1042,1042],"mapped",[1074]],[[1043,1043],"mapped",[1075]],[[1044,1044],"mapped",[1076]],[[1045,1045],"mapped",[1077]],[[1046,1046],"mapped",[1078]],[[1047,1047],"mapped",[1079]],[[1048,1048],"mapped",[1080]],[[1049,1049],"mapped",[1081]],[[1050,1050],"mapped",[1082]],[[1051,1051],"mapped",[1083]],[[1052,1052],"mapped",[1084]],[[1053,1053],"mapped",[1085]],[[1054,1054],"mapped",[1086]],[[1055,1055],"mapped",[1087]],[[1056,1056],"mapped",[1088]],[[1057,1057],"mapped",[1089]],[[1058,1058],"mapped",[1090]],[[1059,1059],"mapped",[1091]],[[1060,1060],"mapped",[1092]],[[1061,1061],"mapped",[1093]],[[1062,1062],"mapped",[1094]],[[1063,1063],"mapped",[1095]],[[1064,1064],"mapped",[1096]],[[1065,1065],"mapped",[1097]],[[1066,1066],"mapped",[1098]],[[1067,1067],"mapped",[1099]],[[1068,1068],"mapped",[1100]],[[1069,1069],"mapped",[1101]],[[1070,1070],"mapped",[1102]],[[1071,1071],"mapped",[1103]],[[1072,1103],"valid"],[[1104,1104],"valid"],[[1105,1116],"valid"],[[1117,1117],"valid"],[[1118,1119],"valid"],[[1120,1120],"mapped",[1121]],[[1121,1121],"valid"],[[1122,1122],"mapped",[1123]],[[1123,1123],"valid"],[[1124,1124],"mapped",[1125]],[[1125,1125],"valid"],[[1126,1126],"mapped",[1127]],[[1127,1127],"valid"],[[1128,1128],"mapped",[1129]],[[1129,1129],"valid"],[[1130,1130],"mapped",[1131]],[[1131,1131],"valid"],[[1132,1132],"mapped",[1133]],[[1133,1133],"valid"],[[1134,1134],"mapped",[1135]],[[1135,1135],"valid"],[[1136,1136],"mapped",[1137]],[[1137,1137],"valid"],[[1138,1138],"mapped",[1139]],[[1139,1139],"valid"],[[1140,1140],"mapped",[1141]],[[1141,1141],"valid"],[[1142,1142],"mapped",[1143]],[[1143,1143],"valid"],[[1144,1144],"mapped",[1145]],[[1145,1145],"valid"],[[1146,1146],"mapped",[1147]],[[1147,1147],"valid"],[[1148,1148],"mapped",[1149]],[[1149,1149],"valid"],[[1150,1150],"mapped",[1151]],[[1151,1151],"valid"],[[1152,1152],"mapped",[1153]],[[1153,1153],"valid"],[[1154,1154],"valid",[],"NV8"],[[1155,1158],"valid"],[[1159,1159],"valid"],[[1160,1161],"valid",[],"NV8"],[[1162,1162],"mapped",[1163]],[[1163,1163],"valid"],[[1164,1164],"mapped",[1165]],[[1165,1165],"valid"],[[1166,1166],"mapped",[1167]],[[1167,1167],"valid"],[[1168,1168],"mapped",[1169]],[[1169,1169],"valid"],[[1170,1170],"mapped",[1171]],[[1171,1171],"valid"],[[1172,1172],"mapped",[1173]],[[1173,1173],"valid"],[[1174,1174],"mapped",[1175]],[[1175,1175],"valid"],[[1176,1176],"mapped",[1177]],[[1177,1177],"valid"],[[1178,1178],"mapped",[1179]],[[1179,1179],"valid"],[[1180,1180],"mapped",[1181]],[[1181,1181],"valid"],[[1182,1182],"mapped",[1183]],[[1183,1183],"valid"],[[1184,1184],"mapped",[1185]],[[1185,1185],"valid"],[[1186,1186],"mapped",[1187]],[[1187,1187],"valid"],[[1188,1188],"mapped",[1189]],[[1189,1189],"valid"],[[1190,1190],"mapped",[1191]],[[1191,1191],"valid"],[[1192,1192],"mapped",[1193]],[[1193,1193],"valid"],[[1194,1194],"mapped",[1195]],[[1195,1195],"valid"],[[1196,1196],"mapped",[1197]],[[1197,1197],"valid"],[[1198,1198],"mapped",[1199]],[[1199,1199],"valid"],[[1200,1200],"mapped",[1201]],[[1201,1201],"valid"],[[1202,1202],"mapped",[1203]],[[1203,1203],"valid"],[[1204,1204],"mapped",[1205]],[[1205,1205],"valid"],[[1206,1206],"mapped",[1207]],[[1207,1207],"valid"],[[1208,1208],"mapped",[1209]],[[1209,1209],"valid"],[[1210,1210],"mapped",[1211]],[[1211,1211],"valid"],[[1212,1212],"mapped",[1213]],[[1213,1213],"valid"],[[1214,1214],"mapped",[1215]],[[1215,1215],"valid"],[[1216,1216],"disallowed"],[[1217,1217],"mapped",[1218]],[[1218,1218],"valid"],[[1219,1219],"mapped",[1220]],[[1220,1220],"valid"],[[1221,1221],"mapped",[1222]],[[1222,1222],"valid"],[[1223,1223],"mapped",[1224]],[[1224,1224],"valid"],[[1225,1225],"mapped",[1226]],[[1226,1226],"valid"],[[1227,1227],"mapped",[1228]],[[1228,1228],"valid"],[[1229,1229],"mapped",[1230]],[[1230,1230],"valid"],[[1231,1231],"valid"],[[1232,1232],"mapped",[1233]],[[1233,1233],"valid"],[[1234,1234],"mapped",[1235]],[[1235,1235],"valid"],[[1236,1236],"mapped",[1237]],[[1237,1237],"valid"],[[1238,1238],"mapped",[1239]],[[1239,1239],"valid"],[[1240,1240],"mapped",[1241]],[[1241,1241],"valid"],[[1242,1242],"mapped",[1243]],[[1243,1243],"valid"],[[1244,1244],"mapped",[1245]],[[1245,1245],"valid"],[[1246,1246],"mapped",[1247]],[[1247,1247],"valid"],[[1248,1248],"mapped",[1249]],[[1249,1249],"valid"],[[1250,1250],"mapped",[1251]],[[1251,1251],"valid"],[[1252,1252],"mapped",[1253]],[[1253,1253],"valid"],[[1254,1254],"mapped",[1255]],[[1255,1255],"valid"],[[1256,1256],"mapped",[1257]],[[1257,1257],"valid"],[[1258,1258],"mapped",[1259]],[[1259,1259],"valid"],[[1260,1260],"mapped",[1261]],[[1261,1261],"valid"],[[1262,1262],"mapped",[1263]],[[1263,1263],"valid"],[[1264,1264],"mapped",[1265]],[[1265,1265],"valid"],[[1266,1266],"mapped",[1267]],[[1267,1267],"valid"],[[1268,1268],"mapped",[1269]],[[1269,1269],"valid"],[[1270,1270],"mapped",[1271]],[[1271,1271],"valid"],[[1272,1272],"mapped",[1273]],[[1273,1273],"valid"],[[1274,1274],"mapped",[1275]],[[1275,1275],"valid"],[[1276,1276],"mapped",[1277]],[[1277,1277],"valid"],[[1278,1278],"mapped",[1279]],[[1279,1279],"valid"],[[1280,1280],"mapped",[1281]],[[1281,1281],"valid"],[[1282,1282],"mapped",[1283]],[[1283,1283],"valid"],[[1284,1284],"mapped",[1285]],[[1285,1285],"valid"],[[1286,1286],"mapped",[1287]],[[1287,1287],"valid"],[[1288,1288],"mapped",[1289]],[[1289,1289],"valid"],[[1290,1290],"mapped",[1291]],[[1291,1291],"valid"],[[1292,1292],"mapped",[1293]],[[1293,1293],"valid"],[[1294,1294],"mapped",[1295]],[[1295,1295],"valid"],[[1296,1296],"mapped",[1297]],[[1297,1297],"valid"],[[1298,1298],"mapped",[1299]],[[1299,1299],"valid"],[[1300,1300],"mapped",[1301]],[[1301,1301],"valid"],[[1302,1302],"mapped",[1303]],[[1303,1303],"valid"],[[1304,1304],"mapped",[1305]],[[1305,1305],"valid"],[[1306,1306],"mapped",[1307]],[[1307,1307],"valid"],[[1308,1308],"mapped",[1309]],[[1309,1309],"valid"],[[1310,1310],"mapped",[1311]],[[1311,1311],"valid"],[[1312,1312],"mapped",[1313]],[[1313,1313],"valid"],[[1314,1314],"mapped",[1315]],[[1315,1315],"valid"],[[1316,1316],"mapped",[1317]],[[1317,1317],"valid"],[[1318,1318],"mapped",[1319]],[[1319,1319],"valid"],[[1320,1320],"mapped",[1321]],[[1321,1321],"valid"],[[1322,1322],"mapped",[1323]],[[1323,1323],"valid"],[[1324,1324],"mapped",[1325]],[[1325,1325],"valid"],[[1326,1326],"mapped",[1327]],[[1327,1327],"valid"],[[1328,1328],"disallowed"],[[1329,1329],"mapped",[1377]],[[1330,1330],"mapped",[1378]],[[1331,1331],"mapped",[1379]],[[1332,1332],"mapped",[1380]],[[1333,1333],"mapped",[1381]],[[1334,1334],"mapped",[1382]],[[1335,1335],"mapped",[1383]],[[1336,1336],"mapped",[1384]],[[1337,1337],"mapped",[1385]],[[1338,1338],"mapped",[1386]],[[1339,1339],"mapped",[1387]],[[1340,1340],"mapped",[1388]],[[1341,1341],"mapped",[1389]],[[1342,1342],"mapped",[1390]],[[1343,1343],"mapped",[1391]],[[1344,1344],"mapped",[1392]],[[1345,1345],"mapped",[1393]],[[1346,1346],"mapped",[1394]],[[1347,1347],"mapped",[1395]],[[1348,1348],"mapped",[1396]],[[1349,1349],"mapped",[1397]],[[1350,1350],"mapped",[1398]],[[1351,1351],"mapped",[1399]],[[1352,1352],"mapped",[1400]],[[1353,1353],"mapped",[1401]],[[1354,1354],"mapped",[1402]],[[1355,1355],"mapped",[1403]],[[1356,1356],"mapped",[1404]],[[1357,1357],"mapped",[1405]],[[1358,1358],"mapped",[1406]],[[1359,1359],"mapped",[1407]],[[1360,1360],"mapped",[1408]],[[1361,1361],"mapped",[1409]],[[1362,1362],"mapped",[1410]],[[1363,1363],"mapped",[1411]],[[1364,1364],"mapped",[1412]],[[1365,1365],"mapped",[1413]],[[1366,1366],"mapped",[1414]],[[1367,1368],"disallowed"],[[1369,1369],"valid"],[[1370,1375],"valid",[],"NV8"],[[1376,1376],"disallowed"],[[1377,1414],"valid"],[[1415,1415],"mapped",[1381,1410]],[[1416,1416],"disallowed"],[[1417,1417],"valid",[],"NV8"],[[1418,1418],"valid",[],"NV8"],[[1419,1420],"disallowed"],[[1421,1422],"valid",[],"NV8"],[[1423,1423],"valid",[],"NV8"],[[1424,1424],"disallowed"],[[1425,1441],"valid"],[[1442,1442],"valid"],[[1443,1455],"valid"],[[1456,1465],"valid"],[[1466,1466],"valid"],[[1467,1469],"valid"],[[1470,1470],"valid",[],"NV8"],[[1471,1471],"valid"],[[1472,1472],"valid",[],"NV8"],[[1473,1474],"valid"],[[1475,1475],"valid",[],"NV8"],[[1476,1476],"valid"],[[1477,1477],"valid"],[[1478,1478],"valid",[],"NV8"],[[1479,1479],"valid"],[[1480,1487],"disallowed"],[[1488,1514],"valid"],[[1515,1519],"disallowed"],[[1520,1524],"valid"],[[1525,1535],"disallowed"],[[1536,1539],"disallowed"],[[1540,1540],"disallowed"],[[1541,1541],"disallowed"],[[1542,1546],"valid",[],"NV8"],[[1547,1547],"valid",[],"NV8"],[[1548,1548],"valid",[],"NV8"],[[1549,1551],"valid",[],"NV8"],[[1552,1557],"valid"],[[1558,1562],"valid"],[[1563,1563],"valid",[],"NV8"],[[1564,1564],"disallowed"],[[1565,1565],"disallowed"],[[1566,1566],"valid",[],"NV8"],[[1567,1567],"valid",[],"NV8"],[[1568,1568],"valid"],[[1569,1594],"valid"],[[1595,1599],"valid"],[[1600,1600],"valid",[],"NV8"],[[1601,1618],"valid"],[[1619,1621],"valid"],[[1622,1624],"valid"],[[1625,1630],"valid"],[[1631,1631],"valid"],[[1632,1641],"valid"],[[1642,1645],"valid",[],"NV8"],[[1646,1647],"valid"],[[1648,1652],"valid"],[[1653,1653],"mapped",[1575,1652]],[[1654,1654],"mapped",[1608,1652]],[[1655,1655],"mapped",[1735,1652]],[[1656,1656],"mapped",[1610,1652]],[[1657,1719],"valid"],[[1720,1721],"valid"],[[1722,1726],"valid"],[[1727,1727],"valid"],[[1728,1742],"valid"],[[1743,1743],"valid"],[[1744,1747],"valid"],[[1748,1748],"valid",[],"NV8"],[[1749,1756],"valid"],[[1757,1757],"disallowed"],[[1758,1758],"valid",[],"NV8"],[[1759,1768],"valid"],[[1769,1769],"valid",[],"NV8"],[[1770,1773],"valid"],[[1774,1775],"valid"],[[1776,1785],"valid"],[[1786,1790],"valid"],[[1791,1791],"valid"],[[1792,1805],"valid",[],"NV8"],[[1806,1806],"disallowed"],[[1807,1807],"disallowed"],[[1808,1836],"valid"],[[1837,1839],"valid"],[[1840,1866],"valid"],[[1867,1868],"disallowed"],[[1869,1871],"valid"],[[1872,1901],"valid"],[[1902,1919],"valid"],[[1920,1968],"valid"],[[1969,1969],"valid"],[[1970,1983],"disallowed"],[[1984,2037],"valid"],[[2038,2042],"valid",[],"NV8"],[[2043,2047],"disallowed"],[[2048,2093],"valid"],[[2094,2095],"disallowed"],[[2096,2110],"valid",[],"NV8"],[[2111,2111],"disallowed"],[[2112,2139],"valid"],[[2140,2141],"disallowed"],[[2142,2142],"valid",[],"NV8"],[[2143,2207],"disallowed"],[[2208,2208],"valid"],[[2209,2209],"valid"],[[2210,2220],"valid"],[[2221,2226],"valid"],[[2227,2228],"valid"],[[2229,2274],"disallowed"],[[2275,2275],"valid"],[[2276,2302],"valid"],[[2303,2303],"valid"],[[2304,2304],"valid"],[[2305,2307],"valid"],[[2308,2308],"valid"],[[2309,2361],"valid"],[[2362,2363],"valid"],[[2364,2381],"valid"],[[2382,2382],"valid"],[[2383,2383],"valid"],[[2384,2388],"valid"],[[2389,2389],"valid"],[[2390,2391],"valid"],[[2392,2392],"mapped",[2325,2364]],[[2393,2393],"mapped",[2326,2364]],[[2394,2394],"mapped",[2327,2364]],[[2395,2395],"mapped",[2332,2364]],[[2396,2396],"mapped",[2337,2364]],[[2397,2397],"mapped",[2338,2364]],[[2398,2398],"mapped",[2347,2364]],[[2399,2399],"mapped",[2351,2364]],[[2400,2403],"valid"],[[2404,2405],"valid",[],"NV8"],[[2406,2415],"valid"],[[2416,2416],"valid",[],"NV8"],[[2417,2418],"valid"],[[2419,2423],"valid"],[[2424,2424],"valid"],[[2425,2426],"valid"],[[2427,2428],"valid"],[[2429,2429],"valid"],[[2430,2431],"valid"],[[2432,2432],"valid"],[[2433,2435],"valid"],[[2436,2436],"disallowed"],[[2437,2444],"valid"],[[2445,2446],"disallowed"],[[2447,2448],"valid"],[[2449,2450],"disallowed"],[[2451,2472],"valid"],[[2473,2473],"disallowed"],[[2474,2480],"valid"],[[2481,2481],"disallowed"],[[2482,2482],"valid"],[[2483,2485],"disallowed"],[[2486,2489],"valid"],[[2490,2491],"disallowed"],[[2492,2492],"valid"],[[2493,2493],"valid"],[[2494,2500],"valid"],[[2501,2502],"disallowed"],[[2503,2504],"valid"],[[2505,2506],"disallowed"],[[2507,2509],"valid"],[[2510,2510],"valid"],[[2511,2518],"disallowed"],[[2519,2519],"valid"],[[2520,2523],"disallowed"],[[2524,2524],"mapped",[2465,2492]],[[2525,2525],"mapped",[2466,2492]],[[2526,2526],"disallowed"],[[2527,2527],"mapped",[2479,2492]],[[2528,2531],"valid"],[[2532,2533],"disallowed"],[[2534,2545],"valid"],[[2546,2554],"valid",[],"NV8"],[[2555,2555],"valid",[],"NV8"],[[2556,2560],"disallowed"],[[2561,2561],"valid"],[[2562,2562],"valid"],[[2563,2563],"valid"],[[2564,2564],"disallowed"],[[2565,2570],"valid"],[[2571,2574],"disallowed"],[[2575,2576],"valid"],[[2577,2578],"disallowed"],[[2579,2600],"valid"],[[2601,2601],"disallowed"],[[2602,2608],"valid"],[[2609,2609],"disallowed"],[[2610,2610],"valid"],[[2611,2611],"mapped",[2610,2620]],[[2612,2612],"disallowed"],[[2613,2613],"valid"],[[2614,2614],"mapped",[2616,2620]],[[2615,2615],"disallowed"],[[2616,2617],"valid"],[[2618,2619],"disallowed"],[[2620,2620],"valid"],[[2621,2621],"disallowed"],[[2622,2626],"valid"],[[2627,2630],"disallowed"],[[2631,2632],"valid"],[[2633,2634],"disallowed"],[[2635,2637],"valid"],[[2638,2640],"disallowed"],[[2641,2641],"valid"],[[2642,2648],"disallowed"],[[2649,2649],"mapped",[2582,2620]],[[2650,2650],"mapped",[2583,2620]],[[2651,2651],"mapped",[2588,2620]],[[2652,2652],"valid"],[[2653,2653],"disallowed"],[[2654,2654],"mapped",[2603,2620]],[[2655,2661],"disallowed"],[[2662,2676],"valid"],[[2677,2677],"valid"],[[2678,2688],"disallowed"],[[2689,2691],"valid"],[[2692,2692],"disallowed"],[[2693,2699],"valid"],[[2700,2700],"valid"],[[2701,2701],"valid"],[[2702,2702],"disallowed"],[[2703,2705],"valid"],[[2706,2706],"disallowed"],[[2707,2728],"valid"],[[2729,2729],"disallowed"],[[2730,2736],"valid"],[[2737,2737],"disallowed"],[[2738,2739],"valid"],[[2740,2740],"disallowed"],[[2741,2745],"valid"],[[2746,2747],"disallowed"],[[2748,2757],"valid"],[[2758,2758],"disallowed"],[[2759,2761],"valid"],[[2762,2762],"disallowed"],[[2763,2765],"valid"],[[2766,2767],"disallowed"],[[2768,2768],"valid"],[[2769,2783],"disallowed"],[[2784,2784],"valid"],[[2785,2787],"valid"],[[2788,2789],"disallowed"],[[2790,2799],"valid"],[[2800,2800],"valid",[],"NV8"],[[2801,2801],"valid",[],"NV8"],[[2802,2808],"disallowed"],[[2809,2809],"valid"],[[2810,2816],"disallowed"],[[2817,2819],"valid"],[[2820,2820],"disallowed"],[[2821,2828],"valid"],[[2829,2830],"disallowed"],[[2831,2832],"valid"],[[2833,2834],"disallowed"],[[2835,2856],"valid"],[[2857,2857],"disallowed"],[[2858,2864],"valid"],[[2865,2865],"disallowed"],[[2866,2867],"valid"],[[2868,2868],"disallowed"],[[2869,2869],"valid"],[[2870,2873],"valid"],[[2874,2875],"disallowed"],[[2876,2883],"valid"],[[2884,2884],"valid"],[[2885,2886],"disallowed"],[[2887,2888],"valid"],[[2889,2890],"disallowed"],[[2891,2893],"valid"],[[2894,2901],"disallowed"],[[2902,2903],"valid"],[[2904,2907],"disallowed"],[[2908,2908],"mapped",[2849,2876]],[[2909,2909],"mapped",[2850,2876]],[[2910,2910],"disallowed"],[[2911,2913],"valid"],[[2914,2915],"valid"],[[2916,2917],"disallowed"],[[2918,2927],"valid"],[[2928,2928],"valid",[],"NV8"],[[2929,2929],"valid"],[[2930,2935],"valid",[],"NV8"],[[2936,2945],"disallowed"],[[2946,2947],"valid"],[[2948,2948],"disallowed"],[[2949,2954],"valid"],[[2955,2957],"disallowed"],[[2958,2960],"valid"],[[2961,2961],"disallowed"],[[2962,2965],"valid"],[[2966,2968],"disallowed"],[[2969,2970],"valid"],[[2971,2971],"disallowed"],[[2972,2972],"valid"],[[2973,2973],"disallowed"],[[2974,2975],"valid"],[[2976,2978],"disallowed"],[[2979,2980],"valid"],[[2981,2983],"disallowed"],[[2984,2986],"valid"],[[2987,2989],"disallowed"],[[2990,2997],"valid"],[[2998,2998],"valid"],[[2999,3001],"valid"],[[3002,3005],"disallowed"],[[3006,3010],"valid"],[[3011,3013],"disallowed"],[[3014,3016],"valid"],[[3017,3017],"disallowed"],[[3018,3021],"valid"],[[3022,3023],"disallowed"],[[3024,3024],"valid"],[[3025,3030],"disallowed"],[[3031,3031],"valid"],[[3032,3045],"disallowed"],[[3046,3046],"valid"],[[3047,3055],"valid"],[[3056,3058],"valid",[],"NV8"],[[3059,3066],"valid",[],"NV8"],[[3067,3071],"disallowed"],[[3072,3072],"valid"],[[3073,3075],"valid"],[[3076,3076],"disallowed"],[[3077,3084],"valid"],[[3085,3085],"disallowed"],[[3086,3088],"valid"],[[3089,3089],"disallowed"],[[3090,3112],"valid"],[[3113,3113],"disallowed"],[[3114,3123],"valid"],[[3124,3124],"valid"],[[3125,3129],"valid"],[[3130,3132],"disallowed"],[[3133,3133],"valid"],[[3134,3140],"valid"],[[3141,3141],"disallowed"],[[3142,3144],"valid"],[[3145,3145],"disallowed"],[[3146,3149],"valid"],[[3150,3156],"disallowed"],[[3157,3158],"valid"],[[3159,3159],"disallowed"],[[3160,3161],"valid"],[[3162,3162],"valid"],[[3163,3167],"disallowed"],[[3168,3169],"valid"],[[3170,3171],"valid"],[[3172,3173],"disallowed"],[[3174,3183],"valid"],[[3184,3191],"disallowed"],[[3192,3199],"valid",[],"NV8"],[[3200,3200],"disallowed"],[[3201,3201],"valid"],[[3202,3203],"valid"],[[3204,3204],"disallowed"],[[3205,3212],"valid"],[[3213,3213],"disallowed"],[[3214,3216],"valid"],[[3217,3217],"disallowed"],[[3218,3240],"valid"],[[3241,3241],"disallowed"],[[3242,3251],"valid"],[[3252,3252],"disallowed"],[[3253,3257],"valid"],[[3258,3259],"disallowed"],[[3260,3261],"valid"],[[3262,3268],"valid"],[[3269,3269],"disallowed"],[[3270,3272],"valid"],[[3273,3273],"disallowed"],[[3274,3277],"valid"],[[3278,3284],"disallowed"],[[3285,3286],"valid"],[[3287,3293],"disallowed"],[[3294,3294],"valid"],[[3295,3295],"disallowed"],[[3296,3297],"valid"],[[3298,3299],"valid"],[[3300,3301],"disallowed"],[[3302,3311],"valid"],[[3312,3312],"disallowed"],[[3313,3314],"valid"],[[3315,3328],"disallowed"],[[3329,3329],"valid"],[[3330,3331],"valid"],[[3332,3332],"disallowed"],[[3333,3340],"valid"],[[3341,3341],"disallowed"],[[3342,3344],"valid"],[[3345,3345],"disallowed"],[[3346,3368],"valid"],[[3369,3369],"valid"],[[3370,3385],"valid"],[[3386,3386],"valid"],[[3387,3388],"disallowed"],[[3389,3389],"valid"],[[3390,3395],"valid"],[[3396,3396],"valid"],[[3397,3397],"disallowed"],[[3398,3400],"valid"],[[3401,3401],"disallowed"],[[3402,3405],"valid"],[[3406,3406],"valid"],[[3407,3414],"disallowed"],[[3415,3415],"valid"],[[3416,3422],"disallowed"],[[3423,3423],"valid"],[[3424,3425],"valid"],[[3426,3427],"valid"],[[3428,3429],"disallowed"],[[3430,3439],"valid"],[[3440,3445],"valid",[],"NV8"],[[3446,3448],"disallowed"],[[3449,3449],"valid",[],"NV8"],[[3450,3455],"valid"],[[3456,3457],"disallowed"],[[3458,3459],"valid"],[[3460,3460],"disallowed"],[[3461,3478],"valid"],[[3479,3481],"disallowed"],[[3482,3505],"valid"],[[3506,3506],"disallowed"],[[3507,3515],"valid"],[[3516,3516],"disallowed"],[[3517,3517],"valid"],[[3518,3519],"disallowed"],[[3520,3526],"valid"],[[3527,3529],"disallowed"],[[3530,3530],"valid"],[[3531,3534],"disallowed"],[[3535,3540],"valid"],[[3541,3541],"disallowed"],[[3542,3542],"valid"],[[3543,3543],"disallowed"],[[3544,3551],"valid"],[[3552,3557],"disallowed"],[[3558,3567],"valid"],[[3568,3569],"disallowed"],[[3570,3571],"valid"],[[3572,3572],"valid",[],"NV8"],[[3573,3584],"disallowed"],[[3585,3634],"valid"],[[3635,3635],"mapped",[3661,3634]],[[3636,3642],"valid"],[[3643,3646],"disallowed"],[[3647,3647],"valid",[],"NV8"],[[3648,3662],"valid"],[[3663,3663],"valid",[],"NV8"],[[3664,3673],"valid"],[[3674,3675],"valid",[],"NV8"],[[3676,3712],"disallowed"],[[3713,3714],"valid"],[[3715,3715],"disallowed"],[[3716,3716],"valid"],[[3717,3718],"disallowed"],[[3719,3720],"valid"],[[3721,3721],"disallowed"],[[3722,3722],"valid"],[[3723,3724],"disallowed"],[[3725,3725],"valid"],[[3726,3731],"disallowed"],[[3732,3735],"valid"],[[3736,3736],"disallowed"],[[3737,3743],"valid"],[[3744,3744],"disallowed"],[[3745,3747],"valid"],[[3748,3748],"disallowed"],[[3749,3749],"valid"],[[3750,3750],"disallowed"],[[3751,3751],"valid"],[[3752,3753],"disallowed"],[[3754,3755],"valid"],[[3756,3756],"disallowed"],[[3757,3762],"valid"],[[3763,3763],"mapped",[3789,3762]],[[3764,3769],"valid"],[[3770,3770],"disallowed"],[[3771,3773],"valid"],[[3774,3775],"disallowed"],[[3776,3780],"valid"],[[3781,3781],"disallowed"],[[3782,3782],"valid"],[[3783,3783],"disallowed"],[[3784,3789],"valid"],[[3790,3791],"disallowed"],[[3792,3801],"valid"],[[3802,3803],"disallowed"],[[3804,3804],"mapped",[3755,3737]],[[3805,3805],"mapped",[3755,3745]],[[3806,3807],"valid"],[[3808,3839],"disallowed"],[[3840,3840],"valid"],[[3841,3850],"valid",[],"NV8"],[[3851,3851],"valid"],[[3852,3852],"mapped",[3851]],[[3853,3863],"valid",[],"NV8"],[[3864,3865],"valid"],[[3866,3871],"valid",[],"NV8"],[[3872,3881],"valid"],[[3882,3892],"valid",[],"NV8"],[[3893,3893],"valid"],[[3894,3894],"valid",[],"NV8"],[[3895,3895],"valid"],[[3896,3896],"valid",[],"NV8"],[[3897,3897],"valid"],[[3898,3901],"valid",[],"NV8"],[[3902,3906],"valid"],[[3907,3907],"mapped",[3906,4023]],[[3908,3911],"valid"],[[3912,3912],"disallowed"],[[3913,3916],"valid"],[[3917,3917],"mapped",[3916,4023]],[[3918,3921],"valid"],[[3922,3922],"mapped",[3921,4023]],[[3923,3926],"valid"],[[3927,3927],"mapped",[3926,4023]],[[3928,3931],"valid"],[[3932,3932],"mapped",[3931,4023]],[[3933,3944],"valid"],[[3945,3945],"mapped",[3904,4021]],[[3946,3946],"valid"],[[3947,3948],"valid"],[[3949,3952],"disallowed"],[[3953,3954],"valid"],[[3955,3955],"mapped",[3953,3954]],[[3956,3956],"valid"],[[3957,3957],"mapped",[3953,3956]],[[3958,3958],"mapped",[4018,3968]],[[3959,3959],"mapped",[4018,3953,3968]],[[3960,3960],"mapped",[4019,3968]],[[3961,3961],"mapped",[4019,3953,3968]],[[3962,3968],"valid"],[[3969,3969],"mapped",[3953,3968]],[[3970,3972],"valid"],[[3973,3973],"valid",[],"NV8"],[[3974,3979],"valid"],[[3980,3983],"valid"],[[3984,3986],"valid"],[[3987,3987],"mapped",[3986,4023]],[[3988,3989],"valid"],[[3990,3990],"valid"],[[3991,3991],"valid"],[[3992,3992],"disallowed"],[[3993,3996],"valid"],[[3997,3997],"mapped",[3996,4023]],[[3998,4001],"valid"],[[4002,4002],"mapped",[4001,4023]],[[4003,4006],"valid"],[[4007,4007],"mapped",[4006,4023]],[[4008,4011],"valid"],[[4012,4012],"mapped",[4011,4023]],[[4013,4013],"valid"],[[4014,4016],"valid"],[[4017,4023],"valid"],[[4024,4024],"valid"],[[4025,4025],"mapped",[3984,4021]],[[4026,4028],"valid"],[[4029,4029],"disallowed"],[[4030,4037],"valid",[],"NV8"],[[4038,4038],"valid"],[[4039,4044],"valid",[],"NV8"],[[4045,4045],"disallowed"],[[4046,4046],"valid",[],"NV8"],[[4047,4047],"valid",[],"NV8"],[[4048,4049],"valid",[],"NV8"],[[4050,4052],"valid",[],"NV8"],[[4053,4056],"valid",[],"NV8"],[[4057,4058],"valid",[],"NV8"],[[4059,4095],"disallowed"],[[4096,4129],"valid"],[[4130,4130],"valid"],[[4131,4135],"valid"],[[4136,4136],"valid"],[[4137,4138],"valid"],[[4139,4139],"valid"],[[4140,4146],"valid"],[[4147,4149],"valid"],[[4150,4153],"valid"],[[4154,4159],"valid"],[[4160,4169],"valid"],[[4170,4175],"valid",[],"NV8"],[[4176,4185],"valid"],[[4186,4249],"valid"],[[4250,4253],"valid"],[[4254,4255],"valid",[],"NV8"],[[4256,4293],"disallowed"],[[4294,4294],"disallowed"],[[4295,4295],"mapped",[11559]],[[4296,4300],"disallowed"],[[4301,4301],"mapped",[11565]],[[4302,4303],"disallowed"],[[4304,4342],"valid"],[[4343,4344],"valid"],[[4345,4346],"valid"],[[4347,4347],"valid",[],"NV8"],[[4348,4348],"mapped",[4316]],[[4349,4351],"valid"],[[4352,4441],"valid",[],"NV8"],[[4442,4446],"valid",[],"NV8"],[[4447,4448],"disallowed"],[[4449,4514],"valid",[],"NV8"],[[4515,4519],"valid",[],"NV8"],[[4520,4601],"valid",[],"NV8"],[[4602,4607],"valid",[],"NV8"],[[4608,4614],"valid"],[[4615,4615],"valid"],[[4616,4678],"valid"],[[4679,4679],"valid"],[[4680,4680],"valid"],[[4681,4681],"disallowed"],[[4682,4685],"valid"],[[4686,4687],"disallowed"],[[4688,4694],"valid"],[[4695,4695],"disallowed"],[[4696,4696],"valid"],[[4697,4697],"disallowed"],[[4698,4701],"valid"],[[4702,4703],"disallowed"],[[4704,4742],"valid"],[[4743,4743],"valid"],[[4744,4744],"valid"],[[4745,4745],"disallowed"],[[4746,4749],"valid"],[[4750,4751],"disallowed"],[[4752,4782],"valid"],[[4783,4783],"valid"],[[4784,4784],"valid"],[[4785,4785],"disallowed"],[[4786,4789],"valid"],[[4790,4791],"disallowed"],[[4792,4798],"valid"],[[4799,4799],"disallowed"],[[4800,4800],"valid"],[[4801,4801],"disallowed"],[[4802,4805],"valid"],[[4806,4807],"disallowed"],[[4808,4814],"valid"],[[4815,4815],"valid"],[[4816,4822],"valid"],[[4823,4823],"disallowed"],[[4824,4846],"valid"],[[4847,4847],"valid"],[[4848,4878],"valid"],[[4879,4879],"valid"],[[4880,4880],"valid"],[[4881,4881],"disallowed"],[[4882,4885],"valid"],[[4886,4887],"disallowed"],[[4888,4894],"valid"],[[4895,4895],"valid"],[[4896,4934],"valid"],[[4935,4935],"valid"],[[4936,4954],"valid"],[[4955,4956],"disallowed"],[[4957,4958],"valid"],[[4959,4959],"valid"],[[4960,4960],"valid",[],"NV8"],[[4961,4988],"valid",[],"NV8"],[[4989,4991],"disallowed"],[[4992,5007],"valid"],[[5008,5017],"valid",[],"NV8"],[[5018,5023],"disallowed"],[[5024,5108],"valid"],[[5109,5109],"valid"],[[5110,5111],"disallowed"],[[5112,5112],"mapped",[5104]],[[5113,5113],"mapped",[5105]],[[5114,5114],"mapped",[5106]],[[5115,5115],"mapped",[5107]],[[5116,5116],"mapped",[5108]],[[5117,5117],"mapped",[5109]],[[5118,5119],"disallowed"],[[5120,5120],"valid",[],"NV8"],[[5121,5740],"valid"],[[5741,5742],"valid",[],"NV8"],[[5743,5750],"valid"],[[5751,5759],"valid"],[[5760,5760],"disallowed"],[[5761,5786],"valid"],[[5787,5788],"valid",[],"NV8"],[[5789,5791],"disallowed"],[[5792,5866],"valid"],[[5867,5872],"valid",[],"NV8"],[[5873,5880],"valid"],[[5881,5887],"disallowed"],[[5888,5900],"valid"],[[5901,5901],"disallowed"],[[5902,5908],"valid"],[[5909,5919],"disallowed"],[[5920,5940],"valid"],[[5941,5942],"valid",[],"NV8"],[[5943,5951],"disallowed"],[[5952,5971],"valid"],[[5972,5983],"disallowed"],[[5984,5996],"valid"],[[5997,5997],"disallowed"],[[5998,6e3],"valid"],[[6001,6001],"disallowed"],[[6002,6003],"valid"],[[6004,6015],"disallowed"],[[6016,6067],"valid"],[[6068,6069],"disallowed"],[[6070,6099],"valid"],[[6100,6102],"valid",[],"NV8"],[[6103,6103],"valid"],[[6104,6107],"valid",[],"NV8"],[[6108,6108],"valid"],[[6109,6109],"valid"],[[6110,6111],"disallowed"],[[6112,6121],"valid"],[[6122,6127],"disallowed"],[[6128,6137],"valid",[],"NV8"],[[6138,6143],"disallowed"],[[6144,6149],"valid",[],"NV8"],[[6150,6150],"disallowed"],[[6151,6154],"valid",[],"NV8"],[[6155,6157],"ignored"],[[6158,6158],"disallowed"],[[6159,6159],"disallowed"],[[6160,6169],"valid"],[[6170,6175],"disallowed"],[[6176,6263],"valid"],[[6264,6271],"disallowed"],[[6272,6313],"valid"],[[6314,6314],"valid"],[[6315,6319],"disallowed"],[[6320,6389],"valid"],[[6390,6399],"disallowed"],[[6400,6428],"valid"],[[6429,6430],"valid"],[[6431,6431],"disallowed"],[[6432,6443],"valid"],[[6444,6447],"disallowed"],[[6448,6459],"valid"],[[6460,6463],"disallowed"],[[6464,6464],"valid",[],"NV8"],[[6465,6467],"disallowed"],[[6468,6469],"valid",[],"NV8"],[[6470,6509],"valid"],[[6510,6511],"disallowed"],[[6512,6516],"valid"],[[6517,6527],"disallowed"],[[6528,6569],"valid"],[[6570,6571],"valid"],[[6572,6575],"disallowed"],[[6576,6601],"valid"],[[6602,6607],"disallowed"],[[6608,6617],"valid"],[[6618,6618],"valid",[],"XV8"],[[6619,6621],"disallowed"],[[6622,6623],"valid",[],"NV8"],[[6624,6655],"valid",[],"NV8"],[[6656,6683],"valid"],[[6684,6685],"disallowed"],[[6686,6687],"valid",[],"NV8"],[[6688,6750],"valid"],[[6751,6751],"disallowed"],[[6752,6780],"valid"],[[6781,6782],"disallowed"],[[6783,6793],"valid"],[[6794,6799],"disallowed"],[[6800,6809],"valid"],[[6810,6815],"disallowed"],[[6816,6822],"valid",[],"NV8"],[[6823,6823],"valid"],[[6824,6829],"valid",[],"NV8"],[[6830,6831],"disallowed"],[[6832,6845],"valid"],[[6846,6846],"valid",[],"NV8"],[[6847,6911],"disallowed"],[[6912,6987],"valid"],[[6988,6991],"disallowed"],[[6992,7001],"valid"],[[7002,7018],"valid",[],"NV8"],[[7019,7027],"valid"],[[7028,7036],"valid",[],"NV8"],[[7037,7039],"disallowed"],[[7040,7082],"valid"],[[7083,7085],"valid"],[[7086,7097],"valid"],[[7098,7103],"valid"],[[7104,7155],"valid"],[[7156,7163],"disallowed"],[[7164,7167],"valid",[],"NV8"],[[7168,7223],"valid"],[[7224,7226],"disallowed"],[[7227,7231],"valid",[],"NV8"],[[7232,7241],"valid"],[[7242,7244],"disallowed"],[[7245,7293],"valid"],[[7294,7295],"valid",[],"NV8"],[[7296,7359],"disallowed"],[[7360,7367],"valid",[],"NV8"],[[7368,7375],"disallowed"],[[7376,7378],"valid"],[[7379,7379],"valid",[],"NV8"],[[7380,7410],"valid"],[[7411,7414],"valid"],[[7415,7415],"disallowed"],[[7416,7417],"valid"],[[7418,7423],"disallowed"],[[7424,7467],"valid"],[[7468,7468],"mapped",[97]],[[7469,7469],"mapped",[230]],[[7470,7470],"mapped",[98]],[[7471,7471],"valid"],[[7472,7472],"mapped",[100]],[[7473,7473],"mapped",[101]],[[7474,7474],"mapped",[477]],[[7475,7475],"mapped",[103]],[[7476,7476],"mapped",[104]],[[7477,7477],"mapped",[105]],[[7478,7478],"mapped",[106]],[[7479,7479],"mapped",[107]],[[7480,7480],"mapped",[108]],[[7481,7481],"mapped",[109]],[[7482,7482],"mapped",[110]],[[7483,7483],"valid"],[[7484,7484],"mapped",[111]],[[7485,7485],"mapped",[547]],[[7486,7486],"mapped",[112]],[[7487,7487],"mapped",[114]],[[7488,7488],"mapped",[116]],[[7489,7489],"mapped",[117]],[[7490,7490],"mapped",[119]],[[7491,7491],"mapped",[97]],[[7492,7492],"mapped",[592]],[[7493,7493],"mapped",[593]],[[7494,7494],"mapped",[7426]],[[7495,7495],"mapped",[98]],[[7496,7496],"mapped",[100]],[[7497,7497],"mapped",[101]],[[7498,7498],"mapped",[601]],[[7499,7499],"mapped",[603]],[[7500,7500],"mapped",[604]],[[7501,7501],"mapped",[103]],[[7502,7502],"valid"],[[7503,7503],"mapped",[107]],[[7504,7504],"mapped",[109]],[[7505,7505],"mapped",[331]],[[7506,7506],"mapped",[111]],[[7507,7507],"mapped",[596]],[[7508,7508],"mapped",[7446]],[[7509,7509],"mapped",[7447]],[[7510,7510],"mapped",[112]],[[7511,7511],"mapped",[116]],[[7512,7512],"mapped",[117]],[[7513,7513],"mapped",[7453]],[[7514,7514],"mapped",[623]],[[7515,7515],"mapped",[118]],[[7516,7516],"mapped",[7461]],[[7517,7517],"mapped",[946]],[[7518,7518],"mapped",[947]],[[7519,7519],"mapped",[948]],[[7520,7520],"mapped",[966]],[[7521,7521],"mapped",[967]],[[7522,7522],"mapped",[105]],[[7523,7523],"mapped",[114]],[[7524,7524],"mapped",[117]],[[7525,7525],"mapped",[118]],[[7526,7526],"mapped",[946]],[[7527,7527],"mapped",[947]],[[7528,7528],"mapped",[961]],[[7529,7529],"mapped",[966]],[[7530,7530],"mapped",[967]],[[7531,7531],"valid"],[[7532,7543],"valid"],[[7544,7544],"mapped",[1085]],[[7545,7578],"valid"],[[7579,7579],"mapped",[594]],[[7580,7580],"mapped",[99]],[[7581,7581],"mapped",[597]],[[7582,7582],"mapped",[240]],[[7583,7583],"mapped",[604]],[[7584,7584],"mapped",[102]],[[7585,7585],"mapped",[607]],[[7586,7586],"mapped",[609]],[[7587,7587],"mapped",[613]],[[7588,7588],"mapped",[616]],[[7589,7589],"mapped",[617]],[[7590,7590],"mapped",[618]],[[7591,7591],"mapped",[7547]],[[7592,7592],"mapped",[669]],[[7593,7593],"mapped",[621]],[[7594,7594],"mapped",[7557]],[[7595,7595],"mapped",[671]],[[7596,7596],"mapped",[625]],[[7597,7597],"mapped",[624]],[[7598,7598],"mapped",[626]],[[7599,7599],"mapped",[627]],[[7600,7600],"mapped",[628]],[[7601,7601],"mapped",[629]],[[7602,7602],"mapped",[632]],[[7603,7603],"mapped",[642]],[[7604,7604],"mapped",[643]],[[7605,7605],"mapped",[427]],[[7606,7606],"mapped",[649]],[[7607,7607],"mapped",[650]],[[7608,7608],"mapped",[7452]],[[7609,7609],"mapped",[651]],[[7610,7610],"mapped",[652]],[[7611,7611],"mapped",[122]],[[7612,7612],"mapped",[656]],[[7613,7613],"mapped",[657]],[[7614,7614],"mapped",[658]],[[7615,7615],"mapped",[952]],[[7616,7619],"valid"],[[7620,7626],"valid"],[[7627,7654],"valid"],[[7655,7669],"valid"],[[7670,7675],"disallowed"],[[7676,7676],"valid"],[[7677,7677],"valid"],[[7678,7679],"valid"],[[7680,7680],"mapped",[7681]],[[7681,7681],"valid"],[[7682,7682],"mapped",[7683]],[[7683,7683],"valid"],[[7684,7684],"mapped",[7685]],[[7685,7685],"valid"],[[7686,7686],"mapped",[7687]],[[7687,7687],"valid"],[[7688,7688],"mapped",[7689]],[[7689,7689],"valid"],[[7690,7690],"mapped",[7691]],[[7691,7691],"valid"],[[7692,7692],"mapped",[7693]],[[7693,7693],"valid"],[[7694,7694],"mapped",[7695]],[[7695,7695],"valid"],[[7696,7696],"mapped",[7697]],[[7697,7697],"valid"],[[7698,7698],"mapped",[7699]],[[7699,7699],"valid"],[[7700,7700],"mapped",[7701]],[[7701,7701],"valid"],[[7702,7702],"mapped",[7703]],[[7703,7703],"valid"],[[7704,7704],"mapped",[7705]],[[7705,7705],"valid"],[[7706,7706],"mapped",[7707]],[[7707,7707],"valid"],[[7708,7708],"mapped",[7709]],[[7709,7709],"valid"],[[7710,7710],"mapped",[7711]],[[7711,7711],"valid"],[[7712,7712],"mapped",[7713]],[[7713,7713],"valid"],[[7714,7714],"mapped",[7715]],[[7715,7715],"valid"],[[7716,7716],"mapped",[7717]],[[7717,7717],"valid"],[[7718,7718],"mapped",[7719]],[[7719,7719],"valid"],[[7720,7720],"mapped",[7721]],[[7721,7721],"valid"],[[7722,7722],"mapped",[7723]],[[7723,7723],"valid"],[[7724,7724],"mapped",[7725]],[[7725,7725],"valid"],[[7726,7726],"mapped",[7727]],[[7727,7727],"valid"],[[7728,7728],"mapped",[7729]],[[7729,7729],"valid"],[[7730,7730],"mapped",[7731]],[[7731,7731],"valid"],[[7732,7732],"mapped",[7733]],[[7733,7733],"valid"],[[7734,7734],"mapped",[7735]],[[7735,7735],"valid"],[[7736,7736],"mapped",[7737]],[[7737,7737],"valid"],[[7738,7738],"mapped",[7739]],[[7739,7739],"valid"],[[7740,7740],"mapped",[7741]],[[7741,7741],"valid"],[[7742,7742],"mapped",[7743]],[[7743,7743],"valid"],[[7744,7744],"mapped",[7745]],[[7745,7745],"valid"],[[7746,7746],"mapped",[7747]],[[7747,7747],"valid"],[[7748,7748],"mapped",[7749]],[[7749,7749],"valid"],[[7750,7750],"mapped",[7751]],[[7751,7751],"valid"],[[7752,7752],"mapped",[7753]],[[7753,7753],"valid"],[[7754,7754],"mapped",[7755]],[[7755,7755],"valid"],[[7756,7756],"mapped",[7757]],[[7757,7757],"valid"],[[7758,7758],"mapped",[7759]],[[7759,7759],"valid"],[[7760,7760],"mapped",[7761]],[[7761,7761],"valid"],[[7762,7762],"mapped",[7763]],[[7763,7763],"valid"],[[7764,7764],"mapped",[7765]],[[7765,7765],"valid"],[[7766,7766],"mapped",[7767]],[[7767,7767],"valid"],[[7768,7768],"mapped",[7769]],[[7769,7769],"valid"],[[7770,7770],"mapped",[7771]],[[7771,7771],"valid"],[[7772,7772],"mapped",[7773]],[[7773,7773],"valid"],[[7774,7774],"mapped",[7775]],[[7775,7775],"valid"],[[7776,7776],"mapped",[7777]],[[7777,7777],"valid"],[[7778,7778],"mapped",[7779]],[[7779,7779],"valid"],[[7780,7780],"mapped",[7781]],[[7781,7781],"valid"],[[7782,7782],"mapped",[7783]],[[7783,7783],"valid"],[[7784,7784],"mapped",[7785]],[[7785,7785],"valid"],[[7786,7786],"mapped",[7787]],[[7787,7787],"valid"],[[7788,7788],"mapped",[7789]],[[7789,7789],"valid"],[[7790,7790],"mapped",[7791]],[[7791,7791],"valid"],[[7792,7792],"mapped",[7793]],[[7793,7793],"valid"],[[7794,7794],"mapped",[7795]],[[7795,7795],"valid"],[[7796,7796],"mapped",[7797]],[[7797,7797],"valid"],[[7798,7798],"mapped",[7799]],[[7799,7799],"valid"],[[7800,7800],"mapped",[7801]],[[7801,7801],"valid"],[[7802,7802],"mapped",[7803]],[[7803,7803],"valid"],[[7804,7804],"mapped",[7805]],[[7805,7805],"valid"],[[7806,7806],"mapped",[7807]],[[7807,7807],"valid"],[[7808,7808],"mapped",[7809]],[[7809,7809],"valid"],[[7810,7810],"mapped",[7811]],[[7811,7811],"valid"],[[7812,7812],"mapped",[7813]],[[7813,7813],"valid"],[[7814,7814],"mapped",[7815]],[[7815,7815],"valid"],[[7816,7816],"mapped",[7817]],[[7817,7817],"valid"],[[7818,7818],"mapped",[7819]],[[7819,7819],"valid"],[[7820,7820],"mapped",[7821]],[[7821,7821],"valid"],[[7822,7822],"mapped",[7823]],[[7823,7823],"valid"],[[7824,7824],"mapped",[7825]],[[7825,7825],"valid"],[[7826,7826],"mapped",[7827]],[[7827,7827],"valid"],[[7828,7828],"mapped",[7829]],[[7829,7833],"valid"],[[7834,7834],"mapped",[97,702]],[[7835,7835],"mapped",[7777]],[[7836,7837],"valid"],[[7838,7838],"mapped",[115,115]],[[7839,7839],"valid"],[[7840,7840],"mapped",[7841]],[[7841,7841],"valid"],[[7842,7842],"mapped",[7843]],[[7843,7843],"valid"],[[7844,7844],"mapped",[7845]],[[7845,7845],"valid"],[[7846,7846],"mapped",[7847]],[[7847,7847],"valid"],[[7848,7848],"mapped",[7849]],[[7849,7849],"valid"],[[7850,7850],"mapped",[7851]],[[7851,7851],"valid"],[[7852,7852],"mapped",[7853]],[[7853,7853],"valid"],[[7854,7854],"mapped",[7855]],[[7855,7855],"valid"],[[7856,7856],"mapped",[7857]],[[7857,7857],"valid"],[[7858,7858],"mapped",[7859]],[[7859,7859],"valid"],[[7860,7860],"mapped",[7861]],[[7861,7861],"valid"],[[7862,7862],"mapped",[7863]],[[7863,7863],"valid"],[[7864,7864],"mapped",[7865]],[[7865,7865],"valid"],[[7866,7866],"mapped",[7867]],[[7867,7867],"valid"],[[7868,7868],"mapped",[7869]],[[7869,7869],"valid"],[[7870,7870],"mapped",[7871]],[[7871,7871],"valid"],[[7872,7872],"mapped",[7873]],[[7873,7873],"valid"],[[7874,7874],"mapped",[7875]],[[7875,7875],"valid"],[[7876,7876],"mapped",[7877]],[[7877,7877],"valid"],[[7878,7878],"mapped",[7879]],[[7879,7879],"valid"],[[7880,7880],"mapped",[7881]],[[7881,7881],"valid"],[[7882,7882],"mapped",[7883]],[[7883,7883],"valid"],[[7884,7884],"mapped",[7885]],[[7885,7885],"valid"],[[7886,7886],"mapped",[7887]],[[7887,7887],"valid"],[[7888,7888],"mapped",[7889]],[[7889,7889],"valid"],[[7890,7890],"mapped",[7891]],[[7891,7891],"valid"],[[7892,7892],"mapped",[7893]],[[7893,7893],"valid"],[[7894,7894],"mapped",[7895]],[[7895,7895],"valid"],[[7896,7896],"mapped",[7897]],[[7897,7897],"valid"],[[7898,7898],"mapped",[7899]],[[7899,7899],"valid"],[[7900,7900],"mapped",[7901]],[[7901,7901],"valid"],[[7902,7902],"mapped",[7903]],[[7903,7903],"valid"],[[7904,7904],"mapped",[7905]],[[7905,7905],"valid"],[[7906,7906],"mapped",[7907]],[[7907,7907],"valid"],[[7908,7908],"mapped",[7909]],[[7909,7909],"valid"],[[7910,7910],"mapped",[7911]],[[7911,7911],"valid"],[[7912,7912],"mapped",[7913]],[[7913,7913],"valid"],[[7914,7914],"mapped",[7915]],[[7915,7915],"valid"],[[7916,7916],"mapped",[7917]],[[7917,7917],"valid"],[[7918,7918],"mapped",[7919]],[[7919,7919],"valid"],[[7920,7920],"mapped",[7921]],[[7921,7921],"valid"],[[7922,7922],"mapped",[7923]],[[7923,7923],"valid"],[[7924,7924],"mapped",[7925]],[[7925,7925],"valid"],[[7926,7926],"mapped",[7927]],[[7927,7927],"valid"],[[7928,7928],"mapped",[7929]],[[7929,7929],"valid"],[[7930,7930],"mapped",[7931]],[[7931,7931],"valid"],[[7932,7932],"mapped",[7933]],[[7933,7933],"valid"],[[7934,7934],"mapped",[7935]],[[7935,7935],"valid"],[[7936,7943],"valid"],[[7944,7944],"mapped",[7936]],[[7945,7945],"mapped",[7937]],[[7946,7946],"mapped",[7938]],[[7947,7947],"mapped",[7939]],[[7948,7948],"mapped",[7940]],[[7949,7949],"mapped",[7941]],[[7950,7950],"mapped",[7942]],[[7951,7951],"mapped",[7943]],[[7952,7957],"valid"],[[7958,7959],"disallowed"],[[7960,7960],"mapped",[7952]],[[7961,7961],"mapped",[7953]],[[7962,7962],"mapped",[7954]],[[7963,7963],"mapped",[7955]],[[7964,7964],"mapped",[7956]],[[7965,7965],"mapped",[7957]],[[7966,7967],"disallowed"],[[7968,7975],"valid"],[[7976,7976],"mapped",[7968]],[[7977,7977],"mapped",[7969]],[[7978,7978],"mapped",[7970]],[[7979,7979],"mapped",[7971]],[[7980,7980],"mapped",[7972]],[[7981,7981],"mapped",[7973]],[[7982,7982],"mapped",[7974]],[[7983,7983],"mapped",[7975]],[[7984,7991],"valid"],[[7992,7992],"mapped",[7984]],[[7993,7993],"mapped",[7985]],[[7994,7994],"mapped",[7986]],[[7995,7995],"mapped",[7987]],[[7996,7996],"mapped",[7988]],[[7997,7997],"mapped",[7989]],[[7998,7998],"mapped",[7990]],[[7999,7999],"mapped",[7991]],[[8e3,8005],"valid"],[[8006,8007],"disallowed"],[[8008,8008],"mapped",[8e3]],[[8009,8009],"mapped",[8001]],[[8010,8010],"mapped",[8002]],[[8011,8011],"mapped",[8003]],[[8012,8012],"mapped",[8004]],[[8013,8013],"mapped",[8005]],[[8014,8015],"disallowed"],[[8016,8023],"valid"],[[8024,8024],"disallowed"],[[8025,8025],"mapped",[8017]],[[8026,8026],"disallowed"],[[8027,8027],"mapped",[8019]],[[8028,8028],"disallowed"],[[8029,8029],"mapped",[8021]],[[8030,8030],"disallowed"],[[8031,8031],"mapped",[8023]],[[8032,8039],"valid"],[[8040,8040],"mapped",[8032]],[[8041,8041],"mapped",[8033]],[[8042,8042],"mapped",[8034]],[[8043,8043],"mapped",[8035]],[[8044,8044],"mapped",[8036]],[[8045,8045],"mapped",[8037]],[[8046,8046],"mapped",[8038]],[[8047,8047],"mapped",[8039]],[[8048,8048],"valid"],[[8049,8049],"mapped",[940]],[[8050,8050],"valid"],[[8051,8051],"mapped",[941]],[[8052,8052],"valid"],[[8053,8053],"mapped",[942]],[[8054,8054],"valid"],[[8055,8055],"mapped",[943]],[[8056,8056],"valid"],[[8057,8057],"mapped",[972]],[[8058,8058],"valid"],[[8059,8059],"mapped",[973]],[[8060,8060],"valid"],[[8061,8061],"mapped",[974]],[[8062,8063],"disallowed"],[[8064,8064],"mapped",[7936,953]],[[8065,8065],"mapped",[7937,953]],[[8066,8066],"mapped",[7938,953]],[[8067,8067],"mapped",[7939,953]],[[8068,8068],"mapped",[7940,953]],[[8069,8069],"mapped",[7941,953]],[[8070,8070],"mapped",[7942,953]],[[8071,8071],"mapped",[7943,953]],[[8072,8072],"mapped",[7936,953]],[[8073,8073],"mapped",[7937,953]],[[8074,8074],"mapped",[7938,953]],[[8075,8075],"mapped",[7939,953]],[[8076,8076],"mapped",[7940,953]],[[8077,8077],"mapped",[7941,953]],[[8078,8078],"mapped",[7942,953]],[[8079,8079],"mapped",[7943,953]],[[8080,8080],"mapped",[7968,953]],[[8081,8081],"mapped",[7969,953]],[[8082,8082],"mapped",[7970,953]],[[8083,8083],"mapped",[7971,953]],[[8084,8084],"mapped",[7972,953]],[[8085,8085],"mapped",[7973,953]],[[8086,8086],"mapped",[7974,953]],[[8087,8087],"mapped",[7975,953]],[[8088,8088],"mapped",[7968,953]],[[8089,8089],"mapped",[7969,953]],[[8090,8090],"mapped",[7970,953]],[[8091,8091],"mapped",[7971,953]],[[8092,8092],"mapped",[7972,953]],[[8093,8093],"mapped",[7973,953]],[[8094,8094],"mapped",[7974,953]],[[8095,8095],"mapped",[7975,953]],[[8096,8096],"mapped",[8032,953]],[[8097,8097],"mapped",[8033,953]],[[8098,8098],"mapped",[8034,953]],[[8099,8099],"mapped",[8035,953]],[[8100,8100],"mapped",[8036,953]],[[8101,8101],"mapped",[8037,953]],[[8102,8102],"mapped",[8038,953]],[[8103,8103],"mapped",[8039,953]],[[8104,8104],"mapped",[8032,953]],[[8105,8105],"mapped",[8033,953]],[[8106,8106],"mapped",[8034,953]],[[8107,8107],"mapped",[8035,953]],[[8108,8108],"mapped",[8036,953]],[[8109,8109],"mapped",[8037,953]],[[8110,8110],"mapped",[8038,953]],[[8111,8111],"mapped",[8039,953]],[[8112,8113],"valid"],[[8114,8114],"mapped",[8048,953]],[[8115,8115],"mapped",[945,953]],[[8116,8116],"mapped",[940,953]],[[8117,8117],"disallowed"],[[8118,8118],"valid"],[[8119,8119],"mapped",[8118,953]],[[8120,8120],"mapped",[8112]],[[8121,8121],"mapped",[8113]],[[8122,8122],"mapped",[8048]],[[8123,8123],"mapped",[940]],[[8124,8124],"mapped",[945,953]],[[8125,8125],"disallowed_STD3_mapped",[32,787]],[[8126,8126],"mapped",[953]],[[8127,8127],"disallowed_STD3_mapped",[32,787]],[[8128,8128],"disallowed_STD3_mapped",[32,834]],[[8129,8129],"disallowed_STD3_mapped",[32,776,834]],[[8130,8130],"mapped",[8052,953]],[[8131,8131],"mapped",[951,953]],[[8132,8132],"mapped",[942,953]],[[8133,8133],"disallowed"],[[8134,8134],"valid"],[[8135,8135],"mapped",[8134,953]],[[8136,8136],"mapped",[8050]],[[8137,8137],"mapped",[941]],[[8138,8138],"mapped",[8052]],[[8139,8139],"mapped",[942]],[[8140,8140],"mapped",[951,953]],[[8141,8141],"disallowed_STD3_mapped",[32,787,768]],[[8142,8142],"disallowed_STD3_mapped",[32,787,769]],[[8143,8143],"disallowed_STD3_mapped",[32,787,834]],[[8144,8146],"valid"],[[8147,8147],"mapped",[912]],[[8148,8149],"disallowed"],[[8150,8151],"valid"],[[8152,8152],"mapped",[8144]],[[8153,8153],"mapped",[8145]],[[8154,8154],"mapped",[8054]],[[8155,8155],"mapped",[943]],[[8156,8156],"disallowed"],[[8157,8157],"disallowed_STD3_mapped",[32,788,768]],[[8158,8158],"disallowed_STD3_mapped",[32,788,769]],[[8159,8159],"disallowed_STD3_mapped",[32,788,834]],[[8160,8162],"valid"],[[8163,8163],"mapped",[944]],[[8164,8167],"valid"],[[8168,8168],"mapped",[8160]],[[8169,8169],"mapped",[8161]],[[8170,8170],"mapped",[8058]],[[8171,8171],"mapped",[973]],[[8172,8172],"mapped",[8165]],[[8173,8173],"disallowed_STD3_mapped",[32,776,768]],[[8174,8174],"disallowed_STD3_mapped",[32,776,769]],[[8175,8175],"disallowed_STD3_mapped",[96]],[[8176,8177],"disallowed"],[[8178,8178],"mapped",[8060,953]],[[8179,8179],"mapped",[969,953]],[[8180,8180],"mapped",[974,953]],[[8181,8181],"disallowed"],[[8182,8182],"valid"],[[8183,8183],"mapped",[8182,953]],[[8184,8184],"mapped",[8056]],[[8185,8185],"mapped",[972]],[[8186,8186],"mapped",[8060]],[[8187,8187],"mapped",[974]],[[8188,8188],"mapped",[969,953]],[[8189,8189],"disallowed_STD3_mapped",[32,769]],[[8190,8190],"disallowed_STD3_mapped",[32,788]],[[8191,8191],"disallowed"],[[8192,8202],"disallowed_STD3_mapped",[32]],[[8203,8203],"ignored"],[[8204,8205],"deviation",[]],[[8206,8207],"disallowed"],[[8208,8208],"valid",[],"NV8"],[[8209,8209],"mapped",[8208]],[[8210,8214],"valid",[],"NV8"],[[8215,8215],"disallowed_STD3_mapped",[32,819]],[[8216,8227],"valid",[],"NV8"],[[8228,8230],"disallowed"],[[8231,8231],"valid",[],"NV8"],[[8232,8238],"disallowed"],[[8239,8239],"disallowed_STD3_mapped",[32]],[[8240,8242],"valid",[],"NV8"],[[8243,8243],"mapped",[8242,8242]],[[8244,8244],"mapped",[8242,8242,8242]],[[8245,8245],"valid",[],"NV8"],[[8246,8246],"mapped",[8245,8245]],[[8247,8247],"mapped",[8245,8245,8245]],[[8248,8251],"valid",[],"NV8"],[[8252,8252],"disallowed_STD3_mapped",[33,33]],[[8253,8253],"valid",[],"NV8"],[[8254,8254],"disallowed_STD3_mapped",[32,773]],[[8255,8262],"valid",[],"NV8"],[[8263,8263],"disallowed_STD3_mapped",[63,63]],[[8264,8264],"disallowed_STD3_mapped",[63,33]],[[8265,8265],"disallowed_STD3_mapped",[33,63]],[[8266,8269],"valid",[],"NV8"],[[8270,8274],"valid",[],"NV8"],[[8275,8276],"valid",[],"NV8"],[[8277,8278],"valid",[],"NV8"],[[8279,8279],"mapped",[8242,8242,8242,8242]],[[8280,8286],"valid",[],"NV8"],[[8287,8287],"disallowed_STD3_mapped",[32]],[[8288,8288],"ignored"],[[8289,8291],"disallowed"],[[8292,8292],"ignored"],[[8293,8293],"disallowed"],[[8294,8297],"disallowed"],[[8298,8303],"disallowed"],[[8304,8304],"mapped",[48]],[[8305,8305],"mapped",[105]],[[8306,8307],"disallowed"],[[8308,8308],"mapped",[52]],[[8309,8309],"mapped",[53]],[[8310,8310],"mapped",[54]],[[8311,8311],"mapped",[55]],[[8312,8312],"mapped",[56]],[[8313,8313],"mapped",[57]],[[8314,8314],"disallowed_STD3_mapped",[43]],[[8315,8315],"mapped",[8722]],[[8316,8316],"disallowed_STD3_mapped",[61]],[[8317,8317],"disallowed_STD3_mapped",[40]],[[8318,8318],"disallowed_STD3_mapped",[41]],[[8319,8319],"mapped",[110]],[[8320,8320],"mapped",[48]],[[8321,8321],"mapped",[49]],[[8322,8322],"mapped",[50]],[[8323,8323],"mapped",[51]],[[8324,8324],"mapped",[52]],[[8325,8325],"mapped",[53]],[[8326,8326],"mapped",[54]],[[8327,8327],"mapped",[55]],[[8328,8328],"mapped",[56]],[[8329,8329],"mapped",[57]],[[8330,8330],"disallowed_STD3_mapped",[43]],[[8331,8331],"mapped",[8722]],[[8332,8332],"disallowed_STD3_mapped",[61]],[[8333,8333],"disallowed_STD3_mapped",[40]],[[8334,8334],"disallowed_STD3_mapped",[41]],[[8335,8335],"disallowed"],[[8336,8336],"mapped",[97]],[[8337,8337],"mapped",[101]],[[8338,8338],"mapped",[111]],[[8339,8339],"mapped",[120]],[[8340,8340],"mapped",[601]],[[8341,8341],"mapped",[104]],[[8342,8342],"mapped",[107]],[[8343,8343],"mapped",[108]],[[8344,8344],"mapped",[109]],[[8345,8345],"mapped",[110]],[[8346,8346],"mapped",[112]],[[8347,8347],"mapped",[115]],[[8348,8348],"mapped",[116]],[[8349,8351],"disallowed"],[[8352,8359],"valid",[],"NV8"],[[8360,8360],"mapped",[114,115]],[[8361,8362],"valid",[],"NV8"],[[8363,8363],"valid",[],"NV8"],[[8364,8364],"valid",[],"NV8"],[[8365,8367],"valid",[],"NV8"],[[8368,8369],"valid",[],"NV8"],[[8370,8373],"valid",[],"NV8"],[[8374,8376],"valid",[],"NV8"],[[8377,8377],"valid",[],"NV8"],[[8378,8378],"valid",[],"NV8"],[[8379,8381],"valid",[],"NV8"],[[8382,8382],"valid",[],"NV8"],[[8383,8399],"disallowed"],[[8400,8417],"valid",[],"NV8"],[[8418,8419],"valid",[],"NV8"],[[8420,8426],"valid",[],"NV8"],[[8427,8427],"valid",[],"NV8"],[[8428,8431],"valid",[],"NV8"],[[8432,8432],"valid",[],"NV8"],[[8433,8447],"disallowed"],[[8448,8448],"disallowed_STD3_mapped",[97,47,99]],[[8449,8449],"disallowed_STD3_mapped",[97,47,115]],[[8450,8450],"mapped",[99]],[[8451,8451],"mapped",[176,99]],[[8452,8452],"valid",[],"NV8"],[[8453,8453],"disallowed_STD3_mapped",[99,47,111]],[[8454,8454],"disallowed_STD3_mapped",[99,47,117]],[[8455,8455],"mapped",[603]],[[8456,8456],"valid",[],"NV8"],[[8457,8457],"mapped",[176,102]],[[8458,8458],"mapped",[103]],[[8459,8462],"mapped",[104]],[[8463,8463],"mapped",[295]],[[8464,8465],"mapped",[105]],[[8466,8467],"mapped",[108]],[[8468,8468],"valid",[],"NV8"],[[8469,8469],"mapped",[110]],[[8470,8470],"mapped",[110,111]],[[8471,8472],"valid",[],"NV8"],[[8473,8473],"mapped",[112]],[[8474,8474],"mapped",[113]],[[8475,8477],"mapped",[114]],[[8478,8479],"valid",[],"NV8"],[[8480,8480],"mapped",[115,109]],[[8481,8481],"mapped",[116,101,108]],[[8482,8482],"mapped",[116,109]],[[8483,8483],"valid",[],"NV8"],[[8484,8484],"mapped",[122]],[[8485,8485],"valid",[],"NV8"],[[8486,8486],"mapped",[969]],[[8487,8487],"valid",[],"NV8"],[[8488,8488],"mapped",[122]],[[8489,8489],"valid",[],"NV8"],[[8490,8490],"mapped",[107]],[[8491,8491],"mapped",[229]],[[8492,8492],"mapped",[98]],[[8493,8493],"mapped",[99]],[[8494,8494],"valid",[],"NV8"],[[8495,8496],"mapped",[101]],[[8497,8497],"mapped",[102]],[[8498,8498],"disallowed"],[[8499,8499],"mapped",[109]],[[8500,8500],"mapped",[111]],[[8501,8501],"mapped",[1488]],[[8502,8502],"mapped",[1489]],[[8503,8503],"mapped",[1490]],[[8504,8504],"mapped",[1491]],[[8505,8505],"mapped",[105]],[[8506,8506],"valid",[],"NV8"],[[8507,8507],"mapped",[102,97,120]],[[8508,8508],"mapped",[960]],[[8509,8510],"mapped",[947]],[[8511,8511],"mapped",[960]],[[8512,8512],"mapped",[8721]],[[8513,8516],"valid",[],"NV8"],[[8517,8518],"mapped",[100]],[[8519,8519],"mapped",[101]],[[8520,8520],"mapped",[105]],[[8521,8521],"mapped",[106]],[[8522,8523],"valid",[],"NV8"],[[8524,8524],"valid",[],"NV8"],[[8525,8525],"valid",[],"NV8"],[[8526,8526],"valid"],[[8527,8527],"valid",[],"NV8"],[[8528,8528],"mapped",[49,8260,55]],[[8529,8529],"mapped",[49,8260,57]],[[8530,8530],"mapped",[49,8260,49,48]],[[8531,8531],"mapped",[49,8260,51]],[[8532,8532],"mapped",[50,8260,51]],[[8533,8533],"mapped",[49,8260,53]],[[8534,8534],"mapped",[50,8260,53]],[[8535,8535],"mapped",[51,8260,53]],[[8536,8536],"mapped",[52,8260,53]],[[8537,8537],"mapped",[49,8260,54]],[[8538,8538],"mapped",[53,8260,54]],[[8539,8539],"mapped",[49,8260,56]],[[8540,8540],"mapped",[51,8260,56]],[[8541,8541],"mapped",[53,8260,56]],[[8542,8542],"mapped",[55,8260,56]],[[8543,8543],"mapped",[49,8260]],[[8544,8544],"mapped",[105]],[[8545,8545],"mapped",[105,105]],[[8546,8546],"mapped",[105,105,105]],[[8547,8547],"mapped",[105,118]],[[8548,8548],"mapped",[118]],[[8549,8549],"mapped",[118,105]],[[8550,8550],"mapped",[118,105,105]],[[8551,8551],"mapped",[118,105,105,105]],[[8552,8552],"mapped",[105,120]],[[8553,8553],"mapped",[120]],[[8554,8554],"mapped",[120,105]],[[8555,8555],"mapped",[120,105,105]],[[8556,8556],"mapped",[108]],[[8557,8557],"mapped",[99]],[[8558,8558],"mapped",[100]],[[8559,8559],"mapped",[109]],[[8560,8560],"mapped",[105]],[[8561,8561],"mapped",[105,105]],[[8562,8562],"mapped",[105,105,105]],[[8563,8563],"mapped",[105,118]],[[8564,8564],"mapped",[118]],[[8565,8565],"mapped",[118,105]],[[8566,8566],"mapped",[118,105,105]],[[8567,8567],"mapped",[118,105,105,105]],[[8568,8568],"mapped",[105,120]],[[8569,8569],"mapped",[120]],[[8570,8570],"mapped",[120,105]],[[8571,8571],"mapped",[120,105,105]],[[8572,8572],"mapped",[108]],[[8573,8573],"mapped",[99]],[[8574,8574],"mapped",[100]],[[8575,8575],"mapped",[109]],[[8576,8578],"valid",[],"NV8"],[[8579,8579],"disallowed"],[[8580,8580],"valid"],[[8581,8584],"valid",[],"NV8"],[[8585,8585],"mapped",[48,8260,51]],[[8586,8587],"valid",[],"NV8"],[[8588,8591],"disallowed"],[[8592,8682],"valid",[],"NV8"],[[8683,8691],"valid",[],"NV8"],[[8692,8703],"valid",[],"NV8"],[[8704,8747],"valid",[],"NV8"],[[8748,8748],"mapped",[8747,8747]],[[8749,8749],"mapped",[8747,8747,8747]],[[8750,8750],"valid",[],"NV8"],[[8751,8751],"mapped",[8750,8750]],[[8752,8752],"mapped",[8750,8750,8750]],[[8753,8799],"valid",[],"NV8"],[[8800,8800],"disallowed_STD3_valid"],[[8801,8813],"valid",[],"NV8"],[[8814,8815],"disallowed_STD3_valid"],[[8816,8945],"valid",[],"NV8"],[[8946,8959],"valid",[],"NV8"],[[8960,8960],"valid",[],"NV8"],[[8961,8961],"valid",[],"NV8"],[[8962,9e3],"valid",[],"NV8"],[[9001,9001],"mapped",[12296]],[[9002,9002],"mapped",[12297]],[[9003,9082],"valid",[],"NV8"],[[9083,9083],"valid",[],"NV8"],[[9084,9084],"valid",[],"NV8"],[[9085,9114],"valid",[],"NV8"],[[9115,9166],"valid",[],"NV8"],[[9167,9168],"valid",[],"NV8"],[[9169,9179],"valid",[],"NV8"],[[9180,9191],"valid",[],"NV8"],[[9192,9192],"valid",[],"NV8"],[[9193,9203],"valid",[],"NV8"],[[9204,9210],"valid",[],"NV8"],[[9211,9215],"disallowed"],[[9216,9252],"valid",[],"NV8"],[[9253,9254],"valid",[],"NV8"],[[9255,9279],"disallowed"],[[9280,9290],"valid",[],"NV8"],[[9291,9311],"disallowed"],[[9312,9312],"mapped",[49]],[[9313,9313],"mapped",[50]],[[9314,9314],"mapped",[51]],[[9315,9315],"mapped",[52]],[[9316,9316],"mapped",[53]],[[9317,9317],"mapped",[54]],[[9318,9318],"mapped",[55]],[[9319,9319],"mapped",[56]],[[9320,9320],"mapped",[57]],[[9321,9321],"mapped",[49,48]],[[9322,9322],"mapped",[49,49]],[[9323,9323],"mapped",[49,50]],[[9324,9324],"mapped",[49,51]],[[9325,9325],"mapped",[49,52]],[[9326,9326],"mapped",[49,53]],[[9327,9327],"mapped",[49,54]],[[9328,9328],"mapped",[49,55]],[[9329,9329],"mapped",[49,56]],[[9330,9330],"mapped",[49,57]],[[9331,9331],"mapped",[50,48]],[[9332,9332],"disallowed_STD3_mapped",[40,49,41]],[[9333,9333],"disallowed_STD3_mapped",[40,50,41]],[[9334,9334],"disallowed_STD3_mapped",[40,51,41]],[[9335,9335],"disallowed_STD3_mapped",[40,52,41]],[[9336,9336],"disallowed_STD3_mapped",[40,53,41]],[[9337,9337],"disallowed_STD3_mapped",[40,54,41]],[[9338,9338],"disallowed_STD3_mapped",[40,55,41]],[[9339,9339],"disallowed_STD3_mapped",[40,56,41]],[[9340,9340],"disallowed_STD3_mapped",[40,57,41]],[[9341,9341],"disallowed_STD3_mapped",[40,49,48,41]],[[9342,9342],"disallowed_STD3_mapped",[40,49,49,41]],[[9343,9343],"disallowed_STD3_mapped",[40,49,50,41]],[[9344,9344],"disallowed_STD3_mapped",[40,49,51,41]],[[9345,9345],"disallowed_STD3_mapped",[40,49,52,41]],[[9346,9346],"disallowed_STD3_mapped",[40,49,53,41]],[[9347,9347],"disallowed_STD3_mapped",[40,49,54,41]],[[9348,9348],"disallowed_STD3_mapped",[40,49,55,41]],[[9349,9349],"disallowed_STD3_mapped",[40,49,56,41]],[[9350,9350],"disallowed_STD3_mapped",[40,49,57,41]],[[9351,9351],"disallowed_STD3_mapped",[40,50,48,41]],[[9352,9371],"disallowed"],[[9372,9372],"disallowed_STD3_mapped",[40,97,41]],[[9373,9373],"disallowed_STD3_mapped",[40,98,41]],[[9374,9374],"disallowed_STD3_mapped",[40,99,41]],[[9375,9375],"disallowed_STD3_mapped",[40,100,41]],[[9376,9376],"disallowed_STD3_mapped",[40,101,41]],[[9377,9377],"disallowed_STD3_mapped",[40,102,41]],[[9378,9378],"disallowed_STD3_mapped",[40,103,41]],[[9379,9379],"disallowed_STD3_mapped",[40,104,41]],[[9380,9380],"disallowed_STD3_mapped",[40,105,41]],[[9381,9381],"disallowed_STD3_mapped",[40,106,41]],[[9382,9382],"disallowed_STD3_mapped",[40,107,41]],[[9383,9383],"disallowed_STD3_mapped",[40,108,41]],[[9384,9384],"disallowed_STD3_mapped",[40,109,41]],[[9385,9385],"disallowed_STD3_mapped",[40,110,41]],[[9386,9386],"disallowed_STD3_mapped",[40,111,41]],[[9387,9387],"disallowed_STD3_mapped",[40,112,41]],[[9388,9388],"disallowed_STD3_mapped",[40,113,41]],[[9389,9389],"disallowed_STD3_mapped",[40,114,41]],[[9390,9390],"disallowed_STD3_mapped",[40,115,41]],[[9391,9391],"disallowed_STD3_mapped",[40,116,41]],[[9392,9392],"disallowed_STD3_mapped",[40,117,41]],[[9393,9393],"disallowed_STD3_mapped",[40,118,41]],[[9394,9394],"disallowed_STD3_mapped",[40,119,41]],[[9395,9395],"disallowed_STD3_mapped",[40,120,41]],[[9396,9396],"disallowed_STD3_mapped",[40,121,41]],[[9397,9397],"disallowed_STD3_mapped",[40,122,41]],[[9398,9398],"mapped",[97]],[[9399,9399],"mapped",[98]],[[9400,9400],"mapped",[99]],[[9401,9401],"mapped",[100]],[[9402,9402],"mapped",[101]],[[9403,9403],"mapped",[102]],[[9404,9404],"mapped",[103]],[[9405,9405],"mapped",[104]],[[9406,9406],"mapped",[105]],[[9407,9407],"mapped",[106]],[[9408,9408],"mapped",[107]],[[9409,9409],"mapped",[108]],[[9410,9410],"mapped",[109]],[[9411,9411],"mapped",[110]],[[9412,9412],"mapped",[111]],[[9413,9413],"mapped",[112]],[[9414,9414],"mapped",[113]],[[9415,9415],"mapped",[114]],[[9416,9416],"mapped",[115]],[[9417,9417],"mapped",[116]],[[9418,9418],"mapped",[117]],[[9419,9419],"mapped",[118]],[[9420,9420],"mapped",[119]],[[9421,9421],"mapped",[120]],[[9422,9422],"mapped",[121]],[[9423,9423],"mapped",[122]],[[9424,9424],"mapped",[97]],[[9425,9425],"mapped",[98]],[[9426,9426],"mapped",[99]],[[9427,9427],"mapped",[100]],[[9428,9428],"mapped",[101]],[[9429,9429],"mapped",[102]],[[9430,9430],"mapped",[103]],[[9431,9431],"mapped",[104]],[[9432,9432],"mapped",[105]],[[9433,9433],"mapped",[106]],[[9434,9434],"mapped",[107]],[[9435,9435],"mapped",[108]],[[9436,9436],"mapped",[109]],[[9437,9437],"mapped",[110]],[[9438,9438],"mapped",[111]],[[9439,9439],"mapped",[112]],[[9440,9440],"mapped",[113]],[[9441,9441],"mapped",[114]],[[9442,9442],"mapped",[115]],[[9443,9443],"mapped",[116]],[[9444,9444],"mapped",[117]],[[9445,9445],"mapped",[118]],[[9446,9446],"mapped",[119]],[[9447,9447],"mapped",[120]],[[9448,9448],"mapped",[121]],[[9449,9449],"mapped",[122]],[[9450,9450],"mapped",[48]],[[9451,9470],"valid",[],"NV8"],[[9471,9471],"valid",[],"NV8"],[[9472,9621],"valid",[],"NV8"],[[9622,9631],"valid",[],"NV8"],[[9632,9711],"valid",[],"NV8"],[[9712,9719],"valid",[],"NV8"],[[9720,9727],"valid",[],"NV8"],[[9728,9747],"valid",[],"NV8"],[[9748,9749],"valid",[],"NV8"],[[9750,9751],"valid",[],"NV8"],[[9752,9752],"valid",[],"NV8"],[[9753,9753],"valid",[],"NV8"],[[9754,9839],"valid",[],"NV8"],[[9840,9841],"valid",[],"NV8"],[[9842,9853],"valid",[],"NV8"],[[9854,9855],"valid",[],"NV8"],[[9856,9865],"valid",[],"NV8"],[[9866,9873],"valid",[],"NV8"],[[9874,9884],"valid",[],"NV8"],[[9885,9885],"valid",[],"NV8"],[[9886,9887],"valid",[],"NV8"],[[9888,9889],"valid",[],"NV8"],[[9890,9905],"valid",[],"NV8"],[[9906,9906],"valid",[],"NV8"],[[9907,9916],"valid",[],"NV8"],[[9917,9919],"valid",[],"NV8"],[[9920,9923],"valid",[],"NV8"],[[9924,9933],"valid",[],"NV8"],[[9934,9934],"valid",[],"NV8"],[[9935,9953],"valid",[],"NV8"],[[9954,9954],"valid",[],"NV8"],[[9955,9955],"valid",[],"NV8"],[[9956,9959],"valid",[],"NV8"],[[9960,9983],"valid",[],"NV8"],[[9984,9984],"valid",[],"NV8"],[[9985,9988],"valid",[],"NV8"],[[9989,9989],"valid",[],"NV8"],[[9990,9993],"valid",[],"NV8"],[[9994,9995],"valid",[],"NV8"],[[9996,10023],"valid",[],"NV8"],[[10024,10024],"valid",[],"NV8"],[[10025,10059],"valid",[],"NV8"],[[10060,10060],"valid",[],"NV8"],[[10061,10061],"valid",[],"NV8"],[[10062,10062],"valid",[],"NV8"],[[10063,10066],"valid",[],"NV8"],[[10067,10069],"valid",[],"NV8"],[[10070,10070],"valid",[],"NV8"],[[10071,10071],"valid",[],"NV8"],[[10072,10078],"valid",[],"NV8"],[[10079,10080],"valid",[],"NV8"],[[10081,10087],"valid",[],"NV8"],[[10088,10101],"valid",[],"NV8"],[[10102,10132],"valid",[],"NV8"],[[10133,10135],"valid",[],"NV8"],[[10136,10159],"valid",[],"NV8"],[[10160,10160],"valid",[],"NV8"],[[10161,10174],"valid",[],"NV8"],[[10175,10175],"valid",[],"NV8"],[[10176,10182],"valid",[],"NV8"],[[10183,10186],"valid",[],"NV8"],[[10187,10187],"valid",[],"NV8"],[[10188,10188],"valid",[],"NV8"],[[10189,10189],"valid",[],"NV8"],[[10190,10191],"valid",[],"NV8"],[[10192,10219],"valid",[],"NV8"],[[10220,10223],"valid",[],"NV8"],[[10224,10239],"valid",[],"NV8"],[[10240,10495],"valid",[],"NV8"],[[10496,10763],"valid",[],"NV8"],[[10764,10764],"mapped",[8747,8747,8747,8747]],[[10765,10867],"valid",[],"NV8"],[[10868,10868],"disallowed_STD3_mapped",[58,58,61]],[[10869,10869],"disallowed_STD3_mapped",[61,61]],[[10870,10870],"disallowed_STD3_mapped",[61,61,61]],[[10871,10971],"valid",[],"NV8"],[[10972,10972],"mapped",[10973,824]],[[10973,11007],"valid",[],"NV8"],[[11008,11021],"valid",[],"NV8"],[[11022,11027],"valid",[],"NV8"],[[11028,11034],"valid",[],"NV8"],[[11035,11039],"valid",[],"NV8"],[[11040,11043],"valid",[],"NV8"],[[11044,11084],"valid",[],"NV8"],[[11085,11087],"valid",[],"NV8"],[[11088,11092],"valid",[],"NV8"],[[11093,11097],"valid",[],"NV8"],[[11098,11123],"valid",[],"NV8"],[[11124,11125],"disallowed"],[[11126,11157],"valid",[],"NV8"],[[11158,11159],"disallowed"],[[11160,11193],"valid",[],"NV8"],[[11194,11196],"disallowed"],[[11197,11208],"valid",[],"NV8"],[[11209,11209],"disallowed"],[[11210,11217],"valid",[],"NV8"],[[11218,11243],"disallowed"],[[11244,11247],"valid",[],"NV8"],[[11248,11263],"disallowed"],[[11264,11264],"mapped",[11312]],[[11265,11265],"mapped",[11313]],[[11266,11266],"mapped",[11314]],[[11267,11267],"mapped",[11315]],[[11268,11268],"mapped",[11316]],[[11269,11269],"mapped",[11317]],[[11270,11270],"mapped",[11318]],[[11271,11271],"mapped",[11319]],[[11272,11272],"mapped",[11320]],[[11273,11273],"mapped",[11321]],[[11274,11274],"mapped",[11322]],[[11275,11275],"mapped",[11323]],[[11276,11276],"mapped",[11324]],[[11277,11277],"mapped",[11325]],[[11278,11278],"mapped",[11326]],[[11279,11279],"mapped",[11327]],[[11280,11280],"mapped",[11328]],[[11281,11281],"mapped",[11329]],[[11282,11282],"mapped",[11330]],[[11283,11283],"mapped",[11331]],[[11284,11284],"mapped",[11332]],[[11285,11285],"mapped",[11333]],[[11286,11286],"mapped",[11334]],[[11287,11287],"mapped",[11335]],[[11288,11288],"mapped",[11336]],[[11289,11289],"mapped",[11337]],[[11290,11290],"mapped",[11338]],[[11291,11291],"mapped",[11339]],[[11292,11292],"mapped",[11340]],[[11293,11293],"mapped",[11341]],[[11294,11294],"mapped",[11342]],[[11295,11295],"mapped",[11343]],[[11296,11296],"mapped",[11344]],[[11297,11297],"mapped",[11345]],[[11298,11298],"mapped",[11346]],[[11299,11299],"mapped",[11347]],[[11300,11300],"mapped",[11348]],[[11301,11301],"mapped",[11349]],[[11302,11302],"mapped",[11350]],[[11303,11303],"mapped",[11351]],[[11304,11304],"mapped",[11352]],[[11305,11305],"mapped",[11353]],[[11306,11306],"mapped",[11354]],[[11307,11307],"mapped",[11355]],[[11308,11308],"mapped",[11356]],[[11309,11309],"mapped",[11357]],[[11310,11310],"mapped",[11358]],[[11311,11311],"disallowed"],[[11312,11358],"valid"],[[11359,11359],"disallowed"],[[11360,11360],"mapped",[11361]],[[11361,11361],"valid"],[[11362,11362],"mapped",[619]],[[11363,11363],"mapped",[7549]],[[11364,11364],"mapped",[637]],[[11365,11366],"valid"],[[11367,11367],"mapped",[11368]],[[11368,11368],"valid"],[[11369,11369],"mapped",[11370]],[[11370,11370],"valid"],[[11371,11371],"mapped",[11372]],[[11372,11372],"valid"],[[11373,11373],"mapped",[593]],[[11374,11374],"mapped",[625]],[[11375,11375],"mapped",[592]],[[11376,11376],"mapped",[594]],[[11377,11377],"valid"],[[11378,11378],"mapped",[11379]],[[11379,11379],"valid"],[[11380,11380],"valid"],[[11381,11381],"mapped",[11382]],[[11382,11383],"valid"],[[11384,11387],"valid"],[[11388,11388],"mapped",[106]],[[11389,11389],"mapped",[118]],[[11390,11390],"mapped",[575]],[[11391,11391],"mapped",[576]],[[11392,11392],"mapped",[11393]],[[11393,11393],"valid"],[[11394,11394],"mapped",[11395]],[[11395,11395],"valid"],[[11396,11396],"mapped",[11397]],[[11397,11397],"valid"],[[11398,11398],"mapped",[11399]],[[11399,11399],"valid"],[[11400,11400],"mapped",[11401]],[[11401,11401],"valid"],[[11402,11402],"mapped",[11403]],[[11403,11403],"valid"],[[11404,11404],"mapped",[11405]],[[11405,11405],"valid"],[[11406,11406],"mapped",[11407]],[[11407,11407],"valid"],[[11408,11408],"mapped",[11409]],[[11409,11409],"valid"],[[11410,11410],"mapped",[11411]],[[11411,11411],"valid"],[[11412,11412],"mapped",[11413]],[[11413,11413],"valid"],[[11414,11414],"mapped",[11415]],[[11415,11415],"valid"],[[11416,11416],"mapped",[11417]],[[11417,11417],"valid"],[[11418,11418],"mapped",[11419]],[[11419,11419],"valid"],[[11420,11420],"mapped",[11421]],[[11421,11421],"valid"],[[11422,11422],"mapped",[11423]],[[11423,11423],"valid"],[[11424,11424],"mapped",[11425]],[[11425,11425],"valid"],[[11426,11426],"mapped",[11427]],[[11427,11427],"valid"],[[11428,11428],"mapped",[11429]],[[11429,11429],"valid"],[[11430,11430],"mapped",[11431]],[[11431,11431],"valid"],[[11432,11432],"mapped",[11433]],[[11433,11433],"valid"],[[11434,11434],"mapped",[11435]],[[11435,11435],"valid"],[[11436,11436],"mapped",[11437]],[[11437,11437],"valid"],[[11438,11438],"mapped",[11439]],[[11439,11439],"valid"],[[11440,11440],"mapped",[11441]],[[11441,11441],"valid"],[[11442,11442],"mapped",[11443]],[[11443,11443],"valid"],[[11444,11444],"mapped",[11445]],[[11445,11445],"valid"],[[11446,11446],"mapped",[11447]],[[11447,11447],"valid"],[[11448,11448],"mapped",[11449]],[[11449,11449],"valid"],[[11450,11450],"mapped",[11451]],[[11451,11451],"valid"],[[11452,11452],"mapped",[11453]],[[11453,11453],"valid"],[[11454,11454],"mapped",[11455]],[[11455,11455],"valid"],[[11456,11456],"mapped",[11457]],[[11457,11457],"valid"],[[11458,11458],"mapped",[11459]],[[11459,11459],"valid"],[[11460,11460],"mapped",[11461]],[[11461,11461],"valid"],[[11462,11462],"mapped",[11463]],[[11463,11463],"valid"],[[11464,11464],"mapped",[11465]],[[11465,11465],"valid"],[[11466,11466],"mapped",[11467]],[[11467,11467],"valid"],[[11468,11468],"mapped",[11469]],[[11469,11469],"valid"],[[11470,11470],"mapped",[11471]],[[11471,11471],"valid"],[[11472,11472],"mapped",[11473]],[[11473,11473],"valid"],[[11474,11474],"mapped",[11475]],[[11475,11475],"valid"],[[11476,11476],"mapped",[11477]],[[11477,11477],"valid"],[[11478,11478],"mapped",[11479]],[[11479,11479],"valid"],[[11480,11480],"mapped",[11481]],[[11481,11481],"valid"],[[11482,11482],"mapped",[11483]],[[11483,11483],"valid"],[[11484,11484],"mapped",[11485]],[[11485,11485],"valid"],[[11486,11486],"mapped",[11487]],[[11487,11487],"valid"],[[11488,11488],"mapped",[11489]],[[11489,11489],"valid"],[[11490,11490],"mapped",[11491]],[[11491,11492],"valid"],[[11493,11498],"valid",[],"NV8"],[[11499,11499],"mapped",[11500]],[[11500,11500],"valid"],[[11501,11501],"mapped",[11502]],[[11502,11505],"valid"],[[11506,11506],"mapped",[11507]],[[11507,11507],"valid"],[[11508,11512],"disallowed"],[[11513,11519],"valid",[],"NV8"],[[11520,11557],"valid"],[[11558,11558],"disallowed"],[[11559,11559],"valid"],[[11560,11564],"disallowed"],[[11565,11565],"valid"],[[11566,11567],"disallowed"],[[11568,11621],"valid"],[[11622,11623],"valid"],[[11624,11630],"disallowed"],[[11631,11631],"mapped",[11617]],[[11632,11632],"valid",[],"NV8"],[[11633,11646],"disallowed"],[[11647,11647],"valid"],[[11648,11670],"valid"],[[11671,11679],"disallowed"],[[11680,11686],"valid"],[[11687,11687],"disallowed"],[[11688,11694],"valid"],[[11695,11695],"disallowed"],[[11696,11702],"valid"],[[11703,11703],"disallowed"],[[11704,11710],"valid"],[[11711,11711],"disallowed"],[[11712,11718],"valid"],[[11719,11719],"disallowed"],[[11720,11726],"valid"],[[11727,11727],"disallowed"],[[11728,11734],"valid"],[[11735,11735],"disallowed"],[[11736,11742],"valid"],[[11743,11743],"disallowed"],[[11744,11775],"valid"],[[11776,11799],"valid",[],"NV8"],[[11800,11803],"valid",[],"NV8"],[[11804,11805],"valid",[],"NV8"],[[11806,11822],"valid",[],"NV8"],[[11823,11823],"valid"],[[11824,11824],"valid",[],"NV8"],[[11825,11825],"valid",[],"NV8"],[[11826,11835],"valid",[],"NV8"],[[11836,11842],"valid",[],"NV8"],[[11843,11903],"disallowed"],[[11904,11929],"valid",[],"NV8"],[[11930,11930],"disallowed"],[[11931,11934],"valid",[],"NV8"],[[11935,11935],"mapped",[27597]],[[11936,12018],"valid",[],"NV8"],[[12019,12019],"mapped",[40863]],[[12020,12031],"disallowed"],[[12032,12032],"mapped",[19968]],[[12033,12033],"mapped",[20008]],[[12034,12034],"mapped",[20022]],[[12035,12035],"mapped",[20031]],[[12036,12036],"mapped",[20057]],[[12037,12037],"mapped",[20101]],[[12038,12038],"mapped",[20108]],[[12039,12039],"mapped",[20128]],[[12040,12040],"mapped",[20154]],[[12041,12041],"mapped",[20799]],[[12042,12042],"mapped",[20837]],[[12043,12043],"mapped",[20843]],[[12044,12044],"mapped",[20866]],[[12045,12045],"mapped",[20886]],[[12046,12046],"mapped",[20907]],[[12047,12047],"mapped",[20960]],[[12048,12048],"mapped",[20981]],[[12049,12049],"mapped",[20992]],[[12050,12050],"mapped",[21147]],[[12051,12051],"mapped",[21241]],[[12052,12052],"mapped",[21269]],[[12053,12053],"mapped",[21274]],[[12054,12054],"mapped",[21304]],[[12055,12055],"mapped",[21313]],[[12056,12056],"mapped",[21340]],[[12057,12057],"mapped",[21353]],[[12058,12058],"mapped",[21378]],[[12059,12059],"mapped",[21430]],[[12060,12060],"mapped",[21448]],[[12061,12061],"mapped",[21475]],[[12062,12062],"mapped",[22231]],[[12063,12063],"mapped",[22303]],[[12064,12064],"mapped",[22763]],[[12065,12065],"mapped",[22786]],[[12066,12066],"mapped",[22794]],[[12067,12067],"mapped",[22805]],[[12068,12068],"mapped",[22823]],[[12069,12069],"mapped",[22899]],[[12070,12070],"mapped",[23376]],[[12071,12071],"mapped",[23424]],[[12072,12072],"mapped",[23544]],[[12073,12073],"mapped",[23567]],[[12074,12074],"mapped",[23586]],[[12075,12075],"mapped",[23608]],[[12076,12076],"mapped",[23662]],[[12077,12077],"mapped",[23665]],[[12078,12078],"mapped",[24027]],[[12079,12079],"mapped",[24037]],[[12080,12080],"mapped",[24049]],[[12081,12081],"mapped",[24062]],[[12082,12082],"mapped",[24178]],[[12083,12083],"mapped",[24186]],[[12084,12084],"mapped",[24191]],[[12085,12085],"mapped",[24308]],[[12086,12086],"mapped",[24318]],[[12087,12087],"mapped",[24331]],[[12088,12088],"mapped",[24339]],[[12089,12089],"mapped",[24400]],[[12090,12090],"mapped",[24417]],[[12091,12091],"mapped",[24435]],[[12092,12092],"mapped",[24515]],[[12093,12093],"mapped",[25096]],[[12094,12094],"mapped",[25142]],[[12095,12095],"mapped",[25163]],[[12096,12096],"mapped",[25903]],[[12097,12097],"mapped",[25908]],[[12098,12098],"mapped",[25991]],[[12099,12099],"mapped",[26007]],[[12100,12100],"mapped",[26020]],[[12101,12101],"mapped",[26041]],[[12102,12102],"mapped",[26080]],[[12103,12103],"mapped",[26085]],[[12104,12104],"mapped",[26352]],[[12105,12105],"mapped",[26376]],[[12106,12106],"mapped",[26408]],[[12107,12107],"mapped",[27424]],[[12108,12108],"mapped",[27490]],[[12109,12109],"mapped",[27513]],[[12110,12110],"mapped",[27571]],[[12111,12111],"mapped",[27595]],[[12112,12112],"mapped",[27604]],[[12113,12113],"mapped",[27611]],[[12114,12114],"mapped",[27663]],[[12115,12115],"mapped",[27668]],[[12116,12116],"mapped",[27700]],[[12117,12117],"mapped",[28779]],[[12118,12118],"mapped",[29226]],[[12119,12119],"mapped",[29238]],[[12120,12120],"mapped",[29243]],[[12121,12121],"mapped",[29247]],[[12122,12122],"mapped",[29255]],[[12123,12123],"mapped",[29273]],[[12124,12124],"mapped",[29275]],[[12125,12125],"mapped",[29356]],[[12126,12126],"mapped",[29572]],[[12127,12127],"mapped",[29577]],[[12128,12128],"mapped",[29916]],[[12129,12129],"mapped",[29926]],[[12130,12130],"mapped",[29976]],[[12131,12131],"mapped",[29983]],[[12132,12132],"mapped",[29992]],[[12133,12133],"mapped",[3e4]],[[12134,12134],"mapped",[30091]],[[12135,12135],"mapped",[30098]],[[12136,12136],"mapped",[30326]],[[12137,12137],"mapped",[30333]],[[12138,12138],"mapped",[30382]],[[12139,12139],"mapped",[30399]],[[12140,12140],"mapped",[30446]],[[12141,12141],"mapped",[30683]],[[12142,12142],"mapped",[30690]],[[12143,12143],"mapped",[30707]],[[12144,12144],"mapped",[31034]],[[12145,12145],"mapped",[31160]],[[12146,12146],"mapped",[31166]],[[12147,12147],"mapped",[31348]],[[12148,12148],"mapped",[31435]],[[12149,12149],"mapped",[31481]],[[12150,12150],"mapped",[31859]],[[12151,12151],"mapped",[31992]],[[12152,12152],"mapped",[32566]],[[12153,12153],"mapped",[32593]],[[12154,12154],"mapped",[32650]],[[12155,12155],"mapped",[32701]],[[12156,12156],"mapped",[32769]],[[12157,12157],"mapped",[32780]],[[12158,12158],"mapped",[32786]],[[12159,12159],"mapped",[32819]],[[12160,12160],"mapped",[32895]],[[12161,12161],"mapped",[32905]],[[12162,12162],"mapped",[33251]],[[12163,12163],"mapped",[33258]],[[12164,12164],"mapped",[33267]],[[12165,12165],"mapped",[33276]],[[12166,12166],"mapped",[33292]],[[12167,12167],"mapped",[33307]],[[12168,12168],"mapped",[33311]],[[12169,12169],"mapped",[33390]],[[12170,12170],"mapped",[33394]],[[12171,12171],"mapped",[33400]],[[12172,12172],"mapped",[34381]],[[12173,12173],"mapped",[34411]],[[12174,12174],"mapped",[34880]],[[12175,12175],"mapped",[34892]],[[12176,12176],"mapped",[34915]],[[12177,12177],"mapped",[35198]],[[12178,12178],"mapped",[35211]],[[12179,12179],"mapped",[35282]],[[12180,12180],"mapped",[35328]],[[12181,12181],"mapped",[35895]],[[12182,12182],"mapped",[35910]],[[12183,12183],"mapped",[35925]],[[12184,12184],"mapped",[35960]],[[12185,12185],"mapped",[35997]],[[12186,12186],"mapped",[36196]],[[12187,12187],"mapped",[36208]],[[12188,12188],"mapped",[36275]],[[12189,12189],"mapped",[36523]],[[12190,12190],"mapped",[36554]],[[12191,12191],"mapped",[36763]],[[12192,12192],"mapped",[36784]],[[12193,12193],"mapped",[36789]],[[12194,12194],"mapped",[37009]],[[12195,12195],"mapped",[37193]],[[12196,12196],"mapped",[37318]],[[12197,12197],"mapped",[37324]],[[12198,12198],"mapped",[37329]],[[12199,12199],"mapped",[38263]],[[12200,12200],"mapped",[38272]],[[12201,12201],"mapped",[38428]],[[12202,12202],"mapped",[38582]],[[12203,12203],"mapped",[38585]],[[12204,12204],"mapped",[38632]],[[12205,12205],"mapped",[38737]],[[12206,12206],"mapped",[38750]],[[12207,12207],"mapped",[38754]],[[12208,12208],"mapped",[38761]],[[12209,12209],"mapped",[38859]],[[12210,12210],"mapped",[38893]],[[12211,12211],"mapped",[38899]],[[12212,12212],"mapped",[38913]],[[12213,12213],"mapped",[39080]],[[12214,12214],"mapped",[39131]],[[12215,12215],"mapped",[39135]],[[12216,12216],"mapped",[39318]],[[12217,12217],"mapped",[39321]],[[12218,12218],"mapped",[39340]],[[12219,12219],"mapped",[39592]],[[12220,12220],"mapped",[39640]],[[12221,12221],"mapped",[39647]],[[12222,12222],"mapped",[39717]],[[12223,12223],"mapped",[39727]],[[12224,12224],"mapped",[39730]],[[12225,12225],"mapped",[39740]],[[12226,12226],"mapped",[39770]],[[12227,12227],"mapped",[40165]],[[12228,12228],"mapped",[40565]],[[12229,12229],"mapped",[40575]],[[12230,12230],"mapped",[40613]],[[12231,12231],"mapped",[40635]],[[12232,12232],"mapped",[40643]],[[12233,12233],"mapped",[40653]],[[12234,12234],"mapped",[40657]],[[12235,12235],"mapped",[40697]],[[12236,12236],"mapped",[40701]],[[12237,12237],"mapped",[40718]],[[12238,12238],"mapped",[40723]],[[12239,12239],"mapped",[40736]],[[12240,12240],"mapped",[40763]],[[12241,12241],"mapped",[40778]],[[12242,12242],"mapped",[40786]],[[12243,12243],"mapped",[40845]],[[12244,12244],"mapped",[40860]],[[12245,12245],"mapped",[40864]],[[12246,12271],"disallowed"],[[12272,12283],"disallowed"],[[12284,12287],"disallowed"],[[12288,12288],"disallowed_STD3_mapped",[32]],[[12289,12289],"valid",[],"NV8"],[[12290,12290],"mapped",[46]],[[12291,12292],"valid",[],"NV8"],[[12293,12295],"valid"],[[12296,12329],"valid",[],"NV8"],[[12330,12333],"valid"],[[12334,12341],"valid",[],"NV8"],[[12342,12342],"mapped",[12306]],[[12343,12343],"valid",[],"NV8"],[[12344,12344],"mapped",[21313]],[[12345,12345],"mapped",[21316]],[[12346,12346],"mapped",[21317]],[[12347,12347],"valid",[],"NV8"],[[12348,12348],"valid"],[[12349,12349],"valid",[],"NV8"],[[12350,12350],"valid",[],"NV8"],[[12351,12351],"valid",[],"NV8"],[[12352,12352],"disallowed"],[[12353,12436],"valid"],[[12437,12438],"valid"],[[12439,12440],"disallowed"],[[12441,12442],"valid"],[[12443,12443],"disallowed_STD3_mapped",[32,12441]],[[12444,12444],"disallowed_STD3_mapped",[32,12442]],[[12445,12446],"valid"],[[12447,12447],"mapped",[12424,12426]],[[12448,12448],"valid",[],"NV8"],[[12449,12542],"valid"],[[12543,12543],"mapped",[12467,12488]],[[12544,12548],"disallowed"],[[12549,12588],"valid"],[[12589,12589],"valid"],[[12590,12592],"disallowed"],[[12593,12593],"mapped",[4352]],[[12594,12594],"mapped",[4353]],[[12595,12595],"mapped",[4522]],[[12596,12596],"mapped",[4354]],[[12597,12597],"mapped",[4524]],[[12598,12598],"mapped",[4525]],[[12599,12599],"mapped",[4355]],[[12600,12600],"mapped",[4356]],[[12601,12601],"mapped",[4357]],[[12602,12602],"mapped",[4528]],[[12603,12603],"mapped",[4529]],[[12604,12604],"mapped",[4530]],[[12605,12605],"mapped",[4531]],[[12606,12606],"mapped",[4532]],[[12607,12607],"mapped",[4533]],[[12608,12608],"mapped",[4378]],[[12609,12609],"mapped",[4358]],[[12610,12610],"mapped",[4359]],[[12611,12611],"mapped",[4360]],[[12612,12612],"mapped",[4385]],[[12613,12613],"mapped",[4361]],[[12614,12614],"mapped",[4362]],[[12615,12615],"mapped",[4363]],[[12616,12616],"mapped",[4364]],[[12617,12617],"mapped",[4365]],[[12618,12618],"mapped",[4366]],[[12619,12619],"mapped",[4367]],[[12620,12620],"mapped",[4368]],[[12621,12621],"mapped",[4369]],[[12622,12622],"mapped",[4370]],[[12623,12623],"mapped",[4449]],[[12624,12624],"mapped",[4450]],[[12625,12625],"mapped",[4451]],[[12626,12626],"mapped",[4452]],[[12627,12627],"mapped",[4453]],[[12628,12628],"mapped",[4454]],[[12629,12629],"mapped",[4455]],[[12630,12630],"mapped",[4456]],[[12631,12631],"mapped",[4457]],[[12632,12632],"mapped",[4458]],[[12633,12633],"mapped",[4459]],[[12634,12634],"mapped",[4460]],[[12635,12635],"mapped",[4461]],[[12636,12636],"mapped",[4462]],[[12637,12637],"mapped",[4463]],[[12638,12638],"mapped",[4464]],[[12639,12639],"mapped",[4465]],[[12640,12640],"mapped",[4466]],[[12641,12641],"mapped",[4467]],[[12642,12642],"mapped",[4468]],[[12643,12643],"mapped",[4469]],[[12644,12644],"disallowed"],[[12645,12645],"mapped",[4372]],[[12646,12646],"mapped",[4373]],[[12647,12647],"mapped",[4551]],[[12648,12648],"mapped",[4552]],[[12649,12649],"mapped",[4556]],[[12650,12650],"mapped",[4558]],[[12651,12651],"mapped",[4563]],[[12652,12652],"mapped",[4567]],[[12653,12653],"mapped",[4569]],[[12654,12654],"mapped",[4380]],[[12655,12655],"mapped",[4573]],[[12656,12656],"mapped",[4575]],[[12657,12657],"mapped",[4381]],[[12658,12658],"mapped",[4382]],[[12659,12659],"mapped",[4384]],[[12660,12660],"mapped",[4386]],[[12661,12661],"mapped",[4387]],[[12662,12662],"mapped",[4391]],[[12663,12663],"mapped",[4393]],[[12664,12664],"mapped",[4395]],[[12665,12665],"mapped",[4396]],[[12666,12666],"mapped",[4397]],[[12667,12667],"mapped",[4398]],[[12668,12668],"mapped",[4399]],[[12669,12669],"mapped",[4402]],[[12670,12670],"mapped",[4406]],[[12671,12671],"mapped",[4416]],[[12672,12672],"mapped",[4423]],[[12673,12673],"mapped",[4428]],[[12674,12674],"mapped",[4593]],[[12675,12675],"mapped",[4594]],[[12676,12676],"mapped",[4439]],[[12677,12677],"mapped",[4440]],[[12678,12678],"mapped",[4441]],[[12679,12679],"mapped",[4484]],[[12680,12680],"mapped",[4485]],[[12681,12681],"mapped",[4488]],[[12682,12682],"mapped",[4497]],[[12683,12683],"mapped",[4498]],[[12684,12684],"mapped",[4500]],[[12685,12685],"mapped",[4510]],[[12686,12686],"mapped",[4513]],[[12687,12687],"disallowed"],[[12688,12689],"valid",[],"NV8"],[[12690,12690],"mapped",[19968]],[[12691,12691],"mapped",[20108]],[[12692,12692],"mapped",[19977]],[[12693,12693],"mapped",[22235]],[[12694,12694],"mapped",[19978]],[[12695,12695],"mapped",[20013]],[[12696,12696],"mapped",[19979]],[[12697,12697],"mapped",[30002]],[[12698,12698],"mapped",[20057]],[[12699,12699],"mapped",[19993]],[[12700,12700],"mapped",[19969]],[[12701,12701],"mapped",[22825]],[[12702,12702],"mapped",[22320]],[[12703,12703],"mapped",[20154]],[[12704,12727],"valid"],[[12728,12730],"valid"],[[12731,12735],"disallowed"],[[12736,12751],"valid",[],"NV8"],[[12752,12771],"valid",[],"NV8"],[[12772,12783],"disallowed"],[[12784,12799],"valid"],[[12800,12800],"disallowed_STD3_mapped",[40,4352,41]],[[12801,12801],"disallowed_STD3_mapped",[40,4354,41]],[[12802,12802],"disallowed_STD3_mapped",[40,4355,41]],[[12803,12803],"disallowed_STD3_mapped",[40,4357,41]],[[12804,12804],"disallowed_STD3_mapped",[40,4358,41]],[[12805,12805],"disallowed_STD3_mapped",[40,4359,41]],[[12806,12806],"disallowed_STD3_mapped",[40,4361,41]],[[12807,12807],"disallowed_STD3_mapped",[40,4363,41]],[[12808,12808],"disallowed_STD3_mapped",[40,4364,41]],[[12809,12809],"disallowed_STD3_mapped",[40,4366,41]],[[12810,12810],"disallowed_STD3_mapped",[40,4367,41]],[[12811,12811],"disallowed_STD3_mapped",[40,4368,41]],[[12812,12812],"disallowed_STD3_mapped",[40,4369,41]],[[12813,12813],"disallowed_STD3_mapped",[40,4370,41]],[[12814,12814],"disallowed_STD3_mapped",[40,44032,41]],[[12815,12815],"disallowed_STD3_mapped",[40,45208,41]],[[12816,12816],"disallowed_STD3_mapped",[40,45796,41]],[[12817,12817],"disallowed_STD3_mapped",[40,46972,41]],[[12818,12818],"disallowed_STD3_mapped",[40,47560,41]],[[12819,12819],"disallowed_STD3_mapped",[40,48148,41]],[[12820,12820],"disallowed_STD3_mapped",[40,49324,41]],[[12821,12821],"disallowed_STD3_mapped",[40,50500,41]],[[12822,12822],"disallowed_STD3_mapped",[40,51088,41]],[[12823,12823],"disallowed_STD3_mapped",[40,52264,41]],[[12824,12824],"disallowed_STD3_mapped",[40,52852,41]],[[12825,12825],"disallowed_STD3_mapped",[40,53440,41]],[[12826,12826],"disallowed_STD3_mapped",[40,54028,41]],[[12827,12827],"disallowed_STD3_mapped",[40,54616,41]],[[12828,12828],"disallowed_STD3_mapped",[40,51452,41]],[[12829,12829],"disallowed_STD3_mapped",[40,50724,51204,41]],[[12830,12830],"disallowed_STD3_mapped",[40,50724,54980,41]],[[12831,12831],"disallowed"],[[12832,12832],"disallowed_STD3_mapped",[40,19968,41]],[[12833,12833],"disallowed_STD3_mapped",[40,20108,41]],[[12834,12834],"disallowed_STD3_mapped",[40,19977,41]],[[12835,12835],"disallowed_STD3_mapped",[40,22235,41]],[[12836,12836],"disallowed_STD3_mapped",[40,20116,41]],[[12837,12837],"disallowed_STD3_mapped",[40,20845,41]],[[12838,12838],"disallowed_STD3_mapped",[40,19971,41]],[[12839,12839],"disallowed_STD3_mapped",[40,20843,41]],[[12840,12840],"disallowed_STD3_mapped",[40,20061,41]],[[12841,12841],"disallowed_STD3_mapped",[40,21313,41]],[[12842,12842],"disallowed_STD3_mapped",[40,26376,41]],[[12843,12843],"disallowed_STD3_mapped",[40,28779,41]],[[12844,12844],"disallowed_STD3_mapped",[40,27700,41]],[[12845,12845],"disallowed_STD3_mapped",[40,26408,41]],[[12846,12846],"disallowed_STD3_mapped",[40,37329,41]],[[12847,12847],"disallowed_STD3_mapped",[40,22303,41]],[[12848,12848],"disallowed_STD3_mapped",[40,26085,41]],[[12849,12849],"disallowed_STD3_mapped",[40,26666,41]],[[12850,12850],"disallowed_STD3_mapped",[40,26377,41]],[[12851,12851],"disallowed_STD3_mapped",[40,31038,41]],[[12852,12852],"disallowed_STD3_mapped",[40,21517,41]],[[12853,12853],"disallowed_STD3_mapped",[40,29305,41]],[[12854,12854],"disallowed_STD3_mapped",[40,36001,41]],[[12855,12855],"disallowed_STD3_mapped",[40,31069,41]],[[12856,12856],"disallowed_STD3_mapped",[40,21172,41]],[[12857,12857],"disallowed_STD3_mapped",[40,20195,41]],[[12858,12858],"disallowed_STD3_mapped",[40,21628,41]],[[12859,12859],"disallowed_STD3_mapped",[40,23398,41]],[[12860,12860],"disallowed_STD3_mapped",[40,30435,41]],[[12861,12861],"disallowed_STD3_mapped",[40,20225,41]],[[12862,12862],"disallowed_STD3_mapped",[40,36039,41]],[[12863,12863],"disallowed_STD3_mapped",[40,21332,41]],[[12864,12864],"disallowed_STD3_mapped",[40,31085,41]],[[12865,12865],"disallowed_STD3_mapped",[40,20241,41]],[[12866,12866],"disallowed_STD3_mapped",[40,33258,41]],[[12867,12867],"disallowed_STD3_mapped",[40,33267,41]],[[12868,12868],"mapped",[21839]],[[12869,12869],"mapped",[24188]],[[12870,12870],"mapped",[25991]],[[12871,12871],"mapped",[31631]],[[12872,12879],"valid",[],"NV8"],[[12880,12880],"mapped",[112,116,101]],[[12881,12881],"mapped",[50,49]],[[12882,12882],"mapped",[50,50]],[[12883,12883],"mapped",[50,51]],[[12884,12884],"mapped",[50,52]],[[12885,12885],"mapped",[50,53]],[[12886,12886],"mapped",[50,54]],[[12887,12887],"mapped",[50,55]],[[12888,12888],"mapped",[50,56]],[[12889,12889],"mapped",[50,57]],[[12890,12890],"mapped",[51,48]],[[12891,12891],"mapped",[51,49]],[[12892,12892],"mapped",[51,50]],[[12893,12893],"mapped",[51,51]],[[12894,12894],"mapped",[51,52]],[[12895,12895],"mapped",[51,53]],[[12896,12896],"mapped",[4352]],[[12897,12897],"mapped",[4354]],[[12898,12898],"mapped",[4355]],[[12899,12899],"mapped",[4357]],[[12900,12900],"mapped",[4358]],[[12901,12901],"mapped",[4359]],[[12902,12902],"mapped",[4361]],[[12903,12903],"mapped",[4363]],[[12904,12904],"mapped",[4364]],[[12905,12905],"mapped",[4366]],[[12906,12906],"mapped",[4367]],[[12907,12907],"mapped",[4368]],[[12908,12908],"mapped",[4369]],[[12909,12909],"mapped",[4370]],[[12910,12910],"mapped",[44032]],[[12911,12911],"mapped",[45208]],[[12912,12912],"mapped",[45796]],[[12913,12913],"mapped",[46972]],[[12914,12914],"mapped",[47560]],[[12915,12915],"mapped",[48148]],[[12916,12916],"mapped",[49324]],[[12917,12917],"mapped",[50500]],[[12918,12918],"mapped",[51088]],[[12919,12919],"mapped",[52264]],[[12920,12920],"mapped",[52852]],[[12921,12921],"mapped",[53440]],[[12922,12922],"mapped",[54028]],[[12923,12923],"mapped",[54616]],[[12924,12924],"mapped",[52280,44256]],[[12925,12925],"mapped",[51452,51032]],[[12926,12926],"mapped",[50864]],[[12927,12927],"valid",[],"NV8"],[[12928,12928],"mapped",[19968]],[[12929,12929],"mapped",[20108]],[[12930,12930],"mapped",[19977]],[[12931,12931],"mapped",[22235]],[[12932,12932],"mapped",[20116]],[[12933,12933],"mapped",[20845]],[[12934,12934],"mapped",[19971]],[[12935,12935],"mapped",[20843]],[[12936,12936],"mapped",[20061]],[[12937,12937],"mapped",[21313]],[[12938,12938],"mapped",[26376]],[[12939,12939],"mapped",[28779]],[[12940,12940],"mapped",[27700]],[[12941,12941],"mapped",[26408]],[[12942,12942],"mapped",[37329]],[[12943,12943],"mapped",[22303]],[[12944,12944],"mapped",[26085]],[[12945,12945],"mapped",[26666]],[[12946,12946],"mapped",[26377]],[[12947,12947],"mapped",[31038]],[[12948,12948],"mapped",[21517]],[[12949,12949],"mapped",[29305]],[[12950,12950],"mapped",[36001]],[[12951,12951],"mapped",[31069]],[[12952,12952],"mapped",[21172]],[[12953,12953],"mapped",[31192]],[[12954,12954],"mapped",[30007]],[[12955,12955],"mapped",[22899]],[[12956,12956],"mapped",[36969]],[[12957,12957],"mapped",[20778]],[[12958,12958],"mapped",[21360]],[[12959,12959],"mapped",[27880]],[[12960,12960],"mapped",[38917]],[[12961,12961],"mapped",[20241]],[[12962,12962],"mapped",[20889]],[[12963,12963],"mapped",[27491]],[[12964,12964],"mapped",[19978]],[[12965,12965],"mapped",[20013]],[[12966,12966],"mapped",[19979]],[[12967,12967],"mapped",[24038]],[[12968,12968],"mapped",[21491]],[[12969,12969],"mapped",[21307]],[[12970,12970],"mapped",[23447]],[[12971,12971],"mapped",[23398]],[[12972,12972],"mapped",[30435]],[[12973,12973],"mapped",[20225]],[[12974,12974],"mapped",[36039]],[[12975,12975],"mapped",[21332]],[[12976,12976],"mapped",[22812]],[[12977,12977],"mapped",[51,54]],[[12978,12978],"mapped",[51,55]],[[12979,12979],"mapped",[51,56]],[[12980,12980],"mapped",[51,57]],[[12981,12981],"mapped",[52,48]],[[12982,12982],"mapped",[52,49]],[[12983,12983],"mapped",[52,50]],[[12984,12984],"mapped",[52,51]],[[12985,12985],"mapped",[52,52]],[[12986,12986],"mapped",[52,53]],[[12987,12987],"mapped",[52,54]],[[12988,12988],"mapped",[52,55]],[[12989,12989],"mapped",[52,56]],[[12990,12990],"mapped",[52,57]],[[12991,12991],"mapped",[53,48]],[[12992,12992],"mapped",[49,26376]],[[12993,12993],"mapped",[50,26376]],[[12994,12994],"mapped",[51,26376]],[[12995,12995],"mapped",[52,26376]],[[12996,12996],"mapped",[53,26376]],[[12997,12997],"mapped",[54,26376]],[[12998,12998],"mapped",[55,26376]],[[12999,12999],"mapped",[56,26376]],[[13e3,13e3],"mapped",[57,26376]],[[13001,13001],"mapped",[49,48,26376]],[[13002,13002],"mapped",[49,49,26376]],[[13003,13003],"mapped",[49,50,26376]],[[13004,13004],"mapped",[104,103]],[[13005,13005],"mapped",[101,114,103]],[[13006,13006],"mapped",[101,118]],[[13007,13007],"mapped",[108,116,100]],[[13008,13008],"mapped",[12450]],[[13009,13009],"mapped",[12452]],[[13010,13010],"mapped",[12454]],[[13011,13011],"mapped",[12456]],[[13012,13012],"mapped",[12458]],[[13013,13013],"mapped",[12459]],[[13014,13014],"mapped",[12461]],[[13015,13015],"mapped",[12463]],[[13016,13016],"mapped",[12465]],[[13017,13017],"mapped",[12467]],[[13018,13018],"mapped",[12469]],[[13019,13019],"mapped",[12471]],[[13020,13020],"mapped",[12473]],[[13021,13021],"mapped",[12475]],[[13022,13022],"mapped",[12477]],[[13023,13023],"mapped",[12479]],[[13024,13024],"mapped",[12481]],[[13025,13025],"mapped",[12484]],[[13026,13026],"mapped",[12486]],[[13027,13027],"mapped",[12488]],[[13028,13028],"mapped",[12490]],[[13029,13029],"mapped",[12491]],[[13030,13030],"mapped",[12492]],[[13031,13031],"mapped",[12493]],[[13032,13032],"mapped",[12494]],[[13033,13033],"mapped",[12495]],[[13034,13034],"mapped",[12498]],[[13035,13035],"mapped",[12501]],[[13036,13036],"mapped",[12504]],[[13037,13037],"mapped",[12507]],[[13038,13038],"mapped",[12510]],[[13039,13039],"mapped",[12511]],[[13040,13040],"mapped",[12512]],[[13041,13041],"mapped",[12513]],[[13042,13042],"mapped",[12514]],[[13043,13043],"mapped",[12516]],[[13044,13044],"mapped",[12518]],[[13045,13045],"mapped",[12520]],[[13046,13046],"mapped",[12521]],[[13047,13047],"mapped",[12522]],[[13048,13048],"mapped",[12523]],[[13049,13049],"mapped",[12524]],[[13050,13050],"mapped",[12525]],[[13051,13051],"mapped",[12527]],[[13052,13052],"mapped",[12528]],[[13053,13053],"mapped",[12529]],[[13054,13054],"mapped",[12530]],[[13055,13055],"disallowed"],[[13056,13056],"mapped",[12450,12497,12540,12488]],[[13057,13057],"mapped",[12450,12523,12501,12449]],[[13058,13058],"mapped",[12450,12531,12506,12450]],[[13059,13059],"mapped",[12450,12540,12523]],[[13060,13060],"mapped",[12452,12491,12531,12464]],[[13061,13061],"mapped",[12452,12531,12481]],[[13062,13062],"mapped",[12454,12457,12531]],[[13063,13063],"mapped",[12456,12473,12463,12540,12489]],[[13064,13064],"mapped",[12456,12540,12459,12540]],[[13065,13065],"mapped",[12458,12531,12473]],[[13066,13066],"mapped",[12458,12540,12512]],[[13067,13067],"mapped",[12459,12452,12522]],[[13068,13068],"mapped",[12459,12521,12483,12488]],[[13069,13069],"mapped",[12459,12525,12522,12540]],[[13070,13070],"mapped",[12460,12525,12531]],[[13071,13071],"mapped",[12460,12531,12510]],[[13072,13072],"mapped",[12462,12460]],[[13073,13073],"mapped",[12462,12491,12540]],[[13074,13074],"mapped",[12461,12517,12522,12540]],[[13075,13075],"mapped",[12462,12523,12480,12540]],[[13076,13076],"mapped",[12461,12525]],[[13077,13077],"mapped",[12461,12525,12464,12521,12512]],[[13078,13078],"mapped",[12461,12525,12513,12540,12488,12523]],[[13079,13079],"mapped",[12461,12525,12527,12483,12488]],[[13080,13080],"mapped",[12464,12521,12512]],[[13081,13081],"mapped",[12464,12521,12512,12488,12531]],[[13082,13082],"mapped",[12463,12523,12476,12452,12525]],[[13083,13083],"mapped",[12463,12525,12540,12493]],[[13084,13084],"mapped",[12465,12540,12473]],[[13085,13085],"mapped",[12467,12523,12490]],[[13086,13086],"mapped",[12467,12540,12509]],[[13087,13087],"mapped",[12469,12452,12463,12523]],[[13088,13088],"mapped",[12469,12531,12481,12540,12512]],[[13089,13089],"mapped",[12471,12522,12531,12464]],[[13090,13090],"mapped",[12475,12531,12481]],[[13091,13091],"mapped",[12475,12531,12488]],[[13092,13092],"mapped",[12480,12540,12473]],[[13093,13093],"mapped",[12487,12471]],[[13094,13094],"mapped",[12489,12523]],[[13095,13095],"mapped",[12488,12531]],[[13096,13096],"mapped",[12490,12494]],[[13097,13097],"mapped",[12494,12483,12488]],[[13098,13098],"mapped",[12495,12452,12484]],[[13099,13099],"mapped",[12497,12540,12475,12531,12488]],[[13100,13100],"mapped",[12497,12540,12484]],[[13101,13101],"mapped",[12496,12540,12524,12523]],[[13102,13102],"mapped",[12500,12450,12473,12488,12523]],[[13103,13103],"mapped",[12500,12463,12523]],[[13104,13104],"mapped",[12500,12467]],[[13105,13105],"mapped",[12499,12523]],[[13106,13106],"mapped",[12501,12449,12521,12483,12489]],[[13107,13107],"mapped",[12501,12451,12540,12488]],[[13108,13108],"mapped",[12502,12483,12471,12455,12523]],[[13109,13109],"mapped",[12501,12521,12531]],[[13110,13110],"mapped",[12504,12463,12479,12540,12523]],[[13111,13111],"mapped",[12506,12477]],[[13112,13112],"mapped",[12506,12491,12498]],[[13113,13113],"mapped",[12504,12523,12484]],[[13114,13114],"mapped",[12506,12531,12473]],[[13115,13115],"mapped",[12506,12540,12472]],[[13116,13116],"mapped",[12505,12540,12479]],[[13117,13117],"mapped",[12509,12452,12531,12488]],[[13118,13118],"mapped",[12508,12523,12488]],[[13119,13119],"mapped",[12507,12531]],[[13120,13120],"mapped",[12509,12531,12489]],[[13121,13121],"mapped",[12507,12540,12523]],[[13122,13122],"mapped",[12507,12540,12531]],[[13123,13123],"mapped",[12510,12452,12463,12525]],[[13124,13124],"mapped",[12510,12452,12523]],[[13125,13125],"mapped",[12510,12483,12495]],[[13126,13126],"mapped",[12510,12523,12463]],[[13127,13127],"mapped",[12510,12531,12471,12519,12531]],[[13128,13128],"mapped",[12511,12463,12525,12531]],[[13129,13129],"mapped",[12511,12522]],[[13130,13130],"mapped",[12511,12522,12496,12540,12523]],[[13131,13131],"mapped",[12513,12460]],[[13132,13132],"mapped",[12513,12460,12488,12531]],[[13133,13133],"mapped",[12513,12540,12488,12523]],[[13134,13134],"mapped",[12516,12540,12489]],[[13135,13135],"mapped",[12516,12540,12523]],[[13136,13136],"mapped",[12518,12450,12531]],[[13137,13137],"mapped",[12522,12483,12488,12523]],[[13138,13138],"mapped",[12522,12521]],[[13139,13139],"mapped",[12523,12500,12540]],[[13140,13140],"mapped",[12523,12540,12502,12523]],[[13141,13141],"mapped",[12524,12512]],[[13142,13142],"mapped",[12524,12531,12488,12466,12531]],[[13143,13143],"mapped",[12527,12483,12488]],[[13144,13144],"mapped",[48,28857]],[[13145,13145],"mapped",[49,28857]],[[13146,13146],"mapped",[50,28857]],[[13147,13147],"mapped",[51,28857]],[[13148,13148],"mapped",[52,28857]],[[13149,13149],"mapped",[53,28857]],[[13150,13150],"mapped",[54,28857]],[[13151,13151],"mapped",[55,28857]],[[13152,13152],"mapped",[56,28857]],[[13153,13153],"mapped",[57,28857]],[[13154,13154],"mapped",[49,48,28857]],[[13155,13155],"mapped",[49,49,28857]],[[13156,13156],"mapped",[49,50,28857]],[[13157,13157],"mapped",[49,51,28857]],[[13158,13158],"mapped",[49,52,28857]],[[13159,13159],"mapped",[49,53,28857]],[[13160,13160],"mapped",[49,54,28857]],[[13161,13161],"mapped",[49,55,28857]],[[13162,13162],"mapped",[49,56,28857]],[[13163,13163],"mapped",[49,57,28857]],[[13164,13164],"mapped",[50,48,28857]],[[13165,13165],"mapped",[50,49,28857]],[[13166,13166],"mapped",[50,50,28857]],[[13167,13167],"mapped",[50,51,28857]],[[13168,13168],"mapped",[50,52,28857]],[[13169,13169],"mapped",[104,112,97]],[[13170,13170],"mapped",[100,97]],[[13171,13171],"mapped",[97,117]],[[13172,13172],"mapped",[98,97,114]],[[13173,13173],"mapped",[111,118]],[[13174,13174],"mapped",[112,99]],[[13175,13175],"mapped",[100,109]],[[13176,13176],"mapped",[100,109,50]],[[13177,13177],"mapped",[100,109,51]],[[13178,13178],"mapped",[105,117]],[[13179,13179],"mapped",[24179,25104]],[[13180,13180],"mapped",[26157,21644]],[[13181,13181],"mapped",[22823,27491]],[[13182,13182],"mapped",[26126,27835]],[[13183,13183],"mapped",[26666,24335,20250,31038]],[[13184,13184],"mapped",[112,97]],[[13185,13185],"mapped",[110,97]],[[13186,13186],"mapped",[956,97]],[[13187,13187],"mapped",[109,97]],[[13188,13188],"mapped",[107,97]],[[13189,13189],"mapped",[107,98]],[[13190,13190],"mapped",[109,98]],[[13191,13191],"mapped",[103,98]],[[13192,13192],"mapped",[99,97,108]],[[13193,13193],"mapped",[107,99,97,108]],[[13194,13194],"mapped",[112,102]],[[13195,13195],"mapped",[110,102]],[[13196,13196],"mapped",[956,102]],[[13197,13197],"mapped",[956,103]],[[13198,13198],"mapped",[109,103]],[[13199,13199],"mapped",[107,103]],[[13200,13200],"mapped",[104,122]],[[13201,13201],"mapped",[107,104,122]],[[13202,13202],"mapped",[109,104,122]],[[13203,13203],"mapped",[103,104,122]],[[13204,13204],"mapped",[116,104,122]],[[13205,13205],"mapped",[956,108]],[[13206,13206],"mapped",[109,108]],[[13207,13207],"mapped",[100,108]],[[13208,13208],"mapped",[107,108]],[[13209,13209],"mapped",[102,109]],[[13210,13210],"mapped",[110,109]],[[13211,13211],"mapped",[956,109]],[[13212,13212],"mapped",[109,109]],[[13213,13213],"mapped",[99,109]],[[13214,13214],"mapped",[107,109]],[[13215,13215],"mapped",[109,109,50]],[[13216,13216],"mapped",[99,109,50]],[[13217,13217],"mapped",[109,50]],[[13218,13218],"mapped",[107,109,50]],[[13219,13219],"mapped",[109,109,51]],[[13220,13220],"mapped",[99,109,51]],[[13221,13221],"mapped",[109,51]],[[13222,13222],"mapped",[107,109,51]],[[13223,13223],"mapped",[109,8725,115]],[[13224,13224],"mapped",[109,8725,115,50]],[[13225,13225],"mapped",[112,97]],[[13226,13226],"mapped",[107,112,97]],[[13227,13227],"mapped",[109,112,97]],[[13228,13228],"mapped",[103,112,97]],[[13229,13229],"mapped",[114,97,100]],[[13230,13230],"mapped",[114,97,100,8725,115]],[[13231,13231],"mapped",[114,97,100,8725,115,50]],[[13232,13232],"mapped",[112,115]],[[13233,13233],"mapped",[110,115]],[[13234,13234],"mapped",[956,115]],[[13235,13235],"mapped",[109,115]],[[13236,13236],"mapped",[112,118]],[[13237,13237],"mapped",[110,118]],[[13238,13238],"mapped",[956,118]],[[13239,13239],"mapped",[109,118]],[[13240,13240],"mapped",[107,118]],[[13241,13241],"mapped",[109,118]],[[13242,13242],"mapped",[112,119]],[[13243,13243],"mapped",[110,119]],[[13244,13244],"mapped",[956,119]],[[13245,13245],"mapped",[109,119]],[[13246,13246],"mapped",[107,119]],[[13247,13247],"mapped",[109,119]],[[13248,13248],"mapped",[107,969]],[[13249,13249],"mapped",[109,969]],[[13250,13250],"disallowed"],[[13251,13251],"mapped",[98,113]],[[13252,13252],"mapped",[99,99]],[[13253,13253],"mapped",[99,100]],[[13254,13254],"mapped",[99,8725,107,103]],[[13255,13255],"disallowed"],[[13256,13256],"mapped",[100,98]],[[13257,13257],"mapped",[103,121]],[[13258,13258],"mapped",[104,97]],[[13259,13259],"mapped",[104,112]],[[13260,13260],"mapped",[105,110]],[[13261,13261],"mapped",[107,107]],[[13262,13262],"mapped",[107,109]],[[13263,13263],"mapped",[107,116]],[[13264,13264],"mapped",[108,109]],[[13265,13265],"mapped",[108,110]],[[13266,13266],"mapped",[108,111,103]],[[13267,13267],"mapped",[108,120]],[[13268,13268],"mapped",[109,98]],[[13269,13269],"mapped",[109,105,108]],[[13270,13270],"mapped",[109,111,108]],[[13271,13271],"mapped",[112,104]],[[13272,13272],"disallowed"],[[13273,13273],"mapped",[112,112,109]],[[13274,13274],"mapped",[112,114]],[[13275,13275],"mapped",[115,114]],[[13276,13276],"mapped",[115,118]],[[13277,13277],"mapped",[119,98]],[[13278,13278],"mapped",[118,8725,109]],[[13279,13279],"mapped",[97,8725,109]],[[13280,13280],"mapped",[49,26085]],[[13281,13281],"mapped",[50,26085]],[[13282,13282],"mapped",[51,26085]],[[13283,13283],"mapped",[52,26085]],[[13284,13284],"mapped",[53,26085]],[[13285,13285],"mapped",[54,26085]],[[13286,13286],"mapped",[55,26085]],[[13287,13287],"mapped",[56,26085]],[[13288,13288],"mapped",[57,26085]],[[13289,13289],"mapped",[49,48,26085]],[[13290,13290],"mapped",[49,49,26085]],[[13291,13291],"mapped",[49,50,26085]],[[13292,13292],"mapped",[49,51,26085]],[[13293,13293],"mapped",[49,52,26085]],[[13294,13294],"mapped",[49,53,26085]],[[13295,13295],"mapped",[49,54,26085]],[[13296,13296],"mapped",[49,55,26085]],[[13297,13297],"mapped",[49,56,26085]],[[13298,13298],"mapped",[49,57,26085]],[[13299,13299],"mapped",[50,48,26085]],[[13300,13300],"mapped",[50,49,26085]],[[13301,13301],"mapped",[50,50,26085]],[[13302,13302],"mapped",[50,51,26085]],[[13303,13303],"mapped",[50,52,26085]],[[13304,13304],"mapped",[50,53,26085]],[[13305,13305],"mapped",[50,54,26085]],[[13306,13306],"mapped",[50,55,26085]],[[13307,13307],"mapped",[50,56,26085]],[[13308,13308],"mapped",[50,57,26085]],[[13309,13309],"mapped",[51,48,26085]],[[13310,13310],"mapped",[51,49,26085]],[[13311,13311],"mapped",[103,97,108]],[[13312,19893],"valid"],[[19894,19903],"disallowed"],[[19904,19967],"valid",[],"NV8"],[[19968,40869],"valid"],[[40870,40891],"valid"],[[40892,40899],"valid"],[[40900,40907],"valid"],[[40908,40908],"valid"],[[40909,40917],"valid"],[[40918,40959],"disallowed"],[[40960,42124],"valid"],[[42125,42127],"disallowed"],[[42128,42145],"valid",[],"NV8"],[[42146,42147],"valid",[],"NV8"],[[42148,42163],"valid",[],"NV8"],[[42164,42164],"valid",[],"NV8"],[[42165,42176],"valid",[],"NV8"],[[42177,42177],"valid",[],"NV8"],[[42178,42180],"valid",[],"NV8"],[[42181,42181],"valid",[],"NV8"],[[42182,42182],"valid",[],"NV8"],[[42183,42191],"disallowed"],[[42192,42237],"valid"],[[42238,42239],"valid",[],"NV8"],[[42240,42508],"valid"],[[42509,42511],"valid",[],"NV8"],[[42512,42539],"valid"],[[42540,42559],"disallowed"],[[42560,42560],"mapped",[42561]],[[42561,42561],"valid"],[[42562,42562],"mapped",[42563]],[[42563,42563],"valid"],[[42564,42564],"mapped",[42565]],[[42565,42565],"valid"],[[42566,42566],"mapped",[42567]],[[42567,42567],"valid"],[[42568,42568],"mapped",[42569]],[[42569,42569],"valid"],[[42570,42570],"mapped",[42571]],[[42571,42571],"valid"],[[42572,42572],"mapped",[42573]],[[42573,42573],"valid"],[[42574,42574],"mapped",[42575]],[[42575,42575],"valid"],[[42576,42576],"mapped",[42577]],[[42577,42577],"valid"],[[42578,42578],"mapped",[42579]],[[42579,42579],"valid"],[[42580,42580],"mapped",[42581]],[[42581,42581],"valid"],[[42582,42582],"mapped",[42583]],[[42583,42583],"valid"],[[42584,42584],"mapped",[42585]],[[42585,42585],"valid"],[[42586,42586],"mapped",[42587]],[[42587,42587],"valid"],[[42588,42588],"mapped",[42589]],[[42589,42589],"valid"],[[42590,42590],"mapped",[42591]],[[42591,42591],"valid"],[[42592,42592],"mapped",[42593]],[[42593,42593],"valid"],[[42594,42594],"mapped",[42595]],[[42595,42595],"valid"],[[42596,42596],"mapped",[42597]],[[42597,42597],"valid"],[[42598,42598],"mapped",[42599]],[[42599,42599],"valid"],[[42600,42600],"mapped",[42601]],[[42601,42601],"valid"],[[42602,42602],"mapped",[42603]],[[42603,42603],"valid"],[[42604,42604],"mapped",[42605]],[[42605,42607],"valid"],[[42608,42611],"valid",[],"NV8"],[[42612,42619],"valid"],[[42620,42621],"valid"],[[42622,42622],"valid",[],"NV8"],[[42623,42623],"valid"],[[42624,42624],"mapped",[42625]],[[42625,42625],"valid"],[[42626,42626],"mapped",[42627]],[[42627,42627],"valid"],[[42628,42628],"mapped",[42629]],[[42629,42629],"valid"],[[42630,42630],"mapped",[42631]],[[42631,42631],"valid"],[[42632,42632],"mapped",[42633]],[[42633,42633],"valid"],[[42634,42634],"mapped",[42635]],[[42635,42635],"valid"],[[42636,42636],"mapped",[42637]],[[42637,42637],"valid"],[[42638,42638],"mapped",[42639]],[[42639,42639],"valid"],[[42640,42640],"mapped",[42641]],[[42641,42641],"valid"],[[42642,42642],"mapped",[42643]],[[42643,42643],"valid"],[[42644,42644],"mapped",[42645]],[[42645,42645],"valid"],[[42646,42646],"mapped",[42647]],[[42647,42647],"valid"],[[42648,42648],"mapped",[42649]],[[42649,42649],"valid"],[[42650,42650],"mapped",[42651]],[[42651,42651],"valid"],[[42652,42652],"mapped",[1098]],[[42653,42653],"mapped",[1100]],[[42654,42654],"valid"],[[42655,42655],"valid"],[[42656,42725],"valid"],[[42726,42735],"valid",[],"NV8"],[[42736,42737],"valid"],[[42738,42743],"valid",[],"NV8"],[[42744,42751],"disallowed"],[[42752,42774],"valid",[],"NV8"],[[42775,42778],"valid"],[[42779,42783],"valid"],[[42784,42785],"valid",[],"NV8"],[[42786,42786],"mapped",[42787]],[[42787,42787],"valid"],[[42788,42788],"mapped",[42789]],[[42789,42789],"valid"],[[42790,42790],"mapped",[42791]],[[42791,42791],"valid"],[[42792,42792],"mapped",[42793]],[[42793,42793],"valid"],[[42794,42794],"mapped",[42795]],[[42795,42795],"valid"],[[42796,42796],"mapped",[42797]],[[42797,42797],"valid"],[[42798,42798],"mapped",[42799]],[[42799,42801],"valid"],[[42802,42802],"mapped",[42803]],[[42803,42803],"valid"],[[42804,42804],"mapped",[42805]],[[42805,42805],"valid"],[[42806,42806],"mapped",[42807]],[[42807,42807],"valid"],[[42808,42808],"mapped",[42809]],[[42809,42809],"valid"],[[42810,42810],"mapped",[42811]],[[42811,42811],"valid"],[[42812,42812],"mapped",[42813]],[[42813,42813],"valid"],[[42814,42814],"mapped",[42815]],[[42815,42815],"valid"],[[42816,42816],"mapped",[42817]],[[42817,42817],"valid"],[[42818,42818],"mapped",[42819]],[[42819,42819],"valid"],[[42820,42820],"mapped",[42821]],[[42821,42821],"valid"],[[42822,42822],"mapped",[42823]],[[42823,42823],"valid"],[[42824,42824],"mapped",[42825]],[[42825,42825],"valid"],[[42826,42826],"mapped",[42827]],[[42827,42827],"valid"],[[42828,42828],"mapped",[42829]],[[42829,42829],"valid"],[[42830,42830],"mapped",[42831]],[[42831,42831],"valid"],[[42832,42832],"mapped",[42833]],[[42833,42833],"valid"],[[42834,42834],"mapped",[42835]],[[42835,42835],"valid"],[[42836,42836],"mapped",[42837]],[[42837,42837],"valid"],[[42838,42838],"mapped",[42839]],[[42839,42839],"valid"],[[42840,42840],"mapped",[42841]],[[42841,42841],"valid"],[[42842,42842],"mapped",[42843]],[[42843,42843],"valid"],[[42844,42844],"mapped",[42845]],[[42845,42845],"valid"],[[42846,42846],"mapped",[42847]],[[42847,42847],"valid"],[[42848,42848],"mapped",[42849]],[[42849,42849],"valid"],[[42850,42850],"mapped",[42851]],[[42851,42851],"valid"],[[42852,42852],"mapped",[42853]],[[42853,42853],"valid"],[[42854,42854],"mapped",[42855]],[[42855,42855],"valid"],[[42856,42856],"mapped",[42857]],[[42857,42857],"valid"],[[42858,42858],"mapped",[42859]],[[42859,42859],"valid"],[[42860,42860],"mapped",[42861]],[[42861,42861],"valid"],[[42862,42862],"mapped",[42863]],[[42863,42863],"valid"],[[42864,42864],"mapped",[42863]],[[42865,42872],"valid"],[[42873,42873],"mapped",[42874]],[[42874,42874],"valid"],[[42875,42875],"mapped",[42876]],[[42876,42876],"valid"],[[42877,42877],"mapped",[7545]],[[42878,42878],"mapped",[42879]],[[42879,42879],"valid"],[[42880,42880],"mapped",[42881]],[[42881,42881],"valid"],[[42882,42882],"mapped",[42883]],[[42883,42883],"valid"],[[42884,42884],"mapped",[42885]],[[42885,42885],"valid"],[[42886,42886],"mapped",[42887]],[[42887,42888],"valid"],[[42889,42890],"valid",[],"NV8"],[[42891,42891],"mapped",[42892]],[[42892,42892],"valid"],[[42893,42893],"mapped",[613]],[[42894,42894],"valid"],[[42895,42895],"valid"],[[42896,42896],"mapped",[42897]],[[42897,42897],"valid"],[[42898,42898],"mapped",[42899]],[[42899,42899],"valid"],[[42900,42901],"valid"],[[42902,42902],"mapped",[42903]],[[42903,42903],"valid"],[[42904,42904],"mapped",[42905]],[[42905,42905],"valid"],[[42906,42906],"mapped",[42907]],[[42907,42907],"valid"],[[42908,42908],"mapped",[42909]],[[42909,42909],"valid"],[[42910,42910],"mapped",[42911]],[[42911,42911],"valid"],[[42912,42912],"mapped",[42913]],[[42913,42913],"valid"],[[42914,42914],"mapped",[42915]],[[42915,42915],"valid"],[[42916,42916],"mapped",[42917]],[[42917,42917],"valid"],[[42918,42918],"mapped",[42919]],[[42919,42919],"valid"],[[42920,42920],"mapped",[42921]],[[42921,42921],"valid"],[[42922,42922],"mapped",[614]],[[42923,42923],"mapped",[604]],[[42924,42924],"mapped",[609]],[[42925,42925],"mapped",[620]],[[42926,42927],"disallowed"],[[42928,42928],"mapped",[670]],[[42929,42929],"mapped",[647]],[[42930,42930],"mapped",[669]],[[42931,42931],"mapped",[43859]],[[42932,42932],"mapped",[42933]],[[42933,42933],"valid"],[[42934,42934],"mapped",[42935]],[[42935,42935],"valid"],[[42936,42998],"disallowed"],[[42999,42999],"valid"],[[43e3,43e3],"mapped",[295]],[[43001,43001],"mapped",[339]],[[43002,43002],"valid"],[[43003,43007],"valid"],[[43008,43047],"valid"],[[43048,43051],"valid",[],"NV8"],[[43052,43055],"disallowed"],[[43056,43065],"valid",[],"NV8"],[[43066,43071],"disallowed"],[[43072,43123],"valid"],[[43124,43127],"valid",[],"NV8"],[[43128,43135],"disallowed"],[[43136,43204],"valid"],[[43205,43213],"disallowed"],[[43214,43215],"valid",[],"NV8"],[[43216,43225],"valid"],[[43226,43231],"disallowed"],[[43232,43255],"valid"],[[43256,43258],"valid",[],"NV8"],[[43259,43259],"valid"],[[43260,43260],"valid",[],"NV8"],[[43261,43261],"valid"],[[43262,43263],"disallowed"],[[43264,43309],"valid"],[[43310,43311],"valid",[],"NV8"],[[43312,43347],"valid"],[[43348,43358],"disallowed"],[[43359,43359],"valid",[],"NV8"],[[43360,43388],"valid",[],"NV8"],[[43389,43391],"disallowed"],[[43392,43456],"valid"],[[43457,43469],"valid",[],"NV8"],[[43470,43470],"disallowed"],[[43471,43481],"valid"],[[43482,43485],"disallowed"],[[43486,43487],"valid",[],"NV8"],[[43488,43518],"valid"],[[43519,43519],"disallowed"],[[43520,43574],"valid"],[[43575,43583],"disallowed"],[[43584,43597],"valid"],[[43598,43599],"disallowed"],[[43600,43609],"valid"],[[43610,43611],"disallowed"],[[43612,43615],"valid",[],"NV8"],[[43616,43638],"valid"],[[43639,43641],"valid",[],"NV8"],[[43642,43643],"valid"],[[43644,43647],"valid"],[[43648,43714],"valid"],[[43715,43738],"disallowed"],[[43739,43741],"valid"],[[43742,43743],"valid",[],"NV8"],[[43744,43759],"valid"],[[43760,43761],"valid",[],"NV8"],[[43762,43766],"valid"],[[43767,43776],"disallowed"],[[43777,43782],"valid"],[[43783,43784],"disallowed"],[[43785,43790],"valid"],[[43791,43792],"disallowed"],[[43793,43798],"valid"],[[43799,43807],"disallowed"],[[43808,43814],"valid"],[[43815,43815],"disallowed"],[[43816,43822],"valid"],[[43823,43823],"disallowed"],[[43824,43866],"valid"],[[43867,43867],"valid",[],"NV8"],[[43868,43868],"mapped",[42791]],[[43869,43869],"mapped",[43831]],[[43870,43870],"mapped",[619]],[[43871,43871],"mapped",[43858]],[[43872,43875],"valid"],[[43876,43877],"valid"],[[43878,43887],"disallowed"],[[43888,43888],"mapped",[5024]],[[43889,43889],"mapped",[5025]],[[43890,43890],"mapped",[5026]],[[43891,43891],"mapped",[5027]],[[43892,43892],"mapped",[5028]],[[43893,43893],"mapped",[5029]],[[43894,43894],"mapped",[5030]],[[43895,43895],"mapped",[5031]],[[43896,43896],"mapped",[5032]],[[43897,43897],"mapped",[5033]],[[43898,43898],"mapped",[5034]],[[43899,43899],"mapped",[5035]],[[43900,43900],"mapped",[5036]],[[43901,43901],"mapped",[5037]],[[43902,43902],"mapped",[5038]],[[43903,43903],"mapped",[5039]],[[43904,43904],"mapped",[5040]],[[43905,43905],"mapped",[5041]],[[43906,43906],"mapped",[5042]],[[43907,43907],"mapped",[5043]],[[43908,43908],"mapped",[5044]],[[43909,43909],"mapped",[5045]],[[43910,43910],"mapped",[5046]],[[43911,43911],"mapped",[5047]],[[43912,43912],"mapped",[5048]],[[43913,43913],"mapped",[5049]],[[43914,43914],"mapped",[5050]],[[43915,43915],"mapped",[5051]],[[43916,43916],"mapped",[5052]],[[43917,43917],"mapped",[5053]],[[43918,43918],"mapped",[5054]],[[43919,43919],"mapped",[5055]],[[43920,43920],"mapped",[5056]],[[43921,43921],"mapped",[5057]],[[43922,43922],"mapped",[5058]],[[43923,43923],"mapped",[5059]],[[43924,43924],"mapped",[5060]],[[43925,43925],"mapped",[5061]],[[43926,43926],"mapped",[5062]],[[43927,43927],"mapped",[5063]],[[43928,43928],"mapped",[5064]],[[43929,43929],"mapped",[5065]],[[43930,43930],"mapped",[5066]],[[43931,43931],"mapped",[5067]],[[43932,43932],"mapped",[5068]],[[43933,43933],"mapped",[5069]],[[43934,43934],"mapped",[5070]],[[43935,43935],"mapped",[5071]],[[43936,43936],"mapped",[5072]],[[43937,43937],"mapped",[5073]],[[43938,43938],"mapped",[5074]],[[43939,43939],"mapped",[5075]],[[43940,43940],"mapped",[5076]],[[43941,43941],"mapped",[5077]],[[43942,43942],"mapped",[5078]],[[43943,43943],"mapped",[5079]],[[43944,43944],"mapped",[5080]],[[43945,43945],"mapped",[5081]],[[43946,43946],"mapped",[5082]],[[43947,43947],"mapped",[5083]],[[43948,43948],"mapped",[5084]],[[43949,43949],"mapped",[5085]],[[43950,43950],"mapped",[5086]],[[43951,43951],"mapped",[5087]],[[43952,43952],"mapped",[5088]],[[43953,43953],"mapped",[5089]],[[43954,43954],"mapped",[5090]],[[43955,43955],"mapped",[5091]],[[43956,43956],"mapped",[5092]],[[43957,43957],"mapped",[5093]],[[43958,43958],"mapped",[5094]],[[43959,43959],"mapped",[5095]],[[43960,43960],"mapped",[5096]],[[43961,43961],"mapped",[5097]],[[43962,43962],"mapped",[5098]],[[43963,43963],"mapped",[5099]],[[43964,43964],"mapped",[5100]],[[43965,43965],"mapped",[5101]],[[43966,43966],"mapped",[5102]],[[43967,43967],"mapped",[5103]],[[43968,44010],"valid"],[[44011,44011],"valid",[],"NV8"],[[44012,44013],"valid"],[[44014,44015],"disallowed"],[[44016,44025],"valid"],[[44026,44031],"disallowed"],[[44032,55203],"valid"],[[55204,55215],"disallowed"],[[55216,55238],"valid",[],"NV8"],[[55239,55242],"disallowed"],[[55243,55291],"valid",[],"NV8"],[[55292,55295],"disallowed"],[[55296,57343],"disallowed"],[[57344,63743],"disallowed"],[[63744,63744],"mapped",[35912]],[[63745,63745],"mapped",[26356]],[[63746,63746],"mapped",[36554]],[[63747,63747],"mapped",[36040]],[[63748,63748],"mapped",[28369]],[[63749,63749],"mapped",[20018]],[[63750,63750],"mapped",[21477]],[[63751,63752],"mapped",[40860]],[[63753,63753],"mapped",[22865]],[[63754,63754],"mapped",[37329]],[[63755,63755],"mapped",[21895]],[[63756,63756],"mapped",[22856]],[[63757,63757],"mapped",[25078]],[[63758,63758],"mapped",[30313]],[[63759,63759],"mapped",[32645]],[[63760,63760],"mapped",[34367]],[[63761,63761],"mapped",[34746]],[[63762,63762],"mapped",[35064]],[[63763,63763],"mapped",[37007]],[[63764,63764],"mapped",[27138]],[[63765,63765],"mapped",[27931]],[[63766,63766],"mapped",[28889]],[[63767,63767],"mapped",[29662]],[[63768,63768],"mapped",[33853]],[[63769,63769],"mapped",[37226]],[[63770,63770],"mapped",[39409]],[[63771,63771],"mapped",[20098]],[[63772,63772],"mapped",[21365]],[[63773,63773],"mapped",[27396]],[[63774,63774],"mapped",[29211]],[[63775,63775],"mapped",[34349]],[[63776,63776],"mapped",[40478]],[[63777,63777],"mapped",[23888]],[[63778,63778],"mapped",[28651]],[[63779,63779],"mapped",[34253]],[[63780,63780],"mapped",[35172]],[[63781,63781],"mapped",[25289]],[[63782,63782],"mapped",[33240]],[[63783,63783],"mapped",[34847]],[[63784,63784],"mapped",[24266]],[[63785,63785],"mapped",[26391]],[[63786,63786],"mapped",[28010]],[[63787,63787],"mapped",[29436]],[[63788,63788],"mapped",[37070]],[[63789,63789],"mapped",[20358]],[[63790,63790],"mapped",[20919]],[[63791,63791],"mapped",[21214]],[[63792,63792],"mapped",[25796]],[[63793,63793],"mapped",[27347]],[[63794,63794],"mapped",[29200]],[[63795,63795],"mapped",[30439]],[[63796,63796],"mapped",[32769]],[[63797,63797],"mapped",[34310]],[[63798,63798],"mapped",[34396]],[[63799,63799],"mapped",[36335]],[[63800,63800],"mapped",[38706]],[[63801,63801],"mapped",[39791]],[[63802,63802],"mapped",[40442]],[[63803,63803],"mapped",[30860]],[[63804,63804],"mapped",[31103]],[[63805,63805],"mapped",[32160]],[[63806,63806],"mapped",[33737]],[[63807,63807],"mapped",[37636]],[[63808,63808],"mapped",[40575]],[[63809,63809],"mapped",[35542]],[[63810,63810],"mapped",[22751]],[[63811,63811],"mapped",[24324]],[[63812,63812],"mapped",[31840]],[[63813,63813],"mapped",[32894]],[[63814,63814],"mapped",[29282]],[[63815,63815],"mapped",[30922]],[[63816,63816],"mapped",[36034]],[[63817,63817],"mapped",[38647]],[[63818,63818],"mapped",[22744]],[[63819,63819],"mapped",[23650]],[[63820,63820],"mapped",[27155]],[[63821,63821],"mapped",[28122]],[[63822,63822],"mapped",[28431]],[[63823,63823],"mapped",[32047]],[[63824,63824],"mapped",[32311]],[[63825,63825],"mapped",[38475]],[[63826,63826],"mapped",[21202]],[[63827,63827],"mapped",[32907]],[[63828,63828],"mapped",[20956]],[[63829,63829],"mapped",[20940]],[[63830,63830],"mapped",[31260]],[[63831,63831],"mapped",[32190]],[[63832,63832],"mapped",[33777]],[[63833,63833],"mapped",[38517]],[[63834,63834],"mapped",[35712]],[[63835,63835],"mapped",[25295]],[[63836,63836],"mapped",[27138]],[[63837,63837],"mapped",[35582]],[[63838,63838],"mapped",[20025]],[[63839,63839],"mapped",[23527]],[[63840,63840],"mapped",[24594]],[[63841,63841],"mapped",[29575]],[[63842,63842],"mapped",[30064]],[[63843,63843],"mapped",[21271]],[[63844,63844],"mapped",[30971]],[[63845,63845],"mapped",[20415]],[[63846,63846],"mapped",[24489]],[[63847,63847],"mapped",[19981]],[[63848,63848],"mapped",[27852]],[[63849,63849],"mapped",[25976]],[[63850,63850],"mapped",[32034]],[[63851,63851],"mapped",[21443]],[[63852,63852],"mapped",[22622]],[[63853,63853],"mapped",[30465]],[[63854,63854],"mapped",[33865]],[[63855,63855],"mapped",[35498]],[[63856,63856],"mapped",[27578]],[[63857,63857],"mapped",[36784]],[[63858,63858],"mapped",[27784]],[[63859,63859],"mapped",[25342]],[[63860,63860],"mapped",[33509]],[[63861,63861],"mapped",[25504]],[[63862,63862],"mapped",[30053]],[[63863,63863],"mapped",[20142]],[[63864,63864],"mapped",[20841]],[[63865,63865],"mapped",[20937]],[[63866,63866],"mapped",[26753]],[[63867,63867],"mapped",[31975]],[[63868,63868],"mapped",[33391]],[[63869,63869],"mapped",[35538]],[[63870,63870],"mapped",[37327]],[[63871,63871],"mapped",[21237]],[[63872,63872],"mapped",[21570]],[[63873,63873],"mapped",[22899]],[[63874,63874],"mapped",[24300]],[[63875,63875],"mapped",[26053]],[[63876,63876],"mapped",[28670]],[[63877,63877],"mapped",[31018]],[[63878,63878],"mapped",[38317]],[[63879,63879],"mapped",[39530]],[[63880,63880],"mapped",[40599]],[[63881,63881],"mapped",[40654]],[[63882,63882],"mapped",[21147]],[[63883,63883],"mapped",[26310]],[[63884,63884],"mapped",[27511]],[[63885,63885],"mapped",[36706]],[[63886,63886],"mapped",[24180]],[[63887,63887],"mapped",[24976]],[[63888,63888],"mapped",[25088]],[[63889,63889],"mapped",[25754]],[[63890,63890],"mapped",[28451]],[[63891,63891],"mapped",[29001]],[[63892,63892],"mapped",[29833]],[[63893,63893],"mapped",[31178]],[[63894,63894],"mapped",[32244]],[[63895,63895],"mapped",[32879]],[[63896,63896],"mapped",[36646]],[[63897,63897],"mapped",[34030]],[[63898,63898],"mapped",[36899]],[[63899,63899],"mapped",[37706]],[[63900,63900],"mapped",[21015]],[[63901,63901],"mapped",[21155]],[[63902,63902],"mapped",[21693]],[[63903,63903],"mapped",[28872]],[[63904,63904],"mapped",[35010]],[[63905,63905],"mapped",[35498]],[[63906,63906],"mapped",[24265]],[[63907,63907],"mapped",[24565]],[[63908,63908],"mapped",[25467]],[[63909,63909],"mapped",[27566]],[[63910,63910],"mapped",[31806]],[[63911,63911],"mapped",[29557]],[[63912,63912],"mapped",[20196]],[[63913,63913],"mapped",[22265]],[[63914,63914],"mapped",[23527]],[[63915,63915],"mapped",[23994]],[[63916,63916],"mapped",[24604]],[[63917,63917],"mapped",[29618]],[[63918,63918],"mapped",[29801]],[[63919,63919],"mapped",[32666]],[[63920,63920],"mapped",[32838]],[[63921,63921],"mapped",[37428]],[[63922,63922],"mapped",[38646]],[[63923,63923],"mapped",[38728]],[[63924,63924],"mapped",[38936]],[[63925,63925],"mapped",[20363]],[[63926,63926],"mapped",[31150]],[[63927,63927],"mapped",[37300]],[[63928,63928],"mapped",[38584]],[[63929,63929],"mapped",[24801]],[[63930,63930],"mapped",[20102]],[[63931,63931],"mapped",[20698]],[[63932,63932],"mapped",[23534]],[[63933,63933],"mapped",[23615]],[[63934,63934],"mapped",[26009]],[[63935,63935],"mapped",[27138]],[[63936,63936],"mapped",[29134]],[[63937,63937],"mapped",[30274]],[[63938,63938],"mapped",[34044]],[[63939,63939],"mapped",[36988]],[[63940,63940],"mapped",[40845]],[[63941,63941],"mapped",[26248]],[[63942,63942],"mapped",[38446]],[[63943,63943],"mapped",[21129]],[[63944,63944],"mapped",[26491]],[[63945,63945],"mapped",[26611]],[[63946,63946],"mapped",[27969]],[[63947,63947],"mapped",[28316]],[[63948,63948],"mapped",[29705]],[[63949,63949],"mapped",[30041]],[[63950,63950],"mapped",[30827]],[[63951,63951],"mapped",[32016]],[[63952,63952],"mapped",[39006]],[[63953,63953],"mapped",[20845]],[[63954,63954],"mapped",[25134]],[[63955,63955],"mapped",[38520]],[[63956,63956],"mapped",[20523]],[[63957,63957],"mapped",[23833]],[[63958,63958],"mapped",[28138]],[[63959,63959],"mapped",[36650]],[[63960,63960],"mapped",[24459]],[[63961,63961],"mapped",[24900]],[[63962,63962],"mapped",[26647]],[[63963,63963],"mapped",[29575]],[[63964,63964],"mapped",[38534]],[[63965,63965],"mapped",[21033]],[[63966,63966],"mapped",[21519]],[[63967,63967],"mapped",[23653]],[[63968,63968],"mapped",[26131]],[[63969,63969],"mapped",[26446]],[[63970,63970],"mapped",[26792]],[[63971,63971],"mapped",[27877]],[[63972,63972],"mapped",[29702]],[[63973,63973],"mapped",[30178]],[[63974,63974],"mapped",[32633]],[[63975,63975],"mapped",[35023]],[[63976,63976],"mapped",[35041]],[[63977,63977],"mapped",[37324]],[[63978,63978],"mapped",[38626]],[[63979,63979],"mapped",[21311]],[[63980,63980],"mapped",[28346]],[[63981,63981],"mapped",[21533]],[[63982,63982],"mapped",[29136]],[[63983,63983],"mapped",[29848]],[[63984,63984],"mapped",[34298]],[[63985,63985],"mapped",[38563]],[[63986,63986],"mapped",[40023]],[[63987,63987],"mapped",[40607]],[[63988,63988],"mapped",[26519]],[[63989,63989],"mapped",[28107]],[[63990,63990],"mapped",[33256]],[[63991,63991],"mapped",[31435]],[[63992,63992],"mapped",[31520]],[[63993,63993],"mapped",[31890]],[[63994,63994],"mapped",[29376]],[[63995,63995],"mapped",[28825]],[[63996,63996],"mapped",[35672]],[[63997,63997],"mapped",[20160]],[[63998,63998],"mapped",[33590]],[[63999,63999],"mapped",[21050]],[[64e3,64e3],"mapped",[20999]],[[64001,64001],"mapped",[24230]],[[64002,64002],"mapped",[25299]],[[64003,64003],"mapped",[31958]],[[64004,64004],"mapped",[23429]],[[64005,64005],"mapped",[27934]],[[64006,64006],"mapped",[26292]],[[64007,64007],"mapped",[36667]],[[64008,64008],"mapped",[34892]],[[64009,64009],"mapped",[38477]],[[64010,64010],"mapped",[35211]],[[64011,64011],"mapped",[24275]],[[64012,64012],"mapped",[20800]],[[64013,64013],"mapped",[21952]],[[64014,64015],"valid"],[[64016,64016],"mapped",[22618]],[[64017,64017],"valid"],[[64018,64018],"mapped",[26228]],[[64019,64020],"valid"],[[64021,64021],"mapped",[20958]],[[64022,64022],"mapped",[29482]],[[64023,64023],"mapped",[30410]],[[64024,64024],"mapped",[31036]],[[64025,64025],"mapped",[31070]],[[64026,64026],"mapped",[31077]],[[64027,64027],"mapped",[31119]],[[64028,64028],"mapped",[38742]],[[64029,64029],"mapped",[31934]],[[64030,64030],"mapped",[32701]],[[64031,64031],"valid"],[[64032,64032],"mapped",[34322]],[[64033,64033],"valid"],[[64034,64034],"mapped",[35576]],[[64035,64036],"valid"],[[64037,64037],"mapped",[36920]],[[64038,64038],"mapped",[37117]],[[64039,64041],"valid"],[[64042,64042],"mapped",[39151]],[[64043,64043],"mapped",[39164]],[[64044,64044],"mapped",[39208]],[[64045,64045],"mapped",[40372]],[[64046,64046],"mapped",[37086]],[[64047,64047],"mapped",[38583]],[[64048,64048],"mapped",[20398]],[[64049,64049],"mapped",[20711]],[[64050,64050],"mapped",[20813]],[[64051,64051],"mapped",[21193]],[[64052,64052],"mapped",[21220]],[[64053,64053],"mapped",[21329]],[[64054,64054],"mapped",[21917]],[[64055,64055],"mapped",[22022]],[[64056,64056],"mapped",[22120]],[[64057,64057],"mapped",[22592]],[[64058,64058],"mapped",[22696]],[[64059,64059],"mapped",[23652]],[[64060,64060],"mapped",[23662]],[[64061,64061],"mapped",[24724]],[[64062,64062],"mapped",[24936]],[[64063,64063],"mapped",[24974]],[[64064,64064],"mapped",[25074]],[[64065,64065],"mapped",[25935]],[[64066,64066],"mapped",[26082]],[[64067,64067],"mapped",[26257]],[[64068,64068],"mapped",[26757]],[[64069,64069],"mapped",[28023]],[[64070,64070],"mapped",[28186]],[[64071,64071],"mapped",[28450]],[[64072,64072],"mapped",[29038]],[[64073,64073],"mapped",[29227]],[[64074,64074],"mapped",[29730]],[[64075,64075],"mapped",[30865]],[[64076,64076],"mapped",[31038]],[[64077,64077],"mapped",[31049]],[[64078,64078],"mapped",[31048]],[[64079,64079],"mapped",[31056]],[[64080,64080],"mapped",[31062]],[[64081,64081],"mapped",[31069]],[[64082,64082],"mapped",[31117]],[[64083,64083],"mapped",[31118]],[[64084,64084],"mapped",[31296]],[[64085,64085],"mapped",[31361]],[[64086,64086],"mapped",[31680]],[[64087,64087],"mapped",[32244]],[[64088,64088],"mapped",[32265]],[[64089,64089],"mapped",[32321]],[[64090,64090],"mapped",[32626]],[[64091,64091],"mapped",[32773]],[[64092,64092],"mapped",[33261]],[[64093,64094],"mapped",[33401]],[[64095,64095],"mapped",[33879]],[[64096,64096],"mapped",[35088]],[[64097,64097],"mapped",[35222]],[[64098,64098],"mapped",[35585]],[[64099,64099],"mapped",[35641]],[[64100,64100],"mapped",[36051]],[[64101,64101],"mapped",[36104]],[[64102,64102],"mapped",[36790]],[[64103,64103],"mapped",[36920]],[[64104,64104],"mapped",[38627]],[[64105,64105],"mapped",[38911]],[[64106,64106],"mapped",[38971]],[[64107,64107],"mapped",[24693]],[[64108,64108],"mapped",[148206]],[[64109,64109],"mapped",[33304]],[[64110,64111],"disallowed"],[[64112,64112],"mapped",[20006]],[[64113,64113],"mapped",[20917]],[[64114,64114],"mapped",[20840]],[[64115,64115],"mapped",[20352]],[[64116,64116],"mapped",[20805]],[[64117,64117],"mapped",[20864]],[[64118,64118],"mapped",[21191]],[[64119,64119],"mapped",[21242]],[[64120,64120],"mapped",[21917]],[[64121,64121],"mapped",[21845]],[[64122,64122],"mapped",[21913]],[[64123,64123],"mapped",[21986]],[[64124,64124],"mapped",[22618]],[[64125,64125],"mapped",[22707]],[[64126,64126],"mapped",[22852]],[[64127,64127],"mapped",[22868]],[[64128,64128],"mapped",[23138]],[[64129,64129],"mapped",[23336]],[[64130,64130],"mapped",[24274]],[[64131,64131],"mapped",[24281]],[[64132,64132],"mapped",[24425]],[[64133,64133],"mapped",[24493]],[[64134,64134],"mapped",[24792]],[[64135,64135],"mapped",[24910]],[[64136,64136],"mapped",[24840]],[[64137,64137],"mapped",[24974]],[[64138,64138],"mapped",[24928]],[[64139,64139],"mapped",[25074]],[[64140,64140],"mapped",[25140]],[[64141,64141],"mapped",[25540]],[[64142,64142],"mapped",[25628]],[[64143,64143],"mapped",[25682]],[[64144,64144],"mapped",[25942]],[[64145,64145],"mapped",[26228]],[[64146,64146],"mapped",[26391]],[[64147,64147],"mapped",[26395]],[[64148,64148],"mapped",[26454]],[[64149,64149],"mapped",[27513]],[[64150,64150],"mapped",[27578]],[[64151,64151],"mapped",[27969]],[[64152,64152],"mapped",[28379]],[[64153,64153],"mapped",[28363]],[[64154,64154],"mapped",[28450]],[[64155,64155],"mapped",[28702]],[[64156,64156],"mapped",[29038]],[[64157,64157],"mapped",[30631]],[[64158,64158],"mapped",[29237]],[[64159,64159],"mapped",[29359]],[[64160,64160],"mapped",[29482]],[[64161,64161],"mapped",[29809]],[[64162,64162],"mapped",[29958]],[[64163,64163],"mapped",[30011]],[[64164,64164],"mapped",[30237]],[[64165,64165],"mapped",[30239]],[[64166,64166],"mapped",[30410]],[[64167,64167],"mapped",[30427]],[[64168,64168],"mapped",[30452]],[[64169,64169],"mapped",[30538]],[[64170,64170],"mapped",[30528]],[[64171,64171],"mapped",[30924]],[[64172,64172],"mapped",[31409]],[[64173,64173],"mapped",[31680]],[[64174,64174],"mapped",[31867]],[[64175,64175],"mapped",[32091]],[[64176,64176],"mapped",[32244]],[[64177,64177],"mapped",[32574]],[[64178,64178],"mapped",[32773]],[[64179,64179],"mapped",[33618]],[[64180,64180],"mapped",[33775]],[[64181,64181],"mapped",[34681]],[[64182,64182],"mapped",[35137]],[[64183,64183],"mapped",[35206]],[[64184,64184],"mapped",[35222]],[[64185,64185],"mapped",[35519]],[[64186,64186],"mapped",[35576]],[[64187,64187],"mapped",[35531]],[[64188,64188],"mapped",[35585]],[[64189,64189],"mapped",[35582]],[[64190,64190],"mapped",[35565]],[[64191,64191],"mapped",[35641]],[[64192,64192],"mapped",[35722]],[[64193,64193],"mapped",[36104]],[[64194,64194],"mapped",[36664]],[[64195,64195],"mapped",[36978]],[[64196,64196],"mapped",[37273]],[[64197,64197],"mapped",[37494]],[[64198,64198],"mapped",[38524]],[[64199,64199],"mapped",[38627]],[[64200,64200],"mapped",[38742]],[[64201,64201],"mapped",[38875]],[[64202,64202],"mapped",[38911]],[[64203,64203],"mapped",[38923]],[[64204,64204],"mapped",[38971]],[[64205,64205],"mapped",[39698]],[[64206,64206],"mapped",[40860]],[[64207,64207],"mapped",[141386]],[[64208,64208],"mapped",[141380]],[[64209,64209],"mapped",[144341]],[[64210,64210],"mapped",[15261]],[[64211,64211],"mapped",[16408]],[[64212,64212],"mapped",[16441]],[[64213,64213],"mapped",[152137]],[[64214,64214],"mapped",[154832]],[[64215,64215],"mapped",[163539]],[[64216,64216],"mapped",[40771]],[[64217,64217],"mapped",[40846]],[[64218,64255],"disallowed"],[[64256,64256],"mapped",[102,102]],[[64257,64257],"mapped",[102,105]],[[64258,64258],"mapped",[102,108]],[[64259,64259],"mapped",[102,102,105]],[[64260,64260],"mapped",[102,102,108]],[[64261,64262],"mapped",[115,116]],[[64263,64274],"disallowed"],[[64275,64275],"mapped",[1396,1398]],[[64276,64276],"mapped",[1396,1381]],[[64277,64277],"mapped",[1396,1387]],[[64278,64278],"mapped",[1406,1398]],[[64279,64279],"mapped",[1396,1389]],[[64280,64284],"disallowed"],[[64285,64285],"mapped",[1497,1460]],[[64286,64286],"valid"],[[64287,64287],"mapped",[1522,1463]],[[64288,64288],"mapped",[1506]],[[64289,64289],"mapped",[1488]],[[64290,64290],"mapped",[1491]],[[64291,64291],"mapped",[1492]],[[64292,64292],"mapped",[1499]],[[64293,64293],"mapped",[1500]],[[64294,64294],"mapped",[1501]],[[64295,64295],"mapped",[1512]],[[64296,64296],"mapped",[1514]],[[64297,64297],"disallowed_STD3_mapped",[43]],[[64298,64298],"mapped",[1513,1473]],[[64299,64299],"mapped",[1513,1474]],[[64300,64300],"mapped",[1513,1468,1473]],[[64301,64301],"mapped",[1513,1468,1474]],[[64302,64302],"mapped",[1488,1463]],[[64303,64303],"mapped",[1488,1464]],[[64304,64304],"mapped",[1488,1468]],[[64305,64305],"mapped",[1489,1468]],[[64306,64306],"mapped",[1490,1468]],[[64307,64307],"mapped",[1491,1468]],[[64308,64308],"mapped",[1492,1468]],[[64309,64309],"mapped",[1493,1468]],[[64310,64310],"mapped",[1494,1468]],[[64311,64311],"disallowed"],[[64312,64312],"mapped",[1496,1468]],[[64313,64313],"mapped",[1497,1468]],[[64314,64314],"mapped",[1498,1468]],[[64315,64315],"mapped",[1499,1468]],[[64316,64316],"mapped",[1500,1468]],[[64317,64317],"disallowed"],[[64318,64318],"mapped",[1502,1468]],[[64319,64319],"disallowed"],[[64320,64320],"mapped",[1504,1468]],[[64321,64321],"mapped",[1505,1468]],[[64322,64322],"disallowed"],[[64323,64323],"mapped",[1507,1468]],[[64324,64324],"mapped",[1508,1468]],[[64325,64325],"disallowed"],[[64326,64326],"mapped",[1510,1468]],[[64327,64327],"mapped",[1511,1468]],[[64328,64328],"mapped",[1512,1468]],[[64329,64329],"mapped",[1513,1468]],[[64330,64330],"mapped",[1514,1468]],[[64331,64331],"mapped",[1493,1465]],[[64332,64332],"mapped",[1489,1471]],[[64333,64333],"mapped",[1499,1471]],[[64334,64334],"mapped",[1508,1471]],[[64335,64335],"mapped",[1488,1500]],[[64336,64337],"mapped",[1649]],[[64338,64341],"mapped",[1659]],[[64342,64345],"mapped",[1662]],[[64346,64349],"mapped",[1664]],[[64350,64353],"mapped",[1658]],[[64354,64357],"mapped",[1663]],[[64358,64361],"mapped",[1657]],[[64362,64365],"mapped",[1700]],[[64366,64369],"mapped",[1702]],[[64370,64373],"mapped",[1668]],[[64374,64377],"mapped",[1667]],[[64378,64381],"mapped",[1670]],[[64382,64385],"mapped",[1671]],[[64386,64387],"mapped",[1677]],[[64388,64389],"mapped",[1676]],[[64390,64391],"mapped",[1678]],[[64392,64393],"mapped",[1672]],[[64394,64395],"mapped",[1688]],[[64396,64397],"mapped",[1681]],[[64398,64401],"mapped",[1705]],[[64402,64405],"mapped",[1711]],[[64406,64409],"mapped",[1715]],[[64410,64413],"mapped",[1713]],[[64414,64415],"mapped",[1722]],[[64416,64419],"mapped",[1723]],[[64420,64421],"mapped",[1728]],[[64422,64425],"mapped",[1729]],[[64426,64429],"mapped",[1726]],[[64430,64431],"mapped",[1746]],[[64432,64433],"mapped",[1747]],[[64434,64449],"valid",[],"NV8"],[[64450,64466],"disallowed"],[[64467,64470],"mapped",[1709]],[[64471,64472],"mapped",[1735]],[[64473,64474],"mapped",[1734]],[[64475,64476],"mapped",[1736]],[[64477,64477],"mapped",[1735,1652]],[[64478,64479],"mapped",[1739]],[[64480,64481],"mapped",[1733]],[[64482,64483],"mapped",[1737]],[[64484,64487],"mapped",[1744]],[[64488,64489],"mapped",[1609]],[[64490,64491],"mapped",[1574,1575]],[[64492,64493],"mapped",[1574,1749]],[[64494,64495],"mapped",[1574,1608]],[[64496,64497],"mapped",[1574,1735]],[[64498,64499],"mapped",[1574,1734]],[[64500,64501],"mapped",[1574,1736]],[[64502,64504],"mapped",[1574,1744]],[[64505,64507],"mapped",[1574,1609]],[[64508,64511],"mapped",[1740]],[[64512,64512],"mapped",[1574,1580]],[[64513,64513],"mapped",[1574,1581]],[[64514,64514],"mapped",[1574,1605]],[[64515,64515],"mapped",[1574,1609]],[[64516,64516],"mapped",[1574,1610]],[[64517,64517],"mapped",[1576,1580]],[[64518,64518],"mapped",[1576,1581]],[[64519,64519],"mapped",[1576,1582]],[[64520,64520],"mapped",[1576,1605]],[[64521,64521],"mapped",[1576,1609]],[[64522,64522],"mapped",[1576,1610]],[[64523,64523],"mapped",[1578,1580]],[[64524,64524],"mapped",[1578,1581]],[[64525,64525],"mapped",[1578,1582]],[[64526,64526],"mapped",[1578,1605]],[[64527,64527],"mapped",[1578,1609]],[[64528,64528],"mapped",[1578,1610]],[[64529,64529],"mapped",[1579,1580]],[[64530,64530],"mapped",[1579,1605]],[[64531,64531],"mapped",[1579,1609]],[[64532,64532],"mapped",[1579,1610]],[[64533,64533],"mapped",[1580,1581]],[[64534,64534],"mapped",[1580,1605]],[[64535,64535],"mapped",[1581,1580]],[[64536,64536],"mapped",[1581,1605]],[[64537,64537],"mapped",[1582,1580]],[[64538,64538],"mapped",[1582,1581]],[[64539,64539],"mapped",[1582,1605]],[[64540,64540],"mapped",[1587,1580]],[[64541,64541],"mapped",[1587,1581]],[[64542,64542],"mapped",[1587,1582]],[[64543,64543],"mapped",[1587,1605]],[[64544,64544],"mapped",[1589,1581]],[[64545,64545],"mapped",[1589,1605]],[[64546,64546],"mapped",[1590,1580]],[[64547,64547],"mapped",[1590,1581]],[[64548,64548],"mapped",[1590,1582]],[[64549,64549],"mapped",[1590,1605]],[[64550,64550],"mapped",[1591,1581]],[[64551,64551],"mapped",[1591,1605]],[[64552,64552],"mapped",[1592,1605]],[[64553,64553],"mapped",[1593,1580]],[[64554,64554],"mapped",[1593,1605]],[[64555,64555],"mapped",[1594,1580]],[[64556,64556],"mapped",[1594,1605]],[[64557,64557],"mapped",[1601,1580]],[[64558,64558],"mapped",[1601,1581]],[[64559,64559],"mapped",[1601,1582]],[[64560,64560],"mapped",[1601,1605]],[[64561,64561],"mapped",[1601,1609]],[[64562,64562],"mapped",[1601,1610]],[[64563,64563],"mapped",[1602,1581]],[[64564,64564],"mapped",[1602,1605]],[[64565,64565],"mapped",[1602,1609]],[[64566,64566],"mapped",[1602,1610]],[[64567,64567],"mapped",[1603,1575]],[[64568,64568],"mapped",[1603,1580]],[[64569,64569],"mapped",[1603,1581]],[[64570,64570],"mapped",[1603,1582]],[[64571,64571],"mapped",[1603,1604]],[[64572,64572],"mapped",[1603,1605]],[[64573,64573],"mapped",[1603,1609]],[[64574,64574],"mapped",[1603,1610]],[[64575,64575],"mapped",[1604,1580]],[[64576,64576],"mapped",[1604,1581]],[[64577,64577],"mapped",[1604,1582]],[[64578,64578],"mapped",[1604,1605]],[[64579,64579],"mapped",[1604,1609]],[[64580,64580],"mapped",[1604,1610]],[[64581,64581],"mapped",[1605,1580]],[[64582,64582],"mapped",[1605,1581]],[[64583,64583],"mapped",[1605,1582]],[[64584,64584],"mapped",[1605,1605]],[[64585,64585],"mapped",[1605,1609]],[[64586,64586],"mapped",[1605,1610]],[[64587,64587],"mapped",[1606,1580]],[[64588,64588],"mapped",[1606,1581]],[[64589,64589],"mapped",[1606,1582]],[[64590,64590],"mapped",[1606,1605]],[[64591,64591],"mapped",[1606,1609]],[[64592,64592],"mapped",[1606,1610]],[[64593,64593],"mapped",[1607,1580]],[[64594,64594],"mapped",[1607,1605]],[[64595,64595],"mapped",[1607,1609]],[[64596,64596],"mapped",[1607,1610]],[[64597,64597],"mapped",[1610,1580]],[[64598,64598],"mapped",[1610,1581]],[[64599,64599],"mapped",[1610,1582]],[[64600,64600],"mapped",[1610,1605]],[[64601,64601],"mapped",[1610,1609]],[[64602,64602],"mapped",[1610,1610]],[[64603,64603],"mapped",[1584,1648]],[[64604,64604],"mapped",[1585,1648]],[[64605,64605],"mapped",[1609,1648]],[[64606,64606],"disallowed_STD3_mapped",[32,1612,1617]],[[64607,64607],"disallowed_STD3_mapped",[32,1613,1617]],[[64608,64608],"disallowed_STD3_mapped",[32,1614,1617]],[[64609,64609],"disallowed_STD3_mapped",[32,1615,1617]],[[64610,64610],"disallowed_STD3_mapped",[32,1616,1617]],[[64611,64611],"disallowed_STD3_mapped",[32,1617,1648]],[[64612,64612],"mapped",[1574,1585]],[[64613,64613],"mapped",[1574,1586]],[[64614,64614],"mapped",[1574,1605]],[[64615,64615],"mapped",[1574,1606]],[[64616,64616],"mapped",[1574,1609]],[[64617,64617],"mapped",[1574,1610]],[[64618,64618],"mapped",[1576,1585]],[[64619,64619],"mapped",[1576,1586]],[[64620,64620],"mapped",[1576,1605]],[[64621,64621],"mapped",[1576,1606]],[[64622,64622],"mapped",[1576,1609]],[[64623,64623],"mapped",[1576,1610]],[[64624,64624],"mapped",[1578,1585]],[[64625,64625],"mapped",[1578,1586]],[[64626,64626],"mapped",[1578,1605]],[[64627,64627],"mapped",[1578,1606]],[[64628,64628],"mapped",[1578,1609]],[[64629,64629],"mapped",[1578,1610]],[[64630,64630],"mapped",[1579,1585]],[[64631,64631],"mapped",[1579,1586]],[[64632,64632],"mapped",[1579,1605]],[[64633,64633],"mapped",[1579,1606]],[[64634,64634],"mapped",[1579,1609]],[[64635,64635],"mapped",[1579,1610]],[[64636,64636],"mapped",[1601,1609]],[[64637,64637],"mapped",[1601,1610]],[[64638,64638],"mapped",[1602,1609]],[[64639,64639],"mapped",[1602,1610]],[[64640,64640],"mapped",[1603,1575]],[[64641,64641],"mapped",[1603,1604]],[[64642,64642],"mapped",[1603,1605]],[[64643,64643],"mapped",[1603,1609]],[[64644,64644],"mapped",[1603,1610]],[[64645,64645],"mapped",[1604,1605]],[[64646,64646],"mapped",[1604,1609]],[[64647,64647],"mapped",[1604,1610]],[[64648,64648],"mapped",[1605,1575]],[[64649,64649],"mapped",[1605,1605]],[[64650,64650],"mapped",[1606,1585]],[[64651,64651],"mapped",[1606,1586]],[[64652,64652],"mapped",[1606,1605]],[[64653,64653],"mapped",[1606,1606]],[[64654,64654],"mapped",[1606,1609]],[[64655,64655],"mapped",[1606,1610]],[[64656,64656],"mapped",[1609,1648]],[[64657,64657],"mapped",[1610,1585]],[[64658,64658],"mapped",[1610,1586]],[[64659,64659],"mapped",[1610,1605]],[[64660,64660],"mapped",[1610,1606]],[[64661,64661],"mapped",[1610,1609]],[[64662,64662],"mapped",[1610,1610]],[[64663,64663],"mapped",[1574,1580]],[[64664,64664],"mapped",[1574,1581]],[[64665,64665],"mapped",[1574,1582]],[[64666,64666],"mapped",[1574,1605]],[[64667,64667],"mapped",[1574,1607]],[[64668,64668],"mapped",[1576,1580]],[[64669,64669],"mapped",[1576,1581]],[[64670,64670],"mapped",[1576,1582]],[[64671,64671],"mapped",[1576,1605]],[[64672,64672],"mapped",[1576,1607]],[[64673,64673],"mapped",[1578,1580]],[[64674,64674],"mapped",[1578,1581]],[[64675,64675],"mapped",[1578,1582]],[[64676,64676],"mapped",[1578,1605]],[[64677,64677],"mapped",[1578,1607]],[[64678,64678],"mapped",[1579,1605]],[[64679,64679],"mapped",[1580,1581]],[[64680,64680],"mapped",[1580,1605]],[[64681,64681],"mapped",[1581,1580]],[[64682,64682],"mapped",[1581,1605]],[[64683,64683],"mapped",[1582,1580]],[[64684,64684],"mapped",[1582,1605]],[[64685,64685],"mapped",[1587,1580]],[[64686,64686],"mapped",[1587,1581]],[[64687,64687],"mapped",[1587,1582]],[[64688,64688],"mapped",[1587,1605]],[[64689,64689],"mapped",[1589,1581]],[[64690,64690],"mapped",[1589,1582]],[[64691,64691],"mapped",[1589,1605]],[[64692,64692],"mapped",[1590,1580]],[[64693,64693],"mapped",[1590,1581]],[[64694,64694],"mapped",[1590,1582]],[[64695,64695],"mapped",[1590,1605]],[[64696,64696],"mapped",[1591,1581]],[[64697,64697],"mapped",[1592,1605]],[[64698,64698],"mapped",[1593,1580]],[[64699,64699],"mapped",[1593,1605]],[[64700,64700],"mapped",[1594,1580]],[[64701,64701],"mapped",[1594,1605]],[[64702,64702],"mapped",[1601,1580]],[[64703,64703],"mapped",[1601,1581]],[[64704,64704],"mapped",[1601,1582]],[[64705,64705],"mapped",[1601,1605]],[[64706,64706],"mapped",[1602,1581]],[[64707,64707],"mapped",[1602,1605]],[[64708,64708],"mapped",[1603,1580]],[[64709,64709],"mapped",[1603,1581]],[[64710,64710],"mapped",[1603,1582]],[[64711,64711],"mapped",[1603,1604]],[[64712,64712],"mapped",[1603,1605]],[[64713,64713],"mapped",[1604,1580]],[[64714,64714],"mapped",[1604,1581]],[[64715,64715],"mapped",[1604,1582]],[[64716,64716],"mapped",[1604,1605]],[[64717,64717],"mapped",[1604,1607]],[[64718,64718],"mapped",[1605,1580]],[[64719,64719],"mapped",[1605,1581]],[[64720,64720],"mapped",[1605,1582]],[[64721,64721],"mapped",[1605,1605]],[[64722,64722],"mapped",[1606,1580]],[[64723,64723],"mapped",[1606,1581]],[[64724,64724],"mapped",[1606,1582]],[[64725,64725],"mapped",[1606,1605]],[[64726,64726],"mapped",[1606,1607]],[[64727,64727],"mapped",[1607,1580]],[[64728,64728],"mapped",[1607,1605]],[[64729,64729],"mapped",[1607,1648]],[[64730,64730],"mapped",[1610,1580]],[[64731,64731],"mapped",[1610,1581]],[[64732,64732],"mapped",[1610,1582]],[[64733,64733],"mapped",[1610,1605]],[[64734,64734],"mapped",[1610,1607]],[[64735,64735],"mapped",[1574,1605]],[[64736,64736],"mapped",[1574,1607]],[[64737,64737],"mapped",[1576,1605]],[[64738,64738],"mapped",[1576,1607]],[[64739,64739],"mapped",[1578,1605]],[[64740,64740],"mapped",[1578,1607]],[[64741,64741],"mapped",[1579,1605]],[[64742,64742],"mapped",[1579,1607]],[[64743,64743],"mapped",[1587,1605]],[[64744,64744],"mapped",[1587,1607]],[[64745,64745],"mapped",[1588,1605]],[[64746,64746],"mapped",[1588,1607]],[[64747,64747],"mapped",[1603,1604]],[[64748,64748],"mapped",[1603,1605]],[[64749,64749],"mapped",[1604,1605]],[[64750,64750],"mapped",[1606,1605]],[[64751,64751],"mapped",[1606,1607]],[[64752,64752],"mapped",[1610,1605]],[[64753,64753],"mapped",[1610,1607]],[[64754,64754],"mapped",[1600,1614,1617]],[[64755,64755],"mapped",[1600,1615,1617]],[[64756,64756],"mapped",[1600,1616,1617]],[[64757,64757],"mapped",[1591,1609]],[[64758,64758],"mapped",[1591,1610]],[[64759,64759],"mapped",[1593,1609]],[[64760,64760],"mapped",[1593,1610]],[[64761,64761],"mapped",[1594,1609]],[[64762,64762],"mapped",[1594,1610]],[[64763,64763],"mapped",[1587,1609]],[[64764,64764],"mapped",[1587,1610]],[[64765,64765],"mapped",[1588,1609]],[[64766,64766],"mapped",[1588,1610]],[[64767,64767],"mapped",[1581,1609]],[[64768,64768],"mapped",[1581,1610]],[[64769,64769],"mapped",[1580,1609]],[[64770,64770],"mapped",[1580,1610]],[[64771,64771],"mapped",[1582,1609]],[[64772,64772],"mapped",[1582,1610]],[[64773,64773],"mapped",[1589,1609]],[[64774,64774],"mapped",[1589,1610]],[[64775,64775],"mapped",[1590,1609]],[[64776,64776],"mapped",[1590,1610]],[[64777,64777],"mapped",[1588,1580]],[[64778,64778],"mapped",[1588,1581]],[[64779,64779],"mapped",[1588,1582]],[[64780,64780],"mapped",[1588,1605]],[[64781,64781],"mapped",[1588,1585]],[[64782,64782],"mapped",[1587,1585]],[[64783,64783],"mapped",[1589,1585]],[[64784,64784],"mapped",[1590,1585]],[[64785,64785],"mapped",[1591,1609]],[[64786,64786],"mapped",[1591,1610]],[[64787,64787],"mapped",[1593,1609]],[[64788,64788],"mapped",[1593,1610]],[[64789,64789],"mapped",[1594,1609]],[[64790,64790],"mapped",[1594,1610]],[[64791,64791],"mapped",[1587,1609]],[[64792,64792],"mapped",[1587,1610]],[[64793,64793],"mapped",[1588,1609]],[[64794,64794],"mapped",[1588,1610]],[[64795,64795],"mapped",[1581,1609]],[[64796,64796],"mapped",[1581,1610]],[[64797,64797],"mapped",[1580,1609]],[[64798,64798],"mapped",[1580,1610]],[[64799,64799],"mapped",[1582,1609]],[[64800,64800],"mapped",[1582,1610]],[[64801,64801],"mapped",[1589,1609]],[[64802,64802],"mapped",[1589,1610]],[[64803,64803],"mapped",[1590,1609]],[[64804,64804],"mapped",[1590,1610]],[[64805,64805],"mapped",[1588,1580]],[[64806,64806],"mapped",[1588,1581]],[[64807,64807],"mapped",[1588,1582]],[[64808,64808],"mapped",[1588,1605]],[[64809,64809],"mapped",[1588,1585]],[[64810,64810],"mapped",[1587,1585]],[[64811,64811],"mapped",[1589,1585]],[[64812,64812],"mapped",[1590,1585]],[[64813,64813],"mapped",[1588,1580]],[[64814,64814],"mapped",[1588,1581]],[[64815,64815],"mapped",[1588,1582]],[[64816,64816],"mapped",[1588,1605]],[[64817,64817],"mapped",[1587,1607]],[[64818,64818],"mapped",[1588,1607]],[[64819,64819],"mapped",[1591,1605]],[[64820,64820],"mapped",[1587,1580]],[[64821,64821],"mapped",[1587,1581]],[[64822,64822],"mapped",[1587,1582]],[[64823,64823],"mapped",[1588,1580]],[[64824,64824],"mapped",[1588,1581]],[[64825,64825],"mapped",[1588,1582]],[[64826,64826],"mapped",[1591,1605]],[[64827,64827],"mapped",[1592,1605]],[[64828,64829],"mapped",[1575,1611]],[[64830,64831],"valid",[],"NV8"],[[64832,64847],"disallowed"],[[64848,64848],"mapped",[1578,1580,1605]],[[64849,64850],"mapped",[1578,1581,1580]],[[64851,64851],"mapped",[1578,1581,1605]],[[64852,64852],"mapped",[1578,1582,1605]],[[64853,64853],"mapped",[1578,1605,1580]],[[64854,64854],"mapped",[1578,1605,1581]],[[64855,64855],"mapped",[1578,1605,1582]],[[64856,64857],"mapped",[1580,1605,1581]],[[64858,64858],"mapped",[1581,1605,1610]],[[64859,64859],"mapped",[1581,1605,1609]],[[64860,64860],"mapped",[1587,1581,1580]],[[64861,64861],"mapped",[1587,1580,1581]],[[64862,64862],"mapped",[1587,1580,1609]],[[64863,64864],"mapped",[1587,1605,1581]],[[64865,64865],"mapped",[1587,1605,1580]],[[64866,64867],"mapped",[1587,1605,1605]],[[64868,64869],"mapped",[1589,1581,1581]],[[64870,64870],"mapped",[1589,1605,1605]],[[64871,64872],"mapped",[1588,1581,1605]],[[64873,64873],"mapped",[1588,1580,1610]],[[64874,64875],"mapped",[1588,1605,1582]],[[64876,64877],"mapped",[1588,1605,1605]],[[64878,64878],"mapped",[1590,1581,1609]],[[64879,64880],"mapped",[1590,1582,1605]],[[64881,64882],"mapped",[1591,1605,1581]],[[64883,64883],"mapped",[1591,1605,1605]],[[64884,64884],"mapped",[1591,1605,1610]],[[64885,64885],"mapped",[1593,1580,1605]],[[64886,64887],"mapped",[1593,1605,1605]],[[64888,64888],"mapped",[1593,1605,1609]],[[64889,64889],"mapped",[1594,1605,1605]],[[64890,64890],"mapped",[1594,1605,1610]],[[64891,64891],"mapped",[1594,1605,1609]],[[64892,64893],"mapped",[1601,1582,1605]],[[64894,64894],"mapped",[1602,1605,1581]],[[64895,64895],"mapped",[1602,1605,1605]],[[64896,64896],"mapped",[1604,1581,1605]],[[64897,64897],"mapped",[1604,1581,1610]],[[64898,64898],"mapped",[1604,1581,1609]],[[64899,64900],"mapped",[1604,1580,1580]],[[64901,64902],"mapped",[1604,1582,1605]],[[64903,64904],"mapped",[1604,1605,1581]],[[64905,64905],"mapped",[1605,1581,1580]],[[64906,64906],"mapped",[1605,1581,1605]],[[64907,64907],"mapped",[1605,1581,1610]],[[64908,64908],"mapped",[1605,1580,1581]],[[64909,64909],"mapped",[1605,1580,1605]],[[64910,64910],"mapped",[1605,1582,1580]],[[64911,64911],"mapped",[1605,1582,1605]],[[64912,64913],"disallowed"],[[64914,64914],"mapped",[1605,1580,1582]],[[64915,64915],"mapped",[1607,1605,1580]],[[64916,64916],"mapped",[1607,1605,1605]],[[64917,64917],"mapped",[1606,1581,1605]],[[64918,64918],"mapped",[1606,1581,1609]],[[64919,64920],"mapped",[1606,1580,1605]],[[64921,64921],"mapped",[1606,1580,1609]],[[64922,64922],"mapped",[1606,1605,1610]],[[64923,64923],"mapped",[1606,1605,1609]],[[64924,64925],"mapped",[1610,1605,1605]],[[64926,64926],"mapped",[1576,1582,1610]],[[64927,64927],"mapped",[1578,1580,1610]],[[64928,64928],"mapped",[1578,1580,1609]],[[64929,64929],"mapped",[1578,1582,1610]],[[64930,64930],"mapped",[1578,1582,1609]],[[64931,64931],"mapped",[1578,1605,1610]],[[64932,64932],"mapped",[1578,1605,1609]],[[64933,64933],"mapped",[1580,1605,1610]],[[64934,64934],"mapped",[1580,1581,1609]],[[64935,64935],"mapped",[1580,1605,1609]],[[64936,64936],"mapped",[1587,1582,1609]],[[64937,64937],"mapped",[1589,1581,1610]],[[64938,64938],"mapped",[1588,1581,1610]],[[64939,64939],"mapped",[1590,1581,1610]],[[64940,64940],"mapped",[1604,1580,1610]],[[64941,64941],"mapped",[1604,1605,1610]],[[64942,64942],"mapped",[1610,1581,1610]],[[64943,64943],"mapped",[1610,1580,1610]],[[64944,64944],"mapped",[1610,1605,1610]],[[64945,64945],"mapped",[1605,1605,1610]],[[64946,64946],"mapped",[1602,1605,1610]],[[64947,64947],"mapped",[1606,1581,1610]],[[64948,64948],"mapped",[1602,1605,1581]],[[64949,64949],"mapped",[1604,1581,1605]],[[64950,64950],"mapped",[1593,1605,1610]],[[64951,64951],"mapped",[1603,1605,1610]],[[64952,64952],"mapped",[1606,1580,1581]],[[64953,64953],"mapped",[1605,1582,1610]],[[64954,64954],"mapped",[1604,1580,1605]],[[64955,64955],"mapped",[1603,1605,1605]],[[64956,64956],"mapped",[1604,1580,1605]],[[64957,64957],"mapped",[1606,1580,1581]],[[64958,64958],"mapped",[1580,1581,1610]],[[64959,64959],"mapped",[1581,1580,1610]],[[64960,64960],"mapped",[1605,1580,1610]],[[64961,64961],"mapped",[1601,1605,1610]],[[64962,64962],"mapped",[1576,1581,1610]],[[64963,64963],"mapped",[1603,1605,1605]],[[64964,64964],"mapped",[1593,1580,1605]],[[64965,64965],"mapped",[1589,1605,1605]],[[64966,64966],"mapped",[1587,1582,1610]],[[64967,64967],"mapped",[1606,1580,1610]],[[64968,64975],"disallowed"],[[64976,65007],"disallowed"],[[65008,65008],"mapped",[1589,1604,1746]],[[65009,65009],"mapped",[1602,1604,1746]],[[65010,65010],"mapped",[1575,1604,1604,1607]],[[65011,65011],"mapped",[1575,1603,1576,1585]],[[65012,65012],"mapped",[1605,1581,1605,1583]],[[65013,65013],"mapped",[1589,1604,1593,1605]],[[65014,65014],"mapped",[1585,1587,1608,1604]],[[65015,65015],"mapped",[1593,1604,1610,1607]],[[65016,65016],"mapped",[1608,1587,1604,1605]],[[65017,65017],"mapped",[1589,1604,1609]],[[65018,65018],"disallowed_STD3_mapped",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],"disallowed_STD3_mapped",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],"mapped",[1585,1740,1575,1604]],[[65021,65021],"valid",[],"NV8"],[[65022,65023],"disallowed"],[[65024,65039],"ignored"],[[65040,65040],"disallowed_STD3_mapped",[44]],[[65041,65041],"mapped",[12289]],[[65042,65042],"disallowed"],[[65043,65043],"disallowed_STD3_mapped",[58]],[[65044,65044],"disallowed_STD3_mapped",[59]],[[65045,65045],"disallowed_STD3_mapped",[33]],[[65046,65046],"disallowed_STD3_mapped",[63]],[[65047,65047],"mapped",[12310]],[[65048,65048],"mapped",[12311]],[[65049,65049],"disallowed"],[[65050,65055],"disallowed"],[[65056,65059],"valid"],[[65060,65062],"valid"],[[65063,65069],"valid"],[[65070,65071],"valid"],[[65072,65072],"disallowed"],[[65073,65073],"mapped",[8212]],[[65074,65074],"mapped",[8211]],[[65075,65076],"disallowed_STD3_mapped",[95]],[[65077,65077],"disallowed_STD3_mapped",[40]],[[65078,65078],"disallowed_STD3_mapped",[41]],[[65079,65079],"disallowed_STD3_mapped",[123]],[[65080,65080],"disallowed_STD3_mapped",[125]],[[65081,65081],"mapped",[12308]],[[65082,65082],"mapped",[12309]],[[65083,65083],"mapped",[12304]],[[65084,65084],"mapped",[12305]],[[65085,65085],"mapped",[12298]],[[65086,65086],"mapped",[12299]],[[65087,65087],"mapped",[12296]],[[65088,65088],"mapped",[12297]],[[65089,65089],"mapped",[12300]],[[65090,65090],"mapped",[12301]],[[65091,65091],"mapped",[12302]],[[65092,65092],"mapped",[12303]],[[65093,65094],"valid",[],"NV8"],[[65095,65095],"disallowed_STD3_mapped",[91]],[[65096,65096],"disallowed_STD3_mapped",[93]],[[65097,65100],"disallowed_STD3_mapped",[32,773]],[[65101,65103],"disallowed_STD3_mapped",[95]],[[65104,65104],"disallowed_STD3_mapped",[44]],[[65105,65105],"mapped",[12289]],[[65106,65106],"disallowed"],[[65107,65107],"disallowed"],[[65108,65108],"disallowed_STD3_mapped",[59]],[[65109,65109],"disallowed_STD3_mapped",[58]],[[65110,65110],"disallowed_STD3_mapped",[63]],[[65111,65111],"disallowed_STD3_mapped",[33]],[[65112,65112],"mapped",[8212]],[[65113,65113],"disallowed_STD3_mapped",[40]],[[65114,65114],"disallowed_STD3_mapped",[41]],[[65115,65115],"disallowed_STD3_mapped",[123]],[[65116,65116],"disallowed_STD3_mapped",[125]],[[65117,65117],"mapped",[12308]],[[65118,65118],"mapped",[12309]],[[65119,65119],"disallowed_STD3_mapped",[35]],[[65120,65120],"disallowed_STD3_mapped",[38]],[[65121,65121],"disallowed_STD3_mapped",[42]],[[65122,65122],"disallowed_STD3_mapped",[43]],[[65123,65123],"mapped",[45]],[[65124,65124],"disallowed_STD3_mapped",[60]],[[65125,65125],"disallowed_STD3_mapped",[62]],[[65126,65126],"disallowed_STD3_mapped",[61]],[[65127,65127],"disallowed"],[[65128,65128],"disallowed_STD3_mapped",[92]],[[65129,65129],"disallowed_STD3_mapped",[36]],[[65130,65130],"disallowed_STD3_mapped",[37]],[[65131,65131],"disallowed_STD3_mapped",[64]],[[65132,65135],"disallowed"],[[65136,65136],"disallowed_STD3_mapped",[32,1611]],[[65137,65137],"mapped",[1600,1611]],[[65138,65138],"disallowed_STD3_mapped",[32,1612]],[[65139,65139],"valid"],[[65140,65140],"disallowed_STD3_mapped",[32,1613]],[[65141,65141],"disallowed"],[[65142,65142],"disallowed_STD3_mapped",[32,1614]],[[65143,65143],"mapped",[1600,1614]],[[65144,65144],"disallowed_STD3_mapped",[32,1615]],[[65145,65145],"mapped",[1600,1615]],[[65146,65146],"disallowed_STD3_mapped",[32,1616]],[[65147,65147],"mapped",[1600,1616]],[[65148,65148],"disallowed_STD3_mapped",[32,1617]],[[65149,65149],"mapped",[1600,1617]],[[65150,65150],"disallowed_STD3_mapped",[32,1618]],[[65151,65151],"mapped",[1600,1618]],[[65152,65152],"mapped",[1569]],[[65153,65154],"mapped",[1570]],[[65155,65156],"mapped",[1571]],[[65157,65158],"mapped",[1572]],[[65159,65160],"mapped",[1573]],[[65161,65164],"mapped",[1574]],[[65165,65166],"mapped",[1575]],[[65167,65170],"mapped",[1576]],[[65171,65172],"mapped",[1577]],[[65173,65176],"mapped",[1578]],[[65177,65180],"mapped",[1579]],[[65181,65184],"mapped",[1580]],[[65185,65188],"mapped",[1581]],[[65189,65192],"mapped",[1582]],[[65193,65194],"mapped",[1583]],[[65195,65196],"mapped",[1584]],[[65197,65198],"mapped",[1585]],[[65199,65200],"mapped",[1586]],[[65201,65204],"mapped",[1587]],[[65205,65208],"mapped",[1588]],[[65209,65212],"mapped",[1589]],[[65213,65216],"mapped",[1590]],[[65217,65220],"mapped",[1591]],[[65221,65224],"mapped",[1592]],[[65225,65228],"mapped",[1593]],[[65229,65232],"mapped",[1594]],[[65233,65236],"mapped",[1601]],[[65237,65240],"mapped",[1602]],[[65241,65244],"mapped",[1603]],[[65245,65248],"mapped",[1604]],[[65249,65252],"mapped",[1605]],[[65253,65256],"mapped",[1606]],[[65257,65260],"mapped",[1607]],[[65261,65262],"mapped",[1608]],[[65263,65264],"mapped",[1609]],[[65265,65268],"mapped",[1610]],[[65269,65270],"mapped",[1604,1570]],[[65271,65272],"mapped",[1604,1571]],[[65273,65274],"mapped",[1604,1573]],[[65275,65276],"mapped",[1604,1575]],[[65277,65278],"disallowed"],[[65279,65279],"ignored"],[[65280,65280],"disallowed"],[[65281,65281],"disallowed_STD3_mapped",[33]],[[65282,65282],"disallowed_STD3_mapped",[34]],[[65283,65283],"disallowed_STD3_mapped",[35]],[[65284,65284],"disallowed_STD3_mapped",[36]],[[65285,65285],"disallowed_STD3_mapped",[37]],[[65286,65286],"disallowed_STD3_mapped",[38]],[[65287,65287],"disallowed_STD3_mapped",[39]],[[65288,65288],"disallowed_STD3_mapped",[40]],[[65289,65289],"disallowed_STD3_mapped",[41]],[[65290,65290],"disallowed_STD3_mapped",[42]],[[65291,65291],"disallowed_STD3_mapped",[43]],[[65292,65292],"disallowed_STD3_mapped",[44]],[[65293,65293],"mapped",[45]],[[65294,65294],"mapped",[46]],[[65295,65295],"disallowed_STD3_mapped",[47]],[[65296,65296],"mapped",[48]],[[65297,65297],"mapped",[49]],[[65298,65298],"mapped",[50]],[[65299,65299],"mapped",[51]],[[65300,65300],"mapped",[52]],[[65301,65301],"mapped",[53]],[[65302,65302],"mapped",[54]],[[65303,65303],"mapped",[55]],[[65304,65304],"mapped",[56]],[[65305,65305],"mapped",[57]],[[65306,65306],"disallowed_STD3_mapped",[58]],[[65307,65307],"disallowed_STD3_mapped",[59]],[[65308,65308],"disallowed_STD3_mapped",[60]],[[65309,65309],"disallowed_STD3_mapped",[61]],[[65310,65310],"disallowed_STD3_mapped",[62]],[[65311,65311],"disallowed_STD3_mapped",[63]],[[65312,65312],"disallowed_STD3_mapped",[64]],[[65313,65313],"mapped",[97]],[[65314,65314],"mapped",[98]],[[65315,65315],"mapped",[99]],[[65316,65316],"mapped",[100]],[[65317,65317],"mapped",[101]],[[65318,65318],"mapped",[102]],[[65319,65319],"mapped",[103]],[[65320,65320],"mapped",[104]],[[65321,65321],"mapped",[105]],[[65322,65322],"mapped",[106]],[[65323,65323],"mapped",[107]],[[65324,65324],"mapped",[108]],[[65325,65325],"mapped",[109]],[[65326,65326],"mapped",[110]],[[65327,65327],"mapped",[111]],[[65328,65328],"mapped",[112]],[[65329,65329],"mapped",[113]],[[65330,65330],"mapped",[114]],[[65331,65331],"mapped",[115]],[[65332,65332],"mapped",[116]],[[65333,65333],"mapped",[117]],[[65334,65334],"mapped",[118]],[[65335,65335],"mapped",[119]],[[65336,65336],"mapped",[120]],[[65337,65337],"mapped",[121]],[[65338,65338],"mapped",[122]],[[65339,65339],"disallowed_STD3_mapped",[91]],[[65340,65340],"disallowed_STD3_mapped",[92]],[[65341,65341],"disallowed_STD3_mapped",[93]],[[65342,65342],"disallowed_STD3_mapped",[94]],[[65343,65343],"disallowed_STD3_mapped",[95]],[[65344,65344],"disallowed_STD3_mapped",[96]],[[65345,65345],"mapped",[97]],[[65346,65346],"mapped",[98]],[[65347,65347],"mapped",[99]],[[65348,65348],"mapped",[100]],[[65349,65349],"mapped",[101]],[[65350,65350],"mapped",[102]],[[65351,65351],"mapped",[103]],[[65352,65352],"mapped",[104]],[[65353,65353],"mapped",[105]],[[65354,65354],"mapped",[106]],[[65355,65355],"mapped",[107]],[[65356,65356],"mapped",[108]],[[65357,65357],"mapped",[109]],[[65358,65358],"mapped",[110]],[[65359,65359],"mapped",[111]],[[65360,65360],"mapped",[112]],[[65361,65361],"mapped",[113]],[[65362,65362],"mapped",[114]],[[65363,65363],"mapped",[115]],[[65364,65364],"mapped",[116]],[[65365,65365],"mapped",[117]],[[65366,65366],"mapped",[118]],[[65367,65367],"mapped",[119]],[[65368,65368],"mapped",[120]],[[65369,65369],"mapped",[121]],[[65370,65370],"mapped",[122]],[[65371,65371],"disallowed_STD3_mapped",[123]],[[65372,65372],"disallowed_STD3_mapped",[124]],[[65373,65373],"disallowed_STD3_mapped",[125]],[[65374,65374],"disallowed_STD3_mapped",[126]],[[65375,65375],"mapped",[10629]],[[65376,65376],"mapped",[10630]],[[65377,65377],"mapped",[46]],[[65378,65378],"mapped",[12300]],[[65379,65379],"mapped",[12301]],[[65380,65380],"mapped",[12289]],[[65381,65381],"mapped",[12539]],[[65382,65382],"mapped",[12530]],[[65383,65383],"mapped",[12449]],[[65384,65384],"mapped",[12451]],[[65385,65385],"mapped",[12453]],[[65386,65386],"mapped",[12455]],[[65387,65387],"mapped",[12457]],[[65388,65388],"mapped",[12515]],[[65389,65389],"mapped",[12517]],[[65390,65390],"mapped",[12519]],[[65391,65391],"mapped",[12483]],[[65392,65392],"mapped",[12540]],[[65393,65393],"mapped",[12450]],[[65394,65394],"mapped",[12452]],[[65395,65395],"mapped",[12454]],[[65396,65396],"mapped",[12456]],[[65397,65397],"mapped",[12458]],[[65398,65398],"mapped",[12459]],[[65399,65399],"mapped",[12461]],[[65400,65400],"mapped",[12463]],[[65401,65401],"mapped",[12465]],[[65402,65402],"mapped",[12467]],[[65403,65403],"mapped",[12469]],[[65404,65404],"mapped",[12471]],[[65405,65405],"mapped",[12473]],[[65406,65406],"mapped",[12475]],[[65407,65407],"mapped",[12477]],[[65408,65408],"mapped",[12479]],[[65409,65409],"mapped",[12481]],[[65410,65410],"mapped",[12484]],[[65411,65411],"mapped",[12486]],[[65412,65412],"mapped",[12488]],[[65413,65413],"mapped",[12490]],[[65414,65414],"mapped",[12491]],[[65415,65415],"mapped",[12492]],[[65416,65416],"mapped",[12493]],[[65417,65417],"mapped",[12494]],[[65418,65418],"mapped",[12495]],[[65419,65419],"mapped",[12498]],[[65420,65420],"mapped",[12501]],[[65421,65421],"mapped",[12504]],[[65422,65422],"mapped",[12507]],[[65423,65423],"mapped",[12510]],[[65424,65424],"mapped",[12511]],[[65425,65425],"mapped",[12512]],[[65426,65426],"mapped",[12513]],[[65427,65427],"mapped",[12514]],[[65428,65428],"mapped",[12516]],[[65429,65429],"mapped",[12518]],[[65430,65430],"mapped",[12520]],[[65431,65431],"mapped",[12521]],[[65432,65432],"mapped",[12522]],[[65433,65433],"mapped",[12523]],[[65434,65434],"mapped",[12524]],[[65435,65435],"mapped",[12525]],[[65436,65436],"mapped",[12527]],[[65437,65437],"mapped",[12531]],[[65438,65438],"mapped",[12441]],[[65439,65439],"mapped",[12442]],[[65440,65440],"disallowed"],[[65441,65441],"mapped",[4352]],[[65442,65442],"mapped",[4353]],[[65443,65443],"mapped",[4522]],[[65444,65444],"mapped",[4354]],[[65445,65445],"mapped",[4524]],[[65446,65446],"mapped",[4525]],[[65447,65447],"mapped",[4355]],[[65448,65448],"mapped",[4356]],[[65449,65449],"mapped",[4357]],[[65450,65450],"mapped",[4528]],[[65451,65451],"mapped",[4529]],[[65452,65452],"mapped",[4530]],[[65453,65453],"mapped",[4531]],[[65454,65454],"mapped",[4532]],[[65455,65455],"mapped",[4533]],[[65456,65456],"mapped",[4378]],[[65457,65457],"mapped",[4358]],[[65458,65458],"mapped",[4359]],[[65459,65459],"mapped",[4360]],[[65460,65460],"mapped",[4385]],[[65461,65461],"mapped",[4361]],[[65462,65462],"mapped",[4362]],[[65463,65463],"mapped",[4363]],[[65464,65464],"mapped",[4364]],[[65465,65465],"mapped",[4365]],[[65466,65466],"mapped",[4366]],[[65467,65467],"mapped",[4367]],[[65468,65468],"mapped",[4368]],[[65469,65469],"mapped",[4369]],[[65470,65470],"mapped",[4370]],[[65471,65473],"disallowed"],[[65474,65474],"mapped",[4449]],[[65475,65475],"mapped",[4450]],[[65476,65476],"mapped",[4451]],[[65477,65477],"mapped",[4452]],[[65478,65478],"mapped",[4453]],[[65479,65479],"mapped",[4454]],[[65480,65481],"disallowed"],[[65482,65482],"mapped",[4455]],[[65483,65483],"mapped",[4456]],[[65484,65484],"mapped",[4457]],[[65485,65485],"mapped",[4458]],[[65486,65486],"mapped",[4459]],[[65487,65487],"mapped",[4460]],[[65488,65489],"disallowed"],[[65490,65490],"mapped",[4461]],[[65491,65491],"mapped",[4462]],[[65492,65492],"mapped",[4463]],[[65493,65493],"mapped",[4464]],[[65494,65494],"mapped",[4465]],[[65495,65495],"mapped",[4466]],[[65496,65497],"disallowed"],[[65498,65498],"mapped",[4467]],[[65499,65499],"mapped",[4468]],[[65500,65500],"mapped",[4469]],[[65501,65503],"disallowed"],[[65504,65504],"mapped",[162]],[[65505,65505],"mapped",[163]],[[65506,65506],"mapped",[172]],[[65507,65507],"disallowed_STD3_mapped",[32,772]],[[65508,65508],"mapped",[166]],[[65509,65509],"mapped",[165]],[[65510,65510],"mapped",[8361]],[[65511,65511],"disallowed"],[[65512,65512],"mapped",[9474]],[[65513,65513],"mapped",[8592]],[[65514,65514],"mapped",[8593]],[[65515,65515],"mapped",[8594]],[[65516,65516],"mapped",[8595]],[[65517,65517],"mapped",[9632]],[[65518,65518],"mapped",[9675]],[[65519,65528],"disallowed"],[[65529,65531],"disallowed"],[[65532,65532],"disallowed"],[[65533,65533],"disallowed"],[[65534,65535],"disallowed"],[[65536,65547],"valid"],[[65548,65548],"disallowed"],[[65549,65574],"valid"],[[65575,65575],"disallowed"],[[65576,65594],"valid"],[[65595,65595],"disallowed"],[[65596,65597],"valid"],[[65598,65598],"disallowed"],[[65599,65613],"valid"],[[65614,65615],"disallowed"],[[65616,65629],"valid"],[[65630,65663],"disallowed"],[[65664,65786],"valid"],[[65787,65791],"disallowed"],[[65792,65794],"valid",[],"NV8"],[[65795,65798],"disallowed"],[[65799,65843],"valid",[],"NV8"],[[65844,65846],"disallowed"],[[65847,65855],"valid",[],"NV8"],[[65856,65930],"valid",[],"NV8"],[[65931,65932],"valid",[],"NV8"],[[65933,65935],"disallowed"],[[65936,65947],"valid",[],"NV8"],[[65948,65951],"disallowed"],[[65952,65952],"valid",[],"NV8"],[[65953,65999],"disallowed"],[[66e3,66044],"valid",[],"NV8"],[[66045,66045],"valid"],[[66046,66175],"disallowed"],[[66176,66204],"valid"],[[66205,66207],"disallowed"],[[66208,66256],"valid"],[[66257,66271],"disallowed"],[[66272,66272],"valid"],[[66273,66299],"valid",[],"NV8"],[[66300,66303],"disallowed"],[[66304,66334],"valid"],[[66335,66335],"valid"],[[66336,66339],"valid",[],"NV8"],[[66340,66351],"disallowed"],[[66352,66368],"valid"],[[66369,66369],"valid",[],"NV8"],[[66370,66377],"valid"],[[66378,66378],"valid",[],"NV8"],[[66379,66383],"disallowed"],[[66384,66426],"valid"],[[66427,66431],"disallowed"],[[66432,66461],"valid"],[[66462,66462],"disallowed"],[[66463,66463],"valid",[],"NV8"],[[66464,66499],"valid"],[[66500,66503],"disallowed"],[[66504,66511],"valid"],[[66512,66517],"valid",[],"NV8"],[[66518,66559],"disallowed"],[[66560,66560],"mapped",[66600]],[[66561,66561],"mapped",[66601]],[[66562,66562],"mapped",[66602]],[[66563,66563],"mapped",[66603]],[[66564,66564],"mapped",[66604]],[[66565,66565],"mapped",[66605]],[[66566,66566],"mapped",[66606]],[[66567,66567],"mapped",[66607]],[[66568,66568],"mapped",[66608]],[[66569,66569],"mapped",[66609]],[[66570,66570],"mapped",[66610]],[[66571,66571],"mapped",[66611]],[[66572,66572],"mapped",[66612]],[[66573,66573],"mapped",[66613]],[[66574,66574],"mapped",[66614]],[[66575,66575],"mapped",[66615]],[[66576,66576],"mapped",[66616]],[[66577,66577],"mapped",[66617]],[[66578,66578],"mapped",[66618]],[[66579,66579],"mapped",[66619]],[[66580,66580],"mapped",[66620]],[[66581,66581],"mapped",[66621]],[[66582,66582],"mapped",[66622]],[[66583,66583],"mapped",[66623]],[[66584,66584],"mapped",[66624]],[[66585,66585],"mapped",[66625]],[[66586,66586],"mapped",[66626]],[[66587,66587],"mapped",[66627]],[[66588,66588],"mapped",[66628]],[[66589,66589],"mapped",[66629]],[[66590,66590],"mapped",[66630]],[[66591,66591],"mapped",[66631]],[[66592,66592],"mapped",[66632]],[[66593,66593],"mapped",[66633]],[[66594,66594],"mapped",[66634]],[[66595,66595],"mapped",[66635]],[[66596,66596],"mapped",[66636]],[[66597,66597],"mapped",[66637]],[[66598,66598],"mapped",[66638]],[[66599,66599],"mapped",[66639]],[[66600,66637],"valid"],[[66638,66717],"valid"],[[66718,66719],"disallowed"],[[66720,66729],"valid"],[[66730,66815],"disallowed"],[[66816,66855],"valid"],[[66856,66863],"disallowed"],[[66864,66915],"valid"],[[66916,66926],"disallowed"],[[66927,66927],"valid",[],"NV8"],[[66928,67071],"disallowed"],[[67072,67382],"valid"],[[67383,67391],"disallowed"],[[67392,67413],"valid"],[[67414,67423],"disallowed"],[[67424,67431],"valid"],[[67432,67583],"disallowed"],[[67584,67589],"valid"],[[67590,67591],"disallowed"],[[67592,67592],"valid"],[[67593,67593],"disallowed"],[[67594,67637],"valid"],[[67638,67638],"disallowed"],[[67639,67640],"valid"],[[67641,67643],"disallowed"],[[67644,67644],"valid"],[[67645,67646],"disallowed"],[[67647,67647],"valid"],[[67648,67669],"valid"],[[67670,67670],"disallowed"],[[67671,67679],"valid",[],"NV8"],[[67680,67702],"valid"],[[67703,67711],"valid",[],"NV8"],[[67712,67742],"valid"],[[67743,67750],"disallowed"],[[67751,67759],"valid",[],"NV8"],[[67760,67807],"disallowed"],[[67808,67826],"valid"],[[67827,67827],"disallowed"],[[67828,67829],"valid"],[[67830,67834],"disallowed"],[[67835,67839],"valid",[],"NV8"],[[67840,67861],"valid"],[[67862,67865],"valid",[],"NV8"],[[67866,67867],"valid",[],"NV8"],[[67868,67870],"disallowed"],[[67871,67871],"valid",[],"NV8"],[[67872,67897],"valid"],[[67898,67902],"disallowed"],[[67903,67903],"valid",[],"NV8"],[[67904,67967],"disallowed"],[[67968,68023],"valid"],[[68024,68027],"disallowed"],[[68028,68029],"valid",[],"NV8"],[[68030,68031],"valid"],[[68032,68047],"valid",[],"NV8"],[[68048,68049],"disallowed"],[[68050,68095],"valid",[],"NV8"],[[68096,68099],"valid"],[[68100,68100],"disallowed"],[[68101,68102],"valid"],[[68103,68107],"disallowed"],[[68108,68115],"valid"],[[68116,68116],"disallowed"],[[68117,68119],"valid"],[[68120,68120],"disallowed"],[[68121,68147],"valid"],[[68148,68151],"disallowed"],[[68152,68154],"valid"],[[68155,68158],"disallowed"],[[68159,68159],"valid"],[[68160,68167],"valid",[],"NV8"],[[68168,68175],"disallowed"],[[68176,68184],"valid",[],"NV8"],[[68185,68191],"disallowed"],[[68192,68220],"valid"],[[68221,68223],"valid",[],"NV8"],[[68224,68252],"valid"],[[68253,68255],"valid",[],"NV8"],[[68256,68287],"disallowed"],[[68288,68295],"valid"],[[68296,68296],"valid",[],"NV8"],[[68297,68326],"valid"],[[68327,68330],"disallowed"],[[68331,68342],"valid",[],"NV8"],[[68343,68351],"disallowed"],[[68352,68405],"valid"],[[68406,68408],"disallowed"],[[68409,68415],"valid",[],"NV8"],[[68416,68437],"valid"],[[68438,68439],"disallowed"],[[68440,68447],"valid",[],"NV8"],[[68448,68466],"valid"],[[68467,68471],"disallowed"],[[68472,68479],"valid",[],"NV8"],[[68480,68497],"valid"],[[68498,68504],"disallowed"],[[68505,68508],"valid",[],"NV8"],[[68509,68520],"disallowed"],[[68521,68527],"valid",[],"NV8"],[[68528,68607],"disallowed"],[[68608,68680],"valid"],[[68681,68735],"disallowed"],[[68736,68736],"mapped",[68800]],[[68737,68737],"mapped",[68801]],[[68738,68738],"mapped",[68802]],[[68739,68739],"mapped",[68803]],[[68740,68740],"mapped",[68804]],[[68741,68741],"mapped",[68805]],[[68742,68742],"mapped",[68806]],[[68743,68743],"mapped",[68807]],[[68744,68744],"mapped",[68808]],[[68745,68745],"mapped",[68809]],[[68746,68746],"mapped",[68810]],[[68747,68747],"mapped",[68811]],[[68748,68748],"mapped",[68812]],[[68749,68749],"mapped",[68813]],[[68750,68750],"mapped",[68814]],[[68751,68751],"mapped",[68815]],[[68752,68752],"mapped",[68816]],[[68753,68753],"mapped",[68817]],[[68754,68754],"mapped",[68818]],[[68755,68755],"mapped",[68819]],[[68756,68756],"mapped",[68820]],[[68757,68757],"mapped",[68821]],[[68758,68758],"mapped",[68822]],[[68759,68759],"mapped",[68823]],[[68760,68760],"mapped",[68824]],[[68761,68761],"mapped",[68825]],[[68762,68762],"mapped",[68826]],[[68763,68763],"mapped",[68827]],[[68764,68764],"mapped",[68828]],[[68765,68765],"mapped",[68829]],[[68766,68766],"mapped",[68830]],[[68767,68767],"mapped",[68831]],[[68768,68768],"mapped",[68832]],[[68769,68769],"mapped",[68833]],[[68770,68770],"mapped",[68834]],[[68771,68771],"mapped",[68835]],[[68772,68772],"mapped",[68836]],[[68773,68773],"mapped",[68837]],[[68774,68774],"mapped",[68838]],[[68775,68775],"mapped",[68839]],[[68776,68776],"mapped",[68840]],[[68777,68777],"mapped",[68841]],[[68778,68778],"mapped",[68842]],[[68779,68779],"mapped",[68843]],[[68780,68780],"mapped",[68844]],[[68781,68781],"mapped",[68845]],[[68782,68782],"mapped",[68846]],[[68783,68783],"mapped",[68847]],[[68784,68784],"mapped",[68848]],[[68785,68785],"mapped",[68849]],[[68786,68786],"mapped",[68850]],[[68787,68799],"disallowed"],[[68800,68850],"valid"],[[68851,68857],"disallowed"],[[68858,68863],"valid",[],"NV8"],[[68864,69215],"disallowed"],[[69216,69246],"valid",[],"NV8"],[[69247,69631],"disallowed"],[[69632,69702],"valid"],[[69703,69709],"valid",[],"NV8"],[[69710,69713],"disallowed"],[[69714,69733],"valid",[],"NV8"],[[69734,69743],"valid"],[[69744,69758],"disallowed"],[[69759,69759],"valid"],[[69760,69818],"valid"],[[69819,69820],"valid",[],"NV8"],[[69821,69821],"disallowed"],[[69822,69825],"valid",[],"NV8"],[[69826,69839],"disallowed"],[[69840,69864],"valid"],[[69865,69871],"disallowed"],[[69872,69881],"valid"],[[69882,69887],"disallowed"],[[69888,69940],"valid"],[[69941,69941],"disallowed"],[[69942,69951],"valid"],[[69952,69955],"valid",[],"NV8"],[[69956,69967],"disallowed"],[[69968,70003],"valid"],[[70004,70005],"valid",[],"NV8"],[[70006,70006],"valid"],[[70007,70015],"disallowed"],[[70016,70084],"valid"],[[70085,70088],"valid",[],"NV8"],[[70089,70089],"valid",[],"NV8"],[[70090,70092],"valid"],[[70093,70093],"valid",[],"NV8"],[[70094,70095],"disallowed"],[[70096,70105],"valid"],[[70106,70106],"valid"],[[70107,70107],"valid",[],"NV8"],[[70108,70108],"valid"],[[70109,70111],"valid",[],"NV8"],[[70112,70112],"disallowed"],[[70113,70132],"valid",[],"NV8"],[[70133,70143],"disallowed"],[[70144,70161],"valid"],[[70162,70162],"disallowed"],[[70163,70199],"valid"],[[70200,70205],"valid",[],"NV8"],[[70206,70271],"disallowed"],[[70272,70278],"valid"],[[70279,70279],"disallowed"],[[70280,70280],"valid"],[[70281,70281],"disallowed"],[[70282,70285],"valid"],[[70286,70286],"disallowed"],[[70287,70301],"valid"],[[70302,70302],"disallowed"],[[70303,70312],"valid"],[[70313,70313],"valid",[],"NV8"],[[70314,70319],"disallowed"],[[70320,70378],"valid"],[[70379,70383],"disallowed"],[[70384,70393],"valid"],[[70394,70399],"disallowed"],[[70400,70400],"valid"],[[70401,70403],"valid"],[[70404,70404],"disallowed"],[[70405,70412],"valid"],[[70413,70414],"disallowed"],[[70415,70416],"valid"],[[70417,70418],"disallowed"],[[70419,70440],"valid"],[[70441,70441],"disallowed"],[[70442,70448],"valid"],[[70449,70449],"disallowed"],[[70450,70451],"valid"],[[70452,70452],"disallowed"],[[70453,70457],"valid"],[[70458,70459],"disallowed"],[[70460,70468],"valid"],[[70469,70470],"disallowed"],[[70471,70472],"valid"],[[70473,70474],"disallowed"],[[70475,70477],"valid"],[[70478,70479],"disallowed"],[[70480,70480],"valid"],[[70481,70486],"disallowed"],[[70487,70487],"valid"],[[70488,70492],"disallowed"],[[70493,70499],"valid"],[[70500,70501],"disallowed"],[[70502,70508],"valid"],[[70509,70511],"disallowed"],[[70512,70516],"valid"],[[70517,70783],"disallowed"],[[70784,70853],"valid"],[[70854,70854],"valid",[],"NV8"],[[70855,70855],"valid"],[[70856,70863],"disallowed"],[[70864,70873],"valid"],[[70874,71039],"disallowed"],[[71040,71093],"valid"],[[71094,71095],"disallowed"],[[71096,71104],"valid"],[[71105,71113],"valid",[],"NV8"],[[71114,71127],"valid",[],"NV8"],[[71128,71133],"valid"],[[71134,71167],"disallowed"],[[71168,71232],"valid"],[[71233,71235],"valid",[],"NV8"],[[71236,71236],"valid"],[[71237,71247],"disallowed"],[[71248,71257],"valid"],[[71258,71295],"disallowed"],[[71296,71351],"valid"],[[71352,71359],"disallowed"],[[71360,71369],"valid"],[[71370,71423],"disallowed"],[[71424,71449],"valid"],[[71450,71452],"disallowed"],[[71453,71467],"valid"],[[71468,71471],"disallowed"],[[71472,71481],"valid"],[[71482,71487],"valid",[],"NV8"],[[71488,71839],"disallowed"],[[71840,71840],"mapped",[71872]],[[71841,71841],"mapped",[71873]],[[71842,71842],"mapped",[71874]],[[71843,71843],"mapped",[71875]],[[71844,71844],"mapped",[71876]],[[71845,71845],"mapped",[71877]],[[71846,71846],"mapped",[71878]],[[71847,71847],"mapped",[71879]],[[71848,71848],"mapped",[71880]],[[71849,71849],"mapped",[71881]],[[71850,71850],"mapped",[71882]],[[71851,71851],"mapped",[71883]],[[71852,71852],"mapped",[71884]],[[71853,71853],"mapped",[71885]],[[71854,71854],"mapped",[71886]],[[71855,71855],"mapped",[71887]],[[71856,71856],"mapped",[71888]],[[71857,71857],"mapped",[71889]],[[71858,71858],"mapped",[71890]],[[71859,71859],"mapped",[71891]],[[71860,71860],"mapped",[71892]],[[71861,71861],"mapped",[71893]],[[71862,71862],"mapped",[71894]],[[71863,71863],"mapped",[71895]],[[71864,71864],"mapped",[71896]],[[71865,71865],"mapped",[71897]],[[71866,71866],"mapped",[71898]],[[71867,71867],"mapped",[71899]],[[71868,71868],"mapped",[71900]],[[71869,71869],"mapped",[71901]],[[71870,71870],"mapped",[71902]],[[71871,71871],"mapped",[71903]],[[71872,71913],"valid"],[[71914,71922],"valid",[],"NV8"],[[71923,71934],"disallowed"],[[71935,71935],"valid"],[[71936,72383],"disallowed"],[[72384,72440],"valid"],[[72441,73727],"disallowed"],[[73728,74606],"valid"],[[74607,74648],"valid"],[[74649,74649],"valid"],[[74650,74751],"disallowed"],[[74752,74850],"valid",[],"NV8"],[[74851,74862],"valid",[],"NV8"],[[74863,74863],"disallowed"],[[74864,74867],"valid",[],"NV8"],[[74868,74868],"valid",[],"NV8"],[[74869,74879],"disallowed"],[[74880,75075],"valid"],[[75076,77823],"disallowed"],[[77824,78894],"valid"],[[78895,82943],"disallowed"],[[82944,83526],"valid"],[[83527,92159],"disallowed"],[[92160,92728],"valid"],[[92729,92735],"disallowed"],[[92736,92766],"valid"],[[92767,92767],"disallowed"],[[92768,92777],"valid"],[[92778,92781],"disallowed"],[[92782,92783],"valid",[],"NV8"],[[92784,92879],"disallowed"],[[92880,92909],"valid"],[[92910,92911],"disallowed"],[[92912,92916],"valid"],[[92917,92917],"valid",[],"NV8"],[[92918,92927],"disallowed"],[[92928,92982],"valid"],[[92983,92991],"valid",[],"NV8"],[[92992,92995],"valid"],[[92996,92997],"valid",[],"NV8"],[[92998,93007],"disallowed"],[[93008,93017],"valid"],[[93018,93018],"disallowed"],[[93019,93025],"valid",[],"NV8"],[[93026,93026],"disallowed"],[[93027,93047],"valid"],[[93048,93052],"disallowed"],[[93053,93071],"valid"],[[93072,93951],"disallowed"],[[93952,94020],"valid"],[[94021,94031],"disallowed"],[[94032,94078],"valid"],[[94079,94094],"disallowed"],[[94095,94111],"valid"],[[94112,110591],"disallowed"],[[110592,110593],"valid"],[[110594,113663],"disallowed"],[[113664,113770],"valid"],[[113771,113775],"disallowed"],[[113776,113788],"valid"],[[113789,113791],"disallowed"],[[113792,113800],"valid"],[[113801,113807],"disallowed"],[[113808,113817],"valid"],[[113818,113819],"disallowed"],[[113820,113820],"valid",[],"NV8"],[[113821,113822],"valid"],[[113823,113823],"valid",[],"NV8"],[[113824,113827],"ignored"],[[113828,118783],"disallowed"],[[118784,119029],"valid",[],"NV8"],[[119030,119039],"disallowed"],[[119040,119078],"valid",[],"NV8"],[[119079,119080],"disallowed"],[[119081,119081],"valid",[],"NV8"],[[119082,119133],"valid",[],"NV8"],[[119134,119134],"mapped",[119127,119141]],[[119135,119135],"mapped",[119128,119141]],[[119136,119136],"mapped",[119128,119141,119150]],[[119137,119137],"mapped",[119128,119141,119151]],[[119138,119138],"mapped",[119128,119141,119152]],[[119139,119139],"mapped",[119128,119141,119153]],[[119140,119140],"mapped",[119128,119141,119154]],[[119141,119154],"valid",[],"NV8"],[[119155,119162],"disallowed"],[[119163,119226],"valid",[],"NV8"],[[119227,119227],"mapped",[119225,119141]],[[119228,119228],"mapped",[119226,119141]],[[119229,119229],"mapped",[119225,119141,119150]],[[119230,119230],"mapped",[119226,119141,119150]],[[119231,119231],"mapped",[119225,119141,119151]],[[119232,119232],"mapped",[119226,119141,119151]],[[119233,119261],"valid",[],"NV8"],[[119262,119272],"valid",[],"NV8"],[[119273,119295],"disallowed"],[[119296,119365],"valid",[],"NV8"],[[119366,119551],"disallowed"],[[119552,119638],"valid",[],"NV8"],[[119639,119647],"disallowed"],[[119648,119665],"valid",[],"NV8"],[[119666,119807],"disallowed"],[[119808,119808],"mapped",[97]],[[119809,119809],"mapped",[98]],[[119810,119810],"mapped",[99]],[[119811,119811],"mapped",[100]],[[119812,119812],"mapped",[101]],[[119813,119813],"mapped",[102]],[[119814,119814],"mapped",[103]],[[119815,119815],"mapped",[104]],[[119816,119816],"mapped",[105]],[[119817,119817],"mapped",[106]],[[119818,119818],"mapped",[107]],[[119819,119819],"mapped",[108]],[[119820,119820],"mapped",[109]],[[119821,119821],"mapped",[110]],[[119822,119822],"mapped",[111]],[[119823,119823],"mapped",[112]],[[119824,119824],"mapped",[113]],[[119825,119825],"mapped",[114]],[[119826,119826],"mapped",[115]],[[119827,119827],"mapped",[116]],[[119828,119828],"mapped",[117]],[[119829,119829],"mapped",[118]],[[119830,119830],"mapped",[119]],[[119831,119831],"mapped",[120]],[[119832,119832],"mapped",[121]],[[119833,119833],"mapped",[122]],[[119834,119834],"mapped",[97]],[[119835,119835],"mapped",[98]],[[119836,119836],"mapped",[99]],[[119837,119837],"mapped",[100]],[[119838,119838],"mapped",[101]],[[119839,119839],"mapped",[102]],[[119840,119840],"mapped",[103]],[[119841,119841],"mapped",[104]],[[119842,119842],"mapped",[105]],[[119843,119843],"mapped",[106]],[[119844,119844],"mapped",[107]],[[119845,119845],"mapped",[108]],[[119846,119846],"mapped",[109]],[[119847,119847],"mapped",[110]],[[119848,119848],"mapped",[111]],[[119849,119849],"mapped",[112]],[[119850,119850],"mapped",[113]],[[119851,119851],"mapped",[114]],[[119852,119852],"mapped",[115]],[[119853,119853],"mapped",[116]],[[119854,119854],"mapped",[117]],[[119855,119855],"mapped",[118]],[[119856,119856],"mapped",[119]],[[119857,119857],"mapped",[120]],[[119858,119858],"mapped",[121]],[[119859,119859],"mapped",[122]],[[119860,119860],"mapped",[97]],[[119861,119861],"mapped",[98]],[[119862,119862],"mapped",[99]],[[119863,119863],"mapped",[100]],[[119864,119864],"mapped",[101]],[[119865,119865],"mapped",[102]],[[119866,119866],"mapped",[103]],[[119867,119867],"mapped",[104]],[[119868,119868],"mapped",[105]],[[119869,119869],"mapped",[106]],[[119870,119870],"mapped",[107]],[[119871,119871],"mapped",[108]],[[119872,119872],"mapped",[109]],[[119873,119873],"mapped",[110]],[[119874,119874],"mapped",[111]],[[119875,119875],"mapped",[112]],[[119876,119876],"mapped",[113]],[[119877,119877],"mapped",[114]],[[119878,119878],"mapped",[115]],[[119879,119879],"mapped",[116]],[[119880,119880],"mapped",[117]],[[119881,119881],"mapped",[118]],[[119882,119882],"mapped",[119]],[[119883,119883],"mapped",[120]],[[119884,119884],"mapped",[121]],[[119885,119885],"mapped",[122]],[[119886,119886],"mapped",[97]],[[119887,119887],"mapped",[98]],[[119888,119888],"mapped",[99]],[[119889,119889],"mapped",[100]],[[119890,119890],"mapped",[101]],[[119891,119891],"mapped",[102]],[[119892,119892],"mapped",[103]],[[119893,119893],"disallowed"],[[119894,119894],"mapped",[105]],[[119895,119895],"mapped",[106]],[[119896,119896],"mapped",[107]],[[119897,119897],"mapped",[108]],[[119898,119898],"mapped",[109]],[[119899,119899],"mapped",[110]],[[119900,119900],"mapped",[111]],[[119901,119901],"mapped",[112]],[[119902,119902],"mapped",[113]],[[119903,119903],"mapped",[114]],[[119904,119904],"mapped",[115]],[[119905,119905],"mapped",[116]],[[119906,119906],"mapped",[117]],[[119907,119907],"mapped",[118]],[[119908,119908],"mapped",[119]],[[119909,119909],"mapped",[120]],[[119910,119910],"mapped",[121]],[[119911,119911],"mapped",[122]],[[119912,119912],"mapped",[97]],[[119913,119913],"mapped",[98]],[[119914,119914],"mapped",[99]],[[119915,119915],"mapped",[100]],[[119916,119916],"mapped",[101]],[[119917,119917],"mapped",[102]],[[119918,119918],"mapped",[103]],[[119919,119919],"mapped",[104]],[[119920,119920],"mapped",[105]],[[119921,119921],"mapped",[106]],[[119922,119922],"mapped",[107]],[[119923,119923],"mapped",[108]],[[119924,119924],"mapped",[109]],[[119925,119925],"mapped",[110]],[[119926,119926],"mapped",[111]],[[119927,119927],"mapped",[112]],[[119928,119928],"mapped",[113]],[[119929,119929],"mapped",[114]],[[119930,119930],"mapped",[115]],[[119931,119931],"mapped",[116]],[[119932,119932],"mapped",[117]],[[119933,119933],"mapped",[118]],[[119934,119934],"mapped",[119]],[[119935,119935],"mapped",[120]],[[119936,119936],"mapped",[121]],[[119937,119937],"mapped",[122]],[[119938,119938],"mapped",[97]],[[119939,119939],"mapped",[98]],[[119940,119940],"mapped",[99]],[[119941,119941],"mapped",[100]],[[119942,119942],"mapped",[101]],[[119943,119943],"mapped",[102]],[[119944,119944],"mapped",[103]],[[119945,119945],"mapped",[104]],[[119946,119946],"mapped",[105]],[[119947,119947],"mapped",[106]],[[119948,119948],"mapped",[107]],[[119949,119949],"mapped",[108]],[[119950,119950],"mapped",[109]],[[119951,119951],"mapped",[110]],[[119952,119952],"mapped",[111]],[[119953,119953],"mapped",[112]],[[119954,119954],"mapped",[113]],[[119955,119955],"mapped",[114]],[[119956,119956],"mapped",[115]],[[119957,119957],"mapped",[116]],[[119958,119958],"mapped",[117]],[[119959,119959],"mapped",[118]],[[119960,119960],"mapped",[119]],[[119961,119961],"mapped",[120]],[[119962,119962],"mapped",[121]],[[119963,119963],"mapped",[122]],[[119964,119964],"mapped",[97]],[[119965,119965],"disallowed"],[[119966,119966],"mapped",[99]],[[119967,119967],"mapped",[100]],[[119968,119969],"disallowed"],[[119970,119970],"mapped",[103]],[[119971,119972],"disallowed"],[[119973,119973],"mapped",[106]],[[119974,119974],"mapped",[107]],[[119975,119976],"disallowed"],[[119977,119977],"mapped",[110]],[[119978,119978],"mapped",[111]],[[119979,119979],"mapped",[112]],[[119980,119980],"mapped",[113]],[[119981,119981],"disallowed"],[[119982,119982],"mapped",[115]],[[119983,119983],"mapped",[116]],[[119984,119984],"mapped",[117]],[[119985,119985],"mapped",[118]],[[119986,119986],"mapped",[119]],[[119987,119987],"mapped",[120]],[[119988,119988],"mapped",[121]],[[119989,119989],"mapped",[122]],[[119990,119990],"mapped",[97]],[[119991,119991],"mapped",[98]],[[119992,119992],"mapped",[99]],[[119993,119993],"mapped",[100]],[[119994,119994],"disallowed"],[[119995,119995],"mapped",[102]],[[119996,119996],"disallowed"],[[119997,119997],"mapped",[104]],[[119998,119998],"mapped",[105]],[[119999,119999],"mapped",[106]],[[12e4,12e4],"mapped",[107]],[[120001,120001],"mapped",[108]],[[120002,120002],"mapped",[109]],[[120003,120003],"mapped",[110]],[[120004,120004],"disallowed"],[[120005,120005],"mapped",[112]],[[120006,120006],"mapped",[113]],[[120007,120007],"mapped",[114]],[[120008,120008],"mapped",[115]],[[120009,120009],"mapped",[116]],[[120010,120010],"mapped",[117]],[[120011,120011],"mapped",[118]],[[120012,120012],"mapped",[119]],[[120013,120013],"mapped",[120]],[[120014,120014],"mapped",[121]],[[120015,120015],"mapped",[122]],[[120016,120016],"mapped",[97]],[[120017,120017],"mapped",[98]],[[120018,120018],"mapped",[99]],[[120019,120019],"mapped",[100]],[[120020,120020],"mapped",[101]],[[120021,120021],"mapped",[102]],[[120022,120022],"mapped",[103]],[[120023,120023],"mapped",[104]],[[120024,120024],"mapped",[105]],[[120025,120025],"mapped",[106]],[[120026,120026],"mapped",[107]],[[120027,120027],"mapped",[108]],[[120028,120028],"mapped",[109]],[[120029,120029],"mapped",[110]],[[120030,120030],"mapped",[111]],[[120031,120031],"mapped",[112]],[[120032,120032],"mapped",[113]],[[120033,120033],"mapped",[114]],[[120034,120034],"mapped",[115]],[[120035,120035],"mapped",[116]],[[120036,120036],"mapped",[117]],[[120037,120037],"mapped",[118]],[[120038,120038],"mapped",[119]],[[120039,120039],"mapped",[120]],[[120040,120040],"mapped",[121]],[[120041,120041],"mapped",[122]],[[120042,120042],"mapped",[97]],[[120043,120043],"mapped",[98]],[[120044,120044],"mapped",[99]],[[120045,120045],"mapped",[100]],[[120046,120046],"mapped",[101]],[[120047,120047],"mapped",[102]],[[120048,120048],"mapped",[103]],[[120049,120049],"mapped",[104]],[[120050,120050],"mapped",[105]],[[120051,120051],"mapped",[106]],[[120052,120052],"mapped",[107]],[[120053,120053],"mapped",[108]],[[120054,120054],"mapped",[109]],[[120055,120055],"mapped",[110]],[[120056,120056],"mapped",[111]],[[120057,120057],"mapped",[112]],[[120058,120058],"mapped",[113]],[[120059,120059],"mapped",[114]],[[120060,120060],"mapped",[115]],[[120061,120061],"mapped",[116]],[[120062,120062],"mapped",[117]],[[120063,120063],"mapped",[118]],[[120064,120064],"mapped",[119]],[[120065,120065],"mapped",[120]],[[120066,120066],"mapped",[121]],[[120067,120067],"mapped",[122]],[[120068,120068],"mapped",[97]],[[120069,120069],"mapped",[98]],[[120070,120070],"disallowed"],[[120071,120071],"mapped",[100]],[[120072,120072],"mapped",[101]],[[120073,120073],"mapped",[102]],[[120074,120074],"mapped",[103]],[[120075,120076],"disallowed"],[[120077,120077],"mapped",[106]],[[120078,120078],"mapped",[107]],[[120079,120079],"mapped",[108]],[[120080,120080],"mapped",[109]],[[120081,120081],"mapped",[110]],[[120082,120082],"mapped",[111]],[[120083,120083],"mapped",[112]],[[120084,120084],"mapped",[113]],[[120085,120085],"disallowed"],[[120086,120086],"mapped",[115]],[[120087,120087],"mapped",[116]],[[120088,120088],"mapped",[117]],[[120089,120089],"mapped",[118]],[[120090,120090],"mapped",[119]],[[120091,120091],"mapped",[120]],[[120092,120092],"mapped",[121]],[[120093,120093],"disallowed"],[[120094,120094],"mapped",[97]],[[120095,120095],"mapped",[98]],[[120096,120096],"mapped",[99]],[[120097,120097],"mapped",[100]],[[120098,120098],"mapped",[101]],[[120099,120099],"mapped",[102]],[[120100,120100],"mapped",[103]],[[120101,120101],"mapped",[104]],[[120102,120102],"mapped",[105]],[[120103,120103],"mapped",[106]],[[120104,120104],"mapped",[107]],[[120105,120105],"mapped",[108]],[[120106,120106],"mapped",[109]],[[120107,120107],"mapped",[110]],[[120108,120108],"mapped",[111]],[[120109,120109],"mapped",[112]],[[120110,120110],"mapped",[113]],[[120111,120111],"mapped",[114]],[[120112,120112],"mapped",[115]],[[120113,120113],"mapped",[116]],[[120114,120114],"mapped",[117]],[[120115,120115],"mapped",[118]],[[120116,120116],"mapped",[119]],[[120117,120117],"mapped",[120]],[[120118,120118],"mapped",[121]],[[120119,120119],"mapped",[122]],[[120120,120120],"mapped",[97]],[[120121,120121],"mapped",[98]],[[120122,120122],"disallowed"],[[120123,120123],"mapped",[100]],[[120124,120124],"mapped",[101]],[[120125,120125],"mapped",[102]],[[120126,120126],"mapped",[103]],[[120127,120127],"disallowed"],[[120128,120128],"mapped",[105]],[[120129,120129],"mapped",[106]],[[120130,120130],"mapped",[107]],[[120131,120131],"mapped",[108]],[[120132,120132],"mapped",[109]],[[120133,120133],"disallowed"],[[120134,120134],"mapped",[111]],[[120135,120137],"disallowed"],[[120138,120138],"mapped",[115]],[[120139,120139],"mapped",[116]],[[120140,120140],"mapped",[117]],[[120141,120141],"mapped",[118]],[[120142,120142],"mapped",[119]],[[120143,120143],"mapped",[120]],[[120144,120144],"mapped",[121]],[[120145,120145],"disallowed"],[[120146,120146],"mapped",[97]],[[120147,120147],"mapped",[98]],[[120148,120148],"mapped",[99]],[[120149,120149],"mapped",[100]],[[120150,120150],"mapped",[101]],[[120151,120151],"mapped",[102]],[[120152,120152],"mapped",[103]],[[120153,120153],"mapped",[104]],[[120154,120154],"mapped",[105]],[[120155,120155],"mapped",[106]],[[120156,120156],"mapped",[107]],[[120157,120157],"mapped",[108]],[[120158,120158],"mapped",[109]],[[120159,120159],"mapped",[110]],[[120160,120160],"mapped",[111]],[[120161,120161],"mapped",[112]],[[120162,120162],"mapped",[113]],[[120163,120163],"mapped",[114]],[[120164,120164],"mapped",[115]],[[120165,120165],"mapped",[116]],[[120166,120166],"mapped",[117]],[[120167,120167],"mapped",[118]],[[120168,120168],"mapped",[119]],[[120169,120169],"mapped",[120]],[[120170,120170],"mapped",[121]],[[120171,120171],"mapped",[122]],[[120172,120172],"mapped",[97]],[[120173,120173],"mapped",[98]],[[120174,120174],"mapped",[99]],[[120175,120175],"mapped",[100]],[[120176,120176],"mapped",[101]],[[120177,120177],"mapped",[102]],[[120178,120178],"mapped",[103]],[[120179,120179],"mapped",[104]],[[120180,120180],"mapped",[105]],[[120181,120181],"mapped",[106]],[[120182,120182],"mapped",[107]],[[120183,120183],"mapped",[108]],[[120184,120184],"mapped",[109]],[[120185,120185],"mapped",[110]],[[120186,120186],"mapped",[111]],[[120187,120187],"mapped",[112]],[[120188,120188],"mapped",[113]],[[120189,120189],"mapped",[114]],[[120190,120190],"mapped",[115]],[[120191,120191],"mapped",[116]],[[120192,120192],"mapped",[117]],[[120193,120193],"mapped",[118]],[[120194,120194],"mapped",[119]],[[120195,120195],"mapped",[120]],[[120196,120196],"mapped",[121]],[[120197,120197],"mapped",[122]],[[120198,120198],"mapped",[97]],[[120199,120199],"mapped",[98]],[[120200,120200],"mapped",[99]],[[120201,120201],"mapped",[100]],[[120202,120202],"mapped",[101]],[[120203,120203],"mapped",[102]],[[120204,120204],"mapped",[103]],[[120205,120205],"mapped",[104]],[[120206,120206],"mapped",[105]],[[120207,120207],"mapped",[106]],[[120208,120208],"mapped",[107]],[[120209,120209],"mapped",[108]],[[120210,120210],"mapped",[109]],[[120211,120211],"mapped",[110]],[[120212,120212],"mapped",[111]],[[120213,120213],"mapped",[112]],[[120214,120214],"mapped",[113]],[[120215,120215],"mapped",[114]],[[120216,120216],"mapped",[115]],[[120217,120217],"mapped",[116]],[[120218,120218],"mapped",[117]],[[120219,120219],"mapped",[118]],[[120220,120220],"mapped",[119]],[[120221,120221],"mapped",[120]],[[120222,120222],"mapped",[121]],[[120223,120223],"mapped",[122]],[[120224,120224],"mapped",[97]],[[120225,120225],"mapped",[98]],[[120226,120226],"mapped",[99]],[[120227,120227],"mapped",[100]],[[120228,120228],"mapped",[101]],[[120229,120229],"mapped",[102]],[[120230,120230],"mapped",[103]],[[120231,120231],"mapped",[104]],[[120232,120232],"mapped",[105]],[[120233,120233],"mapped",[106]],[[120234,120234],"mapped",[107]],[[120235,120235],"mapped",[108]],[[120236,120236],"mapped",[109]],[[120237,120237],"mapped",[110]],[[120238,120238],"mapped",[111]],[[120239,120239],"mapped",[112]],[[120240,120240],"mapped",[113]],[[120241,120241],"mapped",[114]],[[120242,120242],"mapped",[115]],[[120243,120243],"mapped",[116]],[[120244,120244],"mapped",[117]],[[120245,120245],"mapped",[118]],[[120246,120246],"mapped",[119]],[[120247,120247],"mapped",[120]],[[120248,120248],"mapped",[121]],[[120249,120249],"mapped",[122]],[[120250,120250],"mapped",[97]],[[120251,120251],"mapped",[98]],[[120252,120252],"mapped",[99]],[[120253,120253],"mapped",[100]],[[120254,120254],"mapped",[101]],[[120255,120255],"mapped",[102]],[[120256,120256],"mapped",[103]],[[120257,120257],"mapped",[104]],[[120258,120258],"mapped",[105]],[[120259,120259],"mapped",[106]],[[120260,120260],"mapped",[107]],[[120261,120261],"mapped",[108]],[[120262,120262],"mapped",[109]],[[120263,120263],"mapped",[110]],[[120264,120264],"mapped",[111]],[[120265,120265],"mapped",[112]],[[120266,120266],"mapped",[113]],[[120267,120267],"mapped",[114]],[[120268,120268],"mapped",[115]],[[120269,120269],"mapped",[116]],[[120270,120270],"mapped",[117]],[[120271,120271],"mapped",[118]],[[120272,120272],"mapped",[119]],[[120273,120273],"mapped",[120]],[[120274,120274],"mapped",[121]],[[120275,120275],"mapped",[122]],[[120276,120276],"mapped",[97]],[[120277,120277],"mapped",[98]],[[120278,120278],"mapped",[99]],[[120279,120279],"mapped",[100]],[[120280,120280],"mapped",[101]],[[120281,120281],"mapped",[102]],[[120282,120282],"mapped",[103]],[[120283,120283],"mapped",[104]],[[120284,120284],"mapped",[105]],[[120285,120285],"mapped",[106]],[[120286,120286],"mapped",[107]],[[120287,120287],"mapped",[108]],[[120288,120288],"mapped",[109]],[[120289,120289],"mapped",[110]],[[120290,120290],"mapped",[111]],[[120291,120291],"mapped",[112]],[[120292,120292],"mapped",[113]],[[120293,120293],"mapped",[114]],[[120294,120294],"mapped",[115]],[[120295,120295],"mapped",[116]],[[120296,120296],"mapped",[117]],[[120297,120297],"mapped",[118]],[[120298,120298],"mapped",[119]],[[120299,120299],"mapped",[120]],[[120300,120300],"mapped",[121]],[[120301,120301],"mapped",[122]],[[120302,120302],"mapped",[97]],[[120303,120303],"mapped",[98]],[[120304,120304],"mapped",[99]],[[120305,120305],"mapped",[100]],[[120306,120306],"mapped",[101]],[[120307,120307],"mapped",[102]],[[120308,120308],"mapped",[103]],[[120309,120309],"mapped",[104]],[[120310,120310],"mapped",[105]],[[120311,120311],"mapped",[106]],[[120312,120312],"mapped",[107]],[[120313,120313],"mapped",[108]],[[120314,120314],"mapped",[109]],[[120315,120315],"mapped",[110]],[[120316,120316],"mapped",[111]],[[120317,120317],"mapped",[112]],[[120318,120318],"mapped",[113]],[[120319,120319],"mapped",[114]],[[120320,120320],"mapped",[115]],[[120321,120321],"mapped",[116]],[[120322,120322],"mapped",[117]],[[120323,120323],"mapped",[118]],[[120324,120324],"mapped",[119]],[[120325,120325],"mapped",[120]],[[120326,120326],"mapped",[121]],[[120327,120327],"mapped",[122]],[[120328,120328],"mapped",[97]],[[120329,120329],"mapped",[98]],[[120330,120330],"mapped",[99]],[[120331,120331],"mapped",[100]],[[120332,120332],"mapped",[101]],[[120333,120333],"mapped",[102]],[[120334,120334],"mapped",[103]],[[120335,120335],"mapped",[104]],[[120336,120336],"mapped",[105]],[[120337,120337],"mapped",[106]],[[120338,120338],"mapped",[107]],[[120339,120339],"mapped",[108]],[[120340,120340],"mapped",[109]],[[120341,120341],"mapped",[110]],[[120342,120342],"mapped",[111]],[[120343,120343],"mapped",[112]],[[120344,120344],"mapped",[113]],[[120345,120345],"mapped",[114]],[[120346,120346],"mapped",[115]],[[120347,120347],"mapped",[116]],[[120348,120348],"mapped",[117]],[[120349,120349],"mapped",[118]],[[120350,120350],"mapped",[119]],[[120351,120351],"mapped",[120]],[[120352,120352],"mapped",[121]],[[120353,120353],"mapped",[122]],[[120354,120354],"mapped",[97]],[[120355,120355],"mapped",[98]],[[120356,120356],"mapped",[99]],[[120357,120357],"mapped",[100]],[[120358,120358],"mapped",[101]],[[120359,120359],"mapped",[102]],[[120360,120360],"mapped",[103]],[[120361,120361],"mapped",[104]],[[120362,120362],"mapped",[105]],[[120363,120363],"mapped",[106]],[[120364,120364],"mapped",[107]],[[120365,120365],"mapped",[108]],[[120366,120366],"mapped",[109]],[[120367,120367],"mapped",[110]],[[120368,120368],"mapped",[111]],[[120369,120369],"mapped",[112]],[[120370,120370],"mapped",[113]],[[120371,120371],"mapped",[114]],[[120372,120372],"mapped",[115]],[[120373,120373],"mapped",[116]],[[120374,120374],"mapped",[117]],[[120375,120375],"mapped",[118]],[[120376,120376],"mapped",[119]],[[120377,120377],"mapped",[120]],[[120378,120378],"mapped",[121]],[[120379,120379],"mapped",[122]],[[120380,120380],"mapped",[97]],[[120381,120381],"mapped",[98]],[[120382,120382],"mapped",[99]],[[120383,120383],"mapped",[100]],[[120384,120384],"mapped",[101]],[[120385,120385],"mapped",[102]],[[120386,120386],"mapped",[103]],[[120387,120387],"mapped",[104]],[[120388,120388],"mapped",[105]],[[120389,120389],"mapped",[106]],[[120390,120390],"mapped",[107]],[[120391,120391],"mapped",[108]],[[120392,120392],"mapped",[109]],[[120393,120393],"mapped",[110]],[[120394,120394],"mapped",[111]],[[120395,120395],"mapped",[112]],[[120396,120396],"mapped",[113]],[[120397,120397],"mapped",[114]],[[120398,120398],"mapped",[115]],[[120399,120399],"mapped",[116]],[[120400,120400],"mapped",[117]],[[120401,120401],"mapped",[118]],[[120402,120402],"mapped",[119]],[[120403,120403],"mapped",[120]],[[120404,120404],"mapped",[121]],[[120405,120405],"mapped",[122]],[[120406,120406],"mapped",[97]],[[120407,120407],"mapped",[98]],[[120408,120408],"mapped",[99]],[[120409,120409],"mapped",[100]],[[120410,120410],"mapped",[101]],[[120411,120411],"mapped",[102]],[[120412,120412],"mapped",[103]],[[120413,120413],"mapped",[104]],[[120414,120414],"mapped",[105]],[[120415,120415],"mapped",[106]],[[120416,120416],"mapped",[107]],[[120417,120417],"mapped",[108]],[[120418,120418],"mapped",[109]],[[120419,120419],"mapped",[110]],[[120420,120420],"mapped",[111]],[[120421,120421],"mapped",[112]],[[120422,120422],"mapped",[113]],[[120423,120423],"mapped",[114]],[[120424,120424],"mapped",[115]],[[120425,120425],"mapped",[116]],[[120426,120426],"mapped",[117]],[[120427,120427],"mapped",[118]],[[120428,120428],"mapped",[119]],[[120429,120429],"mapped",[120]],[[120430,120430],"mapped",[121]],[[120431,120431],"mapped",[122]],[[120432,120432],"mapped",[97]],[[120433,120433],"mapped",[98]],[[120434,120434],"mapped",[99]],[[120435,120435],"mapped",[100]],[[120436,120436],"mapped",[101]],[[120437,120437],"mapped",[102]],[[120438,120438],"mapped",[103]],[[120439,120439],"mapped",[104]],[[120440,120440],"mapped",[105]],[[120441,120441],"mapped",[106]],[[120442,120442],"mapped",[107]],[[120443,120443],"mapped",[108]],[[120444,120444],"mapped",[109]],[[120445,120445],"mapped",[110]],[[120446,120446],"mapped",[111]],[[120447,120447],"mapped",[112]],[[120448,120448],"mapped",[113]],[[120449,120449],"mapped",[114]],[[120450,120450],"mapped",[115]],[[120451,120451],"mapped",[116]],[[120452,120452],"mapped",[117]],[[120453,120453],"mapped",[118]],[[120454,120454],"mapped",[119]],[[120455,120455],"mapped",[120]],[[120456,120456],"mapped",[121]],[[120457,120457],"mapped",[122]],[[120458,120458],"mapped",[97]],[[120459,120459],"mapped",[98]],[[120460,120460],"mapped",[99]],[[120461,120461],"mapped",[100]],[[120462,120462],"mapped",[101]],[[120463,120463],"mapped",[102]],[[120464,120464],"mapped",[103]],[[120465,120465],"mapped",[104]],[[120466,120466],"mapped",[105]],[[120467,120467],"mapped",[106]],[[120468,120468],"mapped",[107]],[[120469,120469],"mapped",[108]],[[120470,120470],"mapped",[109]],[[120471,120471],"mapped",[110]],[[120472,120472],"mapped",[111]],[[120473,120473],"mapped",[112]],[[120474,120474],"mapped",[113]],[[120475,120475],"mapped",[114]],[[120476,120476],"mapped",[115]],[[120477,120477],"mapped",[116]],[[120478,120478],"mapped",[117]],[[120479,120479],"mapped",[118]],[[120480,120480],"mapped",[119]],[[120481,120481],"mapped",[120]],[[120482,120482],"mapped",[121]],[[120483,120483],"mapped",[122]],[[120484,120484],"mapped",[305]],[[120485,120485],"mapped",[567]],[[120486,120487],"disallowed"],[[120488,120488],"mapped",[945]],[[120489,120489],"mapped",[946]],[[120490,120490],"mapped",[947]],[[120491,120491],"mapped",[948]],[[120492,120492],"mapped",[949]],[[120493,120493],"mapped",[950]],[[120494,120494],"mapped",[951]],[[120495,120495],"mapped",[952]],[[120496,120496],"mapped",[953]],[[120497,120497],"mapped",[954]],[[120498,120498],"mapped",[955]],[[120499,120499],"mapped",[956]],[[120500,120500],"mapped",[957]],[[120501,120501],"mapped",[958]],[[120502,120502],"mapped",[959]],[[120503,120503],"mapped",[960]],[[120504,120504],"mapped",[961]],[[120505,120505],"mapped",[952]],[[120506,120506],"mapped",[963]],[[120507,120507],"mapped",[964]],[[120508,120508],"mapped",[965]],[[120509,120509],"mapped",[966]],[[120510,120510],"mapped",[967]],[[120511,120511],"mapped",[968]],[[120512,120512],"mapped",[969]],[[120513,120513],"mapped",[8711]],[[120514,120514],"mapped",[945]],[[120515,120515],"mapped",[946]],[[120516,120516],"mapped",[947]],[[120517,120517],"mapped",[948]],[[120518,120518],"mapped",[949]],[[120519,120519],"mapped",[950]],[[120520,120520],"mapped",[951]],[[120521,120521],"mapped",[952]],[[120522,120522],"mapped",[953]],[[120523,120523],"mapped",[954]],[[120524,120524],"mapped",[955]],[[120525,120525],"mapped",[956]],[[120526,120526],"mapped",[957]],[[120527,120527],"mapped",[958]],[[120528,120528],"mapped",[959]],[[120529,120529],"mapped",[960]],[[120530,120530],"mapped",[961]],[[120531,120532],"mapped",[963]],[[120533,120533],"mapped",[964]],[[120534,120534],"mapped",[965]],[[120535,120535],"mapped",[966]],[[120536,120536],"mapped",[967]],[[120537,120537],"mapped",[968]],[[120538,120538],"mapped",[969]],[[120539,120539],"mapped",[8706]],[[120540,120540],"mapped",[949]],[[120541,120541],"mapped",[952]],[[120542,120542],"mapped",[954]],[[120543,120543],"mapped",[966]],[[120544,120544],"mapped",[961]],[[120545,120545],"mapped",[960]],[[120546,120546],"mapped",[945]],[[120547,120547],"mapped",[946]],[[120548,120548],"mapped",[947]],[[120549,120549],"mapped",[948]],[[120550,120550],"mapped",[949]],[[120551,120551],"mapped",[950]],[[120552,120552],"mapped",[951]],[[120553,120553],"mapped",[952]],[[120554,120554],"mapped",[953]],[[120555,120555],"mapped",[954]],[[120556,120556],"mapped",[955]],[[120557,120557],"mapped",[956]],[[120558,120558],"mapped",[957]],[[120559,120559],"mapped",[958]],[[120560,120560],"mapped",[959]],[[120561,120561],"mapped",[960]],[[120562,120562],"mapped",[961]],[[120563,120563],"mapped",[952]],[[120564,120564],"mapped",[963]],[[120565,120565],"mapped",[964]],[[120566,120566],"mapped",[965]],[[120567,120567],"mapped",[966]],[[120568,120568],"mapped",[967]],[[120569,120569],"mapped",[968]],[[120570,120570],"mapped",[969]],[[120571,120571],"mapped",[8711]],[[120572,120572],"mapped",[945]],[[120573,120573],"mapped",[946]],[[120574,120574],"mapped",[947]],[[120575,120575],"mapped",[948]],[[120576,120576],"mapped",[949]],[[120577,120577],"mapped",[950]],[[120578,120578],"mapped",[951]],[[120579,120579],"mapped",[952]],[[120580,120580],"mapped",[953]],[[120581,120581],"mapped",[954]],[[120582,120582],"mapped",[955]],[[120583,120583],"mapped",[956]],[[120584,120584],"mapped",[957]],[[120585,120585],"mapped",[958]],[[120586,120586],"mapped",[959]],[[120587,120587],"mapped",[960]],[[120588,120588],"mapped",[961]],[[120589,120590],"mapped",[963]],[[120591,120591],"mapped",[964]],[[120592,120592],"mapped",[965]],[[120593,120593],"mapped",[966]],[[120594,120594],"mapped",[967]],[[120595,120595],"mapped",[968]],[[120596,120596],"mapped",[969]],[[120597,120597],"mapped",[8706]],[[120598,120598],"mapped",[949]],[[120599,120599],"mapped",[952]],[[120600,120600],"mapped",[954]],[[120601,120601],"mapped",[966]],[[120602,120602],"mapped",[961]],[[120603,120603],"mapped",[960]],[[120604,120604],"mapped",[945]],[[120605,120605],"mapped",[946]],[[120606,120606],"mapped",[947]],[[120607,120607],"mapped",[948]],[[120608,120608],"mapped",[949]],[[120609,120609],"mapped",[950]],[[120610,120610],"mapped",[951]],[[120611,120611],"mapped",[952]],[[120612,120612],"mapped",[953]],[[120613,120613],"mapped",[954]],[[120614,120614],"mapped",[955]],[[120615,120615],"mapped",[956]],[[120616,120616],"mapped",[957]],[[120617,120617],"mapped",[958]],[[120618,120618],"mapped",[959]],[[120619,120619],"mapped",[960]],[[120620,120620],"mapped",[961]],[[120621,120621],"mapped",[952]],[[120622,120622],"mapped",[963]],[[120623,120623],"mapped",[964]],[[120624,120624],"mapped",[965]],[[120625,120625],"mapped",[966]],[[120626,120626],"mapped",[967]],[[120627,120627],"mapped",[968]],[[120628,120628],"mapped",[969]],[[120629,120629],"mapped",[8711]],[[120630,120630],"mapped",[945]],[[120631,120631],"mapped",[946]],[[120632,120632],"mapped",[947]],[[120633,120633],"mapped",[948]],[[120634,120634],"mapped",[949]],[[120635,120635],"mapped",[950]],[[120636,120636],"mapped",[951]],[[120637,120637],"mapped",[952]],[[120638,120638],"mapped",[953]],[[120639,120639],"mapped",[954]],[[120640,120640],"mapped",[955]],[[120641,120641],"mapped",[956]],[[120642,120642],"mapped",[957]],[[120643,120643],"mapped",[958]],[[120644,120644],"mapped",[959]],[[120645,120645],"mapped",[960]],[[120646,120646],"mapped",[961]],[[120647,120648],"mapped",[963]],[[120649,120649],"mapped",[964]],[[120650,120650],"mapped",[965]],[[120651,120651],"mapped",[966]],[[120652,120652],"mapped",[967]],[[120653,120653],"mapped",[968]],[[120654,120654],"mapped",[969]],[[120655,120655],"mapped",[8706]],[[120656,120656],"mapped",[949]],[[120657,120657],"mapped",[952]],[[120658,120658],"mapped",[954]],[[120659,120659],"mapped",[966]],[[120660,120660],"mapped",[961]],[[120661,120661],"mapped",[960]],[[120662,120662],"mapped",[945]],[[120663,120663],"mapped",[946]],[[120664,120664],"mapped",[947]],[[120665,120665],"mapped",[948]],[[120666,120666],"mapped",[949]],[[120667,120667],"mapped",[950]],[[120668,120668],"mapped",[951]],[[120669,120669],"mapped",[952]],[[120670,120670],"mapped",[953]],[[120671,120671],"mapped",[954]],[[120672,120672],"mapped",[955]],[[120673,120673],"mapped",[956]],[[120674,120674],"mapped",[957]],[[120675,120675],"mapped",[958]],[[120676,120676],"mapped",[959]],[[120677,120677],"mapped",[960]],[[120678,120678],"mapped",[961]],[[120679,120679],"mapped",[952]],[[120680,120680],"mapped",[963]],[[120681,120681],"mapped",[964]],[[120682,120682],"mapped",[965]],[[120683,120683],"mapped",[966]],[[120684,120684],"mapped",[967]],[[120685,120685],"mapped",[968]],[[120686,120686],"mapped",[969]],[[120687,120687],"mapped",[8711]],[[120688,120688],"mapped",[945]],[[120689,120689],"mapped",[946]],[[120690,120690],"mapped",[947]],[[120691,120691],"mapped",[948]],[[120692,120692],"mapped",[949]],[[120693,120693],"mapped",[950]],[[120694,120694],"mapped",[951]],[[120695,120695],"mapped",[952]],[[120696,120696],"mapped",[953]],[[120697,120697],"mapped",[954]],[[120698,120698],"mapped",[955]],[[120699,120699],"mapped",[956]],[[120700,120700],"mapped",[957]],[[120701,120701],"mapped",[958]],[[120702,120702],"mapped",[959]],[[120703,120703],"mapped",[960]],[[120704,120704],"mapped",[961]],[[120705,120706],"mapped",[963]],[[120707,120707],"mapped",[964]],[[120708,120708],"mapped",[965]],[[120709,120709],"mapped",[966]],[[120710,120710],"mapped",[967]],[[120711,120711],"mapped",[968]],[[120712,120712],"mapped",[969]],[[120713,120713],"mapped",[8706]],[[120714,120714],"mapped",[949]],[[120715,120715],"mapped",[952]],[[120716,120716],"mapped",[954]],[[120717,120717],"mapped",[966]],[[120718,120718],"mapped",[961]],[[120719,120719],"mapped",[960]],[[120720,120720],"mapped",[945]],[[120721,120721],"mapped",[946]],[[120722,120722],"mapped",[947]],[[120723,120723],"mapped",[948]],[[120724,120724],"mapped",[949]],[[120725,120725],"mapped",[950]],[[120726,120726],"mapped",[951]],[[120727,120727],"mapped",[952]],[[120728,120728],"mapped",[953]],[[120729,120729],"mapped",[954]],[[120730,120730],"mapped",[955]],[[120731,120731],"mapped",[956]],[[120732,120732],"mapped",[957]],[[120733,120733],"mapped",[958]],[[120734,120734],"mapped",[959]],[[120735,120735],"mapped",[960]],[[120736,120736],"mapped",[961]],[[120737,120737],"mapped",[952]],[[120738,120738],"mapped",[963]],[[120739,120739],"mapped",[964]],[[120740,120740],"mapped",[965]],[[120741,120741],"mapped",[966]],[[120742,120742],"mapped",[967]],[[120743,120743],"mapped",[968]],[[120744,120744],"mapped",[969]],[[120745,120745],"mapped",[8711]],[[120746,120746],"mapped",[945]],[[120747,120747],"mapped",[946]],[[120748,120748],"mapped",[947]],[[120749,120749],"mapped",[948]],[[120750,120750],"mapped",[949]],[[120751,120751],"mapped",[950]],[[120752,120752],"mapped",[951]],[[120753,120753],"mapped",[952]],[[120754,120754],"mapped",[953]],[[120755,120755],"mapped",[954]],[[120756,120756],"mapped",[955]],[[120757,120757],"mapped",[956]],[[120758,120758],"mapped",[957]],[[120759,120759],"mapped",[958]],[[120760,120760],"mapped",[959]],[[120761,120761],"mapped",[960]],[[120762,120762],"mapped",[961]],[[120763,120764],"mapped",[963]],[[120765,120765],"mapped",[964]],[[120766,120766],"mapped",[965]],[[120767,120767],"mapped",[966]],[[120768,120768],"mapped",[967]],[[120769,120769],"mapped",[968]],[[120770,120770],"mapped",[969]],[[120771,120771],"mapped",[8706]],[[120772,120772],"mapped",[949]],[[120773,120773],"mapped",[952]],[[120774,120774],"mapped",[954]],[[120775,120775],"mapped",[966]],[[120776,120776],"mapped",[961]],[[120777,120777],"mapped",[960]],[[120778,120779],"mapped",[989]],[[120780,120781],"disallowed"],[[120782,120782],"mapped",[48]],[[120783,120783],"mapped",[49]],[[120784,120784],"mapped",[50]],[[120785,120785],"mapped",[51]],[[120786,120786],"mapped",[52]],[[120787,120787],"mapped",[53]],[[120788,120788],"mapped",[54]],[[120789,120789],"mapped",[55]],[[120790,120790],"mapped",[56]],[[120791,120791],"mapped",[57]],[[120792,120792],"mapped",[48]],[[120793,120793],"mapped",[49]],[[120794,120794],"mapped",[50]],[[120795,120795],"mapped",[51]],[[120796,120796],"mapped",[52]],[[120797,120797],"mapped",[53]],[[120798,120798],"mapped",[54]],[[120799,120799],"mapped",[55]],[[120800,120800],"mapped",[56]],[[120801,120801],"mapped",[57]],[[120802,120802],"mapped",[48]],[[120803,120803],"mapped",[49]],[[120804,120804],"mapped",[50]],[[120805,120805],"mapped",[51]],[[120806,120806],"mapped",[52]],[[120807,120807],"mapped",[53]],[[120808,120808],"mapped",[54]],[[120809,120809],"mapped",[55]],[[120810,120810],"mapped",[56]],[[120811,120811],"mapped",[57]],[[120812,120812],"mapped",[48]],[[120813,120813],"mapped",[49]],[[120814,120814],"mapped",[50]],[[120815,120815],"mapped",[51]],[[120816,120816],"mapped",[52]],[[120817,120817],"mapped",[53]],[[120818,120818],"mapped",[54]],[[120819,120819],"mapped",[55]],[[120820,120820],"mapped",[56]],[[120821,120821],"mapped",[57]],[[120822,120822],"mapped",[48]],[[120823,120823],"mapped",[49]],[[120824,120824],"mapped",[50]],[[120825,120825],"mapped",[51]],[[120826,120826],"mapped",[52]],[[120827,120827],"mapped",[53]],[[120828,120828],"mapped",[54]],[[120829,120829],"mapped",[55]],[[120830,120830],"mapped",[56]],[[120831,120831],"mapped",[57]],[[120832,121343],"valid",[],"NV8"],[[121344,121398],"valid"],[[121399,121402],"valid",[],"NV8"],[[121403,121452],"valid"],[[121453,121460],"valid",[],"NV8"],[[121461,121461],"valid"],[[121462,121475],"valid",[],"NV8"],[[121476,121476],"valid"],[[121477,121483],"valid",[],"NV8"],[[121484,121498],"disallowed"],[[121499,121503],"valid"],[[121504,121504],"disallowed"],[[121505,121519],"valid"],[[121520,124927],"disallowed"],[[124928,125124],"valid"],[[125125,125126],"disallowed"],[[125127,125135],"valid",[],"NV8"],[[125136,125142],"valid"],[[125143,126463],"disallowed"],[[126464,126464],"mapped",[1575]],[[126465,126465],"mapped",[1576]],[[126466,126466],"mapped",[1580]],[[126467,126467],"mapped",[1583]],[[126468,126468],"disallowed"],[[126469,126469],"mapped",[1608]],[[126470,126470],"mapped",[1586]],[[126471,126471],"mapped",[1581]],[[126472,126472],"mapped",[1591]],[[126473,126473],"mapped",[1610]],[[126474,126474],"mapped",[1603]],[[126475,126475],"mapped",[1604]],[[126476,126476],"mapped",[1605]],[[126477,126477],"mapped",[1606]],[[126478,126478],"mapped",[1587]],[[126479,126479],"mapped",[1593]],[[126480,126480],"mapped",[1601]],[[126481,126481],"mapped",[1589]],[[126482,126482],"mapped",[1602]],[[126483,126483],"mapped",[1585]],[[126484,126484],"mapped",[1588]],[[126485,126485],"mapped",[1578]],[[126486,126486],"mapped",[1579]],[[126487,126487],"mapped",[1582]],[[126488,126488],"mapped",[1584]],[[126489,126489],"mapped",[1590]],[[126490,126490],"mapped",[1592]],[[126491,126491],"mapped",[1594]],[[126492,126492],"mapped",[1646]],[[126493,126493],"mapped",[1722]],[[126494,126494],"mapped",[1697]],[[126495,126495],"mapped",[1647]],[[126496,126496],"disallowed"],[[126497,126497],"mapped",[1576]],[[126498,126498],"mapped",[1580]],[[126499,126499],"disallowed"],[[126500,126500],"mapped",[1607]],[[126501,126502],"disallowed"],[[126503,126503],"mapped",[1581]],[[126504,126504],"disallowed"],[[126505,126505],"mapped",[1610]],[[126506,126506],"mapped",[1603]],[[126507,126507],"mapped",[1604]],[[126508,126508],"mapped",[1605]],[[126509,126509],"mapped",[1606]],[[126510,126510],"mapped",[1587]],[[126511,126511],"mapped",[1593]],[[126512,126512],"mapped",[1601]],[[126513,126513],"mapped",[1589]],[[126514,126514],"mapped",[1602]],[[126515,126515],"disallowed"],[[126516,126516],"mapped",[1588]],[[126517,126517],"mapped",[1578]],[[126518,126518],"mapped",[1579]],[[126519,126519],"mapped",[1582]],[[126520,126520],"disallowed"],[[126521,126521],"mapped",[1590]],[[126522,126522],"disallowed"],[[126523,126523],"mapped",[1594]],[[126524,126529],"disallowed"],[[126530,126530],"mapped",[1580]],[[126531,126534],"disallowed"],[[126535,126535],"mapped",[1581]],[[126536,126536],"disallowed"],[[126537,126537],"mapped",[1610]],[[126538,126538],"disallowed"],[[126539,126539],"mapped",[1604]],[[126540,126540],"disallowed"],[[126541,126541],"mapped",[1606]],[[126542,126542],"mapped",[1587]],[[126543,126543],"mapped",[1593]],[[126544,126544],"disallowed"],[[126545,126545],"mapped",[1589]],[[126546,126546],"mapped",[1602]],[[126547,126547],"disallowed"],[[126548,126548],"mapped",[1588]],[[126549,126550],"disallowed"],[[126551,126551],"mapped",[1582]],[[126552,126552],"disallowed"],[[126553,126553],"mapped",[1590]],[[126554,126554],"disallowed"],[[126555,126555],"mapped",[1594]],[[126556,126556],"disallowed"],[[126557,126557],"mapped",[1722]],[[126558,126558],"disallowed"],[[126559,126559],"mapped",[1647]],[[126560,126560],"disallowed"],[[126561,126561],"mapped",[1576]],[[126562,126562],"mapped",[1580]],[[126563,126563],"disallowed"],[[126564,126564],"mapped",[1607]],[[126565,126566],"disallowed"],[[126567,126567],"mapped",[1581]],[[126568,126568],"mapped",[1591]],[[126569,126569],"mapped",[1610]],[[126570,126570],"mapped",[1603]],[[126571,126571],"disallowed"],[[126572,126572],"mapped",[1605]],[[126573,126573],"mapped",[1606]],[[126574,126574],"mapped",[1587]],[[126575,126575],"mapped",[1593]],[[126576,126576],"mapped",[1601]],[[126577,126577],"mapped",[1589]],[[126578,126578],"mapped",[1602]],[[126579,126579],"disallowed"],[[126580,126580],"mapped",[1588]],[[126581,126581],"mapped",[1578]],[[126582,126582],"mapped",[1579]],[[126583,126583],"mapped",[1582]],[[126584,126584],"disallowed"],[[126585,126585],"mapped",[1590]],[[126586,126586],"mapped",[1592]],[[126587,126587],"mapped",[1594]],[[126588,126588],"mapped",[1646]],[[126589,126589],"disallowed"],[[126590,126590],"mapped",[1697]],[[126591,126591],"disallowed"],[[126592,126592],"mapped",[1575]],[[126593,126593],"mapped",[1576]],[[126594,126594],"mapped",[1580]],[[126595,126595],"mapped",[1583]],[[126596,126596],"mapped",[1607]],[[126597,126597],"mapped",[1608]],[[126598,126598],"mapped",[1586]],[[126599,126599],"mapped",[1581]],[[126600,126600],"mapped",[1591]],[[126601,126601],"mapped",[1610]],[[126602,126602],"disallowed"],[[126603,126603],"mapped",[1604]],[[126604,126604],"mapped",[1605]],[[126605,126605],"mapped",[1606]],[[126606,126606],"mapped",[1587]],[[126607,126607],"mapped",[1593]],[[126608,126608],"mapped",[1601]],[[126609,126609],"mapped",[1589]],[[126610,126610],"mapped",[1602]],[[126611,126611],"mapped",[1585]],[[126612,126612],"mapped",[1588]],[[126613,126613],"mapped",[1578]],[[126614,126614],"mapped",[1579]],[[126615,126615],"mapped",[1582]],[[126616,126616],"mapped",[1584]],[[126617,126617],"mapped",[1590]],[[126618,126618],"mapped",[1592]],[[126619,126619],"mapped",[1594]],[[126620,126624],"disallowed"],[[126625,126625],"mapped",[1576]],[[126626,126626],"mapped",[1580]],[[126627,126627],"mapped",[1583]],[[126628,126628],"disallowed"],[[126629,126629],"mapped",[1608]],[[126630,126630],"mapped",[1586]],[[126631,126631],"mapped",[1581]],[[126632,126632],"mapped",[1591]],[[126633,126633],"mapped",[1610]],[[126634,126634],"disallowed"],[[126635,126635],"mapped",[1604]],[[126636,126636],"mapped",[1605]],[[126637,126637],"mapped",[1606]],[[126638,126638],"mapped",[1587]],[[126639,126639],"mapped",[1593]],[[126640,126640],"mapped",[1601]],[[126641,126641],"mapped",[1589]],[[126642,126642],"mapped",[1602]],[[126643,126643],"mapped",[1585]],[[126644,126644],"mapped",[1588]],[[126645,126645],"mapped",[1578]],[[126646,126646],"mapped",[1579]],[[126647,126647],"mapped",[1582]],[[126648,126648],"mapped",[1584]],[[126649,126649],"mapped",[1590]],[[126650,126650],"mapped",[1592]],[[126651,126651],"mapped",[1594]],[[126652,126703],"disallowed"],[[126704,126705],"valid",[],"NV8"],[[126706,126975],"disallowed"],[[126976,127019],"valid",[],"NV8"],[[127020,127023],"disallowed"],[[127024,127123],"valid",[],"NV8"],[[127124,127135],"disallowed"],[[127136,127150],"valid",[],"NV8"],[[127151,127152],"disallowed"],[[127153,127166],"valid",[],"NV8"],[[127167,127167],"valid",[],"NV8"],[[127168,127168],"disallowed"],[[127169,127183],"valid",[],"NV8"],[[127184,127184],"disallowed"],[[127185,127199],"valid",[],"NV8"],[[127200,127221],"valid",[],"NV8"],[[127222,127231],"disallowed"],[[127232,127232],"disallowed"],[[127233,127233],"disallowed_STD3_mapped",[48,44]],[[127234,127234],"disallowed_STD3_mapped",[49,44]],[[127235,127235],"disallowed_STD3_mapped",[50,44]],[[127236,127236],"disallowed_STD3_mapped",[51,44]],[[127237,127237],"disallowed_STD3_mapped",[52,44]],[[127238,127238],"disallowed_STD3_mapped",[53,44]],[[127239,127239],"disallowed_STD3_mapped",[54,44]],[[127240,127240],"disallowed_STD3_mapped",[55,44]],[[127241,127241],"disallowed_STD3_mapped",[56,44]],[[127242,127242],"disallowed_STD3_mapped",[57,44]],[[127243,127244],"valid",[],"NV8"],[[127245,127247],"disallowed"],[[127248,127248],"disallowed_STD3_mapped",[40,97,41]],[[127249,127249],"disallowed_STD3_mapped",[40,98,41]],[[127250,127250],"disallowed_STD3_mapped",[40,99,41]],[[127251,127251],"disallowed_STD3_mapped",[40,100,41]],[[127252,127252],"disallowed_STD3_mapped",[40,101,41]],[[127253,127253],"disallowed_STD3_mapped",[40,102,41]],[[127254,127254],"disallowed_STD3_mapped",[40,103,41]],[[127255,127255],"disallowed_STD3_mapped",[40,104,41]],[[127256,127256],"disallowed_STD3_mapped",[40,105,41]],[[127257,127257],"disallowed_STD3_mapped",[40,106,41]],[[127258,127258],"disallowed_STD3_mapped",[40,107,41]],[[127259,127259],"disallowed_STD3_mapped",[40,108,41]],[[127260,127260],"disallowed_STD3_mapped",[40,109,41]],[[127261,127261],"disallowed_STD3_mapped",[40,110,41]],[[127262,127262],"disallowed_STD3_mapped",[40,111,41]],[[127263,127263],"disallowed_STD3_mapped",[40,112,41]],[[127264,127264],"disallowed_STD3_mapped",[40,113,41]],[[127265,127265],"disallowed_STD3_mapped",[40,114,41]],[[127266,127266],"disallowed_STD3_mapped",[40,115,41]],[[127267,127267],"disallowed_STD3_mapped",[40,116,41]],[[127268,127268],"disallowed_STD3_mapped",[40,117,41]],[[127269,127269],"disallowed_STD3_mapped",[40,118,41]],[[127270,127270],"disallowed_STD3_mapped",[40,119,41]],[[127271,127271],"disallowed_STD3_mapped",[40,120,41]],[[127272,127272],"disallowed_STD3_mapped",[40,121,41]],[[127273,127273],"disallowed_STD3_mapped",[40,122,41]],[[127274,127274],"mapped",[12308,115,12309]],[[127275,127275],"mapped",[99]],[[127276,127276],"mapped",[114]],[[127277,127277],"mapped",[99,100]],[[127278,127278],"mapped",[119,122]],[[127279,127279],"disallowed"],[[127280,127280],"mapped",[97]],[[127281,127281],"mapped",[98]],[[127282,127282],"mapped",[99]],[[127283,127283],"mapped",[100]],[[127284,127284],"mapped",[101]],[[127285,127285],"mapped",[102]],[[127286,127286],"mapped",[103]],[[127287,127287],"mapped",[104]],[[127288,127288],"mapped",[105]],[[127289,127289],"mapped",[106]],[[127290,127290],"mapped",[107]],[[127291,127291],"mapped",[108]],[[127292,127292],"mapped",[109]],[[127293,127293],"mapped",[110]],[[127294,127294],"mapped",[111]],[[127295,127295],"mapped",[112]],[[127296,127296],"mapped",[113]],[[127297,127297],"mapped",[114]],[[127298,127298],"mapped",[115]],[[127299,127299],"mapped",[116]],[[127300,127300],"mapped",[117]],[[127301,127301],"mapped",[118]],[[127302,127302],"mapped",[119]],[[127303,127303],"mapped",[120]],[[127304,127304],"mapped",[121]],[[127305,127305],"mapped",[122]],[[127306,127306],"mapped",[104,118]],[[127307,127307],"mapped",[109,118]],[[127308,127308],"mapped",[115,100]],[[127309,127309],"mapped",[115,115]],[[127310,127310],"mapped",[112,112,118]],[[127311,127311],"mapped",[119,99]],[[127312,127318],"valid",[],"NV8"],[[127319,127319],"valid",[],"NV8"],[[127320,127326],"valid",[],"NV8"],[[127327,127327],"valid",[],"NV8"],[[127328,127337],"valid",[],"NV8"],[[127338,127338],"mapped",[109,99]],[[127339,127339],"mapped",[109,100]],[[127340,127343],"disallowed"],[[127344,127352],"valid",[],"NV8"],[[127353,127353],"valid",[],"NV8"],[[127354,127354],"valid",[],"NV8"],[[127355,127356],"valid",[],"NV8"],[[127357,127358],"valid",[],"NV8"],[[127359,127359],"valid",[],"NV8"],[[127360,127369],"valid",[],"NV8"],[[127370,127373],"valid",[],"NV8"],[[127374,127375],"valid",[],"NV8"],[[127376,127376],"mapped",[100,106]],[[127377,127386],"valid",[],"NV8"],[[127387,127461],"disallowed"],[[127462,127487],"valid",[],"NV8"],[[127488,127488],"mapped",[12411,12363]],[[127489,127489],"mapped",[12467,12467]],[[127490,127490],"mapped",[12469]],[[127491,127503],"disallowed"],[[127504,127504],"mapped",[25163]],[[127505,127505],"mapped",[23383]],[[127506,127506],"mapped",[21452]],[[127507,127507],"mapped",[12487]],[[127508,127508],"mapped",[20108]],[[127509,127509],"mapped",[22810]],[[127510,127510],"mapped",[35299]],[[127511,127511],"mapped",[22825]],[[127512,127512],"mapped",[20132]],[[127513,127513],"mapped",[26144]],[[127514,127514],"mapped",[28961]],[[127515,127515],"mapped",[26009]],[[127516,127516],"mapped",[21069]],[[127517,127517],"mapped",[24460]],[[127518,127518],"mapped",[20877]],[[127519,127519],"mapped",[26032]],[[127520,127520],"mapped",[21021]],[[127521,127521],"mapped",[32066]],[[127522,127522],"mapped",[29983]],[[127523,127523],"mapped",[36009]],[[127524,127524],"mapped",[22768]],[[127525,127525],"mapped",[21561]],[[127526,127526],"mapped",[28436]],[[127527,127527],"mapped",[25237]],[[127528,127528],"mapped",[25429]],[[127529,127529],"mapped",[19968]],[[127530,127530],"mapped",[19977]],[[127531,127531],"mapped",[36938]],[[127532,127532],"mapped",[24038]],[[127533,127533],"mapped",[20013]],[[127534,127534],"mapped",[21491]],[[127535,127535],"mapped",[25351]],[[127536,127536],"mapped",[36208]],[[127537,127537],"mapped",[25171]],[[127538,127538],"mapped",[31105]],[[127539,127539],"mapped",[31354]],[[127540,127540],"mapped",[21512]],[[127541,127541],"mapped",[28288]],[[127542,127542],"mapped",[26377]],[[127543,127543],"mapped",[26376]],[[127544,127544],"mapped",[30003]],[[127545,127545],"mapped",[21106]],[[127546,127546],"mapped",[21942]],[[127547,127551],"disallowed"],[[127552,127552],"mapped",[12308,26412,12309]],[[127553,127553],"mapped",[12308,19977,12309]],[[127554,127554],"mapped",[12308,20108,12309]],[[127555,127555],"mapped",[12308,23433,12309]],[[127556,127556],"mapped",[12308,28857,12309]],[[127557,127557],"mapped",[12308,25171,12309]],[[127558,127558],"mapped",[12308,30423,12309]],[[127559,127559],"mapped",[12308,21213,12309]],[[127560,127560],"mapped",[12308,25943,12309]],[[127561,127567],"disallowed"],[[127568,127568],"mapped",[24471]],[[127569,127569],"mapped",[21487]],[[127570,127743],"disallowed"],[[127744,127776],"valid",[],"NV8"],[[127777,127788],"valid",[],"NV8"],[[127789,127791],"valid",[],"NV8"],[[127792,127797],"valid",[],"NV8"],[[127798,127798],"valid",[],"NV8"],[[127799,127868],"valid",[],"NV8"],[[127869,127869],"valid",[],"NV8"],[[127870,127871],"valid",[],"NV8"],[[127872,127891],"valid",[],"NV8"],[[127892,127903],"valid",[],"NV8"],[[127904,127940],"valid",[],"NV8"],[[127941,127941],"valid",[],"NV8"],[[127942,127946],"valid",[],"NV8"],[[127947,127950],"valid",[],"NV8"],[[127951,127955],"valid",[],"NV8"],[[127956,127967],"valid",[],"NV8"],[[127968,127984],"valid",[],"NV8"],[[127985,127991],"valid",[],"NV8"],[[127992,127999],"valid",[],"NV8"],[[128e3,128062],"valid",[],"NV8"],[[128063,128063],"valid",[],"NV8"],[[128064,128064],"valid",[],"NV8"],[[128065,128065],"valid",[],"NV8"],[[128066,128247],"valid",[],"NV8"],[[128248,128248],"valid",[],"NV8"],[[128249,128252],"valid",[],"NV8"],[[128253,128254],"valid",[],"NV8"],[[128255,128255],"valid",[],"NV8"],[[128256,128317],"valid",[],"NV8"],[[128318,128319],"valid",[],"NV8"],[[128320,128323],"valid",[],"NV8"],[[128324,128330],"valid",[],"NV8"],[[128331,128335],"valid",[],"NV8"],[[128336,128359],"valid",[],"NV8"],[[128360,128377],"valid",[],"NV8"],[[128378,128378],"disallowed"],[[128379,128419],"valid",[],"NV8"],[[128420,128420],"disallowed"],[[128421,128506],"valid",[],"NV8"],[[128507,128511],"valid",[],"NV8"],[[128512,128512],"valid",[],"NV8"],[[128513,128528],"valid",[],"NV8"],[[128529,128529],"valid",[],"NV8"],[[128530,128532],"valid",[],"NV8"],[[128533,128533],"valid",[],"NV8"],[[128534,128534],"valid",[],"NV8"],[[128535,128535],"valid",[],"NV8"],[[128536,128536],"valid",[],"NV8"],[[128537,128537],"valid",[],"NV8"],[[128538,128538],"valid",[],"NV8"],[[128539,128539],"valid",[],"NV8"],[[128540,128542],"valid",[],"NV8"],[[128543,128543],"valid",[],"NV8"],[[128544,128549],"valid",[],"NV8"],[[128550,128551],"valid",[],"NV8"],[[128552,128555],"valid",[],"NV8"],[[128556,128556],"valid",[],"NV8"],[[128557,128557],"valid",[],"NV8"],[[128558,128559],"valid",[],"NV8"],[[128560,128563],"valid",[],"NV8"],[[128564,128564],"valid",[],"NV8"],[[128565,128576],"valid",[],"NV8"],[[128577,128578],"valid",[],"NV8"],[[128579,128580],"valid",[],"NV8"],[[128581,128591],"valid",[],"NV8"],[[128592,128639],"valid",[],"NV8"],[[128640,128709],"valid",[],"NV8"],[[128710,128719],"valid",[],"NV8"],[[128720,128720],"valid",[],"NV8"],[[128721,128735],"disallowed"],[[128736,128748],"valid",[],"NV8"],[[128749,128751],"disallowed"],[[128752,128755],"valid",[],"NV8"],[[128756,128767],"disallowed"],[[128768,128883],"valid",[],"NV8"],[[128884,128895],"disallowed"],[[128896,128980],"valid",[],"NV8"],[[128981,129023],"disallowed"],[[129024,129035],"valid",[],"NV8"],[[129036,129039],"disallowed"],[[129040,129095],"valid",[],"NV8"],[[129096,129103],"disallowed"],[[129104,129113],"valid",[],"NV8"],[[129114,129119],"disallowed"],[[129120,129159],"valid",[],"NV8"],[[129160,129167],"disallowed"],[[129168,129197],"valid",[],"NV8"],[[129198,129295],"disallowed"],[[129296,129304],"valid",[],"NV8"],[[129305,129407],"disallowed"],[[129408,129412],"valid",[],"NV8"],[[129413,129471],"disallowed"],[[129472,129472],"valid",[],"NV8"],[[129473,131069],"disallowed"],[[131070,131071],"disallowed"],[[131072,173782],"valid"],[[173783,173823],"disallowed"],[[173824,177972],"valid"],[[177973,177983],"disallowed"],[[177984,178205],"valid"],[[178206,178207],"disallowed"],[[178208,183969],"valid"],[[183970,194559],"disallowed"],[[194560,194560],"mapped",[20029]],[[194561,194561],"mapped",[20024]],[[194562,194562],"mapped",[20033]],[[194563,194563],"mapped",[131362]],[[194564,194564],"mapped",[20320]],[[194565,194565],"mapped",[20398]],[[194566,194566],"mapped",[20411]],[[194567,194567],"mapped",[20482]],[[194568,194568],"mapped",[20602]],[[194569,194569],"mapped",[20633]],[[194570,194570],"mapped",[20711]],[[194571,194571],"mapped",[20687]],[[194572,194572],"mapped",[13470]],[[194573,194573],"mapped",[132666]],[[194574,194574],"mapped",[20813]],[[194575,194575],"mapped",[20820]],[[194576,194576],"mapped",[20836]],[[194577,194577],"mapped",[20855]],[[194578,194578],"mapped",[132380]],[[194579,194579],"mapped",[13497]],[[194580,194580],"mapped",[20839]],[[194581,194581],"mapped",[20877]],[[194582,194582],"mapped",[132427]],[[194583,194583],"mapped",[20887]],[[194584,194584],"mapped",[20900]],[[194585,194585],"mapped",[20172]],[[194586,194586],"mapped",[20908]],[[194587,194587],"mapped",[20917]],[[194588,194588],"mapped",[168415]],[[194589,194589],"mapped",[20981]],[[194590,194590],"mapped",[20995]],[[194591,194591],"mapped",[13535]],[[194592,194592],"mapped",[21051]],[[194593,194593],"mapped",[21062]],[[194594,194594],"mapped",[21106]],[[194595,194595],"mapped",[21111]],[[194596,194596],"mapped",[13589]],[[194597,194597],"mapped",[21191]],[[194598,194598],"mapped",[21193]],[[194599,194599],"mapped",[21220]],[[194600,194600],"mapped",[21242]],[[194601,194601],"mapped",[21253]],[[194602,194602],"mapped",[21254]],[[194603,194603],"mapped",[21271]],[[194604,194604],"mapped",[21321]],[[194605,194605],"mapped",[21329]],[[194606,194606],"mapped",[21338]],[[194607,194607],"mapped",[21363]],[[194608,194608],"mapped",[21373]],[[194609,194611],"mapped",[21375]],[[194612,194612],"mapped",[133676]],[[194613,194613],"mapped",[28784]],[[194614,194614],"mapped",[21450]],[[194615,194615],"mapped",[21471]],[[194616,194616],"mapped",[133987]],[[194617,194617],"mapped",[21483]],[[194618,194618],"mapped",[21489]],[[194619,194619],"mapped",[21510]],[[194620,194620],"mapped",[21662]],[[194621,194621],"mapped",[21560]],[[194622,194622],"mapped",[21576]],[[194623,194623],"mapped",[21608]],[[194624,194624],"mapped",[21666]],[[194625,194625],"mapped",[21750]],[[194626,194626],"mapped",[21776]],[[194627,194627],"mapped",[21843]],[[194628,194628],"mapped",[21859]],[[194629,194630],"mapped",[21892]],[[194631,194631],"mapped",[21913]],[[194632,194632],"mapped",[21931]],[[194633,194633],"mapped",[21939]],[[194634,194634],"mapped",[21954]],[[194635,194635],"mapped",[22294]],[[194636,194636],"mapped",[22022]],[[194637,194637],"mapped",[22295]],[[194638,194638],"mapped",[22097]],[[194639,194639],"mapped",[22132]],[[194640,194640],"mapped",[20999]],[[194641,194641],"mapped",[22766]],[[194642,194642],"mapped",[22478]],[[194643,194643],"mapped",[22516]],[[194644,194644],"mapped",[22541]],[[194645,194645],"mapped",[22411]],[[194646,194646],"mapped",[22578]],[[194647,194647],"mapped",[22577]],[[194648,194648],"mapped",[22700]],[[194649,194649],"mapped",[136420]],[[194650,194650],"mapped",[22770]],[[194651,194651],"mapped",[22775]],[[194652,194652],"mapped",[22790]],[[194653,194653],"mapped",[22810]],[[194654,194654],"mapped",[22818]],[[194655,194655],"mapped",[22882]],[[194656,194656],"mapped",[136872]],[[194657,194657],"mapped",[136938]],[[194658,194658],"mapped",[23020]],[[194659,194659],"mapped",[23067]],[[194660,194660],"mapped",[23079]],[[194661,194661],"mapped",[23e3]],[[194662,194662],"mapped",[23142]],[[194663,194663],"mapped",[14062]],[[194664,194664],"disallowed"],[[194665,194665],"mapped",[23304]],[[194666,194667],"mapped",[23358]],[[194668,194668],"mapped",[137672]],[[194669,194669],"mapped",[23491]],[[194670,194670],"mapped",[23512]],[[194671,194671],"mapped",[23527]],[[194672,194672],"mapped",[23539]],[[194673,194673],"mapped",[138008]],[[194674,194674],"mapped",[23551]],[[194675,194675],"mapped",[23558]],[[194676,194676],"disallowed"],[[194677,194677],"mapped",[23586]],[[194678,194678],"mapped",[14209]],[[194679,194679],"mapped",[23648]],[[194680,194680],"mapped",[23662]],[[194681,194681],"mapped",[23744]],[[194682,194682],"mapped",[23693]],[[194683,194683],"mapped",[138724]],[[194684,194684],"mapped",[23875]],[[194685,194685],"mapped",[138726]],[[194686,194686],"mapped",[23918]],[[194687,194687],"mapped",[23915]],[[194688,194688],"mapped",[23932]],[[194689,194689],"mapped",[24033]],[[194690,194690],"mapped",[24034]],[[194691,194691],"mapped",[14383]],[[194692,194692],"mapped",[24061]],[[194693,194693],"mapped",[24104]],[[194694,194694],"mapped",[24125]],[[194695,194695],"mapped",[24169]],[[194696,194696],"mapped",[14434]],[[194697,194697],"mapped",[139651]],[[194698,194698],"mapped",[14460]],[[194699,194699],"mapped",[24240]],[[194700,194700],"mapped",[24243]],[[194701,194701],"mapped",[24246]],[[194702,194702],"mapped",[24266]],[[194703,194703],"mapped",[172946]],[[194704,194704],"mapped",[24318]],[[194705,194706],"mapped",[140081]],[[194707,194707],"mapped",[33281]],[[194708,194709],"mapped",[24354]],[[194710,194710],"mapped",[14535]],[[194711,194711],"mapped",[144056]],[[194712,194712],"mapped",[156122]],[[194713,194713],"mapped",[24418]],[[194714,194714],"mapped",[24427]],[[194715,194715],"mapped",[14563]],[[194716,194716],"mapped",[24474]],[[194717,194717],"mapped",[24525]],[[194718,194718],"mapped",[24535]],[[194719,194719],"mapped",[24569]],[[194720,194720],"mapped",[24705]],[[194721,194721],"mapped",[14650]],[[194722,194722],"mapped",[14620]],[[194723,194723],"mapped",[24724]],[[194724,194724],"mapped",[141012]],[[194725,194725],"mapped",[24775]],[[194726,194726],"mapped",[24904]],[[194727,194727],"mapped",[24908]],[[194728,194728],"mapped",[24910]],[[194729,194729],"mapped",[24908]],[[194730,194730],"mapped",[24954]],[[194731,194731],"mapped",[24974]],[[194732,194732],"mapped",[25010]],[[194733,194733],"mapped",[24996]],[[194734,194734],"mapped",[25007]],[[194735,194735],"mapped",[25054]],[[194736,194736],"mapped",[25074]],[[194737,194737],"mapped",[25078]],[[194738,194738],"mapped",[25104]],[[194739,194739],"mapped",[25115]],[[194740,194740],"mapped",[25181]],[[194741,194741],"mapped",[25265]],[[194742,194742],"mapped",[25300]],[[194743,194743],"mapped",[25424]],[[194744,194744],"mapped",[142092]],[[194745,194745],"mapped",[25405]],[[194746,194746],"mapped",[25340]],[[194747,194747],"mapped",[25448]],[[194748,194748],"mapped",[25475]],[[194749,194749],"mapped",[25572]],[[194750,194750],"mapped",[142321]],[[194751,194751],"mapped",[25634]],[[194752,194752],"mapped",[25541]],[[194753,194753],"mapped",[25513]],[[194754,194754],"mapped",[14894]],[[194755,194755],"mapped",[25705]],[[194756,194756],"mapped",[25726]],[[194757,194757],"mapped",[25757]],[[194758,194758],"mapped",[25719]],[[194759,194759],"mapped",[14956]],[[194760,194760],"mapped",[25935]],[[194761,194761],"mapped",[25964]],[[194762,194762],"mapped",[143370]],[[194763,194763],"mapped",[26083]],[[194764,194764],"mapped",[26360]],[[194765,194765],"mapped",[26185]],[[194766,194766],"mapped",[15129]],[[194767,194767],"mapped",[26257]],[[194768,194768],"mapped",[15112]],[[194769,194769],"mapped",[15076]],[[194770,194770],"mapped",[20882]],[[194771,194771],"mapped",[20885]],[[194772,194772],"mapped",[26368]],[[194773,194773],"mapped",[26268]],[[194774,194774],"mapped",[32941]],[[194775,194775],"mapped",[17369]],[[194776,194776],"mapped",[26391]],[[194777,194777],"mapped",[26395]],[[194778,194778],"mapped",[26401]],[[194779,194779],"mapped",[26462]],[[194780,194780],"mapped",[26451]],[[194781,194781],"mapped",[144323]],[[194782,194782],"mapped",[15177]],[[194783,194783],"mapped",[26618]],[[194784,194784],"mapped",[26501]],[[194785,194785],"mapped",[26706]],[[194786,194786],"mapped",[26757]],[[194787,194787],"mapped",[144493]],[[194788,194788],"mapped",[26766]],[[194789,194789],"mapped",[26655]],[[194790,194790],"mapped",[26900]],[[194791,194791],"mapped",[15261]],[[194792,194792],"mapped",[26946]],[[194793,194793],"mapped",[27043]],[[194794,194794],"mapped",[27114]],[[194795,194795],"mapped",[27304]],[[194796,194796],"mapped",[145059]],[[194797,194797],"mapped",[27355]],[[194798,194798],"mapped",[15384]],[[194799,194799],"mapped",[27425]],[[194800,194800],"mapped",[145575]],[[194801,194801],"mapped",[27476]],[[194802,194802],"mapped",[15438]],[[194803,194803],"mapped",[27506]],[[194804,194804],"mapped",[27551]],[[194805,194805],"mapped",[27578]],[[194806,194806],"mapped",[27579]],[[194807,194807],"mapped",[146061]],[[194808,194808],"mapped",[138507]],[[194809,194809],"mapped",[146170]],[[194810,194810],"mapped",[27726]],[[194811,194811],"mapped",[146620]],[[194812,194812],"mapped",[27839]],[[194813,194813],"mapped",[27853]],[[194814,194814],"mapped",[27751]],[[194815,194815],"mapped",[27926]],[[194816,194816],"mapped",[27966]],[[194817,194817],"mapped",[28023]],[[194818,194818],"mapped",[27969]],[[194819,194819],"mapped",[28009]],[[194820,194820],"mapped",[28024]],[[194821,194821],"mapped",[28037]],[[194822,194822],"mapped",[146718]],[[194823,194823],"mapped",[27956]],[[194824,194824],"mapped",[28207]],[[194825,194825],"mapped",[28270]],[[194826,194826],"mapped",[15667]],[[194827,194827],"mapped",[28363]],[[194828,194828],"mapped",[28359]],[[194829,194829],"mapped",[147153]],[[194830,194830],"mapped",[28153]],[[194831,194831],"mapped",[28526]],[[194832,194832],"mapped",[147294]],[[194833,194833],"mapped",[147342]],[[194834,194834],"mapped",[28614]],[[194835,194835],"mapped",[28729]],[[194836,194836],"mapped",[28702]],[[194837,194837],"mapped",[28699]],[[194838,194838],"mapped",[15766]],[[194839,194839],"mapped",[28746]],[[194840,194840],"mapped",[28797]],[[194841,194841],"mapped",[28791]],[[194842,194842],"mapped",[28845]],[[194843,194843],"mapped",[132389]],[[194844,194844],"mapped",[28997]],[[194845,194845],"mapped",[148067]],[[194846,194846],"mapped",[29084]],[[194847,194847],"disallowed"],[[194848,194848],"mapped",[29224]],[[194849,194849],"mapped",[29237]],[[194850,194850],"mapped",[29264]],[[194851,194851],"mapped",[149e3]],[[194852,194852],"mapped",[29312]],[[194853,194853],"mapped",[29333]],[[194854,194854],"mapped",[149301]],[[194855,194855],"mapped",[149524]],[[194856,194856],"mapped",[29562]],[[194857,194857],"mapped",[29579]],[[194858,194858],"mapped",[16044]],[[194859,194859],"mapped",[29605]],[[194860,194861],"mapped",[16056]],[[194862,194862],"mapped",[29767]],[[194863,194863],"mapped",[29788]],[[194864,194864],"mapped",[29809]],[[194865,194865],"mapped",[29829]],[[194866,194866],"mapped",[29898]],[[194867,194867],"mapped",[16155]],[[194868,194868],"mapped",[29988]],[[194869,194869],"mapped",[150582]],[[194870,194870],"mapped",[30014]],[[194871,194871],"mapped",[150674]],[[194872,194872],"mapped",[30064]],[[194873,194873],"mapped",[139679]],[[194874,194874],"mapped",[30224]],[[194875,194875],"mapped",[151457]],[[194876,194876],"mapped",[151480]],[[194877,194877],"mapped",[151620]],[[194878,194878],"mapped",[16380]],[[194879,194879],"mapped",[16392]],[[194880,194880],"mapped",[30452]],[[194881,194881],"mapped",[151795]],[[194882,194882],"mapped",[151794]],[[194883,194883],"mapped",[151833]],[[194884,194884],"mapped",[151859]],[[194885,194885],"mapped",[30494]],[[194886,194887],"mapped",[30495]],[[194888,194888],"mapped",[30538]],[[194889,194889],"mapped",[16441]],[[194890,194890],"mapped",[30603]],[[194891,194891],"mapped",[16454]],[[194892,194892],"mapped",[16534]],[[194893,194893],"mapped",[152605]],[[194894,194894],"mapped",[30798]],[[194895,194895],"mapped",[30860]],[[194896,194896],"mapped",[30924]],[[194897,194897],"mapped",[16611]],[[194898,194898],"mapped",[153126]],[[194899,194899],"mapped",[31062]],[[194900,194900],"mapped",[153242]],[[194901,194901],"mapped",[153285]],[[194902,194902],"mapped",[31119]],[[194903,194903],"mapped",[31211]],[[194904,194904],"mapped",[16687]],[[194905,194905],"mapped",[31296]],[[194906,194906],"mapped",[31306]],[[194907,194907],"mapped",[31311]],[[194908,194908],"mapped",[153980]],[[194909,194910],"mapped",[154279]],[[194911,194911],"disallowed"],[[194912,194912],"mapped",[16898]],[[194913,194913],"mapped",[154539]],[[194914,194914],"mapped",[31686]],[[194915,194915],"mapped",[31689]],[[194916,194916],"mapped",[16935]],[[194917,194917],"mapped",[154752]],[[194918,194918],"mapped",[31954]],[[194919,194919],"mapped",[17056]],[[194920,194920],"mapped",[31976]],[[194921,194921],"mapped",[31971]],[[194922,194922],"mapped",[32e3]],[[194923,194923],"mapped",[155526]],[[194924,194924],"mapped",[32099]],[[194925,194925],"mapped",[17153]],[[194926,194926],"mapped",[32199]],[[194927,194927],"mapped",[32258]],[[194928,194928],"mapped",[32325]],[[194929,194929],"mapped",[17204]],[[194930,194930],"mapped",[156200]],[[194931,194931],"mapped",[156231]],[[194932,194932],"mapped",[17241]],[[194933,194933],"mapped",[156377]],[[194934,194934],"mapped",[32634]],[[194935,194935],"mapped",[156478]],[[194936,194936],"mapped",[32661]],[[194937,194937],"mapped",[32762]],[[194938,194938],"mapped",[32773]],[[194939,194939],"mapped",[156890]],[[194940,194940],"mapped",[156963]],[[194941,194941],"mapped",[32864]],[[194942,194942],"mapped",[157096]],[[194943,194943],"mapped",[32880]],[[194944,194944],"mapped",[144223]],[[194945,194945],"mapped",[17365]],[[194946,194946],"mapped",[32946]],[[194947,194947],"mapped",[33027]],[[194948,194948],"mapped",[17419]],[[194949,194949],"mapped",[33086]],[[194950,194950],"mapped",[23221]],[[194951,194951],"mapped",[157607]],[[194952,194952],"mapped",[157621]],[[194953,194953],"mapped",[144275]],[[194954,194954],"mapped",[144284]],[[194955,194955],"mapped",[33281]],[[194956,194956],"mapped",[33284]],[[194957,194957],"mapped",[36766]],[[194958,194958],"mapped",[17515]],[[194959,194959],"mapped",[33425]],[[194960,194960],"mapped",[33419]],[[194961,194961],"mapped",[33437]],[[194962,194962],"mapped",[21171]],[[194963,194963],"mapped",[33457]],[[194964,194964],"mapped",[33459]],[[194965,194965],"mapped",[33469]],[[194966,194966],"mapped",[33510]],[[194967,194967],"mapped",[158524]],[[194968,194968],"mapped",[33509]],[[194969,194969],"mapped",[33565]],[[194970,194970],"mapped",[33635]],[[194971,194971],"mapped",[33709]],[[194972,194972],"mapped",[33571]],[[194973,194973],"mapped",[33725]],[[194974,194974],"mapped",[33767]],[[194975,194975],"mapped",[33879]],[[194976,194976],"mapped",[33619]],[[194977,194977],"mapped",[33738]],[[194978,194978],"mapped",[33740]],[[194979,194979],"mapped",[33756]],[[194980,194980],"mapped",[158774]],[[194981,194981],"mapped",[159083]],[[194982,194982],"mapped",[158933]],[[194983,194983],"mapped",[17707]],[[194984,194984],"mapped",[34033]],[[194985,194985],"mapped",[34035]],[[194986,194986],"mapped",[34070]],[[194987,194987],"mapped",[160714]],[[194988,194988],"mapped",[34148]],[[194989,194989],"mapped",[159532]],[[194990,194990],"mapped",[17757]],[[194991,194991],"mapped",[17761]],[[194992,194992],"mapped",[159665]],[[194993,194993],"mapped",[159954]],[[194994,194994],"mapped",[17771]],[[194995,194995],"mapped",[34384]],[[194996,194996],"mapped",[34396]],[[194997,194997],"mapped",[34407]],[[194998,194998],"mapped",[34409]],[[194999,194999],"mapped",[34473]],[[195e3,195e3],"mapped",[34440]],[[195001,195001],"mapped",[34574]],[[195002,195002],"mapped",[34530]],[[195003,195003],"mapped",[34681]],[[195004,195004],"mapped",[34600]],[[195005,195005],"mapped",[34667]],[[195006,195006],"mapped",[34694]],[[195007,195007],"disallowed"],[[195008,195008],"mapped",[34785]],[[195009,195009],"mapped",[34817]],[[195010,195010],"mapped",[17913]],[[195011,195011],"mapped",[34912]],[[195012,195012],"mapped",[34915]],[[195013,195013],"mapped",[161383]],[[195014,195014],"mapped",[35031]],[[195015,195015],"mapped",[35038]],[[195016,195016],"mapped",[17973]],[[195017,195017],"mapped",[35066]],[[195018,195018],"mapped",[13499]],[[195019,195019],"mapped",[161966]],[[195020,195020],"mapped",[162150]],[[195021,195021],"mapped",[18110]],[[195022,195022],"mapped",[18119]],[[195023,195023],"mapped",[35488]],[[195024,195024],"mapped",[35565]],[[195025,195025],"mapped",[35722]],[[195026,195026],"mapped",[35925]],[[195027,195027],"mapped",[162984]],[[195028,195028],"mapped",[36011]],[[195029,195029],"mapped",[36033]],[[195030,195030],"mapped",[36123]],[[195031,195031],"mapped",[36215]],[[195032,195032],"mapped",[163631]],[[195033,195033],"mapped",[133124]],[[195034,195034],"mapped",[36299]],[[195035,195035],"mapped",[36284]],[[195036,195036],"mapped",[36336]],[[195037,195037],"mapped",[133342]],[[195038,195038],"mapped",[36564]],[[195039,195039],"mapped",[36664]],[[195040,195040],"mapped",[165330]],[[195041,195041],"mapped",[165357]],[[195042,195042],"mapped",[37012]],[[195043,195043],"mapped",[37105]],[[195044,195044],"mapped",[37137]],[[195045,195045],"mapped",[165678]],[[195046,195046],"mapped",[37147]],[[195047,195047],"mapped",[37432]],[[195048,195048],"mapped",[37591]],[[195049,195049],"mapped",[37592]],[[195050,195050],"mapped",[37500]],[[195051,195051],"mapped",[37881]],[[195052,195052],"mapped",[37909]],[[195053,195053],"mapped",[166906]],[[195054,195054],"mapped",[38283]],[[195055,195055],"mapped",[18837]],[[195056,195056],"mapped",[38327]],[[195057,195057],"mapped",[167287]],[[195058,195058],"mapped",[18918]],[[195059,195059],"mapped",[38595]],[[195060,195060],"mapped",[23986]],[[195061,195061],"mapped",[38691]],[[195062,195062],"mapped",[168261]],[[195063,195063],"mapped",[168474]],[[195064,195064],"mapped",[19054]],[[195065,195065],"mapped",[19062]],[[195066,195066],"mapped",[38880]],[[195067,195067],"mapped",[168970]],[[195068,195068],"mapped",[19122]],[[195069,195069],"mapped",[169110]],[[195070,195071],"mapped",[38923]],[[195072,195072],"mapped",[38953]],[[195073,195073],"mapped",[169398]],[[195074,195074],"mapped",[39138]],[[195075,195075],"mapped",[19251]],[[195076,195076],"mapped",[39209]],[[195077,195077],"mapped",[39335]],[[195078,195078],"mapped",[39362]],[[195079,195079],"mapped",[39422]],[[195080,195080],"mapped",[19406]],[[195081,195081],"mapped",[170800]],[[195082,195082],"mapped",[39698]],[[195083,195083],"mapped",[4e4]],[[195084,195084],"mapped",[40189]],[[195085,195085],"mapped",[19662]],[[195086,195086],"mapped",[19693]],[[195087,195087],"mapped",[40295]],[[195088,195088],"mapped",[172238]],[[195089,195089],"mapped",[19704]],[[195090,195090],"mapped",[172293]],[[195091,195091],"mapped",[172558]],[[195092,195092],"mapped",[172689]],[[195093,195093],"mapped",[40635]],[[195094,195094],"mapped",[19798]],[[195095,195095],"mapped",[40697]],[[195096,195096],"mapped",[40702]],[[195097,195097],"mapped",[40709]],[[195098,195098],"mapped",[40719]],[[195099,195099],"mapped",[40726]],[[195100,195100],"mapped",[40763]],[[195101,195101],"mapped",[173568]],[[195102,196605],"disallowed"],[[196606,196607],"disallowed"],[[196608,262141],"disallowed"],[[262142,262143],"disallowed"],[[262144,327677],"disallowed"],[[327678,327679],"disallowed"],[[327680,393213],"disallowed"],[[393214,393215],"disallowed"],[[393216,458749],"disallowed"],[[458750,458751],"disallowed"],[[458752,524285],"disallowed"],[[524286,524287],"disallowed"],[[524288,589821],"disallowed"],[[589822,589823],"disallowed"],[[589824,655357],"disallowed"],[[655358,655359],"disallowed"],[[655360,720893],"disallowed"],[[720894,720895],"disallowed"],[[720896,786429],"disallowed"],[[786430,786431],"disallowed"],[[786432,851965],"disallowed"],[[851966,851967],"disallowed"],[[851968,917501],"disallowed"],[[917502,917503],"disallowed"],[[917504,917504],"disallowed"],[[917505,917505],"disallowed"],[[917506,917535],"disallowed"],[[917536,917631],"disallowed"],[[917632,917759],"disallowed"],[[917760,917999],"ignored"],[[918e3,983037],"disallowed"],[[983038,983039],"disallowed"],[[983040,1048573],"disallowed"],[[1048574,1048575],"disallowed"],[[1048576,1114109],"disallowed"],[[1114110,1114111],"disallowed"]]});var F_=v((jre,u1)=>{"use strict";var L_=require("punycode"),V_=U_(),gs={TRANSITIONAL:0,NONTRANSITIONAL:1};function M_(t){return t.split("\0").map(function(e){return e.normalize("NFC")}).join("\0")}function q_(t){for(var e=0,r=V_.length-1;e<=r;){var n=Math.floor((e+r)/2),a=V_[n];if(a[0][0]<=t&&a[0][1]>=t)return a;a[0][0]>t?r=n-1:e=n+1}return null}var nC=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;function Z_(t){return t.replace(nC,"_").length}function aC(t,e,r){for(var n=!1,a="",i=Z_(t),o=0;o253||o.length===0)&&(a.error=!0);for(var s=0;s63||i.length===0){a.error=!0;break}}return a.error?null:i.join(".")};u1.exports.toUnicode=function(t,e){var r=c1(t,e,gs.NONTRANSITIONAL);return{domain:r.string,error:r.error}};u1.exports.PROCESSING_OPTIONS=gs});var un=v((Cre,hr)=>{"use strict";var vs=require("punycode"),B_=F_(),H_={ftp:21,file:null,gopher:70,http:80,https:443,ws:80,wss:443},ge=Symbol("failure");function W_(t){return vs.ucs2.decode(t).length}function J_(t,e){let r=t[e];return isNaN(r)?void 0:String.fromCodePoint(r)}function Hp(t){return t>=48&&t<=57}function Kp(t){return t>=65&&t<=90||t>=97&&t<=122}function sC(t){return Kp(t)||Hp(t)}function Wr(t){return Hp(t)||t>=65&&t<=70||t>=97&&t<=102}function G_(t){return t==="."||t.toLowerCase()==="%2e"}function dC(t){return t=t.toLowerCase(),t===".."||t==="%2e."||t===".%2e"||t==="%2e%2e"}function pC(t,e){return Kp(t)&&(e===58||e===124)}function K_(t){return t.length===2&&Kp(t.codePointAt(0))&&(t[1]===":"||t[1]==="|")}function lC(t){return t.length===2&&Kp(t.codePointAt(0))&&t[1]===":"}function cC(t){return t.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|%|\/|:|\?|@|\[|\\|\]/)!==-1}function uC(t){return t.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/)!==-1}function n9(t){return H_[t]!==void 0}function mt(t){return n9(t.scheme)}function mC(t){return H_[t]}function X_(t){let e=t.toString(16).toUpperCase();return e.length===1&&(e="0"+e),"%"+e}function fC(t){let e=new Buffer(t),r="";for(let n=0;n126}var gC=new Set([32,34,35,60,62,63,96,123,125]);function Y_(t){return m1(t)||gC.has(t)}var vC=new Set([47,58,59,61,64,91,92,93,94,124]);function i9(t){return Y_(t)||vC.has(t)}function Pi(t,e){let r=String.fromCodePoint(t);return e(t)?fC(r):r}function yC(t){let e=10;return t.length>=2&&t.charAt(0)==="0"&&t.charAt(1).toLowerCase()==="x"?(t=t.substring(2),e=16):t.length>=2&&t.charAt(0)==="0"&&(t=t.substring(1),e=8),t===""?0:(e===10?/[^0-9]/:e===16?/[^0-9A-Fa-f]/:/[^0-7]/).test(t)?ge:parseInt(t,e)}function _C(t){let e=t.split(".");if(e[e.length-1]===""&&e.length>1&&e.pop(),e.length>4)return t;let r=[];for(let i of e){if(i==="")return t;let o=yC(i);if(o===ge)return t;r.push(o)}for(let i=0;i255)return ge;if(r[r.length-1]>=Math.pow(256,5-r.length))return ge;let n=r.pop(),a=0;for(let i of r)n+=i*Math.pow(256,3-a),++a;return n}function bC(t){let e="",r=t;for(let n=1;n<=4;++n)e=String(r%256)+e,n!==4&&(e="."+e),r=Math.floor(r/256);return e}function wC(t){let e=[0,0,0,0,0,0,0,0],r=0,n=null,a=0;if(t=vs.ucs2.decode(t),t[a]===58){if(t[a+1]!==58)return ge;a+=2,++r,n=r}for(;a6))return ge;let s=0;for(;t[a]!==void 0;){let d=null;if(s>0)if(t[a]===46&&s<4)++a;else return ge;if(!Hp(t[a]))return ge;for(;Hp(t[a]);){let p=parseInt(J_(t,a));if(d===null)d=p;else{if(d===0)return ge;d=d*10+p}if(d>255)return ge;++a}e[r]=e[r]*256+d,++s,(s===2||s===4)&&++r}if(s!==4)return ge;break}else if(t[a]===58){if(++a,t[a]===void 0)return ge}else if(t[a]!==void 0)return ge;e[r]=i,++r}if(n!==null){let i=r-n;for(r=7;r!==0&&i>0;){let o=e[n+i-1];e[n+i-1]=e[r],e[r]=o,--r,--i}}else if(n===null&&r!==8)return ge;return e}function xC(t){let e="",n=SC(t).idx,a=!1;for(let i=0;i<=7;++i)if(!(a&&t[i]===0)){if(a&&(a=!1),n===i){e+=i===0?"::":":",a=!0;continue}e+=t[i].toString(16),i!==7&&(e+=":")}return e}function a9(t,e){if(t[0]==="[")return t[t.length-1]!=="]"?ge:wC(t.substring(1,t.length-1));if(!e)return $C(t);let r=hC(t),n=B_.toASCII(r,!1,B_.PROCESSING_OPTIONS.NONTRANSITIONAL,!1);if(n===null||cC(n))return ge;let a=_C(n);return typeof a=="number"||a===ge?a:n}function $C(t){if(uC(t))return ge;let e="",r=vs.ucs2.decode(t);for(let n=0;nr&&(e=n,r=a),n=null,a=0):(n===null&&(n=i),++a);return a>r&&(e=n,r=a),{idx:e,len:r}}function o9(t){return typeof t=="number"?bC(t):t instanceof Array?"["+xC(t)+"]":t}function kC(t){return t.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g,"")}function TC(t){return t.replace(/\u0009|\u000A|\u000D/g,"")}function Q_(t){let e=t.path;e.length!==0&&(t.scheme==="file"&&e.length===1&&IC(e[0])||e.pop())}function eb(t){return t.username!==""||t.password!==""}function EC(t){return t.host===null||t.host===""||t.cannotBeABaseURL||t.scheme==="file"}function IC(t){return/^[A-Za-z]:$/.test(t)}function tt(t,e,r,n,a){if(this.pointer=0,this.input=t,this.base=e||null,this.encodingOverride=r||"utf-8",this.stateOverride=a,this.url=n,this.failure=!1,this.parseError=!1,!this.url){this.url={scheme:"",username:"",password:"",host:null,port:null,path:[],query:null,fragment:null,cannotBeABaseURL:!1};let o=kC(this.input);o!==this.input&&(this.parseError=!0),this.input=o}let i=TC(this.input);for(i!==this.input&&(this.parseError=!0),this.input=i,this.state=a||"scheme start",this.buffer="",this.atFlag=!1,this.arrFlag=!1,this.passwordTokenSeenFlag=!1,this.input=vs.ucs2.decode(this.input);this.pointer<=this.input.length;++this.pointer){let o=this.input[this.pointer],s=isNaN(o)?void 0:String.fromCodePoint(o),d=this["parse "+this.state](o,s);if(d){if(d===ge){this.failure=!0;break}}else break}}tt.prototype["parse scheme start"]=function(e,r){if(Kp(e))this.buffer+=r.toLowerCase(),this.state="scheme";else if(!this.stateOverride)this.state="no scheme",--this.pointer;else return this.parseError=!0,ge;return!0};tt.prototype["parse scheme"]=function(e,r){if(sC(e)||e===43||e===45||e===46)this.buffer+=r.toLowerCase();else if(e===58){if(this.stateOverride&&(mt(this.url)&&!n9(this.buffer)||!mt(this.url)&&n9(this.buffer)||(eb(this.url)||this.url.port!==null)&&this.buffer==="file"||this.url.scheme==="file"&&(this.url.host===""||this.url.host===null))||(this.url.scheme=this.buffer,this.buffer="",this.stateOverride))return!1;this.url.scheme==="file"?((this.input[this.pointer+1]!==47||this.input[this.pointer+2]!==47)&&(this.parseError=!0),this.state="file"):mt(this.url)&&this.base!==null&&this.base.scheme===this.url.scheme?this.state="special relative or authority":mt(this.url)?this.state="special authority slashes":this.input[this.pointer+1]===47?(this.state="path or authority",++this.pointer):(this.url.cannotBeABaseURL=!0,this.url.path.push(""),this.state="cannot-be-a-base-URL path")}else if(!this.stateOverride)this.buffer="",this.state="no scheme",this.pointer=-1;else return this.parseError=!0,ge;return!0};tt.prototype["parse no scheme"]=function(e){return this.base===null||this.base.cannotBeABaseURL&&e!==35?ge:(this.base.cannotBeABaseURL&&e===35?(this.url.scheme=this.base.scheme,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.url.cannotBeABaseURL=!0,this.state="fragment"):this.base.scheme==="file"?(this.state="file",--this.pointer):(this.state="relative",--this.pointer),!0)};tt.prototype["parse special relative or authority"]=function(e){return e===47&&this.input[this.pointer+1]===47?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="relative",--this.pointer),!0};tt.prototype["parse path or authority"]=function(e){return e===47?this.state="authority":(this.state="path",--this.pointer),!0};tt.prototype["parse relative"]=function(e){return this.url.scheme=this.base.scheme,isNaN(e)?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query):e===47?this.state="relative slash":e===63?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):e===35?(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):mt(this.url)&&e===92?(this.parseError=!0,this.state="relative slash"):(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.url.path=this.base.path.slice(0,this.base.path.length-1),this.state="path",--this.pointer),!0};tt.prototype["parse relative slash"]=function(e){return mt(this.url)&&(e===47||e===92)?(e===92&&(this.parseError=!0),this.state="special authority ignore slashes"):e===47?this.state="authority":(this.url.username=this.base.username,this.url.password=this.base.password,this.url.host=this.base.host,this.url.port=this.base.port,this.state="path",--this.pointer),!0};tt.prototype["parse special authority slashes"]=function(e){return e===47&&this.input[this.pointer+1]===47?(this.state="special authority ignore slashes",++this.pointer):(this.parseError=!0,this.state="special authority ignore slashes",--this.pointer),!0};tt.prototype["parse special authority ignore slashes"]=function(e){return e!==47&&e!==92?(this.state="authority",--this.pointer):this.parseError=!0,!0};tt.prototype["parse authority"]=function(e,r){if(e===64){this.parseError=!0,this.atFlag&&(this.buffer="%40"+this.buffer),this.atFlag=!0;let n=W_(this.buffer);for(let a=0;aMath.pow(2,16)-1)return this.parseError=!0,ge;this.url.port=n===mC(this.url.scheme)?null:n,this.buffer=""}if(this.stateOverride)return!1;this.state="path start",--this.pointer}else return this.parseError=!0,ge;return!0};var PC=new Set([47,92,63,35]);tt.prototype["parse file"]=function(e){return this.url.scheme="file",e===47||e===92?(e===92&&(this.parseError=!0),this.state="file slash"):this.base!==null&&this.base.scheme==="file"?isNaN(e)?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query):e===63?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query="",this.state="query"):e===35?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),this.url.query=this.base.query,this.url.fragment="",this.state="fragment"):(this.input.length-this.pointer-1===0||!pC(e,this.input[this.pointer+1])||this.input.length-this.pointer-1>=2&&!PC.has(this.input[this.pointer+2])?(this.url.host=this.base.host,this.url.path=this.base.path.slice(),Q_(this.url)):this.parseError=!0,this.state="path",--this.pointer):(this.state="path",--this.pointer),!0};tt.prototype["parse file slash"]=function(e){return e===47||e===92?(e===92&&(this.parseError=!0),this.state="file host"):(this.base!==null&&this.base.scheme==="file"&&(lC(this.base.path[0])?this.url.path.push(this.base.path[0]):this.url.host=this.base.host),this.state="path",--this.pointer),!0};tt.prototype["parse file host"]=function(e,r){if(isNaN(e)||e===47||e===92||e===63||e===35)if(--this.pointer,!this.stateOverride&&K_(this.buffer))this.parseError=!0,this.state="path";else if(this.buffer===""){if(this.url.host="",this.stateOverride)return!1;this.state="path start"}else{let n=a9(this.buffer,mt(this.url));if(n===ge)return ge;if(n==="localhost"&&(n=""),this.url.host=n,this.stateOverride)return!1;this.buffer="",this.state="path start"}else this.buffer+=r;return!0};tt.prototype["parse path start"]=function(e){return mt(this.url)?(e===92&&(this.parseError=!0),this.state="path",e!==47&&e!==92&&--this.pointer):!this.stateOverride&&e===63?(this.url.query="",this.state="query"):!this.stateOverride&&e===35?(this.url.fragment="",this.state="fragment"):e!==void 0&&(this.state="path",e!==47&&--this.pointer),!0};tt.prototype["parse path"]=function(e){if(isNaN(e)||e===47||mt(this.url)&&e===92||!this.stateOverride&&(e===63||e===35)){if(mt(this.url)&&e===92&&(this.parseError=!0),dC(this.buffer)?(Q_(this.url),e!==47&&!(mt(this.url)&&e===92)&&this.url.path.push("")):G_(this.buffer)&&e!==47&&!(mt(this.url)&&e===92)?this.url.path.push(""):G_(this.buffer)||(this.url.scheme==="file"&&this.url.path.length===0&&K_(this.buffer)&&(this.url.host!==""&&this.url.host!==null&&(this.parseError=!0,this.url.host=""),this.buffer=this.buffer[0]+":"),this.url.path.push(this.buffer)),this.buffer="",this.url.scheme==="file"&&(e===void 0||e===63||e===35))for(;this.url.path.length>1&&this.url.path[0]==="";)this.parseError=!0,this.url.path.shift();e===63&&(this.url.query="",this.state="query"),e===35&&(this.url.fragment="",this.state="fragment")}else e===37&&(!Wr(this.input[this.pointer+1])||!Wr(this.input[this.pointer+2]))&&(this.parseError=!0),this.buffer+=Pi(e,Y_);return!0};tt.prototype["parse cannot-be-a-base-URL path"]=function(e){return e===63?(this.url.query="",this.state="query"):e===35?(this.url.fragment="",this.state="fragment"):(!isNaN(e)&&e!==37&&(this.parseError=!0),e===37&&(!Wr(this.input[this.pointer+1])||!Wr(this.input[this.pointer+2]))&&(this.parseError=!0),isNaN(e)||(this.url.path[0]=this.url.path[0]+Pi(e,m1))),!0};tt.prototype["parse query"]=function(e,r){if(isNaN(e)||!this.stateOverride&&e===35){(!mt(this.url)||this.url.scheme==="ws"||this.url.scheme==="wss")&&(this.encodingOverride="utf-8");let n=new Buffer(this.buffer);for(let a=0;a126||n[a]===34||n[a]===35||n[a]===60||n[a]===62?this.url.query+=X_(n[a]):this.url.query+=String.fromCodePoint(n[a]);this.buffer="",e===35&&(this.url.fragment="",this.state="fragment")}else e===37&&(!Wr(this.input[this.pointer+1])||!Wr(this.input[this.pointer+2]))&&(this.parseError=!0),this.buffer+=r;return!0};tt.prototype["parse fragment"]=function(e){return isNaN(e)||(e===0?this.parseError=!0:(e===37&&(!Wr(this.input[this.pointer+1])||!Wr(this.input[this.pointer+2]))&&(this.parseError=!0),this.url.fragment+=Pi(e,m1))),!0};function NC(t,e){let r=t.scheme+":";if(t.host!==null?(r+="//",(t.username!==""||t.password!=="")&&(r+=t.username,t.password!==""&&(r+=":"+t.password),r+="@"),r+=o9(t.host),t.port!==null&&(r+=":"+t.port)):t.host===null&&t.scheme==="file"&&(r+="//"),t.cannotBeABaseURL)r+=t.path[0];else for(let n of t.path)r+="/"+n;return t.query!==null&&(r+="?"+t.query),!e&&t.fragment!==null&&(r+="#"+t.fragment),r}function zC(t){let e=t.scheme+"://";return e+=o9(t.host),t.port!==null&&(e+=":"+t.port),e}hr.exports.serializeURL=NC;hr.exports.serializeURLOrigin=function(t){switch(t.scheme){case"blob":try{return hr.exports.serializeURLOrigin(hr.exports.parseURL(t.path[0]))}catch{return"null"}case"ftp":case"gopher":case"http":case"https":case"ws":case"wss":return zC({scheme:t.scheme,host:t.host,port:t.port});case"file":return"file://";default:return"null"}};hr.exports.basicURLParse=function(t,e){e===void 0&&(e={});let r=new tt(t,e.baseURL,e.encodingOverride,e.url,e.stateOverride);return r.failure?"failure":r.url};hr.exports.setTheUsername=function(t,e){t.username="";let r=vs.ucs2.decode(e);for(let n=0;n{"use strict";var rt=un();tb.implementation=class{constructor(e){let r=e[0],n=e[1],a=null;if(n!==void 0&&(a=rt.basicURLParse(n),a==="failure"))throw new TypeError("Invalid base URL");let i=rt.basicURLParse(r,{baseURL:a});if(i==="failure")throw new TypeError("Invalid URL");this._url=i}get href(){return rt.serializeURL(this._url)}set href(e){let r=rt.basicURLParse(e);if(r==="failure")throw new TypeError("Invalid URL");this._url=r}get origin(){return rt.serializeURLOrigin(this._url)}get protocol(){return this._url.scheme+":"}set protocol(e){rt.basicURLParse(e+":",{url:this._url,stateOverride:"scheme start"})}get username(){return this._url.username}set username(e){rt.cannotHaveAUsernamePasswordPort(this._url)||rt.setTheUsername(this._url,e)}get password(){return this._url.password}set password(e){rt.cannotHaveAUsernamePasswordPort(this._url)||rt.setThePassword(this._url,e)}get host(){let e=this._url;return e.host===null?"":e.port===null?rt.serializeHost(e.host):rt.serializeHost(e.host)+":"+rt.serializeInteger(e.port)}set host(e){this._url.cannotBeABaseURL||rt.basicURLParse(e,{url:this._url,stateOverride:"host"})}get hostname(){return this._url.host===null?"":rt.serializeHost(this._url.host)}set hostname(e){this._url.cannotBeABaseURL||rt.basicURLParse(e,{url:this._url,stateOverride:"hostname"})}get port(){return this._url.port===null?"":rt.serializeInteger(this._url.port)}set port(e){rt.cannotHaveAUsernamePasswordPort(this._url)||(e===""?this._url.port=null:rt.basicURLParse(e,{url:this._url,stateOverride:"port"}))}get pathname(){return this._url.cannotBeABaseURL?this._url.path[0]:this._url.path.length===0?"":"/"+this._url.path.join("/")}set pathname(e){this._url.cannotBeABaseURL||(this._url.path=[],rt.basicURLParse(e,{url:this._url,stateOverride:"path start"}))}get search(){return this._url.query===null||this._url.query===""?"":"?"+this._url.query}set search(e){let r=this._url;if(e===""){r.query=null;return}let n=e[0]==="?"?e.substring(1):e;r.query="",rt.basicURLParse(n,{url:r,stateOverride:"query"})}get hash(){return this._url.fragment===null||this._url.fragment===""?"":"#"+this._url.fragment}set hash(e){if(e===""){this._url.fragment=null;return}let r=e[0]==="#"?e.substring(1):e;this._url.fragment="",rt.basicURLParse(r,{url:this._url,stateOverride:"fragment"})}toJSON(){return this.href}}});var ib=v((Lre,Xp)=>{"use strict";var Ir=j_(),ab=C_(),nb=rb(),Me=ab.implSymbol;function ft(t){if(!this||this[Me]||!(this instanceof ft))throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.");if(arguments.length<1)throw new TypeError("Failed to construct 'URL': 1 argument required, but only "+arguments.length+" present.");let e=[];for(let r=0;r{"use strict";mn.URL=ib().interface;mn.serializeURL=un().serializeURL;mn.serializeURLOrigin=un().serializeURLOrigin;mn.basicURLParse=un().basicURLParse;mn.setTheUsername=un().setTheUsername;mn.setThePassword=un().setThePassword;mn.serializeHost=un().serializeHost;mn.serializeInteger=un().serializeInteger;mn.parseURL=un().parseURL});var yb=v((Gr,vb)=>{"use strict";Object.defineProperty(Gr,"__esModule",{value:!0});function ws(t){return t&&typeof t=="object"&&"default"in t?t.default:t}var Jr=ws(require("stream")),lb=ws(require("http")),h1=ws(require("url")),cb=ws(ob()),OC=ws(require("https")),Ni=ws(require("zlib")),RC=Jr.Readable,qn=Symbol("buffer"),s9=Symbol("type"),Qp=class t{constructor(){this[s9]="";let e=arguments[0],r=arguments[1],n=[],a=0;if(e){let o=e,s=Number(o.length);for(let d=0;d1&&arguments[1]!==void 0?arguments[1]:{},n=r.size;let a=n===void 0?0:n;var i=r.timeout;let o=i===void 0?0:i;t==null?t=null:ub(t)?t=Buffer.from(t.toString()):tl(t)||Buffer.isBuffer(t)||(Object.prototype.toString.call(t)==="[object ArrayBuffer]"?t=Buffer.from(t):ArrayBuffer.isView(t)?t=Buffer.from(t.buffer,t.byteOffset,t.byteLength):t instanceof Jr||(t=Buffer.from(String(t)))),this[Fn]={body:t,disturbed:!1,error:null},this.size=a,this.timeout=o,t instanceof Jr&&t.on("error",function(s){let d=s.name==="AbortError"?s:new $t(`Invalid response body while trying to fetch ${e.url}: ${s.message}`,"system",s);e[Fn].error=d})}ht.prototype={get body(){return this[Fn].body},get bodyUsed(){return this[Fn].disturbed},arrayBuffer(){return ys.call(this).then(function(t){return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)})},blob(){let t=this.headers&&this.headers.get("content-type")||"";return ys.call(this).then(function(e){return Object.assign(new Qp([],{type:t.toLowerCase()}),{[qn]:e})})},json(){var t=this;return ys.call(this).then(function(e){try{return JSON.parse(e.toString())}catch(r){return ht.Promise.reject(new $t(`invalid json response body at ${t.url} reason: ${r.message}`,"invalid-json"))}})},text(){return ys.call(this).then(function(t){return t.toString()})},buffer(){return ys.call(this)},textConverted(){var t=this;return ys.call(this).then(function(e){return DC(e,t.headers)})}};Object.defineProperties(ht.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0}});ht.mixIn=function(t){for(let e of Object.getOwnPropertyNames(ht.prototype))if(!(e in t)){let r=Object.getOwnPropertyDescriptor(ht.prototype,e);Object.defineProperty(t,e,r)}};function ys(){var t=this;if(this[Fn].disturbed)return ht.Promise.reject(new TypeError(`body used already for: ${this.url}`));if(this[Fn].disturbed=!0,this[Fn].error)return ht.Promise.reject(this[Fn].error);let e=this.body;if(e===null)return ht.Promise.resolve(Buffer.alloc(0));if(tl(e)&&(e=e.stream()),Buffer.isBuffer(e))return ht.Promise.resolve(e);if(!(e instanceof Jr))return ht.Promise.resolve(Buffer.alloc(0));let r=[],n=0,a=!1;return new ht.Promise(function(i,o){let s;t.timeout&&(s=setTimeout(function(){a=!0,o(new $t(`Response timeout while trying to fetch ${t.url} (over ${t.timeout}ms)`,"body-timeout"))},t.timeout)),e.on("error",function(d){d.name==="AbortError"?(a=!0,o(d)):o(new $t(`Invalid response body while trying to fetch ${t.url}: ${d.message}`,"system",d))}),e.on("data",function(d){if(!(a||d===null)){if(t.size&&n+d.length>t.size){a=!0,o(new $t(`content size at ${t.url} over limit: ${t.size}`,"max-size"));return}n+=d.length,r.push(d)}}),e.on("end",function(){if(!a){clearTimeout(s);try{i(Buffer.concat(r,n))}catch(d){o(new $t(`Could not create Buffer from response body for ${t.url}: ${d.message}`,"system",d))}}})})}function DC(t,e){if(typeof c9!="function")throw new Error("The package `encoding` must be installed to use the textConverted() function");let r=e.get("content-type"),n="utf-8",a,i;return r&&(a=/charset=([^;]*)/i.exec(r)),i=t.slice(0,1024).toString(),!a&&i&&(a=/0&&arguments[0]!==void 0?arguments[0]:void 0;if(this[ot]=Object.create(null),e instanceof t){let r=e.raw(),n=Object.keys(r);for(let a of n)for(let i of r[a])this.append(a,i);return}if(e!=null)if(typeof e=="object"){let r=e[Symbol.iterator];if(r!=null){if(typeof r!="function")throw new TypeError("Header pairs must be iterable");let n=[];for(let a of e){if(typeof a!="object"||typeof a[Symbol.iterator]!="function")throw new TypeError("Each header pair must be iterable");n.push(Array.from(a))}for(let a of n){if(a.length!==2)throw new TypeError("Each header pair must be a name/value tuple");this.append(a[0],a[1])}}else for(let n of Object.keys(e)){let a=e[n];this.append(n,a)}}else throw new TypeError("Provided initializer must be an object")}get(e){e=`${e}`,Yp(e);let r=_s(this[ot],e);return r===void 0?null:this[ot][r].join(", ")}forEach(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0,n=m9(this),a=0;for(;a1&&arguments[1]!==void 0?arguments[1]:"key+value";return Object.keys(t[ot]).sort().map(e==="key"?function(n){return n.toLowerCase()}:e==="value"?function(n){return t[ot][n].join(", ")}:function(n){return[n.toLowerCase(),t[ot][n].join(", ")]})}var f9=Symbol("internal");function d9(t,e){let r=Object.create(h9);return r[f9]={target:t,kind:e,index:0},r}var h9=Object.setPrototypeOf({next(){if(!this||Object.getPrototypeOf(this)!==h9)throw new TypeError("Value of `this` is not a HeadersIterator");var t=this[f9];let e=t.target,r=t.kind,n=t.index,a=m9(e,r),i=a.length;return n>=i?{value:void 0,done:!0}:(this[f9].index=n+1,{value:a[n],done:!1})}},Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));Object.defineProperty(h9,Symbol.toStringTag,{value:"HeadersIterator",writable:!1,enumerable:!1,configurable:!0});function jC(t){let e=Object.assign({__proto__:null},t[ot]),r=_s(t[ot],"Host");return r!==void 0&&(e[r]=e[r][0]),e}function CC(t){let e=new Nr;for(let r of Object.keys(t))if(!gb.test(r))if(Array.isArray(t[r]))for(let n of t[r])u9.test(n)||(e[ot][r]===void 0?e[ot][r]=[n]:e[ot][r].push(n));else u9.test(t[r])||(e[ot][r]=[t[r]]);return e}var Pa=Symbol("Response internals"),UC=lb.STATUS_CODES,Pr=class t{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};ht.call(this,e,r);let n=r.status||200,a=new Nr(r.headers);if(e!=null&&!a.has("Content-Type")){let i=fb(e);i&&a.append("Content-Type",i)}this[Pa]={url:r.url,status:n,statusText:r.statusText||UC[n],headers:a,counter:r.counter}}get url(){return this[Pa].url||""}get status(){return this[Pa].status}get ok(){return this[Pa].status>=200&&this[Pa].status<300}get redirected(){return this[Pa].counter>0}get statusText(){return this[Pa].statusText}get headers(){return this[Pa].headers}clone(){return new t(mb(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected})}};ht.mixIn(Pr.prototype);Object.defineProperties(Pr.prototype,{url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}});Object.defineProperty(Pr.prototype,Symbol.toStringTag,{value:"Response",writable:!1,enumerable:!1,configurable:!0});var Zn=Symbol("Request internals"),VC=h1.URL||cb.URL,LC=h1.parse,MC=h1.format;function p9(t){return/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(t)&&(t=new VC(t).toString()),LC(t)}var qC="destroy"in Jr.Readable.prototype;function f1(t){return typeof t=="object"&&typeof t[Zn]=="object"}function ZC(t){let e=t&&typeof t=="object"&&Object.getPrototypeOf(t);return!!(e&&e.constructor.name==="AbortSignal")}var za=class t{constructor(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n;f1(e)?n=p9(e.url):(e&&e.href?n=p9(e.href):n=p9(`${e}`),e={});let a=r.method||e.method||"GET";if(a=a.toUpperCase(),(r.body!=null||f1(e)&&e.body!==null)&&(a==="GET"||a==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body");let i=r.body!=null?r.body:f1(e)&&e.body!==null?mb(e):null;ht.call(this,i,{timeout:r.timeout||e.timeout||0,size:r.size||e.size||0});let o=new Nr(r.headers||e.headers||{});if(i!=null&&!o.has("Content-Type")){let d=fb(i);d&&o.append("Content-Type",d)}let s=f1(e)?e.signal:null;if("signal"in r&&(s=r.signal),s!=null&&!ZC(s))throw new TypeError("Expected signal to be an instanceof AbortSignal");this[Zn]={method:a,redirect:r.redirect||e.redirect||"follow",headers:o,parsedURL:n,signal:s},this.follow=r.follow!==void 0?r.follow:e.follow!==void 0?e.follow:20,this.compress=r.compress!==void 0?r.compress:e.compress!==void 0?e.compress:!0,this.counter=r.counter||e.counter||0,this.agent=r.agent||e.agent}get method(){return this[Zn].method}get url(){return MC(this[Zn].parsedURL)}get headers(){return this[Zn].headers}get redirect(){return this[Zn].redirect}get signal(){return this[Zn].signal}clone(){return new t(this)}};ht.mixIn(za.prototype);Object.defineProperty(za.prototype,Symbol.toStringTag,{value:"Request",writable:!1,enumerable:!1,configurable:!0});Object.defineProperties(za.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0}});function FC(t){let e=t[Zn].parsedURL,r=new Nr(t[Zn].headers);if(r.has("Accept")||r.set("Accept","*/*"),!e.protocol||!e.hostname)throw new TypeError("Only absolute URLs are supported");if(!/^https?:$/.test(e.protocol))throw new TypeError("Only HTTP(S) protocols are supported");if(t.signal&&t.body instanceof Jr.Readable&&!qC)throw new Error("Cancellation of streamed requests with AbortSignal is not supported in node < 8");let n=null;if(t.body==null&&/^(POST|PUT)$/i.test(t.method)&&(n="0"),t.body!=null){let i=hb(t);typeof i=="number"&&(n=String(i))}n&&r.set("Content-Length",n),r.has("User-Agent")||r.set("User-Agent","node-fetch/1.0 (+https://github.com/bitinn/node-fetch)"),t.compress&&!r.has("Accept-Encoding")&&r.set("Accept-Encoding","gzip,deflate");let a=t.agent;return typeof a=="function"&&(a=a(e)),Object.assign({},e,{method:t.method,headers:jC(r),agent:a})}function bs(t){Error.call(this,t),this.type="aborted",this.message=t,Error.captureStackTrace(this,this.constructor)}bs.prototype=Object.create(Error.prototype);bs.prototype.constructor=bs;bs.prototype.name="AbortError";var el=h1.URL||cb.URL,pb=Jr.PassThrough,BC=function(e,r){let n=new el(r).hostname,a=new el(e).hostname;return n===a||n[n.length-a.length-1]==="."&&n.endsWith(a)},WC=function(e,r){let n=new el(r).protocol,a=new el(e).protocol;return n===a};function Na(t,e){if(!Na.Promise)throw new Error("native promise missing, set fetch.Promise to your favorite alternative");return ht.Promise=Na.Promise,new Na.Promise(function(r,n){let a=new za(t,e),i=FC(a),o=(i.protocol==="https:"?OC:lb).request,s=a.signal,d=null,p=function(){let g=new bs("The user aborted a request.");n(g),a.body&&a.body instanceof Jr.Readable&&l9(a.body,g),!(!d||!d.body)&&d.body.emit("error",g)};if(s&&s.aborted){p();return}let l=function(){p(),m()},c=o(i),u;s&&s.addEventListener("abort",l);function m(){c.abort(),s&&s.removeEventListener("abort",l),clearTimeout(u)}a.timeout&&c.once("socket",function(f){u=setTimeout(function(){n(new $t(`network timeout at: ${a.url}`,"request-timeout")),m()},a.timeout)}),c.on("error",function(f){n(new $t(`request to ${a.url} failed, reason: ${f.message}`,"system",f)),d&&d.body&&l9(d.body,f),m()}),JC(c,function(f){s&&s.aborted||d&&d.body&&l9(d.body,f)}),parseInt(process.version.substring(1))<14&&c.on("socket",function(f){f.addListener("close",function(g){let y=f.listenerCount("data")>0;if(d&&y&&!g&&!(s&&s.aborted)){let b=new Error("Premature close");b.code="ERR_STREAM_PREMATURE_CLOSE",d.body.emit("error",b)}})}),c.on("response",function(f){clearTimeout(u);let g=CC(f.headers);if(Na.isRedirect(f.statusCode)){let T=g.get("Location"),k=null;try{k=T===null?null:new el(T,a.url).toString()}catch{if(a.redirect!=="manual"){n(new $t(`uri requested responds with an invalid redirect URL: ${T}`,"invalid-redirect")),m();return}}switch(a.redirect){case"error":n(new $t(`uri requested responds with a redirect, redirect mode is set to error: ${a.url}`,"no-redirect")),m();return;case"manual":if(k!==null)try{g.set("Location",k)}catch(qe){n(qe)}break;case"follow":if(k===null)break;if(a.counter>=a.follow){n(new $t(`maximum redirect reached at: ${a.url}`,"max-redirect")),m();return}let Te={headers:new Nr(a.headers),follow:a.follow,counter:a.counter+1,agent:a.agent,compress:a.compress,method:a.method,body:a.body,signal:a.signal,timeout:a.timeout,size:a.size};if(!BC(a.url,k)||!WC(a.url,k))for(let qe of["authorization","www-authenticate","cookie","cookie2"])Te.headers.delete(qe);if(f.statusCode!==303&&a.body&&hb(a)===null){n(new $t("Cannot follow redirect with body being a readable stream","unsupported-redirect")),m();return}(f.statusCode===303||(f.statusCode===301||f.statusCode===302)&&a.method==="POST")&&(Te.method="GET",Te.body=void 0,Te.headers.delete("content-length")),r(Na(new za(k,Te))),m();return}}f.once("end",function(){s&&s.removeEventListener("abort",l)});let y=f.pipe(new pb),b={url:a.url,status:f.statusCode,statusText:f.statusMessage,headers:g,size:a.size,timeout:a.timeout,counter:a.counter},S=g.get("Content-Encoding");if(!a.compress||a.method==="HEAD"||S===null||f.statusCode===204||f.statusCode===304){d=new Pr(y,b),r(d);return}let E={flush:Ni.Z_SYNC_FLUSH,finishFlush:Ni.Z_SYNC_FLUSH};if(S=="gzip"||S=="x-gzip"){y=y.pipe(Ni.createGunzip(E)),d=new Pr(y,b),r(d);return}if(S=="deflate"||S=="x-deflate"){let T=f.pipe(new pb);T.once("data",function(k){(k[0]&15)===8?y=y.pipe(Ni.createInflate()):y=y.pipe(Ni.createInflateRaw()),d=new Pr(y,b),r(d)}),T.on("end",function(){d||(d=new Pr(y,b),r(d))});return}if(S=="br"&&typeof Ni.createBrotliDecompress=="function"){y=y.pipe(Ni.createBrotliDecompress()),d=new Pr(y,b),r(d);return}d=new Pr(y,b),r(d)}),AC(c,a)})}function JC(t,e){let r;t.on("socket",function(n){r=n}),t.on("response",function(n){let a=n.headers;a["transfer-encoding"]==="chunked"&&!a["content-length"]&&n.once("close",function(i){if(r&&r.listenerCount("data")>0&&!i){let s=new Error("Premature close");s.code="ERR_STREAM_PREMATURE_CLOSE",e(s)}})})}function l9(t,e){t.destroy?t.destroy(e):(t.emit("error",e),t.end())}Na.isRedirect=function(t){return t===301||t===302||t===303||t===307||t===308};Na.Promise=global.Promise;vb.exports=Gr=Na;Object.defineProperty(Gr,"__esModule",{value:!0});Gr.default=Gr;Gr.Headers=Nr;Gr.Request=za;Gr.Response=Pr;Gr.FetchError=$t;Gr.AbortError=bs});function Zb(){}function Dt(t){return typeof t=="object"&&t!==null||typeof t=="function"}function Ie(t,e){try{Object.defineProperty(t,"name",{value:e,configurable:!0})}catch{}}function Wt(t){return new I9(t)}function ze(t){return HC(t)}function K(t){return KC(t)}function Xn(t,e,r){return GC.call(t,e,r)}function Rt(t,e,r){Xn(Xn(t,e,r),void 0,Fb)}function _b(t,e){Rt(t,e)}function bb(t,e){Rt(t,void 0,e)}function Hr(t,e,r){return Xn(t,e,r)}function ks(t){Xn(t,void 0,Fb)}function U1(t,e,r){if(typeof t!="function")throw new TypeError("Argument is not a function");return Function.prototype.apply.call(t,e,r)}function Ci(t,e,r){try{return ze(U1(t,e,r))}catch(n){return K(n)}}function Jb(t,e){t._ownerReadableStream=e,e._reader=t,e._state==="readable"?w9(t):e._state==="closed"?(function(r){w9(r),Xb(r)})(t):Kb(t,e._storedError)}function Gb(t,e){return Ew(t._ownerReadableStream,e)}function Hb(t){let e=t._ownerReadableStream;e._state==="readable"?O9(t,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")):(function(r,n){Kb(r,n)})(t,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")),e._readableStreamController[z9](),e._reader=void 0,t._ownerReadableStream=void 0}function Ts(t){return new TypeError("Cannot "+t+" a stream using a released reader")}function w9(t){t._closedPromise=Wt(((e,r)=>{t._closedPromise_resolve=e,t._closedPromise_reject=r}))}function Kb(t,e){w9(t),O9(t,e)}function O9(t,e){t._closedPromise_reject!==void 0&&(ks(t._closedPromise),t._closedPromise_reject(e),t._closedPromise_resolve=void 0,t._closedPromise_reject=void 0)}function Xb(t){t._closedPromise_resolve!==void 0&&(t._closedPromise_resolve(void 0),t._closedPromise_resolve=void 0,t._closedPromise_reject=void 0)}function Yn(t,e){if(t!==void 0&&typeof(r=t)!="object"&&typeof r!="function")throw new TypeError(`${e} is not an object.`);var r}function Kr(t,e){if(typeof t!="function")throw new TypeError(`${e} is not a function.`)}function Yb(t,e){if(!(function(r){return typeof r=="object"&&r!==null||typeof r=="function"})(t))throw new TypeError(`${e} is not an object.`)}function Qn(t,e,r){if(t===void 0)throw new TypeError(`Parameter ${e} is required in '${r}'.`)}function x9(t,e,r){if(t===void 0)throw new TypeError(`${e} is required in '${r}'.`)}function R9(t){return Number(t)}function xb(t){return t===0?0:t}function Qb(t,e){let r=Number.MAX_SAFE_INTEGER,n=Number(t);if(n=xb(n),!wb(n))throw new TypeError(`${e} is not a finite number`);if(n=(function(a){return xb(XC(a))})(n),n<0||n>r)throw new TypeError(`${e} is outside the accepted range of 0 to ${r}, inclusive`);return wb(n)&&n!==0?n:0}function al(t){if(!Dt(t)||typeof t.getReader!="function")return!1;try{return typeof t.locked=="boolean"}catch{return!1}}function ew(t){if(!Dt(t)||typeof t.getWriter!="function")return!1;try{return typeof t.locked=="boolean"}catch{return!1}}function tw(t,e){if(!Ai(t))throw new TypeError(`${e} is not a ReadableStream.`)}function rw(t,e){t._reader._readRequests.push(e)}function D9(t,e,r){let n=t._reader._readRequests.shift();r?n._closeSteps():n._chunkSteps(e)}function V1(t){return t._reader._readRequests.length}function nw(t){let e=t._reader;return e!==void 0&&!!Di(e)}function Di(t){return!!Dt(t)&&!!Object.prototype.hasOwnProperty.call(t,"_readRequests")&&t instanceof Bn}function aw(t,e){let r=t._readRequests;t._readRequests=new tr,r.forEach((n=>{n._errorSteps(e)}))}function g1(t){return new TypeError(`ReadableStreamDefaultReader.prototype.${t} can only be used on a ReadableStreamDefaultReader`)}function $b(t){if(!Dt(t)||!Object.prototype.hasOwnProperty.call(t,"_asyncIteratorImpl"))return!1;try{return t._asyncIteratorImpl instanceof P1}catch{return!1}}function Sb(t){return new TypeError(`ReadableStreamAsyncIterator.${t} can only be used on a ReadableSteamAsyncIterator`)}function sw(t,e,r,n,a){new Uint8Array(t).set(new Uint8Array(r,n,a),e)}function kb(t){let e=(function(r,n,a){if(r.slice)return r.slice(n,a);let i=a-n,o=new ArrayBuffer(i);return sw(o,0,r,n,i),o})(t.buffer,t.byteOffset,t.byteOffset+t.byteLength);return new Uint8Array(e)}function $9(t){let e=t._queue.shift();return t._queueTotalSize-=e.size,t._queueTotalSize<0&&(t._queueTotalSize=0),e.value}function A9(t,e,r){if(typeof(n=r)!="number"||ow(n)||n<0||r===1/0)throw new RangeError("Size must be a finite, non-NaN, non-negative number.");var n;t._queue.push({value:e,size:r}),t._queueTotalSize+=r}function Da(t){t._queue=new tr,t._queueTotalSize=0}function xs(t){return!!Dt(t)&&!!Object.prototype.hasOwnProperty.call(t,"_controlledReadableByteStream")&&t instanceof Wn}function g9(t){return!!Dt(t)&&!!Object.prototype.hasOwnProperty.call(t,"_associatedReadableByteStreamController")&&t instanceof Oa}function ji(t){if((function(r){let n=r._controlledReadableByteStream;return n._state!=="readable"||r._closeRequested||!r._started?!1:!!(nw(n)&&V1(n)>0||C9(n)&&gw(n)>0||hw(r)>0)})(t)){if(t._pulling)return void(t._pullAgain=!0);t._pulling=!0,Rt(t._pullAlgorithm(),(()=>(t._pulling=!1,t._pullAgain&&(t._pullAgain=!1,ji(t)),null)),(r=>(Es(t,r),null)))}}function dw(t){j9(t),t._pendingPullIntos=new tr}function S9(t,e){let r=!1;t._state==="closed"&&(r=!0);let n=pw(e);e.readerType==="default"?D9(t,n,r):(function(a,i,o){let s=a._reader._readIntoRequests.shift();o?s._closeSteps(i):s._chunkSteps(i)})(t,n,r)}function pw(t){let e=t.bytesFilled,r=t.elementSize;return new t.viewConstructor(t.buffer,t.byteOffset,e/r)}function k1(t,e,r,n){t._queue.push({buffer:e,byteOffset:r,byteLength:n}),t._queueTotalSize+=n}function lw(t,e,r,n){let a;try{a=e.slice(r,r+n)}catch(i){throw Es(t,i),i}k1(t,a,0,n)}function cw(t,e){e.bytesFilled>0&&lw(t,e.buffer,e.byteOffset,e.bytesFilled),Ss(t)}function uw(t,e){let r=e.elementSize,n=e.bytesFilled-e.bytesFilled%r,a=Math.min(t._queueTotalSize,e.byteLength-e.bytesFilled),i=e.bytesFilled+a,o=i-i%r,s=a,d=!1;o>n&&(s=o-e.bytesFilled,d=!0);let p=t._queue;for(;s>0;){let l=p.peek(),c=Math.min(s,l.byteLength),u=e.byteOffset+e.bytesFilled;sw(e.buffer,u,l.buffer,l.byteOffset,c),l.byteLength===c?p.shift():(l.byteOffset+=c,l.byteLength-=c),t._queueTotalSize-=c,mw(t,c,e),s-=c}return d}function mw(t,e,r){r.bytesFilled+=e}function fw(t){t._queueTotalSize===0&&t._closeRequested?(N1(t),pl(t._controlledReadableByteStream)):ji(t)}function j9(t){t._byobRequest!==null&&(t._byobRequest._associatedReadableByteStreamController=void 0,t._byobRequest._view=null,t._byobRequest=null)}function k9(t){for(;t._pendingPullIntos.length>0;){if(t._queueTotalSize===0)return;let e=t._pendingPullIntos.peek();uw(t,e)&&(Ss(t),S9(t._controlledReadableByteStream,e))}}function Tb(t,e){let r=t._pendingPullIntos.peek();j9(t),t._controlledReadableByteStream._state==="closed"?(function(n,a){a.readerType==="none"&&Ss(n);let i=n._controlledReadableByteStream;if(C9(i))for(;gw(i)>0;)S9(i,Ss(n))})(t,r):(function(n,a,i){if(mw(0,a,i),i.readerType==="none")return cw(n,i),void k9(n);if(i.bytesFilled0){let s=i.byteOffset+i.bytesFilled;lw(n,i.buffer,s-o,o)}i.bytesFilled-=o,S9(n._controlledReadableByteStream,i),k9(n)})(t,e,r),ji(t)}function Ss(t){return t._pendingPullIntos.shift()}function N1(t){t._pullAlgorithm=void 0,t._cancelAlgorithm=void 0}function Es(t,e){let r=t._controlledReadableByteStream;r._state==="readable"&&(dw(t),Da(t),N1(t),Iw(r,e))}function Eb(t,e){let r=t._queue.shift();t._queueTotalSize-=r.byteLength,fw(t);let n=new Uint8Array(r.buffer,r.byteOffset,r.byteLength);e._chunkSteps(n)}function hw(t){let e=t._controlledReadableByteStream._state;return e==="errored"?null:e==="closed"?0:t._strategyHWM-t._queueTotalSize}function YC(t,e,r){let n=Object.create(Wn.prototype),a,i,o;a=e.start!==void 0?()=>e.start(n):()=>{},i=e.pull!==void 0?()=>e.pull(n):()=>ze(void 0),o=e.cancel!==void 0?d=>e.cancel(d):()=>ze(void 0);let s=e.autoAllocateChunkSize;if(s===0)throw new TypeError("autoAllocateChunkSize must be greater than 0");(function(d,p,l,c,u,m,f){p._controlledReadableByteStream=d,p._pullAgain=!1,p._pulling=!1,p._byobRequest=null,p._queue=p._queueTotalSize=void 0,Da(p),p._closeRequested=!1,p._started=!1,p._strategyHWM=m,p._pullAlgorithm=c,p._cancelAlgorithm=u,p._autoAllocateChunkSize=f,p._pendingPullIntos=new tr,d._readableStreamController=p,Rt(ze(l()),(()=>(p._started=!0,ji(p),null)),(g=>(Es(p,g),null)))})(t,n,a,i,o,r,s)}function v9(t){return new TypeError(`ReadableStreamBYOBRequest.prototype.${t} can only be used on a ReadableStreamBYOBRequest`)}function rl(t){return new TypeError(`ReadableByteStreamController.prototype.${t} can only be used on a ReadableByteStreamController`)}function Ib(t,e){t._reader._readIntoRequests.push(e)}function gw(t){return t._reader._readIntoRequests.length}function C9(t){let e=t._reader;return e!==void 0&&!!$s(e)}function $s(t){return!!Dt(t)&&!!Object.prototype.hasOwnProperty.call(t,"_readIntoRequests")&&t instanceof Jn}function vw(t,e){let r=t._readIntoRequests;t._readIntoRequests=new tr,r.forEach((n=>{n._errorSteps(e)}))}function v1(t){return new TypeError(`ReadableStreamBYOBReader.prototype.${t} can only be used on a ReadableStreamBYOBReader`)}function dl(t,e){let{highWaterMark:r}=t;if(r===void 0)return e;if(ow(r)||r<0)throw new RangeError("Invalid highWaterMark");return r}function z1(t){let{size:e}=t;return e||(()=>1)}function O1(t,e){Yn(t,e);let r=t?.highWaterMark,n=t?.size;return{highWaterMark:r===void 0?void 0:R9(r),size:n===void 0?void 0:QC(n,`${e} has member 'size' that`)}}function QC(t,e){return Kr(t,e),r=>R9(t(r))}function eU(t,e,r){return Kr(t,r),n=>Ci(t,e,[n])}function tU(t,e,r){return Kr(t,r),()=>Ci(t,e,[])}function rU(t,e,r){return Kr(t,r),n=>U1(t,e,[n])}function nU(t,e,r){return Kr(t,r),(n,a)=>Ci(t,e,[n,a])}function hn(t){return!!Dt(t)&&!!Object.prototype.hasOwnProperty.call(t,"_writableStreamController")&&t instanceof Gn}function T1(t){return t._writer!==void 0}function yw(t,e){var r;if(t._state==="closed"||t._state==="errored")return ze(void 0);t._writableStreamController._abortReason=e,(r=t._writableStreamController._abortController)===null||r===void 0||r.abort(e);let n=t._state;if(n==="closed"||n==="errored")return ze(void 0);if(t._pendingAbortRequest!==void 0)return t._pendingAbortRequest._promise;let a=!1;n==="erroring"&&(a=!0,e=void 0);let i=Wt(((o,s)=>{t._pendingAbortRequest={_promise:void 0,_resolve:o,_reject:s,_reason:e,_wasAlreadyErroring:a}}));return t._pendingAbortRequest._promise=i,a||U9(t,e),i}function _w(t){let e=t._state;if(e==="closed"||e==="errored")return K(new TypeError(`The stream (in ${e} state) is not in the writable state and cannot be closed`));let r=Wt(((i,o)=>{let s={_resolve:i,_reject:o};t._closeRequest=s})),n=t._writer;var a;return n!==void 0&&t._backpressure&&e==="writable"&&Z9(n),A9(a=t._writableStreamController,ww,0),L1(a),r}function T9(t,e){t._state!=="writable"?V9(t):U9(t,e)}function U9(t,e){let r=t._writableStreamController;t._state="erroring",t._storedError=e;let n=t._writer;n!==void 0&&bw(n,e),!(function(a){return!(a._inFlightWriteRequest===void 0&&a._inFlightCloseRequest===void 0)})(t)&&r._started&&V9(t)}function V9(t){t._state="errored",t._writableStreamController[Wb]();let e=t._storedError;if(t._writeRequests.forEach((n=>{n._reject(e)})),t._writeRequests=new tr,t._pendingAbortRequest===void 0)return void y1(t);let r=t._pendingAbortRequest;if(t._pendingAbortRequest=void 0,r._wasAlreadyErroring)return r._reject(e),void y1(t);Rt(t._writableStreamController[Bb](r._reason),(()=>(r._resolve(),y1(t),null)),(n=>(r._reject(n),y1(t),null)))}function Ra(t){return t._closeRequest!==void 0||t._inFlightCloseRequest!==void 0}function y1(t){t._closeRequest!==void 0&&(t._closeRequest._reject(t._storedError),t._closeRequest=void 0);let e=t._writer;e!==void 0&&q9(e,t._storedError)}function L9(t,e){let r=t._writer;r!==void 0&&e!==t._backpressure&&(e?(function(n){M1(n)})(r):Z9(r)),t._backpressure=e}function zi(t){return!!Dt(t)&&!!Object.prototype.hasOwnProperty.call(t,"_ownerWritableStream")&&t instanceof fn}function bw(t,e){t._readyPromiseState==="pending"?kw(t,e):(function(r,n){E9(r,n)})(t,e)}function y9(t){return!!Dt(t)&&!!Object.prototype.hasOwnProperty.call(t,"_controlledWritableStream")&&t instanceof Is}function R1(t){t._writeAlgorithm=void 0,t._closeAlgorithm=void 0,t._abortAlgorithm=void 0,t._strategySizeAlgorithm=void 0}function xw(t){return t._strategyHWM-t._queueTotalSize}function L1(t){let e=t._controlledWritableStream;if(!t._started||e._inFlightWriteRequest!==void 0)return;if(e._state==="erroring")return void V9(e);if(t._queue.length===0)return;let r=t._queue.peek().value;r===ww?(function(n){let a=n._controlledWritableStream;(function(o){o._inFlightCloseRequest=o._closeRequest,o._closeRequest=void 0})(a),$9(n);let i=n._closeAlgorithm();R1(n),Rt(i,(()=>((function(o){o._inFlightCloseRequest._resolve(void 0),o._inFlightCloseRequest=void 0,o._state==="erroring"&&(o._storedError=void 0,o._pendingAbortRequest!==void 0&&(o._pendingAbortRequest._resolve(),o._pendingAbortRequest=void 0)),o._state="closed";let s=o._writer;s!==void 0&&Sw(s)})(a),null)),(o=>((function(s,d){s._inFlightCloseRequest._reject(d),s._inFlightCloseRequest=void 0,s._pendingAbortRequest!==void 0&&(s._pendingAbortRequest._reject(d),s._pendingAbortRequest=void 0),T9(s,d)})(a,o),null)))})(t):(function(n,a){let i=n._controlledWritableStream;(function(o){o._inFlightWriteRequest=o._writeRequests.shift()})(i),Rt(n._writeAlgorithm(a),(()=>{(function(s){s._inFlightWriteRequest._resolve(void 0),s._inFlightWriteRequest=void 0})(i);let o=i._state;if($9(n),!Ra(i)&&o==="writable"){let s=M9(n);L9(i,s)}return L1(n),null}),(o=>(i._state==="writable"&&R1(n),(function(s,d){s._inFlightWriteRequest._reject(d),s._inFlightWriteRequest=void 0,T9(s,d)})(i,o),null)))})(t,r)}function Pb(t,e){t._controlledWritableStream._state==="writable"&&$w(t,e)}function M9(t){return xw(t)<=0}function $w(t,e){let r=t._controlledWritableStream;R1(t),U9(r,e)}function _1(t){return new TypeError(`WritableStream.prototype.${t} can only be used on a WritableStream`)}function _9(t){return new TypeError(`WritableStreamDefaultController.prototype.${t} can only be used on a WritableStreamDefaultController`)}function Oi(t){return new TypeError(`WritableStreamDefaultWriter.prototype.${t} can only be used on a WritableStreamDefaultWriter`)}function nl(t){return new TypeError("Cannot "+t+" a stream using a released writer")}function E1(t){t._closedPromise=Wt(((e,r)=>{t._closedPromise_resolve=e,t._closedPromise_reject=r,t._closedPromiseState="pending"}))}function Nb(t,e){E1(t),q9(t,e)}function q9(t,e){t._closedPromise_reject!==void 0&&(ks(t._closedPromise),t._closedPromise_reject(e),t._closedPromise_resolve=void 0,t._closedPromise_reject=void 0,t._closedPromiseState="rejected")}function Sw(t){t._closedPromise_resolve!==void 0&&(t._closedPromise_resolve(void 0),t._closedPromise_resolve=void 0,t._closedPromise_reject=void 0,t._closedPromiseState="resolved")}function M1(t){t._readyPromise=Wt(((e,r)=>{t._readyPromise_resolve=e,t._readyPromise_reject=r})),t._readyPromiseState="pending"}function E9(t,e){M1(t),kw(t,e)}function zb(t){M1(t),Z9(t)}function kw(t,e){t._readyPromise_reject!==void 0&&(ks(t._readyPromise),t._readyPromise_reject(e),t._readyPromise_resolve=void 0,t._readyPromise_reject=void 0,t._readyPromiseState="rejected")}function Z9(t){t._readyPromise_resolve!==void 0&&(t._readyPromise_resolve(void 0),t._readyPromise_resolve=void 0,t._readyPromise_reject=void 0,t._readyPromiseState="fulfilled")}function Rb(t,e,r,n,a,i){let o=t.getReader(),s=e.getWriter();Ai(t)&&(t._disturbed=!0);let d,p,l,c=!1,u=!1,m="readable",f="writable",g=!1,y=!1,b=Wt((E=>{l=E})),S=Promise.resolve(void 0);return Wt(((E,T)=>{let k;function Te(){if(c)return;let le=Wt(((Oe,ye)=>{(function Re(dr){dr?Oe():Xn((function(){return c?ze(!0):Xn(s.ready,(()=>Xn(o.read(),(Ut=>!!Ut.done||(S=s.write(Ut.value),ks(S),!1)))))})(),Re,ye)})(!1)}));ks(le)}function qe(){return m="closed",r?Pe():ae((()=>(hn(e)&&(g=Ra(e),f=e._state),g||f==="closed"?ze(void 0):f==="erroring"||f==="errored"?K(p):(g=!0,s.close()))),!1,void 0),null}function M(le){return c||(m="errored",d=le,n?Pe(!0,le):ae((()=>s.abort(le)),!0,le)),null}function q(le){return u||(f="errored",p=le,a?Pe(!0,le):ae((()=>o.cancel(le)),!0,le)),null}if(i!==void 0&&(k=()=>{let le=i.reason!==void 0?i.reason:new iU("Aborted","AbortError"),Oe=[];n||Oe.push((()=>f==="writable"?s.abort(le):ze(void 0))),a||Oe.push((()=>m==="readable"?o.cancel(le):ze(void 0))),ae((()=>Promise.all(Oe.map((ye=>ye())))),!0,le)},i.aborted?k():i.addEventListener("abort",k)),Ai(t)&&(m=t._state,d=t._storedError),hn(e)&&(f=e._state,p=e._storedError,g=Ra(e)),Ai(t)&&hn(e)&&(y=!0,l()),m==="errored")M(d);else if(f==="erroring"||f==="errored")q(p);else if(m==="closed")qe();else if(g||f==="closed"){let le=new TypeError("the destination writable stream closed before all data could be piped to it");a?Pe(!0,le):ae((()=>o.cancel(le)),!0,le)}function ae(le,Oe,ye){function Re(){return f!=="writable"||g?dr():_b((function(){let Ut;return ze((function So(){if(Ut!==S)return Ut=S,Hr(S,So,So)})())})(),dr),null}function dr(){return le?Rt(le(),(()=>ct(Oe,ye)),(Ut=>ct(!0,Ut))):ct(Oe,ye),null}c||(c=!0,y?Re():_b(b,Re))}function Pe(le,Oe){ae(void 0,le,Oe)}function ct(le,Oe){return u=!0,s.releaseLock(),o.releaseLock(),i!==void 0&&i.removeEventListener("abort",k),le?T(Oe):E(void 0),null}c||(Rt(o.closed,qe,M),Rt(s.closed,(function(){return u||(f="closed"),null}),q)),y?Te():S1((()=>{y=!0,l(),Te()}))}))}function oU(t,e){return(function(r){try{return r.getReader({mode:"byob"}).releaseLock(),!0}catch{return!1}})(t)?(function(r){let n,a,i,o,s,d=r.getReader(),p=!1,l=!1,c=!1,u=!1,m=!1,f=!1,g=Wt((q=>{s=q}));function y(q){bb(q.closed,(ae=>(q!==d||(i.error(ae),o.error(ae),m&&f||s(void 0)),null)))}function b(){p&&(d.releaseLock(),d=r.getReader(),y(d),p=!1),Rt(d.read(),(q=>{var ae,Pe;if(c=!1,u=!1,q.done)return m||i.close(),f||o.close(),(ae=i.byobRequest)===null||ae===void 0||ae.respond(0),(Pe=o.byobRequest)===null||Pe===void 0||Pe.respond(0),m&&f||s(void 0),null;let ct=q.value,le=ct,Oe=ct;if(!m&&!f)try{Oe=kb(ct)}catch(ye){return i.error(ye),o.error(ye),s(d.cancel(ye)),null}return m||i.enqueue(le),f||o.enqueue(Oe),l=!1,c?E():u&&T(),null}),(()=>(l=!1,null)))}function S(q,ae){p||(d.releaseLock(),d=r.getReader({mode:"byob"}),y(d),p=!0);let Pe=ae?o:i,ct=ae?i:o;Rt(d.read(q),(le=>{var Oe;c=!1,u=!1;let ye=ae?f:m,Re=ae?m:f;if(le.done){ye||Pe.close(),Re||ct.close();let Ut=le.value;return Ut!==void 0&&(ye||Pe.byobRequest.respondWithNewView(Ut),Re||(Oe=ct.byobRequest)===null||Oe===void 0||Oe.respond(0)),ye&&Re||s(void 0),null}let dr=le.value;if(Re)ye||Pe.byobRequest.respondWithNewView(dr);else{let Ut;try{Ut=kb(dr)}catch(So){return Pe.error(So),ct.error(So),s(d.cancel(So)),null}ye||Pe.byobRequest.respondWithNewView(dr),ct.enqueue(Ut)}return l=!1,c?E():u&&T(),null}),(()=>(l=!1,null)))}function E(){if(l)return c=!0,ze(void 0);l=!0;let q=i.byobRequest;return q===null?b():S(q.view,!1),ze(void 0)}function T(){if(l)return u=!0,ze(void 0);l=!0;let q=o.byobRequest;return q===null?b():S(q.view,!0),ze(void 0)}function k(q){if(m=!0,n=q,f){let ae=[n,a],Pe=d.cancel(ae);s(Pe)}return g}function Te(q){if(f=!0,a=q,m){let ae=[n,a],Pe=d.cancel(ae);s(Pe)}return g}let qe=new lt({type:"bytes",start(q){i=q},pull:E,cancel:k}),M=new lt({type:"bytes",start(q){o=q},pull:T,cancel:Te});return y(d),[qe,M]})(t):(function(r,n){let a=r.getReader(),i,o,s,d,p,l=!1,c=!1,u=!1,m=!1,f=Wt((T=>{p=T}));function g(){return l?(c=!0,ze(void 0)):(l=!0,Rt(a.read(),(T=>{if(c=!1,T.done)return u||s.close(),m||d.close(),u&&m||p(void 0),null;let k=T.value,Te=k,qe=k;return u||s.enqueue(Te),m||d.enqueue(qe),l=!1,c&&g(),null}),(()=>(l=!1,null))),ze(void 0))}function y(T){if(u=!0,i=T,m){let k=[i,o],Te=a.cancel(k);p(Te)}return f}function b(T){if(m=!0,o=T,u){let k=[i,o],Te=a.cancel(k);p(Te)}return f}let S=new lt({start(T){s=T},pull:g,cancel:y}),E=new lt({start(T){d=T},pull:g,cancel:b});return bb(a.closed,(T=>(s.error(T),d.error(T),u&&m||p(void 0),null))),[S,E]})(t)}function b1(t){return!!Dt(t)&&!!Object.prototype.hasOwnProperty.call(t,"_controlledReadableStream")&&t instanceof Hn}function ol(t){if((function(r){let n=r._controlledReadableStream;return!il(r)||!r._started?!1:!!(Ps(n)&&V1(n)>0||Tw(r)>0)})(t)){if(t._pulling)return void(t._pullAgain=!0);t._pulling=!0,Rt(t._pullAlgorithm(),(()=>(t._pulling=!1,t._pullAgain&&(t._pullAgain=!1,ol(t)),null)),(r=>(sl(t,r),null)))}}function I1(t){t._pullAlgorithm=void 0,t._cancelAlgorithm=void 0,t._strategySizeAlgorithm=void 0}function sl(t,e){let r=t._controlledReadableStream;r._state==="readable"&&(Da(t),I1(t),Iw(r,e))}function Tw(t){let e=t._controlledReadableStream._state;return e==="errored"?null:e==="closed"?0:t._strategyHWM-t._queueTotalSize}function il(t){return!t._closeRequested&&t._controlledReadableStream._state==="readable"}function sU(t,e,r,n){let a=Object.create(Hn.prototype),i,o,s;i=e.start!==void 0?()=>e.start(a):()=>{},o=e.pull!==void 0?()=>e.pull(a):()=>ze(void 0),s=e.cancel!==void 0?d=>e.cancel(d):()=>ze(void 0),(function(d,p,l,c,u,m,f){p._controlledReadableStream=d,p._queue=void 0,p._queueTotalSize=void 0,Da(p),p._started=!1,p._closeRequested=!1,p._pullAgain=!1,p._pulling=!1,p._strategySizeAlgorithm=f,p._strategyHWM=m,p._pullAlgorithm=c,p._cancelAlgorithm=u,d._readableStreamController=p,Rt(ze(l()),(()=>(p._started=!0,ol(p),null)),(g=>(sl(p,g),null)))})(t,a,i,o,s,r,n)}function w1(t){return new TypeError(`ReadableStreamDefaultController.prototype.${t} can only be used on a ReadableStreamDefaultController`)}function dU(t,e,r){return Kr(t,r),n=>Ci(t,e,[n])}function pU(t,e,r){return Kr(t,r),n=>Ci(t,e,[n])}function lU(t,e,r){return Kr(t,r),n=>U1(t,e,[n])}function cU(t,e){if((t=`${t}`)!="bytes")throw new TypeError(`${e} '${t}' is not a valid enumeration value for ReadableStreamType`);return t}function uU(t,e){if((t=`${t}`)!="byob")throw new TypeError(`${e} '${t}' is not a valid enumeration value for ReadableStreamReaderMode`);return t}function Db(t,e){Yn(t,e);let r=t?.preventAbort,n=t?.preventCancel,a=t?.preventClose,i=t?.signal;return i!==void 0&&(function(o,s){if(!(function(d){if(typeof d!="object"||d===null)return!1;try{return typeof d.aborted=="boolean"}catch{return!1}})(o))throw new TypeError(`${s} is not an AbortSignal.`)})(i,`${e} has member 'signal' that`),{preventAbort:!!r,preventCancel:!!n,preventClose:!!a,signal:i}}function mU(t,e){Yn(t,e);let r=t?.readable;x9(r,"readable","ReadableWritablePair"),(function(a,i){if(!al(a))throw new TypeError(`${i} is not a ReadableStream.`)})(r,`${e} has member 'readable' that`);let n=t?.writable;return x9(n,"writable","ReadableWritablePair"),(function(a,i){if(!ew(a))throw new TypeError(`${i} is not a WritableStream.`)})(n,`${e} has member 'writable' that`),{readable:r,writable:n}}function Ai(t){return!!Dt(t)&&!!Object.prototype.hasOwnProperty.call(t,"_readableStreamController")&&t instanceof lt}function Ps(t){return t._reader!==void 0}function Ew(t,e){if(t._disturbed=!0,t._state==="closed")return ze(void 0);if(t._state==="errored")return K(t._storedError);pl(t);let r=t._reader;if(r!==void 0&&$s(r)){let n=r._readIntoRequests;r._readIntoRequests=new tr,n.forEach((a=>{a._closeSteps(void 0)}))}return Hr(t._readableStreamController[P9](e),Zb)}function pl(t){t._state="closed";let e=t._reader;if(e!==void 0&&(Xb(e),Di(e))){let r=e._readRequests;e._readRequests=new tr,r.forEach((n=>{n._closeSteps()}))}}function Iw(t,e){t._state="errored",t._storedError=e;let r=t._reader;r!==void 0&&(O9(r,e),Di(r)?aw(r,e):vw(r,e))}function Ri(t){return new TypeError(`ReadableStream.prototype.${t} can only be used on a ReadableStream`)}function Pw(t,e){Yn(t,e);let r=t?.highWaterMark;return x9(r,"highWaterMark","QueuingStrategyInit"),{highWaterMark:R9(r)}}function Ab(t){return new TypeError(`ByteLengthQueuingStrategy.prototype.${t} can only be used on a ByteLengthQueuingStrategy`)}function jb(t){return!!Dt(t)&&!!Object.prototype.hasOwnProperty.call(t,"_byteLengthQueuingStrategyHighWaterMark")&&t instanceof ll}function Cb(t){return new TypeError(`CountQueuingStrategy.prototype.${t} can only be used on a CountQueuingStrategy`)}function Ub(t){return!!Dt(t)&&!!Object.prototype.hasOwnProperty.call(t,"_countQueuingStrategyHighWaterMark")&&t instanceof cl}function fU(t,e,r){return Kr(t,r),n=>Ci(t,e,[n])}function hU(t,e,r){return Kr(t,r),n=>U1(t,e,[n])}function gU(t,e,r){return Kr(t,r),(n,a)=>Ci(t,e,[n,a])}function Vb(t){return!!Dt(t)&&!!Object.prototype.hasOwnProperty.call(t,"_transformStreamController")&&t instanceof ul}function D1(t,e){C1(t,e),q1(t,e)}function q1(t,e){Ow(t._transformStreamController),(function(r,n){r._writableController.error(n),r._writableState==="writable"&&jw(r,n)})(t,e),t._backpressure&&A1(t,!1)}function A1(t,e){t._backpressureChangePromise!==void 0&&t._backpressureChangePromise_resolve(),t._backpressureChangePromise=Wt((r=>{t._backpressureChangePromise_resolve=r})),t._backpressure=e}function x1(t){return!!Dt(t)&&!!Object.prototype.hasOwnProperty.call(t,"_controlledTransformStream")&&t instanceof Kn}function Ow(t){t._transformAlgorithm=void 0,t._flushAlgorithm=void 0}function Rw(t,e){let r=t._controlledTransformStream;if(!j1(r))throw new TypeError("Readable side is not in a state that permits enqueue");try{(function(a,i){a._readablePulling=!1;try{a._readableController.enqueue(i)}catch(o){throw C1(a,o),o}})(r,e)}catch(a){throw q1(r,a),r._readableStoredError}(function(a){return!(function(i){return j1(i)?!!(i._readablePulling||Aw(i)>0):!1})(a)})(r)!==r._backpressure&&A1(r,!0)}function Lb(t,e){return Hr(t._transformAlgorithm(e),void 0,(r=>{throw D1(t._controlledTransformStream,r),r}))}function $1(t){return new TypeError(`TransformStreamDefaultController.prototype.${t} can only be used on a TransformStreamDefaultController`)}function Mb(t){return new TypeError(`TransformStream.prototype.${t} can only be used on a TransformStream`)}function j1(t){return!t._readableCloseRequested&&t._readableState==="readable"}function Dw(t){t._readableState="closed",t._readableCloseRequested=!0,t._readableController.close()}function C1(t,e){t._readableState==="readable"&&(t._readableState="errored",t._readableStoredError=e),t._readableController.error(e)}function Aw(t){return t._readableController.desiredSize}function b9(t,e){t._writableState!=="writable"?F9(t):jw(t,e)}function jw(t,e){t._writableState="erroring",t._writableStoredError=e,!(function(r){return r._writableHasInFlightOperation})(t)&&t._writableStarted&&F9(t)}function F9(t){t._writableState="errored"}function qb(t){t._writableState==="erroring"&&F9(t)}var $e,Fb,I9,GC,HC,KC,S1,tr,Bb,Wb,P9,N9,z9,wb,XC,Bn,P1,iw,ow,Oa,Wn,Jn,aU,Gn,fn,ww,Is,Ob,iU,Hn,lt,Nw,ll,zw,cl,ul,Kn,Cw=sa(()=>{$e=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol:t=>`Symbol(${t})`;Fb=Zb;I9=Promise,GC=Promise.prototype.then,HC=Promise.resolve.bind(I9),KC=Promise.reject.bind(I9);S1=t=>{if(typeof queueMicrotask=="function")S1=queueMicrotask;else{let e=ze(void 0);S1=r=>Xn(e,r)}return S1(t)};tr=class{constructor(){this._cursor=0,this._size=0,this._front={_elements:[],_next:void 0},this._back=this._front,this._cursor=0,this._size=0}get length(){return this._size}push(e){let r=this._back,n=r;r._elements.length===16383&&(n={_elements:[],_next:void 0}),r._elements.push(e),n!==r&&(this._back=n,r._next=n),++this._size}shift(){let e=this._front,r=e,n=this._cursor,a=n+1,i=e._elements,o=i[n];return a===16384&&(r=e._next,a=0),--this._size,this._cursor=a,e!==r&&(this._front=r),i[n]=void 0,o}forEach(e){let r=this._cursor,n=this._front,a=n._elements;for(;!(r===a.length&&n._next===void 0||r===a.length&&(n=n._next,a=n._elements,r=0,a.length===0));)e(a[r]),++r}peek(){let e=this._front,r=this._cursor;return e._elements[r]}},Bb=$e("[[AbortSteps]]"),Wb=$e("[[ErrorSteps]]"),P9=$e("[[CancelSteps]]"),N9=$e("[[PullSteps]]"),z9=$e("[[ReleaseSteps]]");wb=Number.isFinite||function(t){return typeof t=="number"&&isFinite(t)},XC=Math.trunc||function(t){return t<0?Math.ceil(t):Math.floor(t)};Bn=class{constructor(e){if(Qn(e,1,"ReadableStreamDefaultReader"),tw(e,"First parameter"),Ps(e))throw new TypeError("This stream has already been locked for exclusive reading by another reader");Jb(this,e),this._readRequests=new tr}get closed(){return Di(this)?this._closedPromise:K(g1("closed"))}cancel(e){return Di(this)?this._ownerReadableStream===void 0?K(Ts("cancel")):Gb(this,e):K(g1("cancel"))}read(){if(!Di(this))return K(g1("read"));if(this._ownerReadableStream===void 0)return K(Ts("read from"));let e,r,n=Wt(((a,i)=>{e=a,r=i}));return(function(a,i){let o=a._ownerReadableStream;o._disturbed=!0,o._state==="closed"?i._closeSteps():o._state==="errored"?i._errorSteps(o._storedError):o._readableStreamController[N9](i)})(this,{_chunkSteps:a=>e({value:a,done:!1}),_closeSteps:()=>e({value:void 0,done:!0}),_errorSteps:a=>r(a)}),n}releaseLock(){if(!Di(this))throw g1("releaseLock");this._ownerReadableStream!==void 0&&(function(e){Hb(e);let r=new TypeError("Reader was released");aw(e,r)})(this)}};Object.defineProperties(Bn.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),Ie(Bn.prototype.cancel,"cancel"),Ie(Bn.prototype.read,"read"),Ie(Bn.prototype.releaseLock,"releaseLock"),typeof $e.toStringTag=="symbol"&&Object.defineProperty(Bn.prototype,$e.toStringTag,{value:"ReadableStreamDefaultReader",configurable:!0});P1=class{constructor(e,r){this._ongoingPromise=void 0,this._isFinished=!1,this._reader=e,this._preventCancel=r}next(){let e=()=>this._nextSteps();return this._ongoingPromise=this._ongoingPromise?Hr(this._ongoingPromise,e,e):e(),this._ongoingPromise}return(e){let r=()=>this._returnSteps(e);return this._ongoingPromise?Hr(this._ongoingPromise,r,r):r()}_nextSteps(){if(this._isFinished)return Promise.resolve({value:void 0,done:!0});let e=this._reader;return e===void 0?K(Ts("iterate")):Xn(e.read(),(r=>{var n;return this._ongoingPromise=void 0,r.done&&(this._isFinished=!0,(n=this._reader)===null||n===void 0||n.releaseLock(),this._reader=void 0),r}),(r=>{var n;throw this._ongoingPromise=void 0,this._isFinished=!0,(n=this._reader)===null||n===void 0||n.releaseLock(),this._reader=void 0,r}))}_returnSteps(e){if(this._isFinished)return Promise.resolve({value:e,done:!0});this._isFinished=!0;let r=this._reader;if(r===void 0)return K(Ts("finish iterating"));if(this._reader=void 0,!this._preventCancel){let n=r.cancel(e);return r.releaseLock(),Hr(n,(()=>({value:e,done:!0})))}return r.releaseLock(),ze({value:e,done:!0})}},iw={next(){return $b(this)?this._asyncIteratorImpl.next():K(Sb("next"))},return(t){return $b(this)?this._asyncIteratorImpl.return(t):K(Sb("return"))}};typeof $e.asyncIterator=="symbol"&&Object.defineProperty(iw,$e.asyncIterator,{value(){return this},writable:!0,configurable:!0});ow=Number.isNaN||function(t){return t!=t};Oa=class{constructor(){throw new TypeError("Illegal constructor")}get view(){if(!g9(this))throw v9("view");return this._view}respond(e){if(!g9(this))throw v9("respond");if(Qn(e,1,"respond"),e=Qb(e,"First parameter"),this._associatedReadableByteStreamController===void 0)throw new TypeError("This BYOB request has been invalidated");this._view.buffer,(function(r,n){let a=r._pendingPullIntos.peek();if(r._controlledReadableByteStream._state==="closed"){if(n!==0)throw new TypeError("bytesWritten must be 0 when calling respond() on a closed stream")}else{if(n===0)throw new TypeError("bytesWritten must be greater than 0 when calling respond() on a readable stream");if(a.bytesFilled+n>a.byteLength)throw new RangeError("bytesWritten out of range")}a.buffer=a.buffer,Tb(r,n)})(this._associatedReadableByteStreamController,e)}respondWithNewView(e){if(!g9(this))throw v9("respondWithNewView");if(Qn(e,1,"respondWithNewView"),!ArrayBuffer.isView(e))throw new TypeError("You can only respond with array buffer views");if(this._associatedReadableByteStreamController===void 0)throw new TypeError("This BYOB request has been invalidated");e.buffer,(function(r,n){let a=r._pendingPullIntos.peek();if(r._controlledReadableByteStream._state==="closed"){if(n.byteLength!==0)throw new TypeError("The view's length must be 0 when calling respondWithNewView() on a closed stream")}else if(n.byteLength===0)throw new TypeError("The view's length must be greater than 0 when calling respondWithNewView() on a readable stream");if(a.byteOffset+a.bytesFilled!==n.byteOffset)throw new RangeError("The region specified by view does not match byobRequest");if(a.bufferByteLength!==n.buffer.byteLength)throw new RangeError("The buffer of view has different capacity than byobRequest");if(a.bytesFilled+n.byteLength>a.byteLength)throw new RangeError("The region specified by view is larger than byobRequest");let i=n.byteLength;a.buffer=n.buffer,Tb(r,i)})(this._associatedReadableByteStreamController,e)}};Object.defineProperties(Oa.prototype,{respond:{enumerable:!0},respondWithNewView:{enumerable:!0},view:{enumerable:!0}}),Ie(Oa.prototype.respond,"respond"),Ie(Oa.prototype.respondWithNewView,"respondWithNewView"),typeof $e.toStringTag=="symbol"&&Object.defineProperty(Oa.prototype,$e.toStringTag,{value:"ReadableStreamBYOBRequest",configurable:!0});Wn=class{constructor(){throw new TypeError("Illegal constructor")}get byobRequest(){if(!xs(this))throw rl("byobRequest");return(function(e){if(e._byobRequest===null&&e._pendingPullIntos.length>0){let r=e._pendingPullIntos.peek(),n=new Uint8Array(r.buffer,r.byteOffset+r.bytesFilled,r.byteLength-r.bytesFilled),a=Object.create(Oa.prototype);(function(i,o,s){i._associatedReadableByteStreamController=o,i._view=s})(a,e,n),e._byobRequest=a}return e._byobRequest})(this)}get desiredSize(){if(!xs(this))throw rl("desiredSize");return hw(this)}close(){if(!xs(this))throw rl("close");if(this._closeRequested)throw new TypeError("The stream has already been closed; do not close it again!");let e=this._controlledReadableByteStream._state;if(e!=="readable")throw new TypeError(`The stream (in ${e} state) is not in the readable state and cannot be closed`);(function(r){let n=r._controlledReadableByteStream;if(!(r._closeRequested||n._state!=="readable")){if(r._queueTotalSize>0)return void(r._closeRequested=!0);if(r._pendingPullIntos.length>0&&r._pendingPullIntos.peek().bytesFilled>0){let a=new TypeError("Insufficient bytes to fill elements in the given buffer");throw Es(r,a),a}N1(r),pl(n)}})(this)}enqueue(e){if(!xs(this))throw rl("enqueue");if(Qn(e,1,"enqueue"),!ArrayBuffer.isView(e))throw new TypeError("chunk must be an array buffer view");if(e.byteLength===0)throw new TypeError("chunk must have non-zero byteLength");if(e.buffer.byteLength===0)throw new TypeError("chunk's buffer must have non-zero byteLength");if(this._closeRequested)throw new TypeError("stream is closed or draining");let r=this._controlledReadableByteStream._state;if(r!=="readable")throw new TypeError(`The stream (in ${r} state) is not in the readable state and cannot be enqueued to`);(function(n,a){let i=n._controlledReadableByteStream;if(n._closeRequested||i._state!=="readable")return;let o=a.buffer,s=a.byteOffset,d=a.byteLength,p=o;if(n._pendingPullIntos.length>0){let l=n._pendingPullIntos.peek();l.buffer,j9(n),l.buffer=l.buffer,l.readerType==="none"&&cw(n,l)}nw(i)?((function(l){let c=l._controlledReadableByteStream._reader;for(;c._readRequests.length>0;){if(l._queueTotalSize===0)return;Eb(l,c._readRequests.shift())}})(n),V1(i)===0?k1(n,p,s,d):(n._pendingPullIntos.length>0&&Ss(n),D9(i,new Uint8Array(p,s,d),!1))):C9(i)?(k1(n,p,s,d),k9(n)):k1(n,p,s,d),ji(n)})(this,e)}error(e){if(!xs(this))throw rl("error");Es(this,e)}[P9](e){dw(this),Da(this);let r=this._cancelAlgorithm(e);return N1(this),r}[N9](e){let r=this._controlledReadableByteStream;if(this._queueTotalSize>0)return void Eb(this,e);let n=this._autoAllocateChunkSize;if(n!==void 0){let a;try{a=new ArrayBuffer(n)}catch(o){return void e._errorSteps(o)}let i={buffer:a,bufferByteLength:n,byteOffset:0,byteLength:n,bytesFilled:0,elementSize:1,viewConstructor:Uint8Array,readerType:"default"};this._pendingPullIntos.push(i)}rw(r,e),ji(this)}[z9](){if(this._pendingPullIntos.length>0){let e=this._pendingPullIntos.peek();e.readerType="none",this._pendingPullIntos=new tr,this._pendingPullIntos.push(e)}}};Object.defineProperties(Wn.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},byobRequest:{enumerable:!0},desiredSize:{enumerable:!0}}),Ie(Wn.prototype.close,"close"),Ie(Wn.prototype.enqueue,"enqueue"),Ie(Wn.prototype.error,"error"),typeof $e.toStringTag=="symbol"&&Object.defineProperty(Wn.prototype,$e.toStringTag,{value:"ReadableByteStreamController",configurable:!0});Jn=class{constructor(e){if(Qn(e,1,"ReadableStreamBYOBReader"),tw(e,"First parameter"),Ps(e))throw new TypeError("This stream has already been locked for exclusive reading by another reader");if(!xs(e._readableStreamController))throw new TypeError("Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte source");Jb(this,e),this._readIntoRequests=new tr}get closed(){return $s(this)?this._closedPromise:K(v1("closed"))}cancel(e){return $s(this)?this._ownerReadableStream===void 0?K(Ts("cancel")):Gb(this,e):K(v1("cancel"))}read(e){if(!$s(this))return K(v1("read"));if(!ArrayBuffer.isView(e))return K(new TypeError("view must be an array buffer view"));if(e.byteLength===0)return K(new TypeError("view must have non-zero byteLength"));if(e.buffer.byteLength===0)return K(new TypeError("view's buffer must have non-zero byteLength"));if(e.buffer,this._ownerReadableStream===void 0)return K(Ts("read from"));let r,n,a=Wt(((i,o)=>{r=i,n=o}));return(function(i,o,s){let d=i._ownerReadableStream;d._disturbed=!0,d._state==="errored"?s._errorSteps(d._storedError):(function(p,l,c){let u=p._controlledReadableByteStream,m=1;l.constructor!==DataView&&(m=l.constructor.BYTES_PER_ELEMENT);let f=l.constructor,g=l.buffer,y={buffer:g,bufferByteLength:g.byteLength,byteOffset:l.byteOffset,byteLength:l.byteLength,bytesFilled:0,elementSize:m,viewConstructor:f,readerType:"byob"};if(p._pendingPullIntos.length>0)return p._pendingPullIntos.push(y),void Ib(u,c);if(u._state!=="closed"){if(p._queueTotalSize>0){if(uw(p,y)){let b=pw(y);return fw(p),void c._chunkSteps(b)}if(p._closeRequested){let b=new TypeError("Insufficient bytes to fill elements in the given buffer");return Es(p,b),void c._errorSteps(b)}}p._pendingPullIntos.push(y),Ib(u,c),ji(p)}else{let b=new f(y.buffer,y.byteOffset,0);c._closeSteps(b)}})(d._readableStreamController,o,s)})(this,e,{_chunkSteps:i=>r({value:i,done:!1}),_closeSteps:i=>r({value:i,done:!0}),_errorSteps:i=>n(i)}),a}releaseLock(){if(!$s(this))throw v1("releaseLock");this._ownerReadableStream!==void 0&&(function(e){Hb(e);let r=new TypeError("Reader was released");vw(e,r)})(this)}};Object.defineProperties(Jn.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),Ie(Jn.prototype.cancel,"cancel"),Ie(Jn.prototype.read,"read"),Ie(Jn.prototype.releaseLock,"releaseLock"),typeof $e.toStringTag=="symbol"&&Object.defineProperty(Jn.prototype,$e.toStringTag,{value:"ReadableStreamBYOBReader",configurable:!0});aU=typeof AbortController=="function",Gn=class{constructor(e={},r={}){e===void 0?e=null:Yb(e,"First parameter");let n=O1(r,"Second parameter"),a=(function(s,d){Yn(s,d);let p=s?.abort,l=s?.close,c=s?.start,u=s?.type,m=s?.write;return{abort:p===void 0?void 0:eU(p,s,`${d} has member 'abort' that`),close:l===void 0?void 0:tU(l,s,`${d} has member 'close' that`),start:c===void 0?void 0:rU(c,s,`${d} has member 'start' that`),write:m===void 0?void 0:nU(m,s,`${d} has member 'write' that`),type:u}})(e,"First parameter");var i;if((i=this)._state="writable",i._storedError=void 0,i._writer=void 0,i._writableStreamController=void 0,i._writeRequests=new tr,i._inFlightWriteRequest=void 0,i._closeRequest=void 0,i._inFlightCloseRequest=void 0,i._pendingAbortRequest=void 0,i._backpressure=!1,a.type!==void 0)throw new RangeError("Invalid type is specified");let o=z1(n);(function(s,d,p,l){let c=Object.create(Is.prototype),u,m,f,g;u=d.start!==void 0?()=>d.start(c):()=>{},m=d.write!==void 0?y=>d.write(y,c):()=>ze(void 0),f=d.close!==void 0?()=>d.close():()=>ze(void 0),g=d.abort!==void 0?y=>d.abort(y):()=>ze(void 0),(function(y,b,S,E,T,k,Te,qe){b._controlledWritableStream=y,y._writableStreamController=b,b._queue=void 0,b._queueTotalSize=void 0,Da(b),b._abortReason=void 0,b._abortController=(function(){if(aU)return new AbortController})(),b._started=!1,b._strategySizeAlgorithm=qe,b._strategyHWM=Te,b._writeAlgorithm=E,b._closeAlgorithm=T,b._abortAlgorithm=k;let M=M9(b);L9(y,M);let q=S();Rt(ze(q),(()=>(b._started=!0,L1(b),null)),(ae=>(b._started=!0,T9(y,ae),null)))})(s,c,u,m,f,g,p,l)})(this,a,dl(n,1),o)}get locked(){if(!hn(this))throw _1("locked");return T1(this)}abort(e){return hn(this)?T1(this)?K(new TypeError("Cannot abort a stream that already has a writer")):yw(this,e):K(_1("abort"))}close(){return hn(this)?T1(this)?K(new TypeError("Cannot close a stream that already has a writer")):Ra(this)?K(new TypeError("Cannot close an already-closing stream")):_w(this):K(_1("close"))}getWriter(){if(!hn(this))throw _1("getWriter");return new fn(this)}};Object.defineProperties(Gn.prototype,{abort:{enumerable:!0},close:{enumerable:!0},getWriter:{enumerable:!0},locked:{enumerable:!0}}),Ie(Gn.prototype.abort,"abort"),Ie(Gn.prototype.close,"close"),Ie(Gn.prototype.getWriter,"getWriter"),typeof $e.toStringTag=="symbol"&&Object.defineProperty(Gn.prototype,$e.toStringTag,{value:"WritableStream",configurable:!0});fn=class{constructor(e){if(Qn(e,1,"WritableStreamDefaultWriter"),(function(a,i){if(!hn(a))throw new TypeError(`${i} is not a WritableStream.`)})(e,"First parameter"),T1(e))throw new TypeError("This stream has already been locked for exclusive writing by another writer");this._ownerWritableStream=e,e._writer=this;let r=e._state;if(r==="writable")!Ra(e)&&e._backpressure?M1(this):zb(this),E1(this);else if(r==="erroring")E9(this,e._storedError),E1(this);else if(r==="closed")zb(this),E1(n=this),Sw(n);else{let a=e._storedError;E9(this,a),Nb(this,a)}var n}get closed(){return zi(this)?this._closedPromise:K(Oi("closed"))}get desiredSize(){if(!zi(this))throw Oi("desiredSize");if(this._ownerWritableStream===void 0)throw nl("desiredSize");return(function(e){let r=e._ownerWritableStream,n=r._state;return n==="errored"||n==="erroring"?null:n==="closed"?0:xw(r._writableStreamController)})(this)}get ready(){return zi(this)?this._readyPromise:K(Oi("ready"))}abort(e){return zi(this)?this._ownerWritableStream===void 0?K(nl("abort")):(function(r,n){return yw(r._ownerWritableStream,n)})(this,e):K(Oi("abort"))}close(){if(!zi(this))return K(Oi("close"));let e=this._ownerWritableStream;return e===void 0?K(nl("close")):Ra(e)?K(new TypeError("Cannot close an already-closing stream")):_w(this._ownerWritableStream)}releaseLock(){if(!zi(this))throw Oi("releaseLock");this._ownerWritableStream!==void 0&&(function(e){let r=e._ownerWritableStream,n=new TypeError("Writer was released and can no longer be used to monitor the stream's closedness");bw(e,n),(function(a,i){a._closedPromiseState==="pending"?q9(a,i):(function(o,s){Nb(o,s)})(a,i)})(e,n),r._writer=void 0,e._ownerWritableStream=void 0})(this)}write(e){return zi(this)?this._ownerWritableStream===void 0?K(nl("write to")):(function(r,n){let a=r._ownerWritableStream,i=a._writableStreamController,o=(function(p,l){try{return p._strategySizeAlgorithm(l)}catch(c){return Pb(p,c),1}})(i,n);if(a!==r._ownerWritableStream)return K(nl("write to"));let s=a._state;if(s==="errored")return K(a._storedError);if(Ra(a)||s==="closed")return K(new TypeError("The stream is closing or closed and cannot be written to"));if(s==="erroring")return K(a._storedError);let d=(function(p){return Wt(((l,c)=>{let u={_resolve:l,_reject:c};p._writeRequests.push(u)}))})(a);return(function(p,l,c){try{A9(p,l,c)}catch(m){return void Pb(p,m)}let u=p._controlledWritableStream;!Ra(u)&&u._state==="writable"&&L9(u,M9(p)),L1(p)})(i,n,o),d})(this,e):K(Oi("write"))}};Object.defineProperties(fn.prototype,{abort:{enumerable:!0},close:{enumerable:!0},releaseLock:{enumerable:!0},write:{enumerable:!0},closed:{enumerable:!0},desiredSize:{enumerable:!0},ready:{enumerable:!0}}),Ie(fn.prototype.abort,"abort"),Ie(fn.prototype.close,"close"),Ie(fn.prototype.releaseLock,"releaseLock"),Ie(fn.prototype.write,"write"),typeof $e.toStringTag=="symbol"&&Object.defineProperty(fn.prototype,$e.toStringTag,{value:"WritableStreamDefaultWriter",configurable:!0});ww={},Is=class{constructor(){throw new TypeError("Illegal constructor")}get abortReason(){if(!y9(this))throw _9("abortReason");return this._abortReason}get signal(){if(!y9(this))throw _9("signal");if(this._abortController===void 0)throw new TypeError("WritableStreamDefaultController.prototype.signal is not supported");return this._abortController.signal}error(e){if(!y9(this))throw _9("error");this._controlledWritableStream._state==="writable"&&$w(this,e)}[Bb](e){let r=this._abortAlgorithm(e);return R1(this),r}[Wb](){Da(this)}};Object.defineProperties(Is.prototype,{abortReason:{enumerable:!0},signal:{enumerable:!0},error:{enumerable:!0}}),typeof $e.toStringTag=="symbol"&&Object.defineProperty(Is.prototype,$e.toStringTag,{value:"WritableStreamDefaultController",configurable:!0});Ob=typeof DOMException<"u"?DOMException:void 0,iU=(function(t){if(typeof t!="function"&&typeof t!="object")return!1;try{return new t,!0}catch{return!1}})(Ob)?Ob:(function(){let t=function(e,r){this.message=e||"",this.name=r||"Error",Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)};return t.prototype=Object.create(Error.prototype),Object.defineProperty(t.prototype,"constructor",{value:t,writable:!0,configurable:!0}),t})();Hn=class{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!b1(this))throw w1("desiredSize");return Tw(this)}close(){if(!b1(this))throw w1("close");if(!il(this))throw new TypeError("The stream is not in a state that permits close");(function(e){if(!il(e))return;let r=e._controlledReadableStream;e._closeRequested=!0,e._queue.length===0&&(I1(e),pl(r))})(this)}enqueue(e){if(!b1(this))throw w1("enqueue");if(!il(this))throw new TypeError("The stream is not in a state that permits enqueue");return(function(r,n){if(!il(r))return;let a=r._controlledReadableStream;if(Ps(a)&&V1(a)>0)D9(a,n,!1);else{let i;try{i=r._strategySizeAlgorithm(n)}catch(o){throw sl(r,o),o}try{A9(r,n,i)}catch(o){throw sl(r,o),o}}ol(r)})(this,e)}error(e){if(!b1(this))throw w1("error");sl(this,e)}[P9](e){Da(this);let r=this._cancelAlgorithm(e);return I1(this),r}[N9](e){let r=this._controlledReadableStream;if(this._queue.length>0){let n=$9(this);this._closeRequested&&this._queue.length===0?(I1(this),pl(r)):ol(this),e._chunkSteps(n)}else rw(r,e),ol(this)}[z9](){}};Object.defineProperties(Hn.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},desiredSize:{enumerable:!0}}),Ie(Hn.prototype.close,"close"),Ie(Hn.prototype.enqueue,"enqueue"),Ie(Hn.prototype.error,"error"),typeof $e.toStringTag=="symbol"&&Object.defineProperty(Hn.prototype,$e.toStringTag,{value:"ReadableStreamDefaultController",configurable:!0});lt=class{constructor(e={},r={}){e===void 0?e=null:Yb(e,"First parameter");let n=O1(r,"Second parameter"),a=(function(o,s){Yn(o,s);let d=o,p=d?.autoAllocateChunkSize,l=d?.cancel,c=d?.pull,u=d?.start,m=d?.type;return{autoAllocateChunkSize:p===void 0?void 0:Qb(p,`${s} has member 'autoAllocateChunkSize' that`),cancel:l===void 0?void 0:dU(l,d,`${s} has member 'cancel' that`),pull:c===void 0?void 0:pU(c,d,`${s} has member 'pull' that`),start:u===void 0?void 0:lU(u,d,`${s} has member 'start' that`),type:m===void 0?void 0:cU(m,`${s} has member 'type' that`)}})(e,"First parameter");var i;if((i=this)._state="readable",i._reader=void 0,i._storedError=void 0,i._disturbed=!1,a.type==="bytes"){if(n.size!==void 0)throw new RangeError("The strategy for a byte stream cannot have a size function");YC(this,a,dl(n,0))}else{let o=z1(n);sU(this,a,dl(n,1),o)}}get locked(){if(!Ai(this))throw Ri("locked");return Ps(this)}cancel(e){return Ai(this)?Ps(this)?K(new TypeError("Cannot cancel a stream that already has a reader")):Ew(this,e):K(Ri("cancel"))}getReader(e){if(!Ai(this))throw Ri("getReader");return(function(r,n){Yn(r,n);let a=r?.mode;return{mode:a===void 0?void 0:uU(a,`${n} has member 'mode' that`)}})(e,"First parameter").mode===void 0?new Bn(this):(function(r){return new Jn(r)})(this)}pipeThrough(e,r={}){if(!al(this))throw Ri("pipeThrough");Qn(e,1,"pipeThrough");let n=mU(e,"First parameter"),a=Db(r,"Second parameter");if(this.locked)throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream");if(n.writable.locked)throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream");return ks(Rb(this,n.writable,a.preventClose,a.preventAbort,a.preventCancel,a.signal)),n.readable}pipeTo(e,r={}){if(!al(this))return K(Ri("pipeTo"));if(e===void 0)return K("Parameter 1 is required in 'pipeTo'.");if(!ew(e))return K(new TypeError("ReadableStream.prototype.pipeTo's first argument must be a WritableStream"));let n;try{n=Db(r,"Second parameter")}catch(a){return K(a)}return this.locked?K(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream")):e.locked?K(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream")):Rb(this,e,n.preventClose,n.preventAbort,n.preventCancel,n.signal)}tee(){if(!al(this))throw Ri("tee");if(this.locked)throw new TypeError("Cannot tee a stream that already has a reader");return oU(this)}values(e){if(!al(this))throw Ri("values");return(function(r,n){let a=r.getReader(),i=new P1(a,n),o=Object.create(iw);return o._asyncIteratorImpl=i,o})(this,(function(r,n){return Yn(r,n),{preventCancel:!!r?.preventCancel}})(e,"First parameter").preventCancel)}};Object.defineProperties(lt.prototype,{cancel:{enumerable:!0},getReader:{enumerable:!0},pipeThrough:{enumerable:!0},pipeTo:{enumerable:!0},tee:{enumerable:!0},values:{enumerable:!0},locked:{enumerable:!0}}),Ie(lt.prototype.cancel,"cancel"),Ie(lt.prototype.getReader,"getReader"),Ie(lt.prototype.pipeThrough,"pipeThrough"),Ie(lt.prototype.pipeTo,"pipeTo"),Ie(lt.prototype.tee,"tee"),Ie(lt.prototype.values,"values"),typeof $e.toStringTag=="symbol"&&Object.defineProperty(lt.prototype,$e.toStringTag,{value:"ReadableStream",configurable:!0}),typeof $e.asyncIterator=="symbol"&&Object.defineProperty(lt.prototype,$e.asyncIterator,{value:lt.prototype.values,writable:!0,configurable:!0});Nw=t=>t.byteLength;Ie(Nw,"size");ll=class{constructor(e){Qn(e,1,"ByteLengthQueuingStrategy"),e=Pw(e,"First parameter"),this._byteLengthQueuingStrategyHighWaterMark=e.highWaterMark}get highWaterMark(){if(!jb(this))throw Ab("highWaterMark");return this._byteLengthQueuingStrategyHighWaterMark}get size(){if(!jb(this))throw Ab("size");return Nw}};Object.defineProperties(ll.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),typeof $e.toStringTag=="symbol"&&Object.defineProperty(ll.prototype,$e.toStringTag,{value:"ByteLengthQueuingStrategy",configurable:!0});zw=()=>1;Ie(zw,"size");cl=class{constructor(e){Qn(e,1,"CountQueuingStrategy"),e=Pw(e,"First parameter"),this._countQueuingStrategyHighWaterMark=e.highWaterMark}get highWaterMark(){if(!Ub(this))throw Cb("highWaterMark");return this._countQueuingStrategyHighWaterMark}get size(){if(!Ub(this))throw Cb("size");return zw}};Object.defineProperties(cl.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),typeof $e.toStringTag=="symbol"&&Object.defineProperty(cl.prototype,$e.toStringTag,{value:"CountQueuingStrategy",configurable:!0});ul=class{constructor(e={},r={},n={}){e===void 0&&(e=null);let a=O1(r,"Second parameter"),i=O1(n,"Third parameter"),o=(function(u,m){Yn(u,m);let f=u?.flush,g=u?.readableType,y=u?.start,b=u?.transform,S=u?.writableType;return{flush:f===void 0?void 0:fU(f,u,`${m} has member 'flush' that`),readableType:g,start:y===void 0?void 0:hU(y,u,`${m} has member 'start' that`),transform:b===void 0?void 0:gU(b,u,`${m} has member 'transform' that`),writableType:S}})(e,"First parameter");if(o.readableType!==void 0)throw new RangeError("Invalid readableType specified");if(o.writableType!==void 0)throw new RangeError("Invalid writableType specified");let s=dl(i,0),d=z1(i),p=dl(a,1),l=z1(a),c;(function(u,m,f,g,y,b){function S(){return m}function E(M){return(function(q,ae){let Pe=q._transformStreamController;return q._backpressure?Hr(q._backpressureChangePromise,(()=>{if((hn(q._writable)?q._writable._state:q._writableState)==="erroring")throw hn(q._writable)?q._writable._storedError:q._writableStoredError;return Lb(Pe,ae)})):Lb(Pe,ae)})(u,M)}function T(M){return(function(q,ae){return D1(q,ae),ze(void 0)})(u,M)}function k(){return(function(M){let q=M._transformStreamController,ae=q._flushAlgorithm();return Ow(q),Hr(ae,(()=>{if(M._readableState==="errored")throw M._readableStoredError;j1(M)&&Dw(M)}),(Pe=>{throw D1(M,Pe),M._readableStoredError}))})(u)}function Te(){return(function(M){return A1(M,!1),M._backpressureChangePromise})(u)}function qe(M){return q1(u,M),ze(void 0)}u._writableState="writable",u._writableStoredError=void 0,u._writableHasInFlightOperation=!1,u._writableStarted=!1,u._writable=(function(M,q,ae,Pe,ct,le,Oe){return new Gn({start(ye){M._writableController=ye;try{let Re=ye.signal;Re!==void 0&&Re.addEventListener("abort",(()=>{M._writableState==="writable"&&(M._writableState="erroring",Re.reason&&(M._writableStoredError=Re.reason))}))}catch{}return Hr(q(),(()=>(M._writableStarted=!0,qb(M),null)),(Re=>{throw M._writableStarted=!0,b9(M,Re),Re}))},write:ye=>((function(Re){Re._writableHasInFlightOperation=!0})(M),Hr(ae(ye),(()=>((function(Re){Re._writableHasInFlightOperation=!1})(M),qb(M),null)),(Re=>{throw(function(dr,Ut){dr._writableHasInFlightOperation=!1,b9(dr,Ut)})(M,Re),Re}))),close:()=>((function(ye){ye._writableHasInFlightOperation=!0})(M),Hr(Pe(),(()=>((function(ye){ye._writableHasInFlightOperation=!1,ye._writableState==="erroring"&&(ye._writableStoredError=void 0),ye._writableState="closed"})(M),null)),(ye=>{throw(function(Re,dr){Re._writableHasInFlightOperation=!1,Re._writableState,b9(Re,dr)})(M,ye),ye}))),abort:ye=>(M._writableState="errored",M._writableStoredError=ye,ct(ye))},{highWaterMark:le,size:Oe})})(u,S,E,k,T,f,g),u._readableState="readable",u._readableStoredError=void 0,u._readableCloseRequested=!1,u._readablePulling=!1,u._readable=(function(M,q,ae,Pe,ct,le){return new lt({start:Oe=>(M._readableController=Oe,q().catch((ye=>{C1(M,ye)}))),pull:()=>(M._readablePulling=!0,ae().catch((Oe=>{C1(M,Oe)}))),cancel:Oe=>(M._readableState="closed",Pe(Oe))},{highWaterMark:ct,size:le})})(u,S,Te,qe,y,b),u._backpressure=void 0,u._backpressureChangePromise=void 0,u._backpressureChangePromise_resolve=void 0,A1(u,!0),u._transformStreamController=void 0})(this,Wt((u=>{c=u})),p,l,s,d),(function(u,m){let f=Object.create(Kn.prototype),g,y;g=m.transform!==void 0?b=>m.transform(b,f):b=>{try{return Rw(f,b),ze(void 0)}catch(S){return K(S)}},y=m.flush!==void 0?()=>m.flush(f):()=>ze(void 0),(function(b,S,E,T){S._controlledTransformStream=b,b._transformStreamController=S,S._transformAlgorithm=E,S._flushAlgorithm=T})(u,f,g,y)})(this,o),o.start!==void 0?c(o.start(this._transformStreamController)):c(void 0)}get readable(){if(!Vb(this))throw Mb("readable");return this._readable}get writable(){if(!Vb(this))throw Mb("writable");return this._writable}};Object.defineProperties(ul.prototype,{readable:{enumerable:!0},writable:{enumerable:!0}}),typeof $e.toStringTag=="symbol"&&Object.defineProperty(ul.prototype,$e.toStringTag,{value:"TransformStream",configurable:!0});Kn=class{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!x1(this))throw $1("desiredSize");return Aw(this._controlledTransformStream)}enqueue(e){if(!x1(this))throw $1("enqueue");Rw(this,e)}error(e){if(!x1(this))throw $1("error");var r;r=e,D1(this._controlledTransformStream,r)}terminate(){if(!x1(this))throw $1("terminate");(function(e){let r=e._controlledTransformStream;j1(r)&&Dw(r);let n=new TypeError("TransformStream terminated");q1(r,n)})(this)}};Object.defineProperties(Kn.prototype,{enqueue:{enumerable:!0},error:{enumerable:!0},terminate:{enumerable:!0},desiredSize:{enumerable:!0}}),Ie(Kn.prototype.enqueue,"enqueue"),Ie(Kn.prototype.error,"error"),Ie(Kn.prototype.terminate,"terminate"),typeof $e.toStringTag=="symbol"&&Object.defineProperty(Kn.prototype,$e.toStringTag,{value:"TransformStreamDefaultController",configurable:!0})});var st,Z1=sa(()=>{st=t=>typeof t=="function"});async function*vU(t){let e=t.byteOffset+t.byteLength,r=t.byteOffset;for(;r!==e;){let n=Math.min(e-r,Uw),a=t.buffer.slice(r,r+n);r+=a.byteLength,yield new Uint8Array(a)}}async function*yU(t){let e=0;for(;e!==t.size;){let n=await t.slice(e,Math.min(t.size,e+Uw)).arrayBuffer();e+=n.byteLength,yield new Uint8Array(n)}}async function*F1(t,e=!1){for(let r of t)ArrayBuffer.isView(r)?e?yield*vU(r):yield r:st(r.stream)?yield*r.stream():yield*yU(r)}function*Vw(t,e,r=0,n){n??(n=e);let a=r<0?Math.max(e+r,0):Math.min(r,e),i=n<0?Math.max(e+n,0):Math.min(n,e),o=Math.max(i-a,0),s=0;for(let d of t){if(s>=o)break;let p=ArrayBuffer.isView(d)?d.byteLength:d.size;if(a&&p<=a)a-=p,i-=p;else{let l;ArrayBuffer.isView(d)?(l=d.subarray(a,Math.min(p,i)),s+=l.byteLength):(l=d.slice(a,Math.min(p,i)),s+=l.size),i-=p,a=0,yield l}}}var Uw,Lw=sa(()=>{Z1();Uw=65536});var Aa,Mw,Ui,B1,ml,gn,W1=sa(()=>{Cw();Z1();Lw();Aa=function(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)},Mw=function(t,e,r,n,a){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!a)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!a:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?a.call(t,r):a?a.value=r:e.set(t,r),r},gn=class t{constructor(e=[],r={}){if(Ui.set(this,[]),B1.set(this,""),ml.set(this,0),r??(r={}),typeof e!="object"||e===null)throw new TypeError("Failed to construct 'Blob': The provided value cannot be converted to a sequence.");if(!st(e[Symbol.iterator]))throw new TypeError("Failed to construct 'Blob': The object must have a callable @@iterator property.");if(typeof r!="object"&&!st(r))throw new TypeError("Failed to construct 'Blob': parameter 2 cannot convert to dictionary.");let n=new TextEncoder;for(let i of e){let o;ArrayBuffer.isView(i)?o=new Uint8Array(i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength)):i instanceof ArrayBuffer?o=new Uint8Array(i.slice(0)):i instanceof t?o=i:o=n.encode(String(i)),Mw(this,ml,Aa(this,ml,"f")+(ArrayBuffer.isView(o)?o.byteLength:o.size),"f"),Aa(this,Ui,"f").push(o)}let a=r.type===void 0?"":String(r.type);Mw(this,B1,/^[\x20-\x7E]*$/.test(a)?a:"","f")}static[(Ui=new WeakMap,B1=new WeakMap,ml=new WeakMap,Symbol.hasInstance)](e){return!!(e&&typeof e=="object"&&st(e.constructor)&&(st(e.stream)||st(e.arrayBuffer))&&/^(Blob|File)$/.test(e[Symbol.toStringTag]))}get type(){return Aa(this,B1,"f")}get size(){return Aa(this,ml,"f")}slice(e,r,n){return new t(Vw(Aa(this,Ui,"f"),this.size,e,r),{type:n})}async text(){let e=new TextDecoder,r="";for await(let n of F1(Aa(this,Ui,"f")))r+=e.decode(n,{stream:!0});return r+=e.decode(),r}async arrayBuffer(){let e=new Uint8Array(this.size),r=0;for await(let n of F1(Aa(this,Ui,"f")))e.set(n,r),r+=n.length;return e.buffer}stream(){let e=F1(Aa(this,Ui,"f"),!0);return new lt({async pull(r){let{value:n,done:a}=await e.next();if(a)return queueMicrotask(()=>r.close());r.enqueue(n)},async cancel(){await e.return()}})}get[Symbol.toStringTag](){return"Blob"}};Object.defineProperties(gn.prototype,{type:{enumerable:!0},size:{enumerable:!0},slice:{enumerable:!0},stream:{enumerable:!0},text:{enumerable:!0},arrayBuffer:{enumerable:!0}})});var qw,Zw,J1,G1,Xr,fl=sa(()=>{W1();qw=function(t,e,r,n,a){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!a)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!a:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?a.call(t,r):a?a.value=r:e.set(t,r),r},Zw=function(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)},Xr=class extends gn{constructor(e,r,n={}){if(super(e,n),J1.set(this,void 0),G1.set(this,0),arguments.length<2)throw new TypeError(`Failed to construct 'File': 2 arguments required, but only ${arguments.length} present.`);qw(this,J1,String(r),"f");let a=n.lastModified===void 0?Date.now():Number(n.lastModified);Number.isNaN(a)||qw(this,G1,a,"f")}static[(J1=new WeakMap,G1=new WeakMap,Symbol.hasInstance)](e){return e instanceof gn&&e[Symbol.toStringTag]==="File"&&typeof e.name=="string"}get name(){return Zw(this,J1,"f")}get lastModified(){return Zw(this,G1,"f")}get webkitRelativePath(){return""}get[Symbol.toStringTag](){return"File"}}});var B9,W9=sa(()=>{fl();B9=t=>t instanceof Xr});var Hw=v((une,Gw)=>{var Ns=1e3,zs=Ns*60,Os=zs*60,Vi=Os*24,bU=Vi*7,wU=Vi*365.25;Gw.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return xU(t);if(r==="number"&&isFinite(t))return e.long?SU(t):$U(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function xU(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*wU;case"weeks":case"week":case"w":return r*bU;case"days":case"day":case"d":return r*Vi;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Os;case"minutes":case"minute":case"mins":case"min":case"m":return r*zs;case"seconds":case"second":case"secs":case"sec":case"s":return r*Ns;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function $U(t){var e=Math.abs(t);return e>=Vi?Math.round(t/Vi)+"d":e>=Os?Math.round(t/Os)+"h":e>=zs?Math.round(t/zs)+"m":e>=Ns?Math.round(t/Ns)+"s":t+"ms"}function SU(t){var e=Math.abs(t);return e>=Vi?X1(t,e,Vi,"day"):e>=Os?X1(t,e,Os,"hour"):e>=zs?X1(t,e,zs,"minute"):e>=Ns?X1(t,e,Ns,"second"):t+" ms"}function X1(t,e,r,n){var a=e>=r*1.5;return Math.round(t/r)+" "+n+(a?"s":"")}});var Xw=v((mne,Kw)=>{"use strict";var kU=require("util"),TU=Hw();Kw.exports=function(t){if(typeof t=="number")return t;var e=TU(t);if(e===void 0){var r=new Error(kU.format("humanize-ms(%j) result undefined",t));console.warn(r.stack)}return e}});var Y1=v((fne,Yw)=>{"use strict";Yw.exports={CURRENT_ID:Symbol("agentkeepalive#currentId"),CREATE_ID:Symbol("agentkeepalive#createId"),INIT_SOCKET:Symbol("agentkeepalive#initSocket"),CREATE_HTTPS_CONNECTION:Symbol("agentkeepalive#createHttpsConnection"),SOCKET_CREATED_TIME:Symbol("agentkeepalive#socketCreatedTime"),SOCKET_NAME:Symbol("agentkeepalive#socketName"),SOCKET_REQUEST_COUNT:Symbol("agentkeepalive#socketRequestCount"),SOCKET_REQUEST_FINISHED_COUNT:Symbol("agentkeepalive#socketRequestFinishedCount")}});var Q9=v((hne,rx)=>{"use strict";var EU=require("http").Agent,G9=Xw(),Jt=require("util").debuglog("agentkeepalive"),{INIT_SOCKET:Qw,CURRENT_ID:Q1,CREATE_ID:ex,SOCKET_CREATED_TIME:tx,SOCKET_NAME:rr,SOCKET_REQUEST_COUNT:zr,SOCKET_REQUEST_FINISHED_COUNT:_n}=Y1(),X9=1,H9=parseInt(process.version.split(".",1)[0].substring(1));H9>=11&&H9<=12?X9=2:H9>=13&&(X9=3);function hl(t){console.log("[agentkeepalive:deprecated] %s",t)}var Y9=class extends EU{constructor(e){e=e||{},e.keepAlive=e.keepAlive!==!1,e.freeSocketTimeout===void 0&&(e.freeSocketTimeout=4e3),e.keepAliveTimeout&&(hl("options.keepAliveTimeout is deprecated, please use options.freeSocketTimeout instead"),e.freeSocketTimeout=e.keepAliveTimeout,delete e.keepAliveTimeout),e.freeSocketKeepAliveTimeout&&(hl("options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead"),e.freeSocketTimeout=e.freeSocketKeepAliveTimeout,delete e.freeSocketKeepAliveTimeout),e.timeout===void 0&&(e.timeout=Math.max(e.freeSocketTimeout*2,8e3)),e.timeout=G9(e.timeout),e.freeSocketTimeout=G9(e.freeSocketTimeout),e.socketActiveTTL=e.socketActiveTTL?G9(e.socketActiveTTL):0,super(e),this[Q1]=0,this.createSocketCount=0,this.createSocketCountLastCheck=0,this.createSocketErrorCount=0,this.createSocketErrorCountLastCheck=0,this.closeSocketCount=0,this.closeSocketCountLastCheck=0,this.errorSocketCount=0,this.errorSocketCountLastCheck=0,this.requestCount=0,this.requestCountLastCheck=0,this.timeoutSocketCount=0,this.timeoutSocketCountLastCheck=0,this.on("free",r=>{let n=this.calcSocketTimeout(r);n>0&&r.timeout!==n&&r.setTimeout(n)})}get freeSocketKeepAliveTimeout(){return hl("agent.freeSocketKeepAliveTimeout is deprecated, please use agent.options.freeSocketTimeout instead"),this.options.freeSocketTimeout}get timeout(){return hl("agent.timeout is deprecated, please use agent.options.timeout instead"),this.options.timeout}get socketActiveTTL(){return hl("agent.socketActiveTTL is deprecated, please use agent.options.socketActiveTTL instead"),this.options.socketActiveTTL}calcSocketTimeout(e){let r=this.options.freeSocketTimeout,n=this.options.socketActiveTTL;if(n){let a=Date.now()-e[tx],i=n-a;if(i<=0)return i;r&&i"u"?!0:n<=0?(Jt("%s(requests: %s, finished: %s) free but need to destroy by TTL, request count %s, diff is %s",e[rr],e[zr],e[_n],n),!1):(e.timeout!==n&&e.setTimeout(n),!0)}reuseSocket(...e){super.reuseSocket(...e);let r=e[0],n=e[1];n.reusedSocket=!0;let a=this.options.timeout;gl(r)!==a&&(r.setTimeout(a),Jt("%s reset timeout to %sms",r[rr],a)),r[zr]++,Jt("%s(requests: %s, finished: %s) reuse on addRequest, timeout %sms",r[rr],r[zr],r[_n],gl(r))}[ex](){let e=this[Q1]++;return this[Q1]===Number.MAX_SAFE_INTEGER&&(this[Q1]=0),e}[Qw](e,r){r.timeout&&(gl(e)||e.setTimeout(r.timeout)),this.options.keepAlive&&e.setNoDelay(!0),this.createSocketCount++,this.options.socketActiveTTL&&(e[tx]=Date.now()),e[rr]=`sock[${this[ex]()}#${r._agentKey}]`.split("-----BEGIN",1)[0],e[zr]=1,e[_n]=0,IU(this,e,r)}createConnection(e,r){let n=!1,a=(o,s)=>{if(!n){if(n=!0,o)return this.createSocketErrorCount++,r(o);this[Qw](s,e),r(o,s)}},i=super.createConnection(e,a);return i&&a(null,i),i}get statusChanged(){let e=this.createSocketCount!==this.createSocketCountLastCheck||this.createSocketErrorCount!==this.createSocketErrorCountLastCheck||this.closeSocketCount!==this.closeSocketCountLastCheck||this.errorSocketCount!==this.errorSocketCountLastCheck||this.timeoutSocketCount!==this.timeoutSocketCountLastCheck||this.requestCount!==this.requestCountLastCheck;return e&&(this.createSocketCountLastCheck=this.createSocketCount,this.createSocketErrorCountLastCheck=this.createSocketErrorCount,this.closeSocketCountLastCheck=this.closeSocketCount,this.errorSocketCountLastCheck=this.errorSocketCount,this.timeoutSocketCountLastCheck=this.timeoutSocketCount,this.requestCountLastCheck=this.requestCount),e}getCurrentStatus(){return{createSocketCount:this.createSocketCount,createSocketErrorCount:this.createSocketErrorCount,closeSocketCount:this.closeSocketCount,errorSocketCount:this.errorSocketCount,timeoutSocketCount:this.timeoutSocketCount,requestCount:this.requestCount,freeSockets:K9(this.freeSockets),sockets:K9(this.sockets),requests:K9(this.requests)}}};function gl(t){return t.timeout||t._idleTimeout}function IU(t,e,r){Jt("%s create, timeout %sms",e[rr],gl(e));function n(){if(!e._httpMessage&&e[zr]===1)return;e[_n]++,t.requestCount++,Jt("%s(requests: %s, finished: %s) free",e[rr],e[zr],e[_n]);let d=t.getName(r);e.writable&&t.requests[d]&&t.requests[d].length&&(e[zr]++,Jt("%s(requests: %s, finished: %s) will be reuse on agent free event",e[rr],e[zr],e[_n]))}e.on("free",n);function a(d){Jt("%s(requests: %s, finished: %s) close, isError: %s",e[rr],e[zr],e[_n],d),t.closeSocketCount++}e.on("close",a);function i(){let d=e.listeners("timeout").length,p=gl(e),l=e._httpMessage,c=l&&l.listeners("timeout").length||0;Jt("%s(requests: %s, finished: %s) timeout after %sms, listeners %s, defaultTimeoutListenerCount %s, hasHttpRequest %s, HttpRequest timeoutListenerCount %s",e[rr],e[zr],e[_n],p,d,X9,!!l,c),Jt.enabled&&Jt("timeout listeners: %s",e.listeners("timeout").map(m=>m.name).join(", ")),t.timeoutSocketCount++;let u=t.getName(r);if(t.freeSockets[u]&&t.freeSockets[u].indexOf(e)!==-1)e.destroy(),t.removeSocket(e,r),Jt("%s is free, destroy quietly",e[rr]);else if(c===0){let m=new Error("Socket timeout");m.code="ERR_SOCKET_TIMEOUT",m.timeout=p,e.destroy(m),t.removeSocket(e,r),Jt("%s destroy with timeout error",e[rr])}}e.on("timeout",i);function o(d){let p=e.listeners("error").length;Jt("%s(requests: %s, finished: %s) error: %s, listenerCount: %s",e[rr],e[zr],e[_n],d,p),t.errorSocketCount++,p===1&&(Jt("%s emit uncaught error event",e[rr]),e.removeListener("error",o),e.emit("error",d))}e.on("error",o);function s(){Jt("%s(requests: %s, finished: %s) agentRemove",e[rr],e[zr],e[_n]),e.removeListener("close",a),e.removeListener("error",o),e.removeListener("free",n),e.removeListener("timeout",i),e.removeListener("agentRemove",s)}e.on("agentRemove",s)}rx.exports=Y9;function K9(t){let e={};for(let r in t)e[r]=t[r].length;return e}});var ix=v((gne,ax)=>{"use strict";var e3=require("https").Agent,PU=Q9(),{INIT_SOCKET:NU,CREATE_HTTPS_CONNECTION:nx}=Y1(),vl=class extends PU{constructor(e){super(e),this.defaultPort=443,this.protocol="https:",this.maxCachedSessions=this.options.maxCachedSessions,this.maxCachedSessions===void 0&&(this.maxCachedSessions=100),this._sessionCache={map:{},list:[]}}createConnection(e,r){let n=this[nx](e,r);return this[NU](n,e),n}};vl.prototype[nx]=e3.prototype.createConnection;["getName","_getSession","_cacheSession","_evictSession"].forEach(function(t){typeof e3.prototype[t]=="function"&&(vl.prototype[t]=e3.prototype[t])});ax.exports=vl});var sx=v((vne,yl)=>{"use strict";var ox=Q9();yl.exports=ox;yl.exports.HttpAgent=ox;yl.exports.HttpsAgent=ix();yl.exports.constants=Y1()});var vx=v((wl,bl)=>{"use strict";Object.defineProperty(wl,"__esModule",{value:!0});var mx=new WeakMap,t3=new WeakMap;function He(t){let e=mx.get(t);return console.assert(e!=null,"'this' is expected an Event object, but got",t),e}function dx(t){if(t.passiveListener!=null){typeof console<"u"&&typeof console.error=="function"&&console.error("Unable to preventDefault inside passive event listener invocation.",t.passiveListener);return}t.event.cancelable&&(t.canceled=!0,typeof t.event.preventDefault=="function"&&t.event.preventDefault())}function Rs(t,e){mx.set(this,{eventTarget:t,event:e,eventPhase:2,currentTarget:t,canceled:!1,stopped:!1,immediateStopped:!1,passiveListener:null,timeStamp:e.timeStamp||Date.now()}),Object.defineProperty(this,"isTrusted",{value:!1,enumerable:!0});let r=Object.keys(e);for(let n=0;n0){let t=new Array(arguments.length);for(let e=0;e{"use strict";Object.defineProperty($l,"__esModule",{value:!0});var n3=vx(),ja=class extends n3.EventTarget{constructor(){throw super(),new TypeError("AbortSignal cannot be constructed directly")}get aborted(){let e=rm.get(this);if(typeof e!="boolean")throw new TypeError(`Expected 'this' to be an 'AbortSignal' object, but got ${this===null?"null":typeof this}`);return e}};n3.defineEventAttribute(ja.prototype,"abort");function UU(){let t=Object.create(ja.prototype);return n3.EventTarget.call(t),rm.set(t,!1),t}function VU(t){rm.get(t)===!1&&(rm.set(t,!0),t.dispatchEvent({type:"abort"}))}var rm=new WeakMap;Object.defineProperties(ja.prototype,{aborted:{enumerable:!0}});typeof Symbol=="function"&&typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(ja.prototype,Symbol.toStringTag,{configurable:!0,value:"AbortSignal"});var Ca=class{constructor(){_x.set(this,UU())}get signal(){return yx(this)}abort(){VU(yx(this))}},_x=new WeakMap;function yx(t){let e=_x.get(t);if(e==null)throw new TypeError(`Expected 'this' to be an 'AbortController' object, but got ${t===null?"null":typeof t}`);return e}Object.defineProperties(Ca.prototype,{signal:{enumerable:!0},abort:{enumerable:!0}});typeof Symbol=="function"&&typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(Ca.prototype,Symbol.toStringTag,{configurable:!0,value:"AbortController"});$l.AbortController=Ca;$l.AbortSignal=ja;$l.default=Ca;xl.exports=Ca;xl.exports.AbortController=xl.exports.default=Ca;xl.exports.AbortSignal=ja});var kx=v((Mne,Sx)=>{if(!globalThis.DOMException)try{let{MessageChannel:t}=require("worker_threads"),e=new t().port1,r=new ArrayBuffer;e.postMessage(r,[r,r])}catch(t){t.constructor.name==="DOMException"&&(globalThis.DOMException=t.constructor)}Sx.exports=globalThis.DOMException});function GU(t){if(JU(t)!=="object")return!1;let e=Object.getPrototypeOf(t);return e==null?!0:(e.constructor&&e.constructor.toString())===Object.toString()}var JU,Tx,Ex=sa(()=>{JU=t=>Object.prototype.toString.call(t).slice(8,-1).toLowerCase();Tx=GU});var Ox={};di(Ox,{fileFromPath:()=>XU,fileFromPathSync:()=>KU,isFile:()=>B9});function zx(t,{mtimeMs:e,size:r},n,a={}){let i;Tx(n)?[a,i]=[n,void 0]:i=n;let o=new d3({path:t,size:r,lastModified:e});return i||(i=o.name),new Xr([o],i,{...a,lastModified:o.lastModified})}function KU(t,e,r={}){let n=(0,Zi.statSync)(t);return zx(t,n,e,r)}async function XU(t,e,r){let n=await Zi.promises.stat(t);return zx(t,n,e,r)}var Zi,Px,Nx,Ix,Ds,qi,Pl,HU,d3,Rx=sa(()=>{Zi=require("fs"),Px=require("path"),Nx=Ze(kx(),1);fl();Ex();W9();Ix=function(t,e,r,n,a){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!a)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!a:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?a.call(t,r):a?a.value=r:e.set(t,r),r},Ds=function(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)},HU="The requested file could not be read, typically due to permission problems that have occurred after a reference to a file was acquired.",d3=class t{constructor(e){qi.set(this,void 0),Pl.set(this,void 0),Ix(this,qi,e.path,"f"),Ix(this,Pl,e.start||0,"f"),this.name=(0,Px.basename)(Ds(this,qi,"f")),this.size=e.size,this.lastModified=e.lastModified}slice(e,r){return new t({path:Ds(this,qi,"f"),lastModified:this.lastModified,size:r-e,start:e})}async*stream(){let{mtimeMs:e}=await Zi.promises.stat(Ds(this,qi,"f"));if(e>this.lastModified)throw new Nx.default(HU,"NotReadableError");this.size&&(yield*(0,Zi.createReadStream)(Ds(this,qi,"f"),{start:Ds(this,Pl,"f"),end:Ds(this,Pl,"f")+this.size-1}))}get[(qi=new WeakMap,Pl=new WeakMap,Symbol.toStringTag)](){return"File"}}});var y$=v(Om=>{"use strict";Object.defineProperty(Om,"__esModule",{value:!0});Om.VERSION=void 0;Om.VERSION="1.3.0"});var q3=v(Ul=>{"use strict";Object.defineProperty(Ul,"__esModule",{value:!0});Ul.dynamicAnchor=void 0;var M3=Q(),aM=Sr(),U$=Dp(),iM=Lu(),oM={keyword:"$dynamicAnchor",schemaType:"string",code:t=>V$(t,t.schema)};function V$(t,e){let{gen:r,it:n}=t;n.schemaEnv.root.dynamicAnchors[e]=!0;let a=(0,M3._)`${aM.default.dynamicAnchors}${(0,M3.getProperty)(e)}`,i=n.errSchemaPath==="#"?n.validateName:sM(t);r.if((0,M3._)`!${a}`,()=>r.assign(a,i))}Ul.dynamicAnchor=V$;function sM(t){let{schemaEnv:e,schema:r,self:n}=t.it,{root:a,baseId:i,localRefs:o,meta:s}=e.root,{schemaId:d}=n.opts,p=new U$.SchemaEnv({schema:r,schemaId:d,root:a,baseId:i,localRefs:o,meta:s});return U$.compileSchema.call(n,p),(0,iM.getValidate)(t,p)}Ul.default=oM});var Z3=v(Vl=>{"use strict";Object.defineProperty(Vl,"__esModule",{value:!0});Vl.dynamicRef=void 0;var L$=Q(),dM=Sr(),M$=Lu(),pM={keyword:"$dynamicRef",schemaType:"string",code:t=>q$(t,t.schema)};function q$(t,e){let{gen:r,keyword:n,it:a}=t;if(e[0]!=="#")throw new Error(`"${n}" only supports hash fragment reference`);let i=e.slice(1);if(a.allErrors)o();else{let d=r.let("valid",!1);o(d),t.ok(d)}function o(d){if(a.schemaEnv.root.dynamicAnchors[i]){let p=r.let("_v",(0,L$._)`${dM.default.dynamicAnchors}${(0,L$.getProperty)(i)}`);r.if(p,s(p,d),s(a.validateName,d))}else s(a.validateName,d)()}function s(d,p){return p?()=>r.block(()=>{(0,M$.callRef)(t,d),r.let(p,!0)}):()=>(0,M$.callRef)(t,d)}}Vl.dynamicRef=q$;Vl.default=pM});var Z$=v(F3=>{"use strict";Object.defineProperty(F3,"__esModule",{value:!0});var lM=q3(),cM=he(),uM={keyword:"$recursiveAnchor",schemaType:"boolean",code(t){t.schema?(0,lM.dynamicAnchor)(t,""):(0,cM.checkStrictMode)(t.it,"$recursiveAnchor: false is ignored")}};F3.default=uM});var F$=v(B3=>{"use strict";Object.defineProperty(B3,"__esModule",{value:!0});var mM=Z3(),fM={keyword:"$recursiveRef",schemaType:"string",code:t=>(0,mM.dynamicRef)(t,t.schema)};B3.default=fM});var B$=v(W3=>{"use strict";Object.defineProperty(W3,"__esModule",{value:!0});var hM=q3(),gM=Z3(),vM=Z$(),yM=F$(),_M=[hM.default,gM.default,vM.default,yM.default];W3.default=_M});var J$=v(J3=>{"use strict";Object.defineProperty(J3,"__esModule",{value:!0});var W$=Ju(),bM={keyword:"dependentRequired",type:"object",schemaType:"object",error:W$.error,code:t=>(0,W$.validatePropertyDeps)(t)};J3.default=bM});var G$=v(G3=>{"use strict";Object.defineProperty(G3,"__esModule",{value:!0});var wM=Ju(),xM={keyword:"dependentSchemas",type:"object",schemaType:"object",code:t=>(0,wM.validateSchemaDeps)(t)};G3.default=xM});var H$=v(H3=>{"use strict";Object.defineProperty(H3,"__esModule",{value:!0});var $M=he(),SM={keyword:["maxContains","minContains"],type:"array",schemaType:"number",code({keyword:t,parentSchema:e,it:r}){e.contains===void 0&&(0,$M.checkStrictMode)(r,`"${t}" without "contains" is ignored`)}};H3.default=SM});var K$=v(K3=>{"use strict";Object.defineProperty(K3,"__esModule",{value:!0});var kM=J$(),TM=G$(),EM=H$(),IM=[kM.default,TM.default,EM.default];K3.default=IM});var Y$=v(X3=>{"use strict";Object.defineProperty(X3,"__esModule",{value:!0});var ai=Q(),X$=he(),PM=Sr(),NM={message:"must NOT have unevaluated properties",params:({params:t})=>(0,ai._)`{unevaluatedProperty: ${t.unevaluatedProperty}}`},zM={keyword:"unevaluatedProperties",type:"object",schemaType:["boolean","object"],trackErrors:!0,error:NM,code(t){let{gen:e,schema:r,data:n,errsCount:a,it:i}=t;if(!a)throw new Error("ajv implementation error");let{allErrors:o,props:s}=i;s instanceof ai.Name?e.if((0,ai._)`${s} !== true`,()=>e.forIn("key",n,c=>e.if(p(s,c),()=>d(c)))):s!==!0&&e.forIn("key",n,c=>s===void 0?d(c):e.if(l(s,c),()=>d(c))),i.props=!0,t.ok((0,ai._)`${a} === ${PM.default.errors}`);function d(c){if(r===!1){t.setParams({unevaluatedProperty:c}),t.error(),o||e.break();return}if(!(0,X$.alwaysValidSchema)(i,r)){let u=e.name("valid");t.subschema({keyword:"unevaluatedProperties",dataProp:c,dataPropType:X$.Type.Str},u),o||e.if((0,ai.not)(u),()=>e.break())}}function p(c,u){return(0,ai._)`!${c} || !${c}[${u}]`}function l(c,u){let m=[];for(let f in c)c[f]===!0&&m.push((0,ai._)`${u} !== ${f}`);return(0,ai.and)(...m)}}};X3.default=zM});var eS=v(Y3=>{"use strict";Object.defineProperty(Y3,"__esModule",{value:!0});var wo=Q(),Q$=he(),OM={message:({params:{len:t}})=>(0,wo.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,wo._)`{limit: ${t}}`},RM={keyword:"unevaluatedItems",type:"array",schemaType:["boolean","object"],error:OM,code(t){let{gen:e,schema:r,data:n,it:a}=t,i=a.items||0;if(i===!0)return;let o=e.const("len",(0,wo._)`${n}.length`);if(r===!1)t.setParams({len:i}),t.fail((0,wo._)`${o} > ${i}`);else if(typeof r=="object"&&!(0,Q$.alwaysValidSchema)(a,r)){let d=e.var("valid",(0,wo._)`${o} <= ${i}`);e.if((0,wo.not)(d),()=>s(d,i)),t.ok(d)}a.items=!0;function s(d,p){e.forRange("i",p,o,l=>{t.subschema({keyword:"unevaluatedItems",dataProp:l,dataPropType:Q$.Type.Num},d),a.allErrors||e.if((0,wo.not)(d),()=>e.break())})}}};Y3.default=RM});var tS=v(Q3=>{"use strict";Object.defineProperty(Q3,"__esModule",{value:!0});var DM=Y$(),AM=eS(),jM=[DM.default,AM.default];Q3.default=jM});var nS=v(e5=>{"use strict";Object.defineProperty(e5,"__esModule",{value:!0});var CM=B6(),UM=sh(),VM=Ih(),LM=B$(),MM=K$(),qM=tS(),ZM=zh(),rS=Oh(),FM=[LM.default,CM.default,UM.default,(0,VM.default)(!0),ZM.default,rS.metadataVocabulary,rS.contentVocabulary,MM.default,qM.default];e5.default=FM});var aS=v((rde,BM)=>{BM.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/schema",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0,"https://json-schema.org/draft/2020-12/vocab/applicator":!0,"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0,"https://json-schema.org/draft/2020-12/vocab/validation":!0,"https://json-schema.org/draft/2020-12/vocab/meta-data":!0,"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0,"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:"meta",title:"Core and Validation specifications meta-schema",allOf:[{$ref:"meta/core"},{$ref:"meta/applicator"},{$ref:"meta/unevaluated"},{$ref:"meta/validation"},{$ref:"meta/meta-data"},{$ref:"meta/format-annotation"},{$ref:"meta/content"}],type:["object","boolean"],$comment:"This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.",properties:{definitions:{$comment:'"definitions" has been replaced by "$defs".',type:"object",additionalProperties:{$dynamicRef:"#meta"},deprecated:!0,default:{}},dependencies:{$comment:'"dependencies" has been split and replaced by "dependentSchemas" and "dependentRequired" in order to serve their differing semantics.',type:"object",additionalProperties:{anyOf:[{$dynamicRef:"#meta"},{$ref:"meta/validation#/$defs/stringArray"}]},deprecated:!0,default:{}},$recursiveAnchor:{$comment:'"$recursiveAnchor" has been replaced by "$dynamicAnchor".',$ref:"meta/core#/$defs/anchorString",deprecated:!0},$recursiveRef:{$comment:'"$recursiveRef" has been replaced by "$dynamicRef".',$ref:"meta/core#/$defs/uriReferenceString",deprecated:!0}}}});var iS=v((nde,WM)=>{WM.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/applicator",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/applicator":!0},$dynamicAnchor:"meta",title:"Applicator vocabulary meta-schema",type:["object","boolean"],properties:{prefixItems:{$ref:"#/$defs/schemaArray"},items:{$dynamicRef:"#meta"},contains:{$dynamicRef:"#meta"},additionalProperties:{$dynamicRef:"#meta"},properties:{type:"object",additionalProperties:{$dynamicRef:"#meta"},default:{}},patternProperties:{type:"object",additionalProperties:{$dynamicRef:"#meta"},propertyNames:{format:"regex"},default:{}},dependentSchemas:{type:"object",additionalProperties:{$dynamicRef:"#meta"},default:{}},propertyNames:{$dynamicRef:"#meta"},if:{$dynamicRef:"#meta"},then:{$dynamicRef:"#meta"},else:{$dynamicRef:"#meta"},allOf:{$ref:"#/$defs/schemaArray"},anyOf:{$ref:"#/$defs/schemaArray"},oneOf:{$ref:"#/$defs/schemaArray"},not:{$dynamicRef:"#meta"}},$defs:{schemaArray:{type:"array",minItems:1,items:{$dynamicRef:"#meta"}}}}});var oS=v((ade,JM)=>{JM.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/unevaluated",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0},$dynamicAnchor:"meta",title:"Unevaluated applicator vocabulary meta-schema",type:["object","boolean"],properties:{unevaluatedItems:{$dynamicRef:"#meta"},unevaluatedProperties:{$dynamicRef:"#meta"}}}});var sS=v((ide,GM)=>{GM.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/content",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:"meta",title:"Content vocabulary meta-schema",type:["object","boolean"],properties:{contentEncoding:{type:"string"},contentMediaType:{type:"string"},contentSchema:{$dynamicRef:"#meta"}}}});var dS=v((ode,HM)=>{HM.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/core",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0},$dynamicAnchor:"meta",title:"Core vocabulary meta-schema",type:["object","boolean"],properties:{$id:{$ref:"#/$defs/uriReferenceString",$comment:"Non-empty fragments not allowed.",pattern:"^[^#]*#?$"},$schema:{$ref:"#/$defs/uriString"},$ref:{$ref:"#/$defs/uriReferenceString"},$anchor:{$ref:"#/$defs/anchorString"},$dynamicRef:{$ref:"#/$defs/uriReferenceString"},$dynamicAnchor:{$ref:"#/$defs/anchorString"},$vocabulary:{type:"object",propertyNames:{$ref:"#/$defs/uriString"},additionalProperties:{type:"boolean"}},$comment:{type:"string"},$defs:{type:"object",additionalProperties:{$dynamicRef:"#meta"}}},$defs:{anchorString:{type:"string",pattern:"^[A-Za-z_][-A-Za-z0-9._]*$"},uriString:{type:"string",format:"uri"},uriReferenceString:{type:"string",format:"uri-reference"}}}});var pS=v((sde,KM)=>{KM.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/format-annotation",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0},$dynamicAnchor:"meta",title:"Format vocabulary meta-schema for annotation results",type:["object","boolean"],properties:{format:{type:"string"}}}});var lS=v((dde,XM)=>{XM.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/meta-data",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/meta-data":!0},$dynamicAnchor:"meta",title:"Meta-data vocabulary meta-schema",type:["object","boolean"],properties:{title:{type:"string"},description:{type:"string"},default:!0,deprecated:{type:"boolean",default:!1},readOnly:{type:"boolean",default:!1},writeOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0}}}});var cS=v((pde,YM)=>{YM.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/validation",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/validation":!0},$dynamicAnchor:"meta",title:"Validation vocabulary meta-schema",type:["object","boolean"],properties:{type:{anyOf:[{$ref:"#/$defs/simpleTypes"},{type:"array",items:{$ref:"#/$defs/simpleTypes"},minItems:1,uniqueItems:!0}]},const:!0,enum:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/$defs/nonNegativeInteger"},minLength:{$ref:"#/$defs/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},maxItems:{$ref:"#/$defs/nonNegativeInteger"},minItems:{$ref:"#/$defs/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},maxContains:{$ref:"#/$defs/nonNegativeInteger"},minContains:{$ref:"#/$defs/nonNegativeInteger",default:1},maxProperties:{$ref:"#/$defs/nonNegativeInteger"},minProperties:{$ref:"#/$defs/nonNegativeIntegerDefault0"},required:{$ref:"#/$defs/stringArray"},dependentRequired:{type:"object",additionalProperties:{$ref:"#/$defs/stringArray"}}},$defs:{nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{$ref:"#/$defs/nonNegativeInteger",default:0},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}}}});var uS=v(t5=>{"use strict";Object.defineProperty(t5,"__esModule",{value:!0});var QM=aS(),eq=iS(),tq=oS(),rq=sS(),nq=dS(),aq=pS(),iq=lS(),oq=cS(),sq=["/properties"];function dq(t){return[QM,eq,tq,rq,nq,e(this,aq),iq,e(this,oq)].forEach(r=>this.addMetaSchema(r,void 0,!1)),this;function e(r,n){return t?r.$dataMetaSchema(n,sq):n}}t5.default=dq});var mS=v((Ke,n5)=>{"use strict";Object.defineProperty(Ke,"__esModule",{value:!0});Ke.MissingRefError=Ke.ValidationError=Ke.CodeGen=Ke.Name=Ke.nil=Ke.stringify=Ke.str=Ke._=Ke.KeywordCxt=Ke.Ajv2020=void 0;var pq=q6(),lq=nS(),cq=jh(),uq=uS(),r5="https://json-schema.org/draft/2020-12/schema",pd=class extends pq.default{constructor(e={}){super({...e,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),lq.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(cq.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:e,meta:r}=this.opts;r&&(uq.default.call(this,e),this.refs["http://json-schema.org/schema"]=r5)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(r5)?r5:void 0)}};Ke.Ajv2020=pd;n5.exports=Ke=pd;n5.exports.Ajv2020=pd;Object.defineProperty(Ke,"__esModule",{value:!0});Ke.default=pd;var mq=is();Object.defineProperty(Ke,"KeywordCxt",{enumerable:!0,get:function(){return mq.KeywordCxt}});var ld=Q();Object.defineProperty(Ke,"_",{enumerable:!0,get:function(){return ld._}});Object.defineProperty(Ke,"str",{enumerable:!0,get:function(){return ld.str}});Object.defineProperty(Ke,"stringify",{enumerable:!0,get:function(){return ld.stringify}});Object.defineProperty(Ke,"nil",{enumerable:!0,get:function(){return ld.nil}});Object.defineProperty(Ke,"Name",{enumerable:!0,get:function(){return ld.Name}});Object.defineProperty(Ke,"CodeGen",{enumerable:!0,get:function(){return ld.CodeGen}});var fq=Rp();Object.defineProperty(Ke,"ValidationError",{enumerable:!0,get:function(){return fq.default}});var hq=os();Object.defineProperty(Ke,"MissingRefError",{enumerable:!0,get:function(){return hq.default}})});var Ll=v((fde,fS)=>{"use strict";var Sq="2.0.0",kq=Number.MAX_SAFE_INTEGER||9007199254740991,Tq=16,Eq=250,Iq=["major","premajor","minor","preminor","patch","prepatch","prerelease"];fS.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:Tq,MAX_SAFE_BUILD_LENGTH:Eq,MAX_SAFE_INTEGER:kq,RELEASE_TYPES:Iq,SEMVER_SPEC_VERSION:Sq,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var Ml=v((hde,hS)=>{"use strict";var Pq=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};hS.exports=Pq});var cd=v((Tn,gS)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:o5,MAX_SAFE_BUILD_LENGTH:Nq,MAX_LENGTH:zq}=Ll(),Oq=Ml();Tn=gS.exports={};var Rq=Tn.re=[],Dq=Tn.safeRe=[],D=Tn.src=[],Aq=Tn.safeSrc=[],A=Tn.t={},jq=0,s5="[a-zA-Z0-9-]",Cq=[["\\s",1],["\\d",zq],[s5,Nq]],Uq=t=>{for(let[e,r]of Cq)t=t.split(`${e}*`).join(`${e}{0,${r}}`).split(`${e}+`).join(`${e}{1,${r}}`);return t},ee=(t,e,r)=>{let n=Uq(e),a=jq++;Oq(t,a,e),A[t]=a,D[a]=e,Aq[a]=n,Rq[a]=new RegExp(e,r?"g":void 0),Dq[a]=new RegExp(n,r?"g":void 0)};ee("NUMERICIDENTIFIER","0|[1-9]\\d*");ee("NUMERICIDENTIFIERLOOSE","\\d+");ee("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${s5}*`);ee("MAINVERSION",`(${D[A.NUMERICIDENTIFIER]})\\.(${D[A.NUMERICIDENTIFIER]})\\.(${D[A.NUMERICIDENTIFIER]})`);ee("MAINVERSIONLOOSE",`(${D[A.NUMERICIDENTIFIERLOOSE]})\\.(${D[A.NUMERICIDENTIFIERLOOSE]})\\.(${D[A.NUMERICIDENTIFIERLOOSE]})`);ee("PRERELEASEIDENTIFIER",`(?:${D[A.NONNUMERICIDENTIFIER]}|${D[A.NUMERICIDENTIFIER]})`);ee("PRERELEASEIDENTIFIERLOOSE",`(?:${D[A.NONNUMERICIDENTIFIER]}|${D[A.NUMERICIDENTIFIERLOOSE]})`);ee("PRERELEASE",`(?:-(${D[A.PRERELEASEIDENTIFIER]}(?:\\.${D[A.PRERELEASEIDENTIFIER]})*))`);ee("PRERELEASELOOSE",`(?:-?(${D[A.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${D[A.PRERELEASEIDENTIFIERLOOSE]})*))`);ee("BUILDIDENTIFIER",`${s5}+`);ee("BUILD",`(?:\\+(${D[A.BUILDIDENTIFIER]}(?:\\.${D[A.BUILDIDENTIFIER]})*))`);ee("FULLPLAIN",`v?${D[A.MAINVERSION]}${D[A.PRERELEASE]}?${D[A.BUILD]}?`);ee("FULL",`^${D[A.FULLPLAIN]}$`);ee("LOOSEPLAIN",`[v=\\s]*${D[A.MAINVERSIONLOOSE]}${D[A.PRERELEASELOOSE]}?${D[A.BUILD]}?`);ee("LOOSE",`^${D[A.LOOSEPLAIN]}$`);ee("GTLT","((?:<|>)?=?)");ee("XRANGEIDENTIFIERLOOSE",`${D[A.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);ee("XRANGEIDENTIFIER",`${D[A.NUMERICIDENTIFIER]}|x|X|\\*`);ee("XRANGEPLAIN",`[v=\\s]*(${D[A.XRANGEIDENTIFIER]})(?:\\.(${D[A.XRANGEIDENTIFIER]})(?:\\.(${D[A.XRANGEIDENTIFIER]})(?:${D[A.PRERELEASE]})?${D[A.BUILD]}?)?)?`);ee("XRANGEPLAINLOOSE",`[v=\\s]*(${D[A.XRANGEIDENTIFIERLOOSE]})(?:\\.(${D[A.XRANGEIDENTIFIERLOOSE]})(?:\\.(${D[A.XRANGEIDENTIFIERLOOSE]})(?:${D[A.PRERELEASELOOSE]})?${D[A.BUILD]}?)?)?`);ee("XRANGE",`^${D[A.GTLT]}\\s*${D[A.XRANGEPLAIN]}$`);ee("XRANGELOOSE",`^${D[A.GTLT]}\\s*${D[A.XRANGEPLAINLOOSE]}$`);ee("COERCEPLAIN",`(^|[^\\d])(\\d{1,${o5}})(?:\\.(\\d{1,${o5}}))?(?:\\.(\\d{1,${o5}}))?`);ee("COERCE",`${D[A.COERCEPLAIN]}(?:$|[^\\d])`);ee("COERCEFULL",D[A.COERCEPLAIN]+`(?:${D[A.PRERELEASE]})?(?:${D[A.BUILD]})?(?:$|[^\\d])`);ee("COERCERTL",D[A.COERCE],!0);ee("COERCERTLFULL",D[A.COERCEFULL],!0);ee("LONETILDE","(?:~>?)");ee("TILDETRIM",`(\\s*)${D[A.LONETILDE]}\\s+`,!0);Tn.tildeTrimReplace="$1~";ee("TILDE",`^${D[A.LONETILDE]}${D[A.XRANGEPLAIN]}$`);ee("TILDELOOSE",`^${D[A.LONETILDE]}${D[A.XRANGEPLAINLOOSE]}$`);ee("LONECARET","(?:\\^)");ee("CARETTRIM",`(\\s*)${D[A.LONECARET]}\\s+`,!0);Tn.caretTrimReplace="$1^";ee("CARET",`^${D[A.LONECARET]}${D[A.XRANGEPLAIN]}$`);ee("CARETLOOSE",`^${D[A.LONECARET]}${D[A.XRANGEPLAINLOOSE]}$`);ee("COMPARATORLOOSE",`^${D[A.GTLT]}\\s*(${D[A.LOOSEPLAIN]})$|^$`);ee("COMPARATOR",`^${D[A.GTLT]}\\s*(${D[A.FULLPLAIN]})$|^$`);ee("COMPARATORTRIM",`(\\s*)${D[A.GTLT]}\\s*(${D[A.LOOSEPLAIN]}|${D[A.XRANGEPLAIN]})`,!0);Tn.comparatorTrimReplace="$1$2$3";ee("HYPHENRANGE",`^\\s*(${D[A.XRANGEPLAIN]})\\s+-\\s+(${D[A.XRANGEPLAIN]})\\s*$`);ee("HYPHENRANGELOOSE",`^\\s*(${D[A.XRANGEPLAINLOOSE]})\\s+-\\s+(${D[A.XRANGEPLAINLOOSE]})\\s*$`);ee("STAR","(<|>)?=?\\s*\\*");ee("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");ee("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var Um=v((gde,vS)=>{"use strict";var Vq=Object.freeze({loose:!0}),Lq=Object.freeze({}),Mq=t=>t?typeof t!="object"?Vq:t:Lq;vS.exports=Mq});var d5=v((vde,bS)=>{"use strict";var yS=/^[0-9]+$/,_S=(t,e)=>{if(typeof t=="number"&&typeof e=="number")return t===e?0:t_S(e,t);bS.exports={compareIdentifiers:_S,rcompareIdentifiers:qq}});var jt=v((yde,xS)=>{"use strict";var Vm=Ml(),{MAX_LENGTH:wS,MAX_SAFE_INTEGER:Lm}=Ll(),{safeRe:Mm,t:qm}=cd(),Zq=Um(),{compareIdentifiers:p5}=d5(),l5=class t{constructor(e,r){if(r=Zq(r),e instanceof t){if(e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>wS)throw new TypeError(`version is longer than ${wS} characters`);Vm("SemVer",e,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let n=e.trim().match(r.loose?Mm[qm.LOOSE]:Mm[qm.FULL]);if(!n)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>Lm||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Lm||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Lm||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(a=>{if(/^[0-9]+$/.test(a)){let i=+a;if(i>=0&&ie.major?1:this.minore.minor?1:this.patche.patch?1:0}comparePre(e){if(e instanceof t||(e=new t(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let r=0;do{let n=this.prerelease[r],a=e.prerelease[r];if(Vm("prerelease compare",r,n,a),n===void 0&&a===void 0)return 0;if(a===void 0)return 1;if(n===void 0)return-1;if(n===a)continue;return p5(n,a)}while(++r)}compareBuild(e){e instanceof t||(e=new t(e,this.options));let r=0;do{let n=this.build[r],a=e.build[r];if(Vm("build compare",r,n,a),n===void 0&&a===void 0)return 0;if(a===void 0)return 1;if(n===void 0)return-1;if(n===a)continue;return p5(n,a)}while(++r)}inc(e,r,n){if(e.startsWith("pre")){if(!r&&n===!1)throw new Error("invalid increment argument: identifier is empty");if(r){let a=`-${r}`.match(this.options.loose?Mm[qm.PRERELEASELOOSE]:Mm[qm.PRERELEASE]);if(!a||a[1]!==r)throw new Error(`invalid identifier: ${r}`)}}switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",r,n);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",r,n);break;case"prepatch":this.prerelease.length=0,this.inc("patch",r,n),this.inc("pre",r,n);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",r,n),this.inc("pre",r,n);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let a=Number(n)?1:0;if(this.prerelease.length===0)this.prerelease=[a];else{let i=this.prerelease.length;for(;--i>=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);if(i===-1){if(r===this.prerelease.join(".")&&n===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(a)}}if(r){let i=[r,a];n===!1&&(i=[r]),p5(this.prerelease[0],r)===0?isNaN(this.prerelease[1])&&(this.prerelease=i):this.prerelease=i}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};xS.exports=l5});var xo=v((_de,SS)=>{"use strict";var $S=jt(),Fq=(t,e,r=!1)=>{if(t instanceof $S)return t;try{return new $S(t,e)}catch(n){if(!r)return null;throw n}};SS.exports=Fq});var TS=v((bde,kS)=>{"use strict";var Bq=xo(),Wq=(t,e)=>{let r=Bq(t,e);return r?r.version:null};kS.exports=Wq});var IS=v((wde,ES)=>{"use strict";var Jq=xo(),Gq=(t,e)=>{let r=Jq(t.trim().replace(/^[=v]+/,""),e);return r?r.version:null};ES.exports=Gq});var zS=v((xde,NS)=>{"use strict";var PS=jt(),Hq=(t,e,r,n,a)=>{typeof r=="string"&&(a=n,n=r,r=void 0);try{return new PS(t instanceof PS?t.version:t,r).inc(e,n,a).version}catch{return null}};NS.exports=Hq});var DS=v(($de,RS)=>{"use strict";var OS=xo(),Kq=(t,e)=>{let r=OS(t,null,!0),n=OS(e,null,!0),a=r.compare(n);if(a===0)return null;let i=a>0,o=i?r:n,s=i?n:r,d=!!o.prerelease.length;if(!!s.prerelease.length&&!d){if(!s.patch&&!s.minor)return"major";if(s.compareMain(o)===0)return s.minor&&!s.patch?"minor":"patch"}let l=d?"pre":"";return r.major!==n.major?l+"major":r.minor!==n.minor?l+"minor":r.patch!==n.patch?l+"patch":"prerelease"};RS.exports=Kq});var jS=v((Sde,AS)=>{"use strict";var Xq=jt(),Yq=(t,e)=>new Xq(t,e).major;AS.exports=Yq});var US=v((kde,CS)=>{"use strict";var Qq=jt(),eZ=(t,e)=>new Qq(t,e).minor;CS.exports=eZ});var LS=v((Tde,VS)=>{"use strict";var tZ=jt(),rZ=(t,e)=>new tZ(t,e).patch;VS.exports=rZ});var qS=v((Ede,MS)=>{"use strict";var nZ=xo(),aZ=(t,e)=>{let r=nZ(t,e);return r&&r.prerelease.length?r.prerelease:null};MS.exports=aZ});var jr=v((Ide,FS)=>{"use strict";var ZS=jt(),iZ=(t,e,r)=>new ZS(t,r).compare(new ZS(e,r));FS.exports=iZ});var WS=v((Pde,BS)=>{"use strict";var oZ=jr(),sZ=(t,e,r)=>oZ(e,t,r);BS.exports=sZ});var GS=v((Nde,JS)=>{"use strict";var dZ=jr(),pZ=(t,e)=>dZ(t,e,!0);JS.exports=pZ});var Zm=v((zde,KS)=>{"use strict";var HS=jt(),lZ=(t,e,r)=>{let n=new HS(t,r),a=new HS(e,r);return n.compare(a)||n.compareBuild(a)};KS.exports=lZ});var YS=v((Ode,XS)=>{"use strict";var cZ=Zm(),uZ=(t,e)=>t.sort((r,n)=>cZ(r,n,e));XS.exports=uZ});var ek=v((Rde,QS)=>{"use strict";var mZ=Zm(),fZ=(t,e)=>t.sort((r,n)=>mZ(n,r,e));QS.exports=fZ});var ql=v((Dde,tk)=>{"use strict";var hZ=jr(),gZ=(t,e,r)=>hZ(t,e,r)>0;tk.exports=gZ});var Fm=v((Ade,rk)=>{"use strict";var vZ=jr(),yZ=(t,e,r)=>vZ(t,e,r)<0;rk.exports=yZ});var c5=v((jde,nk)=>{"use strict";var _Z=jr(),bZ=(t,e,r)=>_Z(t,e,r)===0;nk.exports=bZ});var u5=v((Cde,ak)=>{"use strict";var wZ=jr(),xZ=(t,e,r)=>wZ(t,e,r)!==0;ak.exports=xZ});var Bm=v((Ude,ik)=>{"use strict";var $Z=jr(),SZ=(t,e,r)=>$Z(t,e,r)>=0;ik.exports=SZ});var Wm=v((Vde,ok)=>{"use strict";var kZ=jr(),TZ=(t,e,r)=>kZ(t,e,r)<=0;ok.exports=TZ});var m5=v((Lde,sk)=>{"use strict";var EZ=c5(),IZ=u5(),PZ=ql(),NZ=Bm(),zZ=Fm(),OZ=Wm(),RZ=(t,e,r,n)=>{switch(e){case"===":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t===r;case"!==":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t!==r;case"":case"=":case"==":return EZ(t,r,n);case"!=":return IZ(t,r,n);case">":return PZ(t,r,n);case">=":return NZ(t,r,n);case"<":return zZ(t,r,n);case"<=":return OZ(t,r,n);default:throw new TypeError(`Invalid operator: ${e}`)}};sk.exports=RZ});var pk=v((Mde,dk)=>{"use strict";var DZ=jt(),AZ=xo(),{safeRe:Jm,t:Gm}=cd(),jZ=(t,e)=>{if(t instanceof DZ)return t;if(typeof t=="number"&&(t=String(t)),typeof t!="string")return null;e=e||{};let r=null;if(!e.rtl)r=t.match(e.includePrerelease?Jm[Gm.COERCEFULL]:Jm[Gm.COERCE]);else{let d=e.includePrerelease?Jm[Gm.COERCERTLFULL]:Jm[Gm.COERCERTL],p;for(;(p=d.exec(t))&&(!r||r.index+r[0].length!==t.length);)(!r||p.index+p[0].length!==r.index+r[0].length)&&(r=p),d.lastIndex=p.index+p[1].length+p[2].length;d.lastIndex=-1}if(r===null)return null;let n=r[2],a=r[3]||"0",i=r[4]||"0",o=e.includePrerelease&&r[5]?`-${r[5]}`:"",s=e.includePrerelease&&r[6]?`+${r[6]}`:"";return AZ(`${n}.${a}.${i}${o}${s}`,e)};dk.exports=jZ});var ck=v((qde,lk)=>{"use strict";var f5=class{constructor(){this.max=1e3,this.map=new Map}get(e){let r=this.map.get(e);if(r!==void 0)return this.map.delete(e),this.map.set(e,r),r}delete(e){return this.map.delete(e)}set(e,r){if(!this.delete(e)&&r!==void 0){if(this.map.size>=this.max){let a=this.map.keys().next().value;this.delete(a)}this.map.set(e,r)}return this}};lk.exports=f5});var Cr=v((Zde,hk)=>{"use strict";var CZ=/\s+/g,h5=class t{constructor(e,r){if(r=VZ(r),e instanceof t)return e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease?e:new t(e.raw,r);if(e instanceof g5)return this.raw=e.value,this.set=[[e]],this.formatted=void 0,this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=e.trim().replace(CZ," "),this.set=this.raw.split("||").map(n=>this.parseRange(n.trim())).filter(n=>n.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let n=this.set[0];if(this.set=this.set.filter(a=>!mk(a[0])),this.set.length===0)this.set=[n];else if(this.set.length>1){for(let a of this.set)if(a.length===1&&WZ(a[0])){this.set=[a];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let e=0;e0&&(this.formatted+="||");let r=this.set[e];for(let n=0;n0&&(this.formatted+=" "),this.formatted+=r[n].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){let n=((this.options.includePrerelease&&FZ)|(this.options.loose&&BZ))+":"+e,a=uk.get(n);if(a)return a;let i=this.options.loose,o=i?Gt[Ct.HYPHENRANGELOOSE]:Gt[Ct.HYPHENRANGE];e=e.replace(o,rF(this.options.includePrerelease)),Xe("hyphen replace",e),e=e.replace(Gt[Ct.COMPARATORTRIM],MZ),Xe("comparator trim",e),e=e.replace(Gt[Ct.TILDETRIM],qZ),Xe("tilde trim",e),e=e.replace(Gt[Ct.CARETTRIM],ZZ),Xe("caret trim",e);let s=e.split(" ").map(c=>JZ(c,this.options)).join(" ").split(/\s+/).map(c=>tF(c,this.options));i&&(s=s.filter(c=>(Xe("loose invalid filter",c,this.options),!!c.match(Gt[Ct.COMPARATORLOOSE])))),Xe("range list",s);let d=new Map,p=s.map(c=>new g5(c,this.options));for(let c of p){if(mk(c))return[c];d.set(c.value,c)}d.size>1&&d.has("")&&d.delete("");let l=[...d.values()];return uk.set(n,l),l}intersects(e,r){if(!(e instanceof t))throw new TypeError("a Range is required");return this.set.some(n=>fk(n,r)&&e.set.some(a=>fk(a,r)&&n.every(i=>a.every(o=>i.intersects(o,r)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new LZ(e,this.options)}catch{return!1}for(let r=0;rt.value==="<0.0.0-0",WZ=t=>t.value==="",fk=(t,e)=>{let r=!0,n=t.slice(),a=n.pop();for(;r&&n.length;)r=n.every(i=>a.intersects(i,e)),a=n.pop();return r},JZ=(t,e)=>(t=t.replace(Gt[Ct.BUILD],""),Xe("comp",t,e),t=KZ(t,e),Xe("caret",t),t=GZ(t,e),Xe("tildes",t),t=YZ(t,e),Xe("xrange",t),t=eF(t,e),Xe("stars",t),t),Ht=t=>!t||t.toLowerCase()==="x"||t==="*",GZ=(t,e)=>t.trim().split(/\s+/).map(r=>HZ(r,e)).join(" "),HZ=(t,e)=>{let r=e.loose?Gt[Ct.TILDELOOSE]:Gt[Ct.TILDE];return t.replace(r,(n,a,i,o,s)=>{Xe("tilde",t,n,a,i,o,s);let d;return Ht(a)?d="":Ht(i)?d=`>=${a}.0.0 <${+a+1}.0.0-0`:Ht(o)?d=`>=${a}.${i}.0 <${a}.${+i+1}.0-0`:s?(Xe("replaceTilde pr",s),d=`>=${a}.${i}.${o}-${s} <${a}.${+i+1}.0-0`):d=`>=${a}.${i}.${o} <${a}.${+i+1}.0-0`,Xe("tilde return",d),d})},KZ=(t,e)=>t.trim().split(/\s+/).map(r=>XZ(r,e)).join(" "),XZ=(t,e)=>{Xe("caret",t,e);let r=e.loose?Gt[Ct.CARETLOOSE]:Gt[Ct.CARET],n=e.includePrerelease?"-0":"";return t.replace(r,(a,i,o,s,d)=>{Xe("caret",t,a,i,o,s,d);let p;return Ht(i)?p="":Ht(o)?p=`>=${i}.0.0${n} <${+i+1}.0.0-0`:Ht(s)?i==="0"?p=`>=${i}.${o}.0${n} <${i}.${+o+1}.0-0`:p=`>=${i}.${o}.0${n} <${+i+1}.0.0-0`:d?(Xe("replaceCaret pr",d),i==="0"?o==="0"?p=`>=${i}.${o}.${s}-${d} <${i}.${o}.${+s+1}-0`:p=`>=${i}.${o}.${s}-${d} <${i}.${+o+1}.0-0`:p=`>=${i}.${o}.${s}-${d} <${+i+1}.0.0-0`):(Xe("no pr"),i==="0"?o==="0"?p=`>=${i}.${o}.${s}${n} <${i}.${o}.${+s+1}-0`:p=`>=${i}.${o}.${s}${n} <${i}.${+o+1}.0-0`:p=`>=${i}.${o}.${s} <${+i+1}.0.0-0`),Xe("caret return",p),p})},YZ=(t,e)=>(Xe("replaceXRanges",t,e),t.split(/\s+/).map(r=>QZ(r,e)).join(" ")),QZ=(t,e)=>{t=t.trim();let r=e.loose?Gt[Ct.XRANGELOOSE]:Gt[Ct.XRANGE];return t.replace(r,(n,a,i,o,s,d)=>{Xe("xRange",t,n,a,i,o,s,d);let p=Ht(i),l=p||Ht(o),c=l||Ht(s),u=c;return a==="="&&u&&(a=""),d=e.includePrerelease?"-0":"",p?a===">"||a==="<"?n="<0.0.0-0":n="*":a&&u?(l&&(o=0),s=0,a===">"?(a=">=",l?(i=+i+1,o=0,s=0):(o=+o+1,s=0)):a==="<="&&(a="<",l?i=+i+1:o=+o+1),a==="<"&&(d="-0"),n=`${a+i}.${o}.${s}${d}`):l?n=`>=${i}.0.0${d} <${+i+1}.0.0-0`:c&&(n=`>=${i}.${o}.0${d} <${i}.${+o+1}.0-0`),Xe("xRange return",n),n})},eF=(t,e)=>(Xe("replaceStars",t,e),t.trim().replace(Gt[Ct.STAR],"")),tF=(t,e)=>(Xe("replaceGTE0",t,e),t.trim().replace(Gt[e.includePrerelease?Ct.GTE0PRE:Ct.GTE0],"")),rF=t=>(e,r,n,a,i,o,s,d,p,l,c,u)=>(Ht(n)?r="":Ht(a)?r=`>=${n}.0.0${t?"-0":""}`:Ht(i)?r=`>=${n}.${a}.0${t?"-0":""}`:o?r=`>=${r}`:r=`>=${r}${t?"-0":""}`,Ht(p)?d="":Ht(l)?d=`<${+p+1}.0.0-0`:Ht(c)?d=`<${p}.${+l+1}.0-0`:u?d=`<=${p}.${l}.${c}-${u}`:t?d=`<${p}.${l}.${+c+1}-0`:d=`<=${d}`,`${r} ${d}`.trim()),nF=(t,e,r)=>{for(let n=0;n0){let a=t[n].semver;if(a.major===e.major&&a.minor===e.minor&&a.patch===e.patch)return!0}return!1}return!0}});var Zl=v((Fde,wk)=>{"use strict";var Fl=Symbol("SemVer ANY"),_5=class t{static get ANY(){return Fl}constructor(e,r){if(r=gk(r),e instanceof t){if(e.loose===!!r.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),y5("comparator",e,r),this.options=r,this.loose=!!r.loose,this.parse(e),this.semver===Fl?this.value="":this.value=this.operator+this.semver.version,y5("comp",this)}parse(e){let r=this.options.loose?vk[yk.COMPARATORLOOSE]:vk[yk.COMPARATOR],n=e.match(r);if(!n)throw new TypeError(`Invalid comparator: ${e}`);this.operator=n[1]!==void 0?n[1]:"",this.operator==="="&&(this.operator=""),n[2]?this.semver=new _k(n[2],this.options.loose):this.semver=Fl}toString(){return this.value}test(e){if(y5("Comparator.test",e,this.options.loose),this.semver===Fl||e===Fl)return!0;if(typeof e=="string")try{e=new _k(e,this.options)}catch{return!1}return v5(e,this.operator,this.semver,this.options)}intersects(e,r){if(!(e instanceof t))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new bk(e.value,r).test(this.value):e.operator===""?e.value===""?!0:new bk(this.value,r).test(e.semver):(r=gk(r),r.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!r.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||v5(this.semver,"<",e.semver,r)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||v5(this.semver,">",e.semver,r)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};wk.exports=_5;var gk=Um(),{safeRe:vk,t:yk}=cd(),v5=m5(),y5=Ml(),_k=jt(),bk=Cr()});var Bl=v((Bde,xk)=>{"use strict";var aF=Cr(),iF=(t,e,r)=>{try{e=new aF(e,r)}catch{return!1}return e.test(t)};xk.exports=iF});var Sk=v((Wde,$k)=>{"use strict";var oF=Cr(),sF=(t,e)=>new oF(t,e).set.map(r=>r.map(n=>n.value).join(" ").trim().split(" "));$k.exports=sF});var Tk=v((Jde,kk)=>{"use strict";var dF=jt(),pF=Cr(),lF=(t,e,r)=>{let n=null,a=null,i=null;try{i=new pF(e,r)}catch{return null}return t.forEach(o=>{i.test(o)&&(!n||a.compare(o)===-1)&&(n=o,a=new dF(n,r))}),n};kk.exports=lF});var Ik=v((Gde,Ek)=>{"use strict";var cF=jt(),uF=Cr(),mF=(t,e,r)=>{let n=null,a=null,i=null;try{i=new uF(e,r)}catch{return null}return t.forEach(o=>{i.test(o)&&(!n||a.compare(o)===1)&&(n=o,a=new cF(n,r))}),n};Ek.exports=mF});var zk=v((Hde,Nk)=>{"use strict";var b5=jt(),fF=Cr(),Pk=ql(),hF=(t,e)=>{t=new fF(t,e);let r=new b5("0.0.0");if(t.test(r)||(r=new b5("0.0.0-0"),t.test(r)))return r;r=null;for(let n=0;n{let s=new b5(o.semver.version);switch(o.operator){case">":s.prerelease.length===0?s.patch++:s.prerelease.push(0),s.raw=s.format();case"":case">=":(!i||Pk(s,i))&&(i=s);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),i&&(!r||Pk(r,i))&&(r=i)}return r&&t.test(r)?r:null};Nk.exports=hF});var Rk=v((Kde,Ok)=>{"use strict";var gF=Cr(),vF=(t,e)=>{try{return new gF(t,e).range||"*"}catch{return null}};Ok.exports=vF});var Hm=v((Xde,Ck)=>{"use strict";var yF=jt(),jk=Zl(),{ANY:_F}=jk,bF=Cr(),wF=Bl(),Dk=ql(),Ak=Fm(),xF=Wm(),$F=Bm(),SF=(t,e,r,n)=>{t=new yF(t,n),e=new bF(e,n);let a,i,o,s,d;switch(r){case">":a=Dk,i=xF,o=Ak,s=">",d=">=";break;case"<":a=Ak,i=$F,o=Dk,s="<",d="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(wF(t,e,n))return!1;for(let p=0;p{m.semver===_F&&(m=new jk(">=0.0.0")),c=c||m,u=u||m,a(m.semver,c.semver,n)?c=m:o(m.semver,u.semver,n)&&(u=m)}),c.operator===s||c.operator===d||(!u.operator||u.operator===s)&&i(t,u.semver))return!1;if(u.operator===d&&o(t,u.semver))return!1}return!0};Ck.exports=SF});var Vk=v((Yde,Uk)=>{"use strict";var kF=Hm(),TF=(t,e,r)=>kF(t,e,">",r);Uk.exports=TF});var Mk=v((Qde,Lk)=>{"use strict";var EF=Hm(),IF=(t,e,r)=>EF(t,e,"<",r);Lk.exports=IF});var Fk=v((epe,Zk)=>{"use strict";var qk=Cr(),PF=(t,e,r)=>(t=new qk(t,r),e=new qk(e,r),t.intersects(e,r));Zk.exports=PF});var Wk=v((tpe,Bk)=>{"use strict";var NF=Bl(),zF=jr();Bk.exports=(t,e,r)=>{let n=[],a=null,i=null,o=t.sort((l,c)=>zF(l,c,r));for(let l of o)NF(l,e,r)?(i=l,a||(a=l)):(i&&n.push([a,i]),i=null,a=null);a&&n.push([a,null]);let s=[];for(let[l,c]of n)l===c?s.push(l):!c&&l===o[0]?s.push("*"):c?l===o[0]?s.push(`<=${c}`):s.push(`${l} - ${c}`):s.push(`>=${l}`);let d=s.join(" || "),p=typeof e.raw=="string"?e.raw:String(e);return d.length{"use strict";var Jk=Cr(),x5=Zl(),{ANY:w5}=x5,Wl=Bl(),$5=jr(),OF=(t,e,r={})=>{if(t===e)return!0;t=new Jk(t,r),e=new Jk(e,r);let n=!1;e:for(let a of t.set){for(let i of e.set){let o=DF(a,i,r);if(n=n||o!==null,o)continue e}if(n)return!1}return!0},RF=[new x5(">=0.0.0-0")],Gk=[new x5(">=0.0.0")],DF=(t,e,r)=>{if(t===e)return!0;if(t.length===1&&t[0].semver===w5){if(e.length===1&&e[0].semver===w5)return!0;r.includePrerelease?t=RF:t=Gk}if(e.length===1&&e[0].semver===w5){if(r.includePrerelease)return!0;e=Gk}let n=new Set,a,i;for(let m of t)m.operator===">"||m.operator===">="?a=Hk(a,m,r):m.operator==="<"||m.operator==="<="?i=Kk(i,m,r):n.add(m.semver);if(n.size>1)return null;let o;if(a&&i){if(o=$5(a.semver,i.semver,r),o>0)return null;if(o===0&&(a.operator!==">="||i.operator!=="<="))return null}for(let m of n){if(a&&!Wl(m,String(a),r)||i&&!Wl(m,String(i),r))return null;for(let f of e)if(!Wl(m,String(f),r))return!1;return!0}let s,d,p,l,c=i&&!r.includePrerelease&&i.semver.prerelease.length?i.semver:!1,u=a&&!r.includePrerelease&&a.semver.prerelease.length?a.semver:!1;c&&c.prerelease.length===1&&i.operator==="<"&&c.prerelease[0]===0&&(c=!1);for(let m of e){if(l=l||m.operator===">"||m.operator===">=",p=p||m.operator==="<"||m.operator==="<=",a){if(u&&m.semver.prerelease&&m.semver.prerelease.length&&m.semver.major===u.major&&m.semver.minor===u.minor&&m.semver.patch===u.patch&&(u=!1),m.operator===">"||m.operator===">="){if(s=Hk(a,m,r),s===m&&s!==a)return!1}else if(a.operator===">="&&!Wl(a.semver,String(m),r))return!1}if(i){if(c&&m.semver.prerelease&&m.semver.prerelease.length&&m.semver.major===c.major&&m.semver.minor===c.minor&&m.semver.patch===c.patch&&(c=!1),m.operator==="<"||m.operator==="<="){if(d=Kk(i,m,r),d===m&&d!==i)return!1}else if(i.operator==="<="&&!Wl(i.semver,String(m),r))return!1}if(!m.operator&&(i||a)&&o!==0)return!1}return!(a&&p&&!i&&o!==0||i&&l&&!a&&o!==0||u||c)},Hk=(t,e,r)=>{if(!t)return e;let n=$5(t.semver,e.semver,r);return n>0?t:n<0||e.operator===">"&&t.operator===">="?e:t},Kk=(t,e,r)=>{if(!t)return e;let n=$5(t.semver,e.semver,r);return n<0?t:n>0||e.operator==="<"&&t.operator==="<="?e:t};Xk.exports=OF});var rT=v((npe,tT)=>{"use strict";var S5=cd(),Qk=Ll(),AF=jt(),eT=d5(),jF=xo(),CF=TS(),UF=IS(),VF=zS(),LF=DS(),MF=jS(),qF=US(),ZF=LS(),FF=qS(),BF=jr(),WF=WS(),JF=GS(),GF=Zm(),HF=YS(),KF=ek(),XF=ql(),YF=Fm(),QF=c5(),eB=u5(),tB=Bm(),rB=Wm(),nB=m5(),aB=pk(),iB=Zl(),oB=Cr(),sB=Bl(),dB=Sk(),pB=Tk(),lB=Ik(),cB=zk(),uB=Rk(),mB=Hm(),fB=Vk(),hB=Mk(),gB=Fk(),vB=Wk(),yB=Yk();tT.exports={parse:jF,valid:CF,clean:UF,inc:VF,diff:LF,major:MF,minor:qF,patch:ZF,prerelease:FF,compare:BF,rcompare:WF,compareLoose:JF,compareBuild:GF,sort:HF,rsort:KF,gt:XF,lt:YF,eq:QF,neq:eB,gte:tB,lte:rB,cmp:nB,coerce:aB,Comparator:iB,Range:oB,satisfies:sB,toComparators:dB,maxSatisfying:pB,minSatisfying:lB,minVersion:cB,validRange:uB,outside:mB,gtr:fB,ltr:hB,intersects:gB,simplifyRange:vB,subset:yB,SemVer:AF,re:S5.re,src:S5.src,tokens:S5.t,SEMVER_SPEC_VERSION:Qk.SEMVER_SPEC_VERSION,RELEASE_TYPES:Qk.RELEASE_TYPES,compareIdentifiers:eT.compareIdentifiers,rcompareIdentifiers:eT.rcompareIdentifiers}});var _e;(function(t){t.assertEqual=a=>{};function e(a){}t.assertIs=e;function r(a){throw new Error}t.assertNever=r,t.arrayToEnum=a=>{let i={};for(let o of a)i[o]=o;return i},t.getValidEnumValues=a=>{let i=t.objectKeys(a).filter(s=>typeof a[a[s]]!="number"),o={};for(let s of i)o[s]=a[s];return t.objectValues(o)},t.objectValues=a=>t.objectKeys(a).map(function(i){return a[i]}),t.objectKeys=typeof Object.keys=="function"?a=>Object.keys(a):a=>{let i=[];for(let o in a)Object.prototype.hasOwnProperty.call(a,o)&&i.push(o);return i},t.find=(a,i)=>{for(let o of a)if(i(o))return o},t.isInteger=typeof Number.isInteger=="function"?a=>Number.isInteger(a):a=>typeof a=="number"&&Number.isFinite(a)&&Math.floor(a)===a;function n(a,i=" | "){return a.map(o=>typeof o=="string"?`'${o}'`:o).join(i)}t.joinValues=n,t.jsonStringifyReplacer=(a,i)=>typeof i=="bigint"?i.toString():i})(_e||(_e={}));var O5;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(O5||(O5={}));var O=_e.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),In=t=>{switch(typeof t){case"undefined":return O.undefined;case"string":return O.string;case"number":return Number.isNaN(t)?O.nan:O.number;case"boolean":return O.boolean;case"function":return O.function;case"bigint":return O.bigint;case"symbol":return O.symbol;case"object":return Array.isArray(t)?O.array:t===null?O.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?O.promise:typeof Map<"u"&&t instanceof Map?O.map:typeof Set<"u"&&t instanceof Set?O.set:typeof Date<"u"&&t instanceof Date?O.date:O.object;default:return O.unknown}};var x=_e.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);var pr=class t extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}format(e){let r=e||function(i){return i.message},n={_errors:[]},a=i=>{for(let o of i.issues)if(o.code==="invalid_union")o.unionErrors.map(a);else if(o.code==="invalid_return_type")a(o.returnTypeError);else if(o.code==="invalid_arguments")a(o.argumentsError);else if(o.path.length===0)n._errors.push(r(o));else{let s=n,d=0;for(;dr.message){let r=Object.create(null),n=[];for(let a of this.issues)if(a.path.length>0){let i=a.path[0];r[i]=r[i]||[],r[i].push(e(a))}else n.push(e(a));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};pr.create=t=>new pr(t);var vT=(t,e)=>{let r;switch(t.code){case x.invalid_type:t.received===O.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case x.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,_e.jsonStringifyReplacer)}`;break;case x.unrecognized_keys:r=`Unrecognized key(s) in object: ${_e.joinValues(t.keys,", ")}`;break;case x.invalid_union:r="Invalid input";break;case x.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${_e.joinValues(t.options)}`;break;case x.invalid_enum_value:r=`Invalid enum value. Expected ${_e.joinValues(t.options)}, received '${t.received}'`;break;case x.invalid_arguments:r="Invalid function arguments";break;case x.invalid_return_type:r="Invalid function return type";break;case x.invalid_date:r="Invalid date";break;case x.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:_e.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case x.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case x.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case x.custom:r="Invalid input";break;case x.invalid_intersection_types:r="Intersection results could not be merged";break;case x.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case x.not_finite:r="Number must be finite";break;default:r=e.defaultError,_e.assertNever(t)}return{message:r}},da=vT;var yT=da;function ud(){return yT}var Xl=t=>{let{data:e,path:r,errorMaps:n,issueData:a}=t,i=[...r,...a.path||[]],o={...a,path:i};if(a.message!==void 0)return{...a,path:i,message:a.message};let s="",d=n.filter(p=>!!p).slice().reverse();for(let p of d)s=p(o,{data:e,defaultError:s}).message;return{...a,path:i,message:s}};function P(t,e){let r=ud(),n=Xl({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===da?void 0:da].filter(a=>!!a)});t.common.issues.push(n)}var Et=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let a of r){if(a.status==="aborted")return J;a.status==="dirty"&&e.dirty(),n.push(a.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let a of r){let i=await a.key,o=await a.value;n.push({key:i,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let a of r){let{key:i,value:o}=a;if(i.status==="aborted"||o.status==="aborted")return J;i.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),i.value!=="__proto__"&&(typeof o.value<"u"||a.alwaysSet)&&(n[i.value]=o.value)}return{status:e.value,value:n}}},J=Object.freeze({status:"aborted"}),ko=t=>({status:"dirty",value:t}),Vt=t=>({status:"valid",value:t}),Qm=t=>t.status==="aborted",ef=t=>t.status==="dirty",pi=t=>t.status==="valid",md=t=>typeof Promise<"u"&&t instanceof Promise;var j;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(j||(j={}));var yr=class{constructor(e,r,n,a){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=a}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},R5=(t,e)=>{if(pi(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new pr(t.common.issues);return this._error=r,this._error}}};function te(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:a}=t;if(e&&(r||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:a}:{errorMap:(o,s)=>{let{message:d}=t;return o.code==="invalid_enum_value"?{message:d??s.defaultError}:typeof s.data>"u"?{message:d??n??s.defaultError}:o.code!=="invalid_type"?{message:s.defaultError}:{message:d??r??s.defaultError}},description:a}}var ce=class{get description(){return this._def.description}_getType(e){return In(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:In(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Et,ctx:{common:e.parent.common,data:e.data,parsedType:In(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(md(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){let n={common:{issues:[],async:r?.async??!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:In(e)},a=this._parseSync({data:e,path:n.path,parent:n});return R5(n,a)}"~validate"(e){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:In(e)};if(!this["~standard"].async)try{let n=this._parseSync({data:e,path:[],parent:r});return pi(n)?{value:n.value}:{issues:r.common.issues}}catch(n){n?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),r.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:r}).then(n=>pi(n)?{value:n.value}:{issues:r.common.issues})}async parseAsync(e,r){let n=await this.safeParseAsync(e,r);if(n.success)return n.data;throw n.error}async safeParseAsync(e,r){let n={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:In(e)},a=this._parse({data:e,path:n.path,parent:n}),i=await(md(a)?a:Promise.resolve(a));return R5(n,i)}refine(e,r){let n=a=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(a):r;return this._refinement((a,i)=>{let o=e(a),s=()=>i.addIssue({code:x.custom,...n(a)});return typeof Promise<"u"&&o instanceof Promise?o.then(d=>d?!0:(s(),!1)):o?!0:(s(),!1)})}refinement(e,r){return this._refinement((n,a)=>e(n)?!0:(a.addIssue(typeof r=="function"?r(n,a):r),!1))}_refinement(e){return new Vr({schema:this,typeName:Z.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:r=>this["~validate"](r)}}optional(){return Ur.create(this,this._def)}nullable(){return zn.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return la.create(this)}promise(){return li.create(this,this._def)}or(e){return No.create([this,e],this._def)}and(e){return zo.create(this,e,this._def)}transform(e){return new Vr({...te(this._def),schema:this,typeName:Z.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new jo({...te(this._def),innerType:this,defaultValue:r,typeName:Z.ZodDefault})}brand(){return new Yl({typeName:Z.ZodBranded,type:this,...te(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new Co({...te(this._def),innerType:this,catchValue:r,typeName:Z.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Ql.create(this,e)}readonly(){return Uo.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},_T=/^c[^\s-]{8,}$/i,bT=/^[0-9a-z]+$/,wT=/^[0-9A-HJKMNP-TV-Z]{26}$/i,xT=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,$T=/^[a-z0-9_-]{21}$/i,ST=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,kT=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,TT=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,ET="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",tf,IT=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,PT=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,NT=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,zT=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,OT=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,RT=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,D5="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",DT=new RegExp(`^${D5}$`);function A5(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);let r=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${r}`}function AT(t){return new RegExp(`^${A5(t)}$`)}function jT(t){let e=`${D5}T${A5(t)}`,r=[];return r.push(t.local?"Z?":"Z"),t.offset&&r.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${r.join("|")})`,new RegExp(`^${e}$`)}function CT(t,e){return!!((e==="v4"||!e)&&IT.test(t)||(e==="v6"||!e)&&NT.test(t))}function UT(t,e){if(!ST.test(t))return!1;try{let[r]=t.split(".");if(!r)return!1;let n=r.replace(/-/g,"+").replace(/_/g,"/").padEnd(r.length+(4-r.length%4)%4,"="),a=JSON.parse(atob(n));return!(typeof a!="object"||a===null||"typ"in a&&a?.typ!=="JWT"||!a.alg||e&&a.alg!==e)}catch{return!1}}function VT(t,e){return!!((e==="v4"||!e)&&PT.test(t)||(e==="v6"||!e)&&zT.test(t))}var Eo=class t extends ce{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==O.string){let i=this._getOrReturnCtx(e);return P(i,{code:x.invalid_type,expected:O.string,received:i.parsedType}),J}let n=new Et,a;for(let i of this._def.checks)if(i.kind==="min")e.data.lengthi.value&&(a=this._getOrReturnCtx(e,a),P(a,{code:x.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),n.dirty());else if(i.kind==="length"){let o=e.data.length>i.value,s=e.data.lengthe.test(a),{validation:r,code:x.invalid_string,...j.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...j.errToObj(e)})}url(e){return this._addCheck({kind:"url",...j.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...j.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...j.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...j.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...j.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...j.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...j.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...j.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...j.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...j.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...j.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...j.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...j.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...j.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...j.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...j.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...j.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...j.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...j.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...j.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...j.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...j.errToObj(r)})}nonempty(e){return this.min(1,j.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxLength(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew Eo({checks:[],typeName:Z.ZodString,coerce:t?.coerce??!1,...te(t)});function LT(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,a=r>n?r:n,i=Number.parseInt(t.toFixed(a).replace(".","")),o=Number.parseInt(e.toFixed(a).replace(".",""));return i%o/10**a}var fd=class t extends ce{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==O.number){let i=this._getOrReturnCtx(e);return P(i,{code:x.invalid_type,expected:O.number,received:i.parsedType}),J}let n,a=new Et;for(let i of this._def.checks)i.kind==="int"?_e.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{code:x.invalid_type,expected:"integer",received:"float",message:i.message}),a.dirty()):i.kind==="min"?(i.inclusive?e.datai.value:e.data>=i.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:x.too_big,maximum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),a.dirty()):i.kind==="multipleOf"?LT(e.data,i.value)!==0&&(n=this._getOrReturnCtx(e,n),P(n,{code:x.not_multiple_of,multipleOf:i.value,message:i.message}),a.dirty()):i.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{code:x.not_finite,message:i.message}),a.dirty()):_e.assertNever(i);return{status:a.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,j.toString(r))}gt(e,r){return this.setLimit("min",e,!1,j.toString(r))}lte(e,r){return this.setLimit("max",e,!0,j.toString(r))}lt(e,r){return this.setLimit("max",e,!1,j.toString(r))}setLimit(e,r,n,a){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:j.toString(a)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:j.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:j.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:j.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:j.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:j.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:j.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:j.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:j.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:j.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuee.kind==="int"||e.kind==="multipleOf"&&_e.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.valuenew fd({checks:[],typeName:Z.ZodNumber,coerce:t?.coerce||!1,...te(t)});var hd=class t extends ce{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==O.bigint)return this._getInvalidInput(e);let n,a=new Et;for(let i of this._def.checks)i.kind==="min"?(i.inclusive?e.datai.value:e.data>=i.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:x.too_big,type:"bigint",maximum:i.value,inclusive:i.inclusive,message:i.message}),a.dirty()):i.kind==="multipleOf"?e.data%i.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),P(n,{code:x.not_multiple_of,multipleOf:i.value,message:i.message}),a.dirty()):_e.assertNever(i);return{status:a.value,value:e.data}}_getInvalidInput(e){let r=this._getOrReturnCtx(e);return P(r,{code:x.invalid_type,expected:O.bigint,received:r.parsedType}),J}gte(e,r){return this.setLimit("min",e,!0,j.toString(r))}gt(e,r){return this.setLimit("min",e,!1,j.toString(r))}lte(e,r){return this.setLimit("max",e,!0,j.toString(r))}lt(e,r){return this.setLimit("max",e,!1,j.toString(r))}setLimit(e,r,n,a){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:j.toString(a)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:j.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:j.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:j.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:j.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:j.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew hd({checks:[],typeName:Z.ZodBigInt,coerce:t?.coerce??!1,...te(t)});var gd=class extends ce{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==O.boolean){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:O.boolean,received:n.parsedType}),J}return Vt(e.data)}};gd.create=t=>new gd({typeName:Z.ZodBoolean,coerce:t?.coerce||!1,...te(t)});var vd=class t extends ce{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==O.date){let i=this._getOrReturnCtx(e);return P(i,{code:x.invalid_type,expected:O.date,received:i.parsedType}),J}if(Number.isNaN(e.data.getTime())){let i=this._getOrReturnCtx(e);return P(i,{code:x.invalid_date}),J}let n=new Et,a;for(let i of this._def.checks)i.kind==="min"?e.data.getTime()i.value&&(a=this._getOrReturnCtx(e,a),P(a,{code:x.too_big,message:i.message,inclusive:!0,exact:!1,maximum:i.value,type:"date"}),n.dirty()):_e.assertNever(i);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:j.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:j.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew vd({checks:[],coerce:t?.coerce||!1,typeName:Z.ZodDate,...te(t)});var yd=class extends ce{_parse(e){if(this._getType(e)!==O.symbol){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:O.symbol,received:n.parsedType}),J}return Vt(e.data)}};yd.create=t=>new yd({typeName:Z.ZodSymbol,...te(t)});var Io=class extends ce{_parse(e){if(this._getType(e)!==O.undefined){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:O.undefined,received:n.parsedType}),J}return Vt(e.data)}};Io.create=t=>new Io({typeName:Z.ZodUndefined,...te(t)});var Po=class extends ce{_parse(e){if(this._getType(e)!==O.null){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:O.null,received:n.parsedType}),J}return Vt(e.data)}};Po.create=t=>new Po({typeName:Z.ZodNull,...te(t)});var _d=class extends ce{constructor(){super(...arguments),this._any=!0}_parse(e){return Vt(e.data)}};_d.create=t=>new _d({typeName:Z.ZodAny,...te(t)});var pa=class extends ce{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Vt(e.data)}};pa.create=t=>new pa({typeName:Z.ZodUnknown,...te(t)});var rn=class extends ce{_parse(e){let r=this._getOrReturnCtx(e);return P(r,{code:x.invalid_type,expected:O.never,received:r.parsedType}),J}};rn.create=t=>new rn({typeName:Z.ZodNever,...te(t)});var bd=class extends ce{_parse(e){if(this._getType(e)!==O.undefined){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:O.void,received:n.parsedType}),J}return Vt(e.data)}};bd.create=t=>new bd({typeName:Z.ZodVoid,...te(t)});var la=class t extends ce{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),a=this._def;if(r.parsedType!==O.array)return P(r,{code:x.invalid_type,expected:O.array,received:r.parsedType}),J;if(a.exactLength!==null){let o=r.data.length>a.exactLength.value,s=r.data.lengtha.maxLength.value&&(P(r,{code:x.too_big,maximum:a.maxLength.value,type:"array",inclusive:!0,exact:!1,message:a.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((o,s)=>a.type._parseAsync(new yr(r,o,r.path,s)))).then(o=>Et.mergeArray(n,o));let i=[...r.data].map((o,s)=>a.type._parseSync(new yr(r,o,r.path,s)));return Et.mergeArray(n,i)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:j.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:j.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:j.toString(r)}})}nonempty(e){return this.min(1,e)}};la.create=(t,e)=>new la({type:t,minLength:null,maxLength:null,exactLength:null,typeName:Z.ZodArray,...te(e)});function To(t){if(t instanceof lr){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=Ur.create(To(n))}return new lr({...t._def,shape:()=>e})}else return t instanceof la?new la({...t._def,type:To(t.element)}):t instanceof Ur?Ur.create(To(t.unwrap())):t instanceof zn?zn.create(To(t.unwrap())):t instanceof Nn?Nn.create(t.items.map(e=>To(e))):t}var lr=class t extends ce{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=_e.objectKeys(e);return this._cached={shape:e,keys:r},this._cached}_parse(e){if(this._getType(e)!==O.object){let p=this._getOrReturnCtx(e);return P(p,{code:x.invalid_type,expected:O.object,received:p.parsedType}),J}let{status:n,ctx:a}=this._processInputParams(e),{shape:i,keys:o}=this._getCached(),s=[];if(!(this._def.catchall instanceof rn&&this._def.unknownKeys==="strip"))for(let p in a.data)o.includes(p)||s.push(p);let d=[];for(let p of o){let l=i[p],c=a.data[p];d.push({key:{status:"valid",value:p},value:l._parse(new yr(a,c,a.path,p)),alwaysSet:p in a.data})}if(this._def.catchall instanceof rn){let p=this._def.unknownKeys;if(p==="passthrough")for(let l of s)d.push({key:{status:"valid",value:l},value:{status:"valid",value:a.data[l]}});else if(p==="strict")s.length>0&&(P(a,{code:x.unrecognized_keys,keys:s}),n.dirty());else if(p!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let p=this._def.catchall;for(let l of s){let c=a.data[l];d.push({key:{status:"valid",value:l},value:p._parse(new yr(a,c,a.path,l)),alwaysSet:l in a.data})}}return a.common.async?Promise.resolve().then(async()=>{let p=[];for(let l of d){let c=await l.key,u=await l.value;p.push({key:c,value:u,alwaysSet:l.alwaysSet})}return p}).then(p=>Et.mergeObjectSync(n,p)):Et.mergeObjectSync(n,d)}get shape(){return this._def.shape()}strict(e){return j.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{let a=this._def.errorMap?.(r,n).message??n.defaultError;return r.code==="unrecognized_keys"?{message:j.errToObj(e).message??a}:{message:a}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Z.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};for(let n of _e.objectKeys(e))e[n]&&this.shape[n]&&(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}omit(e){let r={};for(let n of _e.objectKeys(this.shape))e[n]||(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}deepPartial(){return To(this)}partial(e){let r={};for(let n of _e.objectKeys(this.shape)){let a=this.shape[n];e&&!e[n]?r[n]=a:r[n]=a.optional()}return new t({...this._def,shape:()=>r})}required(e){let r={};for(let n of _e.objectKeys(this.shape))if(e&&!e[n])r[n]=this.shape[n];else{let i=this.shape[n];for(;i instanceof Ur;)i=i._def.innerType;r[n]=i}return new t({...this._def,shape:()=>r})}keyof(){return j5(_e.objectKeys(this.shape))}};lr.create=(t,e)=>new lr({shape:()=>t,unknownKeys:"strip",catchall:rn.create(),typeName:Z.ZodObject,...te(e)});lr.strictCreate=(t,e)=>new lr({shape:()=>t,unknownKeys:"strict",catchall:rn.create(),typeName:Z.ZodObject,...te(e)});lr.lazycreate=(t,e)=>new lr({shape:t,unknownKeys:"strip",catchall:rn.create(),typeName:Z.ZodObject,...te(e)});var No=class extends ce{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function a(i){for(let s of i)if(s.result.status==="valid")return s.result;for(let s of i)if(s.result.status==="dirty")return r.common.issues.push(...s.ctx.common.issues),s.result;let o=i.map(s=>new pr(s.ctx.common.issues));return P(r,{code:x.invalid_union,unionErrors:o}),J}if(r.common.async)return Promise.all(n.map(async i=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await i._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(a);{let i,o=[];for(let d of n){let p={...r,common:{...r.common,issues:[]},parent:null},l=d._parseSync({data:r.data,path:r.path,parent:p});if(l.status==="valid")return l;l.status==="dirty"&&!i&&(i={result:l,ctx:p}),p.common.issues.length&&o.push(p.common.issues)}if(i)return r.common.issues.push(...i.ctx.common.issues),i.result;let s=o.map(d=>new pr(d));return P(r,{code:x.invalid_union,unionErrors:s}),J}}get options(){return this._def.options}};No.create=(t,e)=>new No({options:t,typeName:Z.ZodUnion,...te(e)});var Pn=t=>t instanceof Oo?Pn(t.schema):t instanceof Vr?Pn(t.innerType()):t instanceof Ro?[t.value]:t instanceof Do?t.options:t instanceof Ao?_e.objectValues(t.enum):t instanceof jo?Pn(t._def.innerType):t instanceof Io?[void 0]:t instanceof Po?[null]:t instanceof Ur?[void 0,...Pn(t.unwrap())]:t instanceof zn?[null,...Pn(t.unwrap())]:t instanceof Yl||t instanceof Uo?Pn(t.unwrap()):t instanceof Co?Pn(t._def.innerType):[],rf=class t extends ce{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==O.object)return P(r,{code:x.invalid_type,expected:O.object,received:r.parsedType}),J;let n=this.discriminator,a=r.data[n],i=this.optionsMap.get(a);return i?r.common.async?i._parseAsync({data:r.data,path:r.path,parent:r}):i._parseSync({data:r.data,path:r.path,parent:r}):(P(r,{code:x.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),J)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let a=new Map;for(let i of r){let o=Pn(i.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let s of o){if(a.has(s))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(s)}`);a.set(s,i)}}return new t({typeName:Z.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:a,...te(n)})}};function nf(t,e){let r=In(t),n=In(e);if(t===e)return{valid:!0,data:t};if(r===O.object&&n===O.object){let a=_e.objectKeys(e),i=_e.objectKeys(t).filter(s=>a.indexOf(s)!==-1),o={...t,...e};for(let s of i){let d=nf(t[s],e[s]);if(!d.valid)return{valid:!1};o[s]=d.data}return{valid:!0,data:o}}else if(r===O.array&&n===O.array){if(t.length!==e.length)return{valid:!1};let a=[];for(let i=0;i{if(Qm(i)||Qm(o))return J;let s=nf(i.value,o.value);return s.valid?((ef(i)||ef(o))&&r.dirty(),{status:r.value,value:s.data}):(P(n,{code:x.invalid_intersection_types}),J)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([i,o])=>a(i,o)):a(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};zo.create=(t,e,r)=>new zo({left:t,right:e,typeName:Z.ZodIntersection,...te(r)});var Nn=class t extends ce{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==O.array)return P(n,{code:x.invalid_type,expected:O.array,received:n.parsedType}),J;if(n.data.lengththis._def.items.length&&(P(n,{code:x.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let i=[...n.data].map((o,s)=>{let d=this._def.items[s]||this._def.rest;return d?d._parse(new yr(n,o,n.path,s)):null}).filter(o=>!!o);return n.common.async?Promise.all(i).then(o=>Et.mergeArray(r,o)):Et.mergeArray(r,i)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};Nn.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Nn({items:t,typeName:Z.ZodTuple,rest:null,...te(e)})};var af=class t extends ce{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==O.object)return P(n,{code:x.invalid_type,expected:O.object,received:n.parsedType}),J;let a=[],i=this._def.keyType,o=this._def.valueType;for(let s in n.data)a.push({key:i._parse(new yr(n,s,n.path,s)),value:o._parse(new yr(n,n.data[s],n.path,s)),alwaysSet:s in n.data});return n.common.async?Et.mergeObjectAsync(r,a):Et.mergeObjectSync(r,a)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof ce?new t({keyType:e,valueType:r,typeName:Z.ZodRecord,...te(n)}):new t({keyType:Eo.create(),valueType:e,typeName:Z.ZodRecord,...te(r)})}},wd=class extends ce{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==O.map)return P(n,{code:x.invalid_type,expected:O.map,received:n.parsedType}),J;let a=this._def.keyType,i=this._def.valueType,o=[...n.data.entries()].map(([s,d],p)=>({key:a._parse(new yr(n,s,n.path,[p,"key"])),value:i._parse(new yr(n,d,n.path,[p,"value"]))}));if(n.common.async){let s=new Map;return Promise.resolve().then(async()=>{for(let d of o){let p=await d.key,l=await d.value;if(p.status==="aborted"||l.status==="aborted")return J;(p.status==="dirty"||l.status==="dirty")&&r.dirty(),s.set(p.value,l.value)}return{status:r.value,value:s}})}else{let s=new Map;for(let d of o){let p=d.key,l=d.value;if(p.status==="aborted"||l.status==="aborted")return J;(p.status==="dirty"||l.status==="dirty")&&r.dirty(),s.set(p.value,l.value)}return{status:r.value,value:s}}}};wd.create=(t,e,r)=>new wd({valueType:e,keyType:t,typeName:Z.ZodMap,...te(r)});var xd=class t extends ce{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==O.set)return P(n,{code:x.invalid_type,expected:O.set,received:n.parsedType}),J;let a=this._def;a.minSize!==null&&n.data.sizea.maxSize.value&&(P(n,{code:x.too_big,maximum:a.maxSize.value,type:"set",inclusive:!0,exact:!1,message:a.maxSize.message}),r.dirty());let i=this._def.valueType;function o(d){let p=new Set;for(let l of d){if(l.status==="aborted")return J;l.status==="dirty"&&r.dirty(),p.add(l.value)}return{status:r.value,value:p}}let s=[...n.data.values()].map((d,p)=>i._parse(new yr(n,d,n.path,p)));return n.common.async?Promise.all(s).then(d=>o(d)):o(s)}min(e,r){return new t({...this._def,minSize:{value:e,message:j.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:j.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};xd.create=(t,e)=>new xd({valueType:t,minSize:null,maxSize:null,typeName:Z.ZodSet,...te(e)});var of=class t extends ce{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==O.function)return P(r,{code:x.invalid_type,expected:O.function,received:r.parsedType}),J;function n(s,d){return Xl({data:s,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,ud(),da].filter(p=>!!p),issueData:{code:x.invalid_arguments,argumentsError:d}})}function a(s,d){return Xl({data:s,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,ud(),da].filter(p=>!!p),issueData:{code:x.invalid_return_type,returnTypeError:d}})}let i={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof li){let s=this;return Vt(async function(...d){let p=new pr([]),l=await s._def.args.parseAsync(d,i).catch(m=>{throw p.addIssue(n(d,m)),p}),c=await Reflect.apply(o,this,l);return await s._def.returns._def.type.parseAsync(c,i).catch(m=>{throw p.addIssue(a(c,m)),p})})}else{let s=this;return Vt(function(...d){let p=s._def.args.safeParse(d,i);if(!p.success)throw new pr([n(d,p.error)]);let l=Reflect.apply(o,this,p.data),c=s._def.returns.safeParse(l,i);if(!c.success)throw new pr([a(l,c.error)]);return c.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:Nn.create(e).rest(pa.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,n){return new t({args:e||Nn.create([]).rest(pa.create()),returns:r||pa.create(),typeName:Z.ZodFunction,...te(n)})}},Oo=class extends ce{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};Oo.create=(t,e)=>new Oo({getter:t,typeName:Z.ZodLazy,...te(e)});var Ro=class extends ce{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return P(r,{received:r.data,code:x.invalid_literal,expected:this._def.value}),J}return{status:"valid",value:e.data}}get value(){return this._def.value}};Ro.create=(t,e)=>new Ro({value:t,typeName:Z.ZodLiteral,...te(e)});function j5(t,e){return new Do({values:t,typeName:Z.ZodEnum,...te(e)})}var Do=class t extends ce{_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return P(r,{expected:_e.joinValues(n),received:r.parsedType,code:x.invalid_type}),J}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return P(r,{received:r.data,code:x.invalid_enum_value,options:n}),J}return Vt(e.data)}get options(){return this._def.values}get enum(){let e={};for(let r of this._def.values)e[r]=r;return e}get Values(){let e={};for(let r of this._def.values)e[r]=r;return e}get Enum(){let e={};for(let r of this._def.values)e[r]=r;return e}extract(e,r=this._def){return t.create(e,{...this._def,...r})}exclude(e,r=this._def){return t.create(this.options.filter(n=>!e.includes(n)),{...this._def,...r})}};Do.create=j5;var Ao=class extends ce{_parse(e){let r=_e.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==O.string&&n.parsedType!==O.number){let a=_e.objectValues(r);return P(n,{expected:_e.joinValues(a),received:n.parsedType,code:x.invalid_type}),J}if(this._cache||(this._cache=new Set(_e.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let a=_e.objectValues(r);return P(n,{received:n.data,code:x.invalid_enum_value,options:a}),J}return Vt(e.data)}get enum(){return this._def.values}};Ao.create=(t,e)=>new Ao({values:t,typeName:Z.ZodNativeEnum,...te(e)});var li=class extends ce{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==O.promise&&r.common.async===!1)return P(r,{code:x.invalid_type,expected:O.promise,received:r.parsedType}),J;let n=r.parsedType===O.promise?r.data:Promise.resolve(r.data);return Vt(n.then(a=>this._def.type.parseAsync(a,{path:r.path,errorMap:r.common.contextualErrorMap})))}};li.create=(t,e)=>new li({type:t,typeName:Z.ZodPromise,...te(e)});var Vr=class extends ce{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Z.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),a=this._def.effect||null,i={addIssue:o=>{P(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),a.type==="preprocess"){let o=a.transform(n.data,i);if(n.common.async)return Promise.resolve(o).then(async s=>{if(r.value==="aborted")return J;let d=await this._def.schema._parseAsync({data:s,path:n.path,parent:n});return d.status==="aborted"?J:d.status==="dirty"?ko(d.value):r.value==="dirty"?ko(d.value):d});{if(r.value==="aborted")return J;let s=this._def.schema._parseSync({data:o,path:n.path,parent:n});return s.status==="aborted"?J:s.status==="dirty"?ko(s.value):r.value==="dirty"?ko(s.value):s}}if(a.type==="refinement"){let o=s=>{let d=a.refinement(s,i);if(n.common.async)return Promise.resolve(d);if(d instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return s};if(n.common.async===!1){let s=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?J:(s.status==="dirty"&&r.dirty(),o(s.value),{status:r.value,value:s.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(s=>s.status==="aborted"?J:(s.status==="dirty"&&r.dirty(),o(s.value).then(()=>({status:r.value,value:s.value}))))}if(a.type==="transform")if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!pi(o))return J;let s=a.transform(o.value,i);if(s instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:s}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>pi(o)?Promise.resolve(a.transform(o.value,i)).then(s=>({status:r.value,value:s})):J);_e.assertNever(a)}};Vr.create=(t,e,r)=>new Vr({schema:t,typeName:Z.ZodEffects,effect:e,...te(r)});Vr.createWithPreprocess=(t,e,r)=>new Vr({schema:e,effect:{type:"preprocess",transform:t},typeName:Z.ZodEffects,...te(r)});var Ur=class extends ce{_parse(e){return this._getType(e)===O.undefined?Vt(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Ur.create=(t,e)=>new Ur({innerType:t,typeName:Z.ZodOptional,...te(e)});var zn=class extends ce{_parse(e){return this._getType(e)===O.null?Vt(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};zn.create=(t,e)=>new zn({innerType:t,typeName:Z.ZodNullable,...te(e)});var jo=class extends ce{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===O.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};jo.create=(t,e)=>new jo({innerType:t,typeName:Z.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...te(e)});var Co=class extends ce{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},a=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return md(a)?a.then(i=>({status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new pr(n.common.issues)},input:n.data})})):{status:"valid",value:a.status==="valid"?a.value:this._def.catchValue({get error(){return new pr(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};Co.create=(t,e)=>new Co({innerType:t,typeName:Z.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...te(e)});var $d=class extends ce{_parse(e){if(this._getType(e)!==O.nan){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:O.nan,received:n.parsedType}),J}return{status:"valid",value:e.data}}};$d.create=t=>new $d({typeName:Z.ZodNaN,...te(t)});var Yl=class extends ce{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},Ql=class t extends ce{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let i=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?J:i.status==="dirty"?(r.dirty(),ko(i.value)):this._def.out._parseAsync({data:i.value,path:n.path,parent:n})})();{let a=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?J:a.status==="dirty"?(r.dirty(),{status:"dirty",value:a.value}):this._def.out._parseSync({data:a.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:Z.ZodPipeline})}},Uo=class extends ce{_parse(e){let r=this._def.innerType._parse(e),n=a=>(pi(a)&&(a.value=Object.freeze(a.value)),a);return md(r)?r.then(a=>n(a)):n(r)}unwrap(){return this._def.innerType}};Uo.create=(t,e)=>new Uo({innerType:t,typeName:Z.ZodReadonly,...te(e)});var aW={object:lr.lazycreate},Z;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(Z||(Z={}));var iW=Eo.create,oW=fd.create,sW=$d.create,dW=hd.create,pW=gd.create,lW=vd.create,cW=yd.create,uW=Io.create,mW=Po.create,fW=_d.create,hW=pa.create,gW=rn.create,vW=bd.create,yW=la.create,MT=lr.create,_W=lr.strictCreate,bW=No.create,wW=rf.create,xW=zo.create,$W=Nn.create,SW=af.create,kW=wd.create,TW=xd.create,EW=of.create,IW=Oo.create,PW=Ro.create,NW=Do.create,zW=Ao.create,OW=li.create,RW=Vr.create,DW=Ur.create,AW=zn.create,jW=Vr.createWithPreprocess,CW=Ql.create;var C5=Object.freeze({status:"aborted"});function h(t,e,r){function n(s,d){if(s._zod||Object.defineProperty(s,"_zod",{value:{def:d,constr:o,traits:new Set},enumerable:!1}),s._zod.traits.has(t))return;s._zod.traits.add(t),e(s,d);let p=o.prototype,l=Object.keys(p);for(let c=0;cr?.Parent&&s instanceof r.Parent?!0:s?._zod?.traits?.has(t)}),Object.defineProperty(o,"name",{value:t}),o}var nn=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},ci=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}},ec={};function ut(t){return t&&Object.assign(ec,t),ec}var $={};di($,{BIGINT_FORMAT_RANGES:()=>gf,Class:()=>df,NUMBER_FORMAT_RANGES:()=>hf,aborted:()=>fa,allowsEval:()=>cf,assert:()=>GT,assertEqual:()=>FT,assertIs:()=>WT,assertNever:()=>JT,assertNotEqual:()=>BT,assignProp:()=>ua,base64ToUint8Array:()=>B5,base64urlToUint8Array:()=>iE,cached:()=>Lo,captureStackTrace:()=>rc,cleanEnum:()=>aE,cleanRegex:()=>Td,clone:()=>Lt,cloneDef:()=>KT,createTransparentProxy:()=>rE,defineLazy:()=>ie,esc:()=>tc,escapeRegex:()=>_r,extend:()=>M5,finalizeIssue:()=>Kt,floatSafeRemainder:()=>pf,getElementAtPath:()=>XT,getEnumValues:()=>kd,getLengthableOrigin:()=>Pd,getParsedType:()=>tE,getSizableOrigin:()=>Id,hexToUint8Array:()=>sE,isObject:()=>ui,isPlainObject:()=>ma,issue:()=>Mo,joinValues:()=>B,jsonStringifyReplacer:()=>Vo,merge:()=>nE,mergeDefs:()=>On,normalizeParams:()=>N,nullish:()=>ca,numKeys:()=>eE,objectClone:()=>HT,omit:()=>L5,optionalKeys:()=>ff,parsedType:()=>G,partial:()=>Z5,pick:()=>V5,prefixIssues:()=>cr,primitiveTypes:()=>mf,promiseAllObject:()=>YT,propertyKeyTypes:()=>Ed,randomString:()=>QT,required:()=>F5,safeExtend:()=>q5,shallowClone:()=>uf,slugify:()=>lf,stringifyPrimitive:()=>W,uint8ArrayToBase64:()=>W5,uint8ArrayToBase64url:()=>oE,uint8ArrayToHex:()=>dE,unwrapMessage:()=>Sd});function FT(t){return t}function BT(t){return t}function WT(t){}function JT(t){throw new Error("Unexpected value in exhaustive check")}function GT(t){}function kd(t){let e=Object.values(t).filter(n=>typeof n=="number");return Object.entries(t).filter(([n,a])=>e.indexOf(+n)===-1).map(([n,a])=>a)}function B(t,e="|"){return t.map(r=>W(r)).join(e)}function Vo(t,e){return typeof e=="bigint"?e.toString():e}function Lo(t){return{get value(){{let r=t();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function ca(t){return t==null}function Td(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function pf(t,e){let r=(t.toString().split(".")[1]||"").length,n=e.toString(),a=(n.split(".")[1]||"").length;if(a===0&&/\d?e-\d?/.test(n)){let d=n.match(/\d?e-(\d?)/);d?.[1]&&(a=Number.parseInt(d[1]))}let i=r>a?r:a,o=Number.parseInt(t.toFixed(i).replace(".","")),s=Number.parseInt(e.toFixed(i).replace(".",""));return o%s/10**i}var U5=Symbol("evaluating");function ie(t,e,r){let n;Object.defineProperty(t,e,{get(){if(n!==U5)return n===void 0&&(n=U5,n=r()),n},set(a){Object.defineProperty(t,e,{value:a})},configurable:!0})}function HT(t){return Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t))}function ua(t,e,r){Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function On(...t){let e={};for(let r of t){let n=Object.getOwnPropertyDescriptors(r);Object.assign(e,n)}return Object.defineProperties({},e)}function KT(t){return On(t._zod.def)}function XT(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function YT(t){let e=Object.keys(t),r=e.map(n=>t[n]);return Promise.all(r).then(n=>{let a={};for(let i=0;i{};function ui(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var cf=Lo(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let t=Function;return new t(""),!0}catch{return!1}});function ma(t){if(ui(t)===!1)return!1;let e=t.constructor;if(e===void 0||typeof e!="function")return!0;let r=e.prototype;return!(ui(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function uf(t){return ma(t)?{...t}:Array.isArray(t)?[...t]:t}function eE(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var tE=t=>{let e=typeof t;switch(e){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(t)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(t)?"array":t===null?"null":t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?"promise":typeof Map<"u"&&t instanceof Map?"map":typeof Set<"u"&&t instanceof Set?"set":typeof Date<"u"&&t instanceof Date?"date":typeof File<"u"&&t instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${e}`)}},Ed=new Set(["string","number","symbol"]),mf=new Set(["string","number","bigint","boolean","symbol","undefined"]);function _r(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Lt(t,e,r){let n=new t._zod.constr(e??t._zod.def);return(!e||r?.parent)&&(n._zod.parent=t),n}function N(t){let e=t;if(!e)return{};if(typeof e=="string")return{error:()=>e};if(e?.message!==void 0){if(e?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");e.error=e.message}return delete e.message,typeof e.error=="string"?{...e,error:()=>e.error}:e}function rE(t){let e;return new Proxy({},{get(r,n,a){return e??(e=t()),Reflect.get(e,n,a)},set(r,n,a,i){return e??(e=t()),Reflect.set(e,n,a,i)},has(r,n){return e??(e=t()),Reflect.has(e,n)},deleteProperty(r,n){return e??(e=t()),Reflect.deleteProperty(e,n)},ownKeys(r){return e??(e=t()),Reflect.ownKeys(e)},getOwnPropertyDescriptor(r,n){return e??(e=t()),Reflect.getOwnPropertyDescriptor(e,n)},defineProperty(r,n,a){return e??(e=t()),Reflect.defineProperty(e,n,a)}})}function W(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function ff(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var hf={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},gf={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function V5(t,e){let r=t._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");let i=On(t._zod.def,{get shape(){let o={};for(let s in e){if(!(s in r.shape))throw new Error(`Unrecognized key: "${s}"`);e[s]&&(o[s]=r.shape[s])}return ua(this,"shape",o),o},checks:[]});return Lt(t,i)}function L5(t,e){let r=t._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");let i=On(t._zod.def,{get shape(){let o={...t._zod.def.shape};for(let s in e){if(!(s in r.shape))throw new Error(`Unrecognized key: "${s}"`);e[s]&&delete o[s]}return ua(this,"shape",o),o},checks:[]});return Lt(t,i)}function M5(t,e){if(!ma(e))throw new Error("Invalid input to extend: expected a plain object");let r=t._zod.def.checks;if(r&&r.length>0){let i=t._zod.def.shape;for(let o in e)if(Object.getOwnPropertyDescriptor(i,o)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let a=On(t._zod.def,{get shape(){let i={...t._zod.def.shape,...e};return ua(this,"shape",i),i}});return Lt(t,a)}function q5(t,e){if(!ma(e))throw new Error("Invalid input to safeExtend: expected a plain object");let r=On(t._zod.def,{get shape(){let n={...t._zod.def.shape,...e};return ua(this,"shape",n),n}});return Lt(t,r)}function nE(t,e){let r=On(t._zod.def,{get shape(){let n={...t._zod.def.shape,...e._zod.def.shape};return ua(this,"shape",n),n},get catchall(){return e._zod.def.catchall},checks:[]});return Lt(t,r)}function Z5(t,e,r){let a=e._zod.def.checks;if(a&&a.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");let o=On(e._zod.def,{get shape(){let s=e._zod.def.shape,d={...s};if(r)for(let p in r){if(!(p in s))throw new Error(`Unrecognized key: "${p}"`);r[p]&&(d[p]=t?new t({type:"optional",innerType:s[p]}):s[p])}else for(let p in s)d[p]=t?new t({type:"optional",innerType:s[p]}):s[p];return ua(this,"shape",d),d},checks:[]});return Lt(e,o)}function F5(t,e,r){let n=On(e._zod.def,{get shape(){let a=e._zod.def.shape,i={...a};if(r)for(let o in r){if(!(o in i))throw new Error(`Unrecognized key: "${o}"`);r[o]&&(i[o]=new t({type:"nonoptional",innerType:a[o]}))}else for(let o in a)i[o]=new t({type:"nonoptional",innerType:a[o]});return ua(this,"shape",i),i}});return Lt(e,n)}function fa(t,e=0){if(t.aborted===!0)return!0;for(let r=e;r{var n;return(n=r).path??(n.path=[]),r.path.unshift(t),r})}function Sd(t){return typeof t=="string"?t:t?.message}function Kt(t,e,r){let n={...t,path:t.path??[]};if(!t.message){let a=Sd(t.inst?._zod.def?.error?.(t))??Sd(e?.error?.(t))??Sd(r.customError?.(t))??Sd(r.localeError?.(t))??"Invalid input";n.message=a}return delete n.inst,delete n.continue,e?.reportInput||delete n.input,n}function Id(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function Pd(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function G(t){let e=typeof t;switch(e){case"number":return Number.isNaN(t)?"nan":"number";case"object":{if(t===null)return"null";if(Array.isArray(t))return"array";let r=t;if(r&&Object.getPrototypeOf(r)!==Object.prototype&&"constructor"in r&&r.constructor)return r.constructor.name}}return e}function Mo(...t){let[e,r,n]=t;return typeof e=="string"?{message:e,code:"custom",input:r,inst:n}:{...e}}function aE(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}function B5(t){let e=atob(t),r=new Uint8Array(e.length);for(let n=0;ne.toString(16).padStart(2,"0")).join("")}var df=class{constructor(...e){}};var J5=(t,e)=>{t.name="$ZodError",Object.defineProperty(t,"_zod",{value:t._zod,enumerable:!1}),Object.defineProperty(t,"issues",{value:e,enumerable:!1}),t.message=JSON.stringify(e,Vo,2),Object.defineProperty(t,"toString",{value:()=>t.message,enumerable:!1})},nc=h("$ZodError",J5),Nd=h("$ZodError",J5,{Parent:Error});function ac(t,e=r=>r.message){let r={},n=[];for(let a of t.issues)a.path.length>0?(r[a.path[0]]=r[a.path[0]]||[],r[a.path[0]].push(e(a))):n.push(e(a));return{formErrors:n,fieldErrors:r}}function ic(t,e=r=>r.message){let r={_errors:[]},n=a=>{for(let i of a.issues)if(i.code==="invalid_union"&&i.errors.length)i.errors.map(o=>n({issues:o}));else if(i.code==="invalid_key")n({issues:i.issues});else if(i.code==="invalid_element")n({issues:i.issues});else if(i.path.length===0)r._errors.push(e(i));else{let o=r,s=0;for(;s(e,r,n,a)=>{let i=n?Object.assign(n,{async:!1}):{async:!1},o=e._zod.run({value:r,issues:[]},i);if(o instanceof Promise)throw new nn;if(o.issues.length){let s=new(a?.Err??t)(o.issues.map(d=>Kt(d,i,ut())));throw rc(s,a?.callee),s}return o.value},Od=zd(Nd),Rd=t=>async(e,r,n,a)=>{let i=n?Object.assign(n,{async:!0}):{async:!0},o=e._zod.run({value:r,issues:[]},i);if(o instanceof Promise&&(o=await o),o.issues.length){let s=new(a?.Err??t)(o.issues.map(d=>Kt(d,i,ut())));throw rc(s,a?.callee),s}return o.value},Dd=Rd(Nd),Ad=t=>(e,r,n)=>{let a=n?{...n,async:!1}:{async:!1},i=e._zod.run({value:r,issues:[]},a);if(i instanceof Promise)throw new nn;return i.issues.length?{success:!1,error:new(t??nc)(i.issues.map(o=>Kt(o,a,ut())))}:{success:!0,data:i.value}},qo=Ad(Nd),jd=t=>async(e,r,n)=>{let a=n?Object.assign(n,{async:!0}):{async:!0},i=e._zod.run({value:r,issues:[]},a);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new t(i.issues.map(o=>Kt(o,a,ut())))}:{success:!0,data:i.value}},Cd=jd(Nd),G5=t=>(e,r,n)=>{let a=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return zd(t)(e,r,a)};var H5=t=>(e,r,n)=>zd(t)(e,r,n);var K5=t=>async(e,r,n)=>{let a=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Rd(t)(e,r,a)};var X5=t=>async(e,r,n)=>Rd(t)(e,r,n);var Y5=t=>(e,r,n)=>{let a=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Ad(t)(e,r,a)};var Q5=t=>(e,r,n)=>Ad(t)(e,r,n);var e8=t=>async(e,r,n)=>{let a=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return jd(t)(e,r,a)};var t8=t=>async(e,r,n)=>jd(t)(e,r,n);var br={};di(br,{base64:()=>Of,base64url:()=>oc,bigint:()=>Uf,boolean:()=>Lf,browserEmail:()=>vE,cidrv4:()=>Nf,cidrv6:()=>zf,cuid:()=>vf,cuid2:()=>yf,date:()=>Df,datetime:()=>jf,domain:()=>bE,duration:()=>$f,e164:()=>Rf,email:()=>kf,emoji:()=>Tf,extendedDuration:()=>lE,guid:()=>Sf,hex:()=>wE,hostname:()=>_E,html5Email:()=>fE,idnEmail:()=>gE,integer:()=>Vf,ipv4:()=>Ef,ipv6:()=>If,ksuid:()=>wf,lowercase:()=>Zf,mac:()=>Pf,md5_base64:()=>$E,md5_base64url:()=>SE,md5_hex:()=>xE,nanoid:()=>xf,null:()=>Mf,number:()=>sc,rfc5322Email:()=>hE,sha1_base64:()=>TE,sha1_base64url:()=>EE,sha1_hex:()=>kE,sha256_base64:()=>PE,sha256_base64url:()=>NE,sha256_hex:()=>IE,sha384_base64:()=>OE,sha384_base64url:()=>RE,sha384_hex:()=>zE,sha512_base64:()=>AE,sha512_base64url:()=>jE,sha512_hex:()=>DE,string:()=>Cf,time:()=>Af,ulid:()=>_f,undefined:()=>qf,unicodeEmail:()=>r8,uppercase:()=>Ff,uuid:()=>mi,uuid4:()=>cE,uuid6:()=>uE,uuid7:()=>mE,xid:()=>bf});var vf=/^[cC][^\s-]{8,}$/,yf=/^[0-9a-z]+$/,_f=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,bf=/^[0-9a-vA-V]{20}$/,wf=/^[A-Za-z0-9]{27}$/,xf=/^[a-zA-Z0-9_-]{21}$/,$f=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,lE=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Sf=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,mi=t=>t?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${t}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,cE=mi(4),uE=mi(6),mE=mi(7),kf=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,fE=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,hE=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,r8=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,gE=r8,vE=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,yE="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function Tf(){return new RegExp(yE,"u")}var Ef=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,If=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Pf=t=>{let e=_r(t??":");return new RegExp(`^(?:[0-9A-F]{2}${e}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${e}){5}[0-9a-f]{2}$`)},Nf=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,zf=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Of=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,oc=/^[A-Za-z0-9_-]*$/,_E=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,bE=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,Rf=/^\+[1-9]\d{6,14}$/,n8="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",Df=new RegExp(`^${n8}$`);function a8(t){let e="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof t.precision=="number"?t.precision===-1?`${e}`:t.precision===0?`${e}:[0-5]\\d`:`${e}:[0-5]\\d\\.\\d{${t.precision}}`:`${e}(?::[0-5]\\d(?:\\.\\d+)?)?`}function Af(t){return new RegExp(`^${a8(t)}$`)}function jf(t){let e=a8({precision:t.precision}),r=["Z"];t.local&&r.push(""),t.offset&&r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let n=`${e}(?:${r.join("|")})`;return new RegExp(`^${n8}T(?:${n})$`)}var Cf=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},Uf=/^-?\d+n?$/,Vf=/^-?\d+$/,sc=/^-?\d+(?:\.\d+)?$/,Lf=/^(?:true|false)$/i,Mf=/^null$/i;var qf=/^undefined$/i;var Zf=/^[^A-Z]*$/,Ff=/^[^a-z]*$/,wE=/^[0-9a-fA-F]*$/;function Ud(t,e){return new RegExp(`^[A-Za-z0-9+/]{${t}}${e}$`)}function Vd(t){return new RegExp(`^[A-Za-z0-9_-]{${t}}$`)}var xE=/^[0-9a-fA-F]{32}$/,$E=Ud(22,"=="),SE=Vd(22),kE=/^[0-9a-fA-F]{40}$/,TE=Ud(27,"="),EE=Vd(27),IE=/^[0-9a-fA-F]{64}$/,PE=Ud(43,"="),NE=Vd(43),zE=/^[0-9a-fA-F]{96}$/,OE=Ud(64,""),RE=Vd(64),DE=/^[0-9a-fA-F]{128}$/,AE=Ud(86,"=="),jE=Vd(86);var Ce=h("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),o8={number:"number",bigint:"bigint",object:"date"},Bf=h("$ZodCheckLessThan",(t,e)=>{Ce.init(t,e);let r=o8[typeof e.value];t._zod.onattach.push(n=>{let a=n._zod.bag,i=(e.inclusive?a.maximum:a.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value{(e.inclusive?n.value<=e.value:n.value{Ce.init(t,e);let r=o8[typeof e.value];t._zod.onattach.push(n=>{let a=n._zod.bag,i=(e.inclusive?a.minimum:a.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>i&&(e.inclusive?a.minimum=e.value:a.exclusiveMinimum=e.value)}),t._zod.check=n=>{(e.inclusive?n.value>=e.value:n.value>e.value)||n.issues.push({origin:r,code:"too_small",minimum:typeof e.value=="object"?e.value.getTime():e.value,input:n.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}}),s8=h("$ZodCheckMultipleOf",(t,e)=>{Ce.init(t,e),t._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=e.value)}),t._zod.check=r=>{if(typeof r.value!=typeof e.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%e.value===BigInt(0):pf(r.value,e.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:e.value,input:r.value,inst:t,continue:!e.abort})}}),d8=h("$ZodCheckNumberFormat",(t,e)=>{Ce.init(t,e),e.format=e.format||"float64";let r=e.format?.includes("int"),n=r?"int":"number",[a,i]=hf[e.format];t._zod.onattach.push(o=>{let s=o._zod.bag;s.format=e.format,s.minimum=a,s.maximum=i,r&&(s.pattern=Vf)}),t._zod.check=o=>{let s=o.value;if(r){if(!Number.isInteger(s)){o.issues.push({expected:n,format:e.format,code:"invalid_type",continue:!1,input:s,inst:t});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,inclusive:!0,continue:!e.abort}):o.issues.push({input:s,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,inclusive:!0,continue:!e.abort});return}}si&&o.issues.push({origin:"number",input:s,code:"too_big",maximum:i,inclusive:!0,inst:t,continue:!e.abort})}}),p8=h("$ZodCheckBigIntFormat",(t,e)=>{Ce.init(t,e);let[r,n]=gf[e.format];t._zod.onattach.push(a=>{let i=a._zod.bag;i.format=e.format,i.minimum=r,i.maximum=n}),t._zod.check=a=>{let i=a.value;in&&a.issues.push({origin:"bigint",input:i,code:"too_big",maximum:n,inclusive:!0,inst:t,continue:!e.abort})}}),l8=h("$ZodCheckMaxSize",(t,e)=>{var r;Ce.init(t,e),(r=t._zod.def).when??(r.when=n=>{let a=n.value;return!ca(a)&&a.size!==void 0}),t._zod.onattach.push(n=>{let a=n._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{let a=n.value;a.size<=e.maximum||n.issues.push({origin:Id(a),code:"too_big",maximum:e.maximum,inclusive:!0,input:a,inst:t,continue:!e.abort})}}),c8=h("$ZodCheckMinSize",(t,e)=>{var r;Ce.init(t,e),(r=t._zod.def).when??(r.when=n=>{let a=n.value;return!ca(a)&&a.size!==void 0}),t._zod.onattach.push(n=>{let a=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>a&&(n._zod.bag.minimum=e.minimum)}),t._zod.check=n=>{let a=n.value;a.size>=e.minimum||n.issues.push({origin:Id(a),code:"too_small",minimum:e.minimum,inclusive:!0,input:a,inst:t,continue:!e.abort})}}),u8=h("$ZodCheckSizeEquals",(t,e)=>{var r;Ce.init(t,e),(r=t._zod.def).when??(r.when=n=>{let a=n.value;return!ca(a)&&a.size!==void 0}),t._zod.onattach.push(n=>{let a=n._zod.bag;a.minimum=e.size,a.maximum=e.size,a.size=e.size}),t._zod.check=n=>{let a=n.value,i=a.size;if(i===e.size)return;let o=i>e.size;n.issues.push({origin:Id(a),...o?{code:"too_big",maximum:e.size}:{code:"too_small",minimum:e.size},inclusive:!0,exact:!0,input:n.value,inst:t,continue:!e.abort})}}),m8=h("$ZodCheckMaxLength",(t,e)=>{var r;Ce.init(t,e),(r=t._zod.def).when??(r.when=n=>{let a=n.value;return!ca(a)&&a.length!==void 0}),t._zod.onattach.push(n=>{let a=n._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{let a=n.value;if(a.length<=e.maximum)return;let o=Pd(a);n.issues.push({origin:o,code:"too_big",maximum:e.maximum,inclusive:!0,input:a,inst:t,continue:!e.abort})}}),f8=h("$ZodCheckMinLength",(t,e)=>{var r;Ce.init(t,e),(r=t._zod.def).when??(r.when=n=>{let a=n.value;return!ca(a)&&a.length!==void 0}),t._zod.onattach.push(n=>{let a=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>a&&(n._zod.bag.minimum=e.minimum)}),t._zod.check=n=>{let a=n.value;if(a.length>=e.minimum)return;let o=Pd(a);n.issues.push({origin:o,code:"too_small",minimum:e.minimum,inclusive:!0,input:a,inst:t,continue:!e.abort})}}),h8=h("$ZodCheckLengthEquals",(t,e)=>{var r;Ce.init(t,e),(r=t._zod.def).when??(r.when=n=>{let a=n.value;return!ca(a)&&a.length!==void 0}),t._zod.onattach.push(n=>{let a=n._zod.bag;a.minimum=e.length,a.maximum=e.length,a.length=e.length}),t._zod.check=n=>{let a=n.value,i=a.length;if(i===e.length)return;let o=Pd(a),s=i>e.length;n.issues.push({origin:o,...s?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:n.value,inst:t,continue:!e.abort})}}),Ld=h("$ZodCheckStringFormat",(t,e)=>{var r,n;Ce.init(t,e),t._zod.onattach.push(a=>{let i=a._zod.bag;i.format=e.format,e.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(e.pattern))}),e.pattern?(r=t._zod).check??(r.check=a=>{e.pattern.lastIndex=0,!e.pattern.test(a.value)&&a.issues.push({origin:"string",code:"invalid_format",format:e.format,input:a.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:t,continue:!e.abort})}):(n=t._zod).check??(n.check=()=>{})}),g8=h("$ZodCheckRegex",(t,e)=>{Ld.init(t,e),t._zod.check=r=>{e.pattern.lastIndex=0,!e.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:e.pattern.toString(),inst:t,continue:!e.abort})}}),v8=h("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=Zf),Ld.init(t,e)}),y8=h("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=Ff),Ld.init(t,e)}),_8=h("$ZodCheckIncludes",(t,e)=>{Ce.init(t,e);let r=_r(e.includes),n=new RegExp(typeof e.position=="number"?`^.{${e.position}}${r}`:r);e.pattern=n,t._zod.onattach.push(a=>{let i=a._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),t._zod.check=a=>{a.value.includes(e.includes,e.position)||a.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:a.value,inst:t,continue:!e.abort})}}),b8=h("$ZodCheckStartsWith",(t,e)=>{Ce.init(t,e);let r=new RegExp(`^${_r(e.prefix)}.*`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let a=n._zod.bag;a.patterns??(a.patterns=new Set),a.patterns.add(r)}),t._zod.check=n=>{n.value.startsWith(e.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:e.prefix,input:n.value,inst:t,continue:!e.abort})}}),w8=h("$ZodCheckEndsWith",(t,e)=>{Ce.init(t,e);let r=new RegExp(`.*${_r(e.suffix)}$`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let a=n._zod.bag;a.patterns??(a.patterns=new Set),a.patterns.add(r)}),t._zod.check=n=>{n.value.endsWith(e.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:e.suffix,input:n.value,inst:t,continue:!e.abort})}});function i8(t,e,r){t.issues.length&&e.issues.push(...cr(r,t.issues))}var x8=h("$ZodCheckProperty",(t,e)=>{Ce.init(t,e),t._zod.check=r=>{let n=e.schema._zod.run({value:r.value[e.property],issues:[]},{});if(n instanceof Promise)return n.then(a=>i8(a,r,e.property));i8(n,r,e.property)}}),$8=h("$ZodCheckMimeType",(t,e)=>{Ce.init(t,e);let r=new Set(e.mime);t._zod.onattach.push(n=>{n._zod.bag.mime=e.mime}),t._zod.check=n=>{r.has(n.value.type)||n.issues.push({code:"invalid_value",values:e.mime,input:n.value.type,inst:t,continue:!e.abort})}}),S8=h("$ZodCheckOverwrite",(t,e)=>{Ce.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}});var dc=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}let n=e.split(` -`).filter(o=>o),a=Math.min(...n.map(o=>o.length-o.trimStart().length)),i=n.map(o=>o.slice(a)).map(o=>" ".repeat(this.indent*2)+o);for(let o of i)this.content.push(o)}compile(){let e=Function,r=this?.args,a=[...(this?.content??[""]).map(i=>` ${i}`)];return new e(...r,a.join(` -`))}};var T8={major:4,minor:3,patch:6};var Y=h("$ZodType",(t,e)=>{var r;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=T8;let n=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&n.unshift(t);for(let a of n)for(let i of a._zod.onattach)i(t);if(n.length===0)(r=t._zod).deferred??(r.deferred=[]),t._zod.deferred?.push(()=>{t._zod.run=t._zod.parse});else{let a=(o,s,d)=>{let p=fa(o),l;for(let c of s){if(c._zod.def.when){if(!c._zod.def.when(o))continue}else if(p)continue;let u=o.issues.length,m=c._zod.check(o);if(m instanceof Promise&&d?.async===!1)throw new nn;if(l||m instanceof Promise)l=(l??Promise.resolve()).then(async()=>{await m,o.issues.length!==u&&(p||(p=fa(o,u)))});else{if(o.issues.length===u)continue;p||(p=fa(o,u))}}return l?l.then(()=>o):o},i=(o,s,d)=>{if(fa(o))return o.aborted=!0,o;let p=a(s,n,d);if(p instanceof Promise){if(d.async===!1)throw new nn;return p.then(l=>t._zod.parse(l,d))}return t._zod.parse(p,d)};t._zod.run=(o,s)=>{if(s.skipChecks)return t._zod.parse(o,s);if(s.direction==="backward"){let p=t._zod.parse({value:o.value,issues:[]},{...s,skipChecks:!0});return p instanceof Promise?p.then(l=>i(l,o,s)):i(p,o,s)}let d=t._zod.parse(o,s);if(d instanceof Promise){if(s.async===!1)throw new nn;return d.then(p=>a(p,n,s))}return a(d,n,s)}}ie(t,"~standard",()=>({validate:a=>{try{let i=qo(t,a);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return Cd(t,a).then(o=>o.success?{value:o.data}:{issues:o.error?.issues})}},vendor:"zod",version:1}))}),fi=h("$ZodString",(t,e)=>{Y.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??Cf(t._zod.bag),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:t}),r}}),De=h("$ZodStringFormat",(t,e)=>{Ld.init(t,e),fi.init(t,e)}),Gf=h("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=Sf),De.init(t,e)}),Hf=h("$ZodUUID",(t,e)=>{if(e.version){let n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[e.version];if(n===void 0)throw new Error(`Invalid UUID version: "${e.version}"`);e.pattern??(e.pattern=mi(n))}else e.pattern??(e.pattern=mi());De.init(t,e)}),Kf=h("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=kf),De.init(t,e)}),Xf=h("$ZodURL",(t,e)=>{De.init(t,e),t._zod.check=r=>{try{let n=r.value.trim(),a=new URL(n);e.hostname&&(e.hostname.lastIndex=0,e.hostname.test(a.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:e.hostname.source,input:r.value,inst:t,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,e.protocol.test(a.protocol.endsWith(":")?a.protocol.slice(0,-1):a.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:e.protocol.source,input:r.value,inst:t,continue:!e.abort})),e.normalize?r.value=a.href:r.value=n;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:t,continue:!e.abort})}}}),Yf=h("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=Tf()),De.init(t,e)}),Qf=h("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=xf),De.init(t,e)}),e0=h("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=vf),De.init(t,e)}),t0=h("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=yf),De.init(t,e)}),r0=h("$ZodULID",(t,e)=>{e.pattern??(e.pattern=_f),De.init(t,e)}),n0=h("$ZodXID",(t,e)=>{e.pattern??(e.pattern=bf),De.init(t,e)}),a0=h("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=wf),De.init(t,e)}),i0=h("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=jf(e)),De.init(t,e)}),o0=h("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=Df),De.init(t,e)}),s0=h("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=Af(e)),De.init(t,e)}),d0=h("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=$f),De.init(t,e)}),p0=h("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=Ef),De.init(t,e),t._zod.bag.format="ipv4"}),l0=h("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=If),De.init(t,e),t._zod.bag.format="ipv6",t._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:t,continue:!e.abort})}}}),c0=h("$ZodMAC",(t,e)=>{e.pattern??(e.pattern=Pf(e.delimiter)),De.init(t,e),t._zod.bag.format="mac"}),u0=h("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=Nf),De.init(t,e)}),m0=h("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=zf),De.init(t,e),t._zod.check=r=>{let n=r.value.split("/");try{if(n.length!==2)throw new Error;let[a,i]=n;if(!i)throw new Error;let o=Number(i);if(`${o}`!==i)throw new Error;if(o<0||o>128)throw new Error;new URL(`http://[${a}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:t,continue:!e.abort})}}});function U8(t){if(t==="")return!0;if(t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var f0=h("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=Of),De.init(t,e),t._zod.bag.contentEncoding="base64",t._zod.check=r=>{U8(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function CE(t){if(!oc.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return U8(r)}var h0=h("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=oc),De.init(t,e),t._zod.bag.contentEncoding="base64url",t._zod.check=r=>{CE(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),g0=h("$ZodE164",(t,e)=>{e.pattern??(e.pattern=Rf),De.init(t,e)});function UE(t,e=null){try{let r=t.split(".");if(r.length!==3)return!1;let[n]=r;if(!n)return!1;let a=JSON.parse(atob(n));return!("typ"in a&&a?.typ!=="JWT"||!a.alg||e&&(!("alg"in a)||a.alg!==e))}catch{return!1}}var v0=h("$ZodJWT",(t,e)=>{De.init(t,e),t._zod.check=r=>{UE(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}}),y0=h("$ZodCustomStringFormat",(t,e)=>{De.init(t,e),t._zod.check=r=>{e.fn(r.value)||r.issues.push({code:"invalid_format",format:e.format,input:r.value,inst:t,continue:!e.abort})}}),fc=h("$ZodNumber",(t,e)=>{Y.init(t,e),t._zod.pattern=t._zod.bag.pattern??sc,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=Number(r.value)}catch{}let a=r.value;if(typeof a=="number"&&!Number.isNaN(a)&&Number.isFinite(a))return r;let i=typeof a=="number"?Number.isNaN(a)?"NaN":Number.isFinite(a)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:a,inst:t,...i?{received:i}:{}}),r}}),_0=h("$ZodNumberFormat",(t,e)=>{d8.init(t,e),fc.init(t,e)}),Md=h("$ZodBoolean",(t,e)=>{Y.init(t,e),t._zod.pattern=Lf,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=!!r.value}catch{}let a=r.value;return typeof a=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:a,inst:t}),r}}),hc=h("$ZodBigInt",(t,e)=>{Y.init(t,e),t._zod.pattern=Uf,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=BigInt(r.value)}catch{}return typeof r.value=="bigint"||r.issues.push({expected:"bigint",code:"invalid_type",input:r.value,inst:t}),r}}),b0=h("$ZodBigIntFormat",(t,e)=>{p8.init(t,e),hc.init(t,e)}),w0=h("$ZodSymbol",(t,e)=>{Y.init(t,e),t._zod.parse=(r,n)=>{let a=r.value;return typeof a=="symbol"||r.issues.push({expected:"symbol",code:"invalid_type",input:a,inst:t}),r}}),x0=h("$ZodUndefined",(t,e)=>{Y.init(t,e),t._zod.pattern=qf,t._zod.values=new Set([void 0]),t._zod.optin="optional",t._zod.optout="optional",t._zod.parse=(r,n)=>{let a=r.value;return typeof a>"u"||r.issues.push({expected:"undefined",code:"invalid_type",input:a,inst:t}),r}}),$0=h("$ZodNull",(t,e)=>{Y.init(t,e),t._zod.pattern=Mf,t._zod.values=new Set([null]),t._zod.parse=(r,n)=>{let a=r.value;return a===null||r.issues.push({expected:"null",code:"invalid_type",input:a,inst:t}),r}}),S0=h("$ZodAny",(t,e)=>{Y.init(t,e),t._zod.parse=r=>r}),k0=h("$ZodUnknown",(t,e)=>{Y.init(t,e),t._zod.parse=r=>r}),T0=h("$ZodNever",(t,e)=>{Y.init(t,e),t._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:t}),r)}),E0=h("$ZodVoid",(t,e)=>{Y.init(t,e),t._zod.parse=(r,n)=>{let a=r.value;return typeof a>"u"||r.issues.push({expected:"void",code:"invalid_type",input:a,inst:t}),r}}),I0=h("$ZodDate",(t,e)=>{Y.init(t,e),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=new Date(r.value)}catch{}let a=r.value,i=a instanceof Date;return i&&!Number.isNaN(a.getTime())||r.issues.push({expected:"date",code:"invalid_type",input:a,...i?{received:"Invalid Date"}:{},inst:t}),r}});function E8(t,e,r){t.issues.length&&e.issues.push(...cr(r,t.issues)),e.value[r]=t.value}var P0=h("$ZodArray",(t,e)=>{Y.init(t,e),t._zod.parse=(r,n)=>{let a=r.value;if(!Array.isArray(a))return r.issues.push({expected:"array",code:"invalid_type",input:a,inst:t}),r;r.value=Array(a.length);let i=[];for(let o=0;oE8(p,r,o))):E8(d,r,o)}return i.length?Promise.all(i).then(()=>r):r}});function mc(t,e,r,n,a){if(t.issues.length){if(a&&!(r in n))return;e.issues.push(...cr(r,t.issues))}t.value===void 0?r in n&&(e.value[r]=void 0):e.value[r]=t.value}function V8(t){let e=Object.keys(t.shape);for(let n of e)if(!t.shape?.[n]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${n}": expected a Zod schema`);let r=ff(t.shape);return{...t,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(r)}}function L8(t,e,r,n,a,i){let o=[],s=a.keySet,d=a.catchall._zod,p=d.def.type,l=d.optout==="optional";for(let c in e){if(s.has(c))continue;if(p==="never"){o.push(c);continue}let u=d.run({value:e[c],issues:[]},n);u instanceof Promise?t.push(u.then(m=>mc(m,r,c,e,l))):mc(u,r,c,e,l)}return o.length&&r.issues.push({code:"unrecognized_keys",keys:o,input:e,inst:i}),t.length?Promise.all(t).then(()=>r):r}var M8=h("$ZodObject",(t,e)=>{if(Y.init(t,e),!Object.getOwnPropertyDescriptor(e,"shape")?.get){let s=e.shape;Object.defineProperty(e,"shape",{get:()=>{let d={...s};return Object.defineProperty(e,"shape",{value:d}),d}})}let n=Lo(()=>V8(e));ie(t._zod,"propValues",()=>{let s=e.shape,d={};for(let p in s){let l=s[p]._zod;if(l.values){d[p]??(d[p]=new Set);for(let c of l.values)d[p].add(c)}}return d});let a=ui,i=e.catchall,o;t._zod.parse=(s,d)=>{o??(o=n.value);let p=s.value;if(!a(p))return s.issues.push({expected:"object",code:"invalid_type",input:p,inst:t}),s;s.value={};let l=[],c=o.shape;for(let u of o.keys){let m=c[u],f=m._zod.optout==="optional",g=m._zod.run({value:p[u],issues:[]},d);g instanceof Promise?l.push(g.then(y=>mc(y,s,u,p,f))):mc(g,s,u,p,f)}return i?L8(l,p,s,d,n.value,t):l.length?Promise.all(l).then(()=>s):s}}),q8=h("$ZodObjectJIT",(t,e)=>{M8.init(t,e);let r=t._zod.parse,n=Lo(()=>V8(e)),a=u=>{let m=new dc(["shape","payload","ctx"]),f=n.value,g=E=>{let T=tc(E);return`shape[${T}]._zod.run({ value: input[${T}], issues: [] }, ctx)`};m.write("const input = payload.value;");let y=Object.create(null),b=0;for(let E of f.keys)y[E]=`key_${b++}`;m.write("const newResult = {};");for(let E of f.keys){let T=y[E],k=tc(E),qe=u[E]?._zod?.optout==="optional";m.write(`const ${T} = ${g(E)};`),qe?m.write(` - if (${T}.issues.length) { - if (${k} in input) { - payload.issues = payload.issues.concat(${T}.issues.map(iss => ({ - ...iss, - path: iss.path ? [${k}, ...iss.path] : [${k}] - }))); - } - } - - if (${T}.value === undefined) { - if (${k} in input) { - newResult[${k}] = undefined; - } - } else { - newResult[${k}] = ${T}.value; - } - - `):m.write(` - if (${T}.issues.length) { - payload.issues = payload.issues.concat(${T}.issues.map(iss => ({ - ...iss, - path: iss.path ? [${k}, ...iss.path] : [${k}] - }))); - } - - if (${T}.value === undefined) { - if (${k} in input) { - newResult[${k}] = undefined; - } - } else { - newResult[${k}] = ${T}.value; - } - - `)}m.write("payload.value = newResult;"),m.write("return payload;");let S=m.compile();return(E,T)=>S(u,E,T)},i,o=ui,s=!ec.jitless,p=s&&cf.value,l=e.catchall,c;t._zod.parse=(u,m)=>{c??(c=n.value);let f=u.value;return o(f)?s&&p&&m?.async===!1&&m.jitless!==!0?(i||(i=a(e.shape)),u=i(u,m),l?L8([],f,u,m,c,t):u):r(u,m):(u.issues.push({expected:"object",code:"invalid_type",input:f,inst:t}),u)}});function I8(t,e,r,n){for(let i of t)if(i.issues.length===0)return e.value=i.value,e;let a=t.filter(i=>!fa(i));return a.length===1?(e.value=a[0].value,a[0]):(e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(i=>i.issues.map(o=>Kt(o,n,ut())))}),e)}var qd=h("$ZodUnion",(t,e)=>{Y.init(t,e),ie(t._zod,"optin",()=>e.options.some(a=>a._zod.optin==="optional")?"optional":void 0),ie(t._zod,"optout",()=>e.options.some(a=>a._zod.optout==="optional")?"optional":void 0),ie(t._zod,"values",()=>{if(e.options.every(a=>a._zod.values))return new Set(e.options.flatMap(a=>Array.from(a._zod.values)))}),ie(t._zod,"pattern",()=>{if(e.options.every(a=>a._zod.pattern)){let a=e.options.map(i=>i._zod.pattern);return new RegExp(`^(${a.map(i=>Td(i.source)).join("|")})$`)}});let r=e.options.length===1,n=e.options[0]._zod.run;t._zod.parse=(a,i)=>{if(r)return n(a,i);let o=!1,s=[];for(let d of e.options){let p=d._zod.run({value:a.value,issues:[]},i);if(p instanceof Promise)s.push(p),o=!0;else{if(p.issues.length===0)return p;s.push(p)}}return o?Promise.all(s).then(d=>I8(d,a,t,i)):I8(s,a,t,i)}});function P8(t,e,r,n){let a=t.filter(i=>i.issues.length===0);return a.length===1?(e.value=a[0].value,e):(a.length===0?e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(i=>i.issues.map(o=>Kt(o,n,ut())))}):e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:[],inclusive:!1}),e)}var N0=h("$ZodXor",(t,e)=>{qd.init(t,e),e.inclusive=!1;let r=e.options.length===1,n=e.options[0]._zod.run;t._zod.parse=(a,i)=>{if(r)return n(a,i);let o=!1,s=[];for(let d of e.options){let p=d._zod.run({value:a.value,issues:[]},i);p instanceof Promise?(s.push(p),o=!0):s.push(p)}return o?Promise.all(s).then(d=>P8(d,a,t,i)):P8(s,a,t,i)}}),z0=h("$ZodDiscriminatedUnion",(t,e)=>{e.inclusive=!1,qd.init(t,e);let r=t._zod.parse;ie(t._zod,"propValues",()=>{let a={};for(let i of e.options){let o=i._zod.propValues;if(!o||Object.keys(o).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(i)}"`);for(let[s,d]of Object.entries(o)){a[s]||(a[s]=new Set);for(let p of d)a[s].add(p)}}return a});let n=Lo(()=>{let a=e.options,i=new Map;for(let o of a){let s=o._zod.propValues?.[e.discriminator];if(!s||s.size===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(o)}"`);for(let d of s){if(i.has(d))throw new Error(`Duplicate discriminator value "${String(d)}"`);i.set(d,o)}}return i});t._zod.parse=(a,i)=>{let o=a.value;if(!ui(o))return a.issues.push({code:"invalid_type",expected:"object",input:o,inst:t}),a;let s=n.value.get(o?.[e.discriminator]);return s?s._zod.run(a,i):e.unionFallback?r(a,i):(a.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:e.discriminator,input:o,path:[e.discriminator],inst:t}),a)}}),O0=h("$ZodIntersection",(t,e)=>{Y.init(t,e),t._zod.parse=(r,n)=>{let a=r.value,i=e.left._zod.run({value:a,issues:[]},n),o=e.right._zod.run({value:a,issues:[]},n);return i instanceof Promise||o instanceof Promise?Promise.all([i,o]).then(([d,p])=>N8(r,d,p)):N8(r,i,o)}});function Jf(t,e){if(t===e)return{valid:!0,data:t};if(t instanceof Date&&e instanceof Date&&+t==+e)return{valid:!0,data:t};if(ma(t)&&ma(e)){let r=Object.keys(e),n=Object.keys(t).filter(i=>r.indexOf(i)!==-1),a={...t,...e};for(let i of n){let o=Jf(t[i],e[i]);if(!o.valid)return{valid:!1,mergeErrorPath:[i,...o.mergeErrorPath]};a[i]=o.data}return{valid:!0,data:a}}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let n=0;ns.l&&s.r).map(([s])=>s);if(i.length&&a&&t.issues.push({...a,keys:i}),fa(t))return t;let o=Jf(e.value,r.value);if(!o.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(o.mergeErrorPath)}`);return t.value=o.data,t}var gc=h("$ZodTuple",(t,e)=>{Y.init(t,e);let r=e.items;t._zod.parse=(n,a)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({input:i,inst:t,expected:"tuple",code:"invalid_type"}),n;n.value=[];let o=[],s=[...r].reverse().findIndex(l=>l._zod.optin!=="optional"),d=s===-1?0:r.length-s;if(!e.rest){let l=i.length>r.length,c=i.length=i.length&&p>=d)continue;let c=l._zod.run({value:i[p],issues:[]},a);c instanceof Promise?o.push(c.then(u=>pc(u,n,p))):pc(c,n,p)}if(e.rest){let l=i.slice(r.length);for(let c of l){p++;let u=e.rest._zod.run({value:c,issues:[]},a);u instanceof Promise?o.push(u.then(m=>pc(m,n,p))):pc(u,n,p)}}return o.length?Promise.all(o).then(()=>n):n}});function pc(t,e,r){t.issues.length&&e.issues.push(...cr(r,t.issues)),e.value[r]=t.value}var R0=h("$ZodRecord",(t,e)=>{Y.init(t,e),t._zod.parse=(r,n)=>{let a=r.value;if(!ma(a))return r.issues.push({expected:"record",code:"invalid_type",input:a,inst:t}),r;let i=[],o=e.keyType._zod.values;if(o){r.value={};let s=new Set;for(let p of o)if(typeof p=="string"||typeof p=="number"||typeof p=="symbol"){s.add(typeof p=="number"?p.toString():p);let l=e.valueType._zod.run({value:a[p],issues:[]},n);l instanceof Promise?i.push(l.then(c=>{c.issues.length&&r.issues.push(...cr(p,c.issues)),r.value[p]=c.value})):(l.issues.length&&r.issues.push(...cr(p,l.issues)),r.value[p]=l.value)}let d;for(let p in a)s.has(p)||(d=d??[],d.push(p));d&&d.length>0&&r.issues.push({code:"unrecognized_keys",input:a,inst:t,keys:d})}else{r.value={};for(let s of Reflect.ownKeys(a)){if(s==="__proto__")continue;let d=e.keyType._zod.run({value:s,issues:[]},n);if(d instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof s=="string"&&sc.test(s)&&d.issues.length){let c=e.keyType._zod.run({value:Number(s),issues:[]},n);if(c instanceof Promise)throw new Error("Async schemas not supported in object keys currently");c.issues.length===0&&(d=c)}if(d.issues.length){e.mode==="loose"?r.value[s]=a[s]:r.issues.push({code:"invalid_key",origin:"record",issues:d.issues.map(c=>Kt(c,n,ut())),input:s,path:[s],inst:t});continue}let l=e.valueType._zod.run({value:a[s],issues:[]},n);l instanceof Promise?i.push(l.then(c=>{c.issues.length&&r.issues.push(...cr(s,c.issues)),r.value[d.value]=c.value})):(l.issues.length&&r.issues.push(...cr(s,l.issues)),r.value[d.value]=l.value)}}return i.length?Promise.all(i).then(()=>r):r}}),D0=h("$ZodMap",(t,e)=>{Y.init(t,e),t._zod.parse=(r,n)=>{let a=r.value;if(!(a instanceof Map))return r.issues.push({expected:"map",code:"invalid_type",input:a,inst:t}),r;let i=[];r.value=new Map;for(let[o,s]of a){let d=e.keyType._zod.run({value:o,issues:[]},n),p=e.valueType._zod.run({value:s,issues:[]},n);d instanceof Promise||p instanceof Promise?i.push(Promise.all([d,p]).then(([l,c])=>{z8(l,c,r,o,a,t,n)})):z8(d,p,r,o,a,t,n)}return i.length?Promise.all(i).then(()=>r):r}});function z8(t,e,r,n,a,i,o){t.issues.length&&(Ed.has(typeof n)?r.issues.push(...cr(n,t.issues)):r.issues.push({code:"invalid_key",origin:"map",input:a,inst:i,issues:t.issues.map(s=>Kt(s,o,ut()))})),e.issues.length&&(Ed.has(typeof n)?r.issues.push(...cr(n,e.issues)):r.issues.push({origin:"map",code:"invalid_element",input:a,inst:i,key:n,issues:e.issues.map(s=>Kt(s,o,ut()))})),r.value.set(t.value,e.value)}var A0=h("$ZodSet",(t,e)=>{Y.init(t,e),t._zod.parse=(r,n)=>{let a=r.value;if(!(a instanceof Set))return r.issues.push({input:a,inst:t,expected:"set",code:"invalid_type"}),r;let i=[];r.value=new Set;for(let o of a){let s=e.valueType._zod.run({value:o,issues:[]},n);s instanceof Promise?i.push(s.then(d=>O8(d,r))):O8(s,r)}return i.length?Promise.all(i).then(()=>r):r}});function O8(t,e){t.issues.length&&e.issues.push(...t.issues),e.value.add(t.value)}var j0=h("$ZodEnum",(t,e)=>{Y.init(t,e);let r=kd(e.entries),n=new Set(r);t._zod.values=n,t._zod.pattern=new RegExp(`^(${r.filter(a=>Ed.has(typeof a)).map(a=>typeof a=="string"?_r(a):a.toString()).join("|")})$`),t._zod.parse=(a,i)=>{let o=a.value;return n.has(o)||a.issues.push({code:"invalid_value",values:r,input:o,inst:t}),a}}),C0=h("$ZodLiteral",(t,e)=>{if(Y.init(t,e),e.values.length===0)throw new Error("Cannot create literal schema with no valid values");let r=new Set(e.values);t._zod.values=r,t._zod.pattern=new RegExp(`^(${e.values.map(n=>typeof n=="string"?_r(n):n?_r(n.toString()):String(n)).join("|")})$`),t._zod.parse=(n,a)=>{let i=n.value;return r.has(i)||n.issues.push({code:"invalid_value",values:e.values,input:i,inst:t}),n}}),U0=h("$ZodFile",(t,e)=>{Y.init(t,e),t._zod.parse=(r,n)=>{let a=r.value;return a instanceof File||r.issues.push({expected:"file",code:"invalid_type",input:a,inst:t}),r}}),V0=h("$ZodTransform",(t,e)=>{Y.init(t,e),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new ci(t.constructor.name);let a=e.transform(r.value,r);if(n.async)return(a instanceof Promise?a:Promise.resolve(a)).then(o=>(r.value=o,r));if(a instanceof Promise)throw new nn;return r.value=a,r}});function R8(t,e){return t.issues.length&&e===void 0?{issues:[],value:void 0}:t}var vc=h("$ZodOptional",(t,e)=>{Y.init(t,e),t._zod.optin="optional",t._zod.optout="optional",ie(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),ie(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Td(r.source)})?$`):void 0}),t._zod.parse=(r,n)=>{if(e.innerType._zod.optin==="optional"){let a=e.innerType._zod.run(r,n);return a instanceof Promise?a.then(i=>R8(i,r.value)):R8(a,r.value)}return r.value===void 0?r:e.innerType._zod.run(r,n)}}),L0=h("$ZodExactOptional",(t,e)=>{vc.init(t,e),ie(t._zod,"values",()=>e.innerType._zod.values),ie(t._zod,"pattern",()=>e.innerType._zod.pattern),t._zod.parse=(r,n)=>e.innerType._zod.run(r,n)}),M0=h("$ZodNullable",(t,e)=>{Y.init(t,e),ie(t._zod,"optin",()=>e.innerType._zod.optin),ie(t._zod,"optout",()=>e.innerType._zod.optout),ie(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Td(r.source)}|null)$`):void 0}),ie(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),t._zod.parse=(r,n)=>r.value===null?r:e.innerType._zod.run(r,n)}),q0=h("$ZodDefault",(t,e)=>{Y.init(t,e),t._zod.optin="optional",ie(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);if(r.value===void 0)return r.value=e.defaultValue,r;let a=e.innerType._zod.run(r,n);return a instanceof Promise?a.then(i=>D8(i,e)):D8(a,e)}});function D8(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var Z0=h("$ZodPrefault",(t,e)=>{Y.init(t,e),t._zod.optin="optional",ie(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>(n.direction==="backward"||r.value===void 0&&(r.value=e.defaultValue),e.innerType._zod.run(r,n))}),F0=h("$ZodNonOptional",(t,e)=>{Y.init(t,e),ie(t._zod,"values",()=>{let r=e.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),t._zod.parse=(r,n)=>{let a=e.innerType._zod.run(r,n);return a instanceof Promise?a.then(i=>A8(i,t)):A8(a,t)}});function A8(t,e){return!t.issues.length&&t.value===void 0&&t.issues.push({code:"invalid_type",expected:"nonoptional",input:t.value,inst:e}),t}var B0=h("$ZodSuccess",(t,e)=>{Y.init(t,e),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new ci("ZodSuccess");let a=e.innerType._zod.run(r,n);return a instanceof Promise?a.then(i=>(r.value=i.issues.length===0,r)):(r.value=a.issues.length===0,r)}}),W0=h("$ZodCatch",(t,e)=>{Y.init(t,e),ie(t._zod,"optin",()=>e.innerType._zod.optin),ie(t._zod,"optout",()=>e.innerType._zod.optout),ie(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);let a=e.innerType._zod.run(r,n);return a instanceof Promise?a.then(i=>(r.value=i.value,i.issues.length&&(r.value=e.catchValue({...r,error:{issues:i.issues.map(o=>Kt(o,n,ut()))},input:r.value}),r.issues=[]),r)):(r.value=a.value,a.issues.length&&(r.value=e.catchValue({...r,error:{issues:a.issues.map(i=>Kt(i,n,ut()))},input:r.value}),r.issues=[]),r)}}),J0=h("$ZodNaN",(t,e)=>{Y.init(t,e),t._zod.parse=(r,n)=>((typeof r.value!="number"||!Number.isNaN(r.value))&&r.issues.push({input:r.value,inst:t,expected:"nan",code:"invalid_type"}),r)}),G0=h("$ZodPipe",(t,e)=>{Y.init(t,e),ie(t._zod,"values",()=>e.in._zod.values),ie(t._zod,"optin",()=>e.in._zod.optin),ie(t._zod,"optout",()=>e.out._zod.optout),ie(t._zod,"propValues",()=>e.in._zod.propValues),t._zod.parse=(r,n)=>{if(n.direction==="backward"){let i=e.out._zod.run(r,n);return i instanceof Promise?i.then(o=>lc(o,e.in,n)):lc(i,e.in,n)}let a=e.in._zod.run(r,n);return a instanceof Promise?a.then(i=>lc(i,e.out,n)):lc(a,e.out,n)}});function lc(t,e,r){return t.issues.length?(t.aborted=!0,t):e._zod.run({value:t.value,issues:t.issues},r)}var Zd=h("$ZodCodec",(t,e)=>{Y.init(t,e),ie(t._zod,"values",()=>e.in._zod.values),ie(t._zod,"optin",()=>e.in._zod.optin),ie(t._zod,"optout",()=>e.out._zod.optout),ie(t._zod,"propValues",()=>e.in._zod.propValues),t._zod.parse=(r,n)=>{if((n.direction||"forward")==="forward"){let i=e.in._zod.run(r,n);return i instanceof Promise?i.then(o=>cc(o,e,n)):cc(i,e,n)}else{let i=e.out._zod.run(r,n);return i instanceof Promise?i.then(o=>cc(o,e,n)):cc(i,e,n)}}});function cc(t,e,r){if(t.issues.length)return t.aborted=!0,t;if((r.direction||"forward")==="forward"){let a=e.transform(t.value,t);return a instanceof Promise?a.then(i=>uc(t,i,e.out,r)):uc(t,a,e.out,r)}else{let a=e.reverseTransform(t.value,t);return a instanceof Promise?a.then(i=>uc(t,i,e.in,r)):uc(t,a,e.in,r)}}function uc(t,e,r,n){return t.issues.length?(t.aborted=!0,t):r._zod.run({value:e,issues:t.issues},n)}var H0=h("$ZodReadonly",(t,e)=>{Y.init(t,e),ie(t._zod,"propValues",()=>e.innerType._zod.propValues),ie(t._zod,"values",()=>e.innerType._zod.values),ie(t._zod,"optin",()=>e.innerType?._zod?.optin),ie(t._zod,"optout",()=>e.innerType?._zod?.optout),t._zod.parse=(r,n)=>{if(n.direction==="backward")return e.innerType._zod.run(r,n);let a=e.innerType._zod.run(r,n);return a instanceof Promise?a.then(j8):j8(a)}});function j8(t){return t.value=Object.freeze(t.value),t}var K0=h("$ZodTemplateLiteral",(t,e)=>{Y.init(t,e);let r=[];for(let n of e.parts)if(typeof n=="object"&&n!==null){if(!n._zod.pattern)throw new Error(`Invalid template literal part, no pattern found: ${[...n._zod.traits].shift()}`);let a=n._zod.pattern instanceof RegExp?n._zod.pattern.source:n._zod.pattern;if(!a)throw new Error(`Invalid template literal part: ${n._zod.traits}`);let i=a.startsWith("^")?1:0,o=a.endsWith("$")?a.length-1:a.length;r.push(a.slice(i,o))}else if(n===null||mf.has(typeof n))r.push(_r(`${n}`));else throw new Error(`Invalid template literal part: ${n}`);t._zod.pattern=new RegExp(`^${r.join("")}$`),t._zod.parse=(n,a)=>typeof n.value!="string"?(n.issues.push({input:n.value,inst:t,expected:"string",code:"invalid_type"}),n):(t._zod.pattern.lastIndex=0,t._zod.pattern.test(n.value)||n.issues.push({input:n.value,inst:t,code:"invalid_format",format:e.format??"template_literal",pattern:t._zod.pattern.source}),n)}),X0=h("$ZodFunction",(t,e)=>(Y.init(t,e),t._def=e,t._zod.def=e,t.implement=r=>{if(typeof r!="function")throw new Error("implement() must be called with a function");return function(...n){let a=t._def.input?Od(t._def.input,n):n,i=Reflect.apply(r,this,a);return t._def.output?Od(t._def.output,i):i}},t.implementAsync=r=>{if(typeof r!="function")throw new Error("implementAsync() must be called with a function");return async function(...n){let a=t._def.input?await Dd(t._def.input,n):n,i=await Reflect.apply(r,this,a);return t._def.output?await Dd(t._def.output,i):i}},t._zod.parse=(r,n)=>typeof r.value!="function"?(r.issues.push({code:"invalid_type",expected:"function",input:r.value,inst:t}),r):(t._def.output&&t._def.output._zod.def.type==="promise"?r.value=t.implementAsync(r.value):r.value=t.implement(r.value),r),t.input=(...r)=>{let n=t.constructor;return Array.isArray(r[0])?new n({type:"function",input:new gc({type:"tuple",items:r[0],rest:r[1]}),output:t._def.output}):new n({type:"function",input:r[0],output:t._def.output})},t.output=r=>{let n=t.constructor;return new n({type:"function",input:t._def.input,output:r})},t)),Y0=h("$ZodPromise",(t,e)=>{Y.init(t,e),t._zod.parse=(r,n)=>Promise.resolve(r.value).then(a=>e.innerType._zod.run({value:a,issues:[]},n))}),Q0=h("$ZodLazy",(t,e)=>{Y.init(t,e),ie(t._zod,"innerType",()=>e.getter()),ie(t._zod,"pattern",()=>t._zod.innerType?._zod?.pattern),ie(t._zod,"propValues",()=>t._zod.innerType?._zod?.propValues),ie(t._zod,"optin",()=>t._zod.innerType?._zod?.optin??void 0),ie(t._zod,"optout",()=>t._zod.innerType?._zod?.optout??void 0),t._zod.parse=(r,n)=>t._zod.innerType._zod.run(r,n)}),e2=h("$ZodCustom",(t,e)=>{Ce.init(t,e),Y.init(t,e),t._zod.parse=(r,n)=>r,t._zod.check=r=>{let n=r.value,a=e.fn(n);if(a instanceof Promise)return a.then(i=>C8(i,r,n,t));C8(a,r,n,t)}});function C8(t,e,r,n){if(!t){let a={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(a.params=n._zod.def.params),e.issues.push(Mo(a))}}var LE=()=>{let t={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"},map:{unit:"entries",verb:"to have"}};function e(a){return t[a]??null}let r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"},n={nan:"NaN"};return a=>{switch(a.code){case"invalid_type":{let i=n[a.expected]??a.expected,o=G(a.input),s=n[o]??o;return`Invalid input: expected ${i}, received ${s}`}case"invalid_value":return a.values.length===1?`Invalid input: expected ${W(a.values[0])}`:`Invalid option: expected one of ${B(a.values,"|")}`;case"too_big":{let i=a.inclusive?"<=":"<",o=e(a.origin);return o?`Too big: expected ${a.origin??"value"} to have ${i}${a.maximum.toString()} ${o.unit??"elements"}`:`Too big: expected ${a.origin??"value"} to be ${i}${a.maximum.toString()}`}case"too_small":{let i=a.inclusive?">=":">",o=e(a.origin);return o?`Too small: expected ${a.origin} to have ${i}${a.minimum.toString()} ${o.unit}`:`Too small: expected ${a.origin} to be ${i}${a.minimum.toString()}`}case"invalid_format":{let i=a;return i.format==="starts_with"?`Invalid string: must start with "${i.prefix}"`:i.format==="ends_with"?`Invalid string: must end with "${i.suffix}"`:i.format==="includes"?`Invalid string: must include "${i.includes}"`:i.format==="regex"?`Invalid string: must match pattern ${i.pattern}`:`Invalid ${r[i.format]??a.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${a.divisor}`;case"unrecognized_keys":return`Unrecognized key${a.keys.length>1?"s":""}: ${B(a.keys,", ")}`;case"invalid_key":return`Invalid key in ${a.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${a.origin}`;default:return"Invalid input"}}};function t2(){return{localeError:LE()}}var Z8;var n2=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...r){let n=r[0];return this._map.set(e,n),n&&typeof n=="object"&&"id"in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let r=this._map.get(e);return r&&typeof r=="object"&&"id"in r&&this._idmap.delete(r.id),this._map.delete(e),this}get(e){let r=e._zod.parent;if(r){let n={...this.get(r)??{}};delete n.id;let a={...n,...this._map.get(e)};return Object.keys(a).length?a:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function a2(){return new n2}(Z8=globalThis).__zod_globalRegistry??(Z8.__zod_globalRegistry=a2());var Mt=globalThis.__zod_globalRegistry;function i2(t,e){return new t({type:"string",...N(e)})}function yc(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...N(e)})}function Fd(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...N(e)})}function _c(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...N(e)})}function bc(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...N(e)})}function wc(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...N(e)})}function xc(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...N(e)})}function Bd(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...N(e)})}function $c(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...N(e)})}function Sc(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...N(e)})}function kc(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...N(e)})}function Tc(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...N(e)})}function Ec(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...N(e)})}function Ic(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...N(e)})}function Pc(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...N(e)})}function Nc(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...N(e)})}function zc(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...N(e)})}function o2(t,e){return new t({type:"string",format:"mac",check:"string_format",abort:!1,...N(e)})}function Oc(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...N(e)})}function Rc(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...N(e)})}function Dc(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...N(e)})}function Ac(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...N(e)})}function jc(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...N(e)})}function Cc(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...N(e)})}function s2(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...N(e)})}function d2(t,e){return new t({type:"string",format:"date",check:"string_format",...N(e)})}function p2(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...N(e)})}function l2(t,e){return new t({type:"string",format:"duration",check:"string_format",...N(e)})}function c2(t,e){return new t({type:"number",checks:[],...N(e)})}function u2(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...N(e)})}function m2(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"float32",...N(e)})}function f2(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"float64",...N(e)})}function h2(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"int32",...N(e)})}function g2(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"uint32",...N(e)})}function v2(t,e){return new t({type:"boolean",...N(e)})}function y2(t,e){return new t({type:"bigint",...N(e)})}function _2(t,e){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...N(e)})}function b2(t,e){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...N(e)})}function w2(t,e){return new t({type:"symbol",...N(e)})}function x2(t,e){return new t({type:"undefined",...N(e)})}function $2(t,e){return new t({type:"null",...N(e)})}function S2(t){return new t({type:"any"})}function k2(t){return new t({type:"unknown"})}function T2(t,e){return new t({type:"never",...N(e)})}function E2(t,e){return new t({type:"void",...N(e)})}function I2(t,e){return new t({type:"date",...N(e)})}function P2(t,e){return new t({type:"nan",...N(e)})}function Rn(t,e){return new Bf({check:"less_than",...N(e),value:t,inclusive:!1})}function ur(t,e){return new Bf({check:"less_than",...N(e),value:t,inclusive:!0})}function Dn(t,e){return new Wf({check:"greater_than",...N(e),value:t,inclusive:!1})}function qt(t,e){return new Wf({check:"greater_than",...N(e),value:t,inclusive:!0})}function N2(t){return Dn(0,t)}function z2(t){return Rn(0,t)}function O2(t){return ur(0,t)}function R2(t){return qt(0,t)}function hi(t,e){return new s8({check:"multiple_of",...N(e),value:t})}function gi(t,e){return new l8({check:"max_size",...N(e),maximum:t})}function An(t,e){return new c8({check:"min_size",...N(e),minimum:t})}function Zo(t,e){return new u8({check:"size_equals",...N(e),size:t})}function Fo(t,e){return new m8({check:"max_length",...N(e),maximum:t})}function ha(t,e){return new f8({check:"min_length",...N(e),minimum:t})}function Bo(t,e){return new h8({check:"length_equals",...N(e),length:t})}function Wd(t,e){return new g8({check:"string_format",format:"regex",...N(e),pattern:t})}function Jd(t){return new v8({check:"string_format",format:"lowercase",...N(t)})}function Gd(t){return new y8({check:"string_format",format:"uppercase",...N(t)})}function Hd(t,e){return new _8({check:"string_format",format:"includes",...N(e),includes:t})}function Kd(t,e){return new b8({check:"string_format",format:"starts_with",...N(e),prefix:t})}function Xd(t,e){return new w8({check:"string_format",format:"ends_with",...N(e),suffix:t})}function D2(t,e,r){return new x8({check:"property",property:t,schema:e,...N(r)})}function Yd(t,e){return new $8({check:"mime_type",mime:t,...N(e)})}function an(t){return new S8({check:"overwrite",tx:t})}function Qd(t){return an(e=>e.normalize(t))}function ep(){return an(t=>t.trim())}function tp(){return an(t=>t.toLowerCase())}function rp(){return an(t=>t.toUpperCase())}function Uc(){return an(t=>lf(t))}function F8(t,e,r){return new t({type:"array",element:e,...N(r)})}function A2(t,e){return new t({type:"file",...N(e)})}function j2(t,e,r){let n=N(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function C2(t,e,r){return new t({type:"custom",check:"custom",fn:e,...N(r)})}function U2(t){let e=FE(r=>(r.addIssue=n=>{if(typeof n=="string")r.issues.push(Mo(n,r.value,e._zod.def));else{let a=n;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=r.value),a.inst??(a.inst=e),a.continue??(a.continue=!e._zod.def.abort),r.issues.push(Mo(a))}},t(r.value,r)));return e}function FE(t,e){let r=new Ce({check:"custom",...N(e)});return r._zod.check=t,r}function V2(t){let e=new Ce({check:"describe"});return e._zod.onattach=[r=>{let n=Mt.get(r)??{};Mt.add(r,{...n,description:t})}],e._zod.check=()=>{},e}function L2(t){let e=new Ce({check:"meta"});return e._zod.onattach=[r=>{let n=Mt.get(r)??{};Mt.add(r,{...n,...t})}],e._zod.check=()=>{},e}function M2(t,e){let r=N(e),n=r.truthy??["true","1","yes","on","y","enabled"],a=r.falsy??["false","0","no","off","n","disabled"];r.case!=="sensitive"&&(n=n.map(m=>typeof m=="string"?m.toLowerCase():m),a=a.map(m=>typeof m=="string"?m.toLowerCase():m));let i=new Set(n),o=new Set(a),s=t.Codec??Zd,d=t.Boolean??Md,p=t.String??fi,l=new p({type:"string",error:r.error}),c=new d({type:"boolean",error:r.error}),u=new s({type:"pipe",in:l,out:c,transform:((m,f)=>{let g=m;return r.case!=="sensitive"&&(g=g.toLowerCase()),i.has(g)?!0:o.has(g)?!1:(f.issues.push({code:"invalid_value",expected:"stringbool",values:[...i,...o],input:f.value,inst:u,continue:!1}),{})}),reverseTransform:((m,f)=>m===!0?n[0]||"true":a[0]||"false"),error:r.error});return u}function Wo(t,e,r,n={}){let a=N(n),i={...N(n),check:"string_format",type:"string",format:e,fn:typeof r=="function"?r:s=>r.test(s),...a};return r instanceof RegExp&&(i.pattern=r),new t(i)}function Vc(t){let e=t?.target??"draft-2020-12";return e==="draft-4"&&(e="draft-04"),e==="draft-7"&&(e="draft-07"),{processors:t.processors??{},metadataRegistry:t?.metadata??Mt,target:e,unrepresentable:t?.unrepresentable??"throw",override:t?.override??(()=>{}),io:t?.io??"output",counter:0,seen:new Map,cycles:t?.cycles??"ref",reused:t?.reused??"inline",external:t?.external??void 0}}function Fe(t,e,r={path:[],schemaPath:[]}){var n;let a=t._zod.def,i=e.seen.get(t);if(i)return i.count++,r.schemaPath.includes(t)&&(i.cycle=r.path),i.schema;let o={schema:{},count:1,cycle:void 0,path:r.path};e.seen.set(t,o);let s=t._zod.toJSONSchema?.();if(s)o.schema=s;else{let l={...r,schemaPath:[...r.schemaPath,t],path:r.path};if(t._zod.processJSONSchema)t._zod.processJSONSchema(e,o.schema,l);else{let u=o.schema,m=e.processors[a.type];if(!m)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${a.type}`);m(t,e,u,l)}let c=t._zod.parent;c&&(o.ref||(o.ref=c),Fe(c,e,l),e.seen.get(c).isParent=!0)}let d=e.metadataRegistry.get(t);return d&&Object.assign(o.schema,d),e.io==="input"&&Zt(t)&&(delete o.schema.examples,delete o.schema.default),e.io==="input"&&o.schema._prefault&&((n=o.schema).default??(n.default=o.schema._prefault)),delete o.schema._prefault,e.seen.get(t).schema}function Lc(t,e){let r=t.seen.get(e);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=new Map;for(let o of t.seen.entries()){let s=t.metadataRegistry.get(o[0])?.id;if(s){let d=n.get(s);if(d&&d!==o[0])throw new Error(`Duplicate schema id "${s}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(s,o[0])}}let a=o=>{let s=t.target==="draft-2020-12"?"$defs":"definitions";if(t.external){let c=t.external.registry.get(o[0])?.id,u=t.external.uri??(f=>f);if(c)return{ref:u(c)};let m=o[1].defId??o[1].schema.id??`schema${t.counter++}`;return o[1].defId=m,{defId:m,ref:`${u("__shared")}#/${s}/${m}`}}if(o[1]===r)return{ref:"#"};let p=`#/${s}/`,l=o[1].schema.id??`__schema${t.counter++}`;return{defId:l,ref:p+l}},i=o=>{if(o[1].schema.$ref)return;let s=o[1],{ref:d,defId:p}=a(o);s.def={...s.schema},p&&(s.defId=p);let l=s.schema;for(let c in l)delete l[c];l.$ref=d};if(t.cycles==="throw")for(let o of t.seen.entries()){let s=o[1];if(s.cycle)throw new Error(`Cycle detected: #/${s.cycle?.join("/")}/ - -Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let o of t.seen.entries()){let s=o[1];if(e===o[0]){i(o);continue}if(t.external){let p=t.external.registry.get(o[0])?.id;if(e!==o[0]&&p){i(o);continue}}if(t.metadataRegistry.get(o[0])?.id){i(o);continue}if(s.cycle){i(o);continue}if(s.count>1&&t.reused==="ref"){i(o);continue}}}function Mc(t,e){let r=t.seen.get(e);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=o=>{let s=t.seen.get(o);if(s.ref===null)return;let d=s.def??s.schema,p={...d},l=s.ref;if(s.ref=null,l){n(l);let u=t.seen.get(l),m=u.schema;if(m.$ref&&(t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0")?(d.allOf=d.allOf??[],d.allOf.push(m)):Object.assign(d,m),Object.assign(d,p),o._zod.parent===l)for(let g in d)g==="$ref"||g==="allOf"||g in p||delete d[g];if(m.$ref&&u.def)for(let g in d)g==="$ref"||g==="allOf"||g in u.def&&JSON.stringify(d[g])===JSON.stringify(u.def[g])&&delete d[g]}let c=o._zod.parent;if(c&&c!==l){n(c);let u=t.seen.get(c);if(u?.schema.$ref&&(d.$ref=u.schema.$ref,u.def))for(let m in d)m==="$ref"||m==="allOf"||m in u.def&&JSON.stringify(d[m])===JSON.stringify(u.def[m])&&delete d[m]}t.override({zodSchema:o,jsonSchema:d,path:s.path??[]})};for(let o of[...t.seen.entries()].reverse())n(o[0]);let a={};if(t.target==="draft-2020-12"?a.$schema="https://json-schema.org/draft/2020-12/schema":t.target==="draft-07"?a.$schema="http://json-schema.org/draft-07/schema#":t.target==="draft-04"?a.$schema="http://json-schema.org/draft-04/schema#":t.target,t.external?.uri){let o=t.external.registry.get(e)?.id;if(!o)throw new Error("Schema is missing an `id` property");a.$id=t.external.uri(o)}Object.assign(a,r.def??r.schema);let i=t.external?.defs??{};for(let o of t.seen.entries()){let s=o[1];s.def&&s.defId&&(i[s.defId]=s.def)}t.external||Object.keys(i).length>0&&(t.target==="draft-2020-12"?a.$defs=i:a.definitions=i);try{let o=JSON.parse(JSON.stringify(a));return Object.defineProperty(o,"~standard",{value:{...e["~standard"],jsonSchema:{input:np(e,"input",t.processors),output:np(e,"output",t.processors)}},enumerable:!1,writable:!1}),o}catch{throw new Error("Error converting schema to JSON.")}}function Zt(t,e){let r=e??{seen:new Set};if(r.seen.has(t))return!1;r.seen.add(t);let n=t._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return Zt(n.element,r);if(n.type==="set")return Zt(n.valueType,r);if(n.type==="lazy")return Zt(n.getter(),r);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return Zt(n.innerType,r);if(n.type==="intersection")return Zt(n.left,r)||Zt(n.right,r);if(n.type==="record"||n.type==="map")return Zt(n.keyType,r)||Zt(n.valueType,r);if(n.type==="pipe")return Zt(n.in,r)||Zt(n.out,r);if(n.type==="object"){for(let a in n.shape)if(Zt(n.shape[a],r))return!0;return!1}if(n.type==="union"){for(let a of n.options)if(Zt(a,r))return!0;return!1}if(n.type==="tuple"){for(let a of n.items)if(Zt(a,r))return!0;return!!(n.rest&&Zt(n.rest,r))}return!1}var B8=(t,e={})=>r=>{let n=Vc({...r,processors:e});return Fe(t,n),Lc(n,t),Mc(n,t)},np=(t,e,r={})=>n=>{let{libraryOptions:a,target:i}=n??{},o=Vc({...a??{},target:i,io:e,processors:r});return Fe(t,o),Lc(o,t),Mc(o,t)};var BE={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},W8=(t,e,r,n)=>{let a=r;a.type="string";let{minimum:i,maximum:o,format:s,patterns:d,contentEncoding:p}=t._zod.bag;if(typeof i=="number"&&(a.minLength=i),typeof o=="number"&&(a.maxLength=o),s&&(a.format=BE[s]??s,a.format===""&&delete a.format,s==="time"&&delete a.format),p&&(a.contentEncoding=p),d&&d.size>0){let l=[...d];l.length===1?a.pattern=l[0].source:l.length>1&&(a.allOf=[...l.map(c=>({...e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0"?{type:"string"}:{},pattern:c.source}))])}},J8=(t,e,r,n)=>{let a=r,{minimum:i,maximum:o,format:s,multipleOf:d,exclusiveMaximum:p,exclusiveMinimum:l}=t._zod.bag;typeof s=="string"&&s.includes("int")?a.type="integer":a.type="number",typeof l=="number"&&(e.target==="draft-04"||e.target==="openapi-3.0"?(a.minimum=l,a.exclusiveMinimum=!0):a.exclusiveMinimum=l),typeof i=="number"&&(a.minimum=i,typeof l=="number"&&e.target!=="draft-04"&&(l>=i?delete a.minimum:delete a.exclusiveMinimum)),typeof p=="number"&&(e.target==="draft-04"||e.target==="openapi-3.0"?(a.maximum=p,a.exclusiveMaximum=!0):a.exclusiveMaximum=p),typeof o=="number"&&(a.maximum=o,typeof p=="number"&&e.target!=="draft-04"&&(p<=o?delete a.maximum:delete a.exclusiveMaximum)),typeof d=="number"&&(a.multipleOf=d)},G8=(t,e,r,n)=>{r.type="boolean"},H8=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},K8=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},X8=(t,e,r,n)=>{e.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"},Y8=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},Q8=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},e7=(t,e,r,n)=>{r.not={}},t7=(t,e,r,n)=>{},r7=(t,e,r,n)=>{},n7=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},a7=(t,e,r,n)=>{let a=t._zod.def,i=kd(a.entries);i.every(o=>typeof o=="number")&&(r.type="number"),i.every(o=>typeof o=="string")&&(r.type="string"),r.enum=i},i7=(t,e,r,n)=>{let a=t._zod.def,i=[];for(let o of a.values)if(o===void 0){if(e.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof o=="bigint"){if(e.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");i.push(Number(o))}else i.push(o);if(i.length!==0)if(i.length===1){let o=i[0];r.type=o===null?"null":typeof o,e.target==="draft-04"||e.target==="openapi-3.0"?r.enum=[o]:r.const=o}else i.every(o=>typeof o=="number")&&(r.type="number"),i.every(o=>typeof o=="string")&&(r.type="string"),i.every(o=>typeof o=="boolean")&&(r.type="boolean"),i.every(o=>o===null)&&(r.type="null"),r.enum=i},o7=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},s7=(t,e,r,n)=>{let a=r,i=t._zod.pattern;if(!i)throw new Error("Pattern not found in template literal");a.type="string",a.pattern=i.source},d7=(t,e,r,n)=>{let a=r,i={type:"string",format:"binary",contentEncoding:"binary"},{minimum:o,maximum:s,mime:d}=t._zod.bag;o!==void 0&&(i.minLength=o),s!==void 0&&(i.maxLength=s),d?d.length===1?(i.contentMediaType=d[0],Object.assign(a,i)):(Object.assign(a,i),a.anyOf=d.map(p=>({contentMediaType:p}))):Object.assign(a,i)},p7=(t,e,r,n)=>{r.type="boolean"},l7=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},c7=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},u7=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},m7=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},f7=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},h7=(t,e,r,n)=>{let a=r,i=t._zod.def,{minimum:o,maximum:s}=t._zod.bag;typeof o=="number"&&(a.minItems=o),typeof s=="number"&&(a.maxItems=s),a.type="array",a.items=Fe(i.element,e,{...n,path:[...n.path,"items"]})},g7=(t,e,r,n)=>{let a=r,i=t._zod.def;a.type="object",a.properties={};let o=i.shape;for(let p in o)a.properties[p]=Fe(o[p],e,{...n,path:[...n.path,"properties",p]});let s=new Set(Object.keys(o)),d=new Set([...s].filter(p=>{let l=i.shape[p]._zod;return e.io==="input"?l.optin===void 0:l.optout===void 0}));d.size>0&&(a.required=Array.from(d)),i.catchall?._zod.def.type==="never"?a.additionalProperties=!1:i.catchall?i.catchall&&(a.additionalProperties=Fe(i.catchall,e,{...n,path:[...n.path,"additionalProperties"]})):e.io==="output"&&(a.additionalProperties=!1)},q2=(t,e,r,n)=>{let a=t._zod.def,i=a.inclusive===!1,o=a.options.map((s,d)=>Fe(s,e,{...n,path:[...n.path,i?"oneOf":"anyOf",d]}));i?r.oneOf=o:r.anyOf=o},v7=(t,e,r,n)=>{let a=t._zod.def,i=Fe(a.left,e,{...n,path:[...n.path,"allOf",0]}),o=Fe(a.right,e,{...n,path:[...n.path,"allOf",1]}),s=p=>"allOf"in p&&Object.keys(p).length===1,d=[...s(i)?i.allOf:[i],...s(o)?o.allOf:[o]];r.allOf=d},y7=(t,e,r,n)=>{let a=r,i=t._zod.def;a.type="array";let o=e.target==="draft-2020-12"?"prefixItems":"items",s=e.target==="draft-2020-12"||e.target==="openapi-3.0"?"items":"additionalItems",d=i.items.map((u,m)=>Fe(u,e,{...n,path:[...n.path,o,m]})),p=i.rest?Fe(i.rest,e,{...n,path:[...n.path,s,...e.target==="openapi-3.0"?[i.items.length]:[]]}):null;e.target==="draft-2020-12"?(a.prefixItems=d,p&&(a.items=p)):e.target==="openapi-3.0"?(a.items={anyOf:d},p&&a.items.anyOf.push(p),a.minItems=d.length,p||(a.maxItems=d.length)):(a.items=d,p&&(a.additionalItems=p));let{minimum:l,maximum:c}=t._zod.bag;typeof l=="number"&&(a.minItems=l),typeof c=="number"&&(a.maxItems=c)},_7=(t,e,r,n)=>{let a=r,i=t._zod.def;a.type="object";let o=i.keyType,d=o._zod.bag?.patterns;if(i.mode==="loose"&&d&&d.size>0){let l=Fe(i.valueType,e,{...n,path:[...n.path,"patternProperties","*"]});a.patternProperties={};for(let c of d)a.patternProperties[c.source]=l}else(e.target==="draft-07"||e.target==="draft-2020-12")&&(a.propertyNames=Fe(i.keyType,e,{...n,path:[...n.path,"propertyNames"]})),a.additionalProperties=Fe(i.valueType,e,{...n,path:[...n.path,"additionalProperties"]});let p=o._zod.values;if(p){let l=[...p].filter(c=>typeof c=="string"||typeof c=="number");l.length>0&&(a.required=l)}},b7=(t,e,r,n)=>{let a=t._zod.def,i=Fe(a.innerType,e,n),o=e.seen.get(t);e.target==="openapi-3.0"?(o.ref=a.innerType,r.nullable=!0):r.anyOf=[i,{type:"null"}]},w7=(t,e,r,n)=>{let a=t._zod.def;Fe(a.innerType,e,n);let i=e.seen.get(t);i.ref=a.innerType},x7=(t,e,r,n)=>{let a=t._zod.def;Fe(a.innerType,e,n);let i=e.seen.get(t);i.ref=a.innerType,r.default=JSON.parse(JSON.stringify(a.defaultValue))},$7=(t,e,r,n)=>{let a=t._zod.def;Fe(a.innerType,e,n);let i=e.seen.get(t);i.ref=a.innerType,e.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(a.defaultValue)))},S7=(t,e,r,n)=>{let a=t._zod.def;Fe(a.innerType,e,n);let i=e.seen.get(t);i.ref=a.innerType;let o;try{o=a.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=o},k7=(t,e,r,n)=>{let a=t._zod.def,i=e.io==="input"?a.in._zod.def.type==="transform"?a.out:a.in:a.out;Fe(i,e,n);let o=e.seen.get(t);o.ref=i},T7=(t,e,r,n)=>{let a=t._zod.def;Fe(a.innerType,e,n);let i=e.seen.get(t);i.ref=a.innerType,r.readOnly=!0},E7=(t,e,r,n)=>{let a=t._zod.def;Fe(a.innerType,e,n);let i=e.seen.get(t);i.ref=a.innerType},Z2=(t,e,r,n)=>{let a=t._zod.def;Fe(a.innerType,e,n);let i=e.seen.get(t);i.ref=a.innerType},I7=(t,e,r,n)=>{let a=t._zod.innerType;Fe(a,e,n);let i=e.seen.get(t);i.ref=a};function Jo(t){return!!t._zod}function ga(t,e){return Jo(t)?qo(t,e):t.safeParse(e)}function qc(t){if(!t)return;let e;if(Jo(t)?e=t._zod?.def?.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function O7(t){if(Jo(t)){let i=t._zod?.def;if(i){if(i.value!==void 0)return i.value;if(Array.isArray(i.values)&&i.values.length>0)return i.values[0]}}let r=t._def;if(r){if(r.value!==void 0)return r.value;if(Array.isArray(r.values)&&r.values.length>0)return r.values[0]}let n=t.value;if(n!==void 0)return n}var ap={};di(ap,{ZodAny:()=>K7,ZodArray:()=>eg,ZodBase64:()=>m4,ZodBase64URL:()=>f4,ZodBigInt:()=>Xc,ZodBigIntFormat:()=>v4,ZodBoolean:()=>Kc,ZodCIDRv4:()=>c4,ZodCIDRv6:()=>u4,ZodCUID:()=>a4,ZodCUID2:()=>i4,ZodCatch:()=>bg,ZodCodec:()=>S4,ZodCustom:()=>ru,ZodCustomStringFormat:()=>op,ZodDate:()=>_4,ZodDefault:()=>fg,ZodDiscriminatedUnion:()=>rg,ZodE164:()=>h4,ZodEmail:()=>t4,ZodEmoji:()=>r4,ZodEnum:()=>ip,ZodExactOptional:()=>cg,ZodFile:()=>pg,ZodFunction:()=>Pg,ZodGUID:()=>Fc,ZodIPv4:()=>p4,ZodIPv6:()=>l4,ZodIntersection:()=>ng,ZodJWT:()=>g4,ZodKSUID:()=>d4,ZodLazy:()=>Tg,ZodLiteral:()=>dg,ZodMAC:()=>W7,ZodMap:()=>og,ZodNaN:()=>xg,ZodNanoID:()=>n4,ZodNever:()=>Y7,ZodNonOptional:()=>x4,ZodNull:()=>H7,ZodNullable:()=>mg,ZodNumber:()=>Hc,ZodNumberFormat:()=>Go,ZodObject:()=>Yc,ZodOptional:()=>w4,ZodPipe:()=>$4,ZodPrefault:()=>gg,ZodPromise:()=>Ig,ZodReadonly:()=>$g,ZodRecord:()=>tu,ZodSet:()=>sg,ZodString:()=>Jc,ZodStringFormat:()=>Ue,ZodSuccess:()=>_g,ZodSymbol:()=>J7,ZodTemplateLiteral:()=>kg,ZodTransform:()=>lg,ZodTuple:()=>ag,ZodType:()=>oe,ZodULID:()=>o4,ZodURL:()=>Gc,ZodUUID:()=>jn,ZodUndefined:()=>G7,ZodUnion:()=>Qc,ZodUnknown:()=>X7,ZodVoid:()=>Q7,ZodXID:()=>s4,ZodXor:()=>tg,_ZodString:()=>e4,_default:()=>hg,_function:()=>pP,any:()=>BI,array:()=>me,base64:()=>II,base64url:()=>PI,bigint:()=>LI,boolean:()=>pt,catch:()=>wg,check:()=>lP,cidrv4:()=>TI,cidrv6:()=>EI,codec:()=>oP,cuid:()=>yI,cuid2:()=>_I,custom:()=>k4,date:()=>JI,describe:()=>cP,discriminatedUnion:()=>eu,e164:()=>NI,email:()=>dI,emoji:()=>gI,enum:()=>Pt,exactOptional:()=>ug,file:()=>rP,float32:()=>jI,float64:()=>CI,function:()=>pP,guid:()=>pI,hash:()=>AI,hex:()=>DI,hostname:()=>RI,httpUrl:()=>hI,instanceof:()=>mP,int:()=>Q2,int32:()=>UI,int64:()=>MI,intersection:()=>dp,ipv4:()=>$I,ipv6:()=>kI,json:()=>hP,jwt:()=>zI,keyof:()=>GI,ksuid:()=>xI,lazy:()=>Eg,literal:()=>U,looseObject:()=>It,looseRecord:()=>YI,mac:()=>SI,map:()=>QI,meta:()=>uP,nan:()=>iP,nanoid:()=>vI,nativeEnum:()=>tP,never:()=>y4,nonoptional:()=>yg,null:()=>sp,nullable:()=>Bc,nullish:()=>nP,number:()=>Ne,object:()=>R,optional:()=>We,partialRecord:()=>XI,pipe:()=>Wc,prefault:()=>vg,preprocess:()=>nu,promise:()=>dP,readonly:()=>Sg,record:()=>Be,refine:()=>Ng,set:()=>eP,strictObject:()=>HI,string:()=>_,stringFormat:()=>OI,stringbool:()=>fP,success:()=>aP,superRefine:()=>zg,symbol:()=>ZI,templateLiteral:()=>sP,transform:()=>b4,tuple:()=>ig,uint32:()=>VI,uint64:()=>qI,ulid:()=>bI,undefined:()=>FI,union:()=>Ae,unknown:()=>Ve,url:()=>fI,uuid:()=>lI,uuidv4:()=>cI,uuidv6:()=>uI,uuidv7:()=>mI,void:()=>WI,xid:()=>wI,xor:()=>KI});var Zc={};di(Zc,{endsWith:()=>Xd,gt:()=>Dn,gte:()=>qt,includes:()=>Hd,length:()=>Bo,lowercase:()=>Jd,lt:()=>Rn,lte:()=>ur,maxLength:()=>Fo,maxSize:()=>gi,mime:()=>Yd,minLength:()=>ha,minSize:()=>An,multipleOf:()=>hi,negative:()=>z2,nonnegative:()=>R2,nonpositive:()=>O2,normalize:()=>Qd,overwrite:()=>an,positive:()=>N2,property:()=>D2,regex:()=>Wd,size:()=>Zo,slugify:()=>Uc,startsWith:()=>Kd,toLowerCase:()=>tp,toUpperCase:()=>rp,trim:()=>ep,uppercase:()=>Gd});var vi={};di(vi,{ZodISODate:()=>J2,ZodISODateTime:()=>B2,ZodISODuration:()=>X2,ZodISOTime:()=>H2,date:()=>G2,datetime:()=>W2,duration:()=>Y2,time:()=>K2});var B2=h("ZodISODateTime",(t,e)=>{i0.init(t,e),Ue.init(t,e)});function W2(t){return s2(B2,t)}var J2=h("ZodISODate",(t,e)=>{o0.init(t,e),Ue.init(t,e)});function G2(t){return d2(J2,t)}var H2=h("ZodISOTime",(t,e)=>{s0.init(t,e),Ue.init(t,e)});function K2(t){return p2(H2,t)}var X2=h("ZodISODuration",(t,e)=>{d0.init(t,e),Ue.init(t,e)});function Y2(t){return l2(X2,t)}var R7=(t,e)=>{nc.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>ic(t,r)},flatten:{value:r=>ac(t,r)},addIssue:{value:r=>{t.issues.push(r),t.message=JSON.stringify(t.issues,Vo,2)}},addIssues:{value:r=>{t.issues.push(...r),t.message=JSON.stringify(t.issues,Vo,2)}},isEmpty:{get(){return t.issues.length===0}}})},VK=h("ZodError",R7),mr=h("ZodError",R7,{Parent:Error});var D7=zd(mr),A7=Rd(mr),j7=Ad(mr),C7=jd(mr),U7=G5(mr),V7=H5(mr),L7=K5(mr),M7=X5(mr),q7=Y5(mr),Z7=Q5(mr),F7=e8(mr),B7=t8(mr);var oe=h("ZodType",(t,e)=>(Y.init(t,e),Object.assign(t["~standard"],{jsonSchema:{input:np(t,"input"),output:np(t,"output")}}),t.toJSONSchema=B8(t,{}),t.def=e,t.type=e.type,Object.defineProperty(t,"_def",{value:e}),t.check=(...r)=>t.clone($.mergeDefs(e,{checks:[...e.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),{parent:!0}),t.with=t.check,t.clone=(r,n)=>Lt(t,r,n),t.brand=()=>t,t.register=((r,n)=>(r.add(t,n),t)),t.parse=(r,n)=>D7(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>j7(t,r,n),t.parseAsync=async(r,n)=>A7(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>C7(t,r,n),t.spa=t.safeParseAsync,t.encode=(r,n)=>U7(t,r,n),t.decode=(r,n)=>V7(t,r,n),t.encodeAsync=async(r,n)=>L7(t,r,n),t.decodeAsync=async(r,n)=>M7(t,r,n),t.safeEncode=(r,n)=>q7(t,r,n),t.safeDecode=(r,n)=>Z7(t,r,n),t.safeEncodeAsync=async(r,n)=>F7(t,r,n),t.safeDecodeAsync=async(r,n)=>B7(t,r,n),t.refine=(r,n)=>t.check(Ng(r,n)),t.superRefine=r=>t.check(zg(r)),t.overwrite=r=>t.check(an(r)),t.optional=()=>We(t),t.exactOptional=()=>ug(t),t.nullable=()=>Bc(t),t.nullish=()=>We(Bc(t)),t.nonoptional=r=>yg(t,r),t.array=()=>me(t),t.or=r=>Ae([t,r]),t.and=r=>dp(t,r),t.transform=r=>Wc(t,b4(r)),t.default=r=>hg(t,r),t.prefault=r=>vg(t,r),t.catch=r=>wg(t,r),t.pipe=r=>Wc(t,r),t.readonly=()=>Sg(t),t.describe=r=>{let n=t.clone();return Mt.add(n,{description:r}),n},Object.defineProperty(t,"description",{get(){return Mt.get(t)?.description},configurable:!0}),t.meta=(...r)=>{if(r.length===0)return Mt.get(t);let n=t.clone();return Mt.add(n,r[0]),n},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t.apply=r=>r(t),t)),e4=h("_ZodString",(t,e)=>{fi.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,a,i)=>W8(t,n,a,i);let r=t._zod.bag;t.format=r.format??null,t.minLength=r.minimum??null,t.maxLength=r.maximum??null,t.regex=(...n)=>t.check(Wd(...n)),t.includes=(...n)=>t.check(Hd(...n)),t.startsWith=(...n)=>t.check(Kd(...n)),t.endsWith=(...n)=>t.check(Xd(...n)),t.min=(...n)=>t.check(ha(...n)),t.max=(...n)=>t.check(Fo(...n)),t.length=(...n)=>t.check(Bo(...n)),t.nonempty=(...n)=>t.check(ha(1,...n)),t.lowercase=n=>t.check(Jd(n)),t.uppercase=n=>t.check(Gd(n)),t.trim=()=>t.check(ep()),t.normalize=(...n)=>t.check(Qd(...n)),t.toLowerCase=()=>t.check(tp()),t.toUpperCase=()=>t.check(rp()),t.slugify=()=>t.check(Uc())}),Jc=h("ZodString",(t,e)=>{fi.init(t,e),e4.init(t,e),t.email=r=>t.check(yc(t4,r)),t.url=r=>t.check(Bd(Gc,r)),t.jwt=r=>t.check(Cc(g4,r)),t.emoji=r=>t.check($c(r4,r)),t.guid=r=>t.check(Fd(Fc,r)),t.uuid=r=>t.check(_c(jn,r)),t.uuidv4=r=>t.check(bc(jn,r)),t.uuidv6=r=>t.check(wc(jn,r)),t.uuidv7=r=>t.check(xc(jn,r)),t.nanoid=r=>t.check(Sc(n4,r)),t.guid=r=>t.check(Fd(Fc,r)),t.cuid=r=>t.check(kc(a4,r)),t.cuid2=r=>t.check(Tc(i4,r)),t.ulid=r=>t.check(Ec(o4,r)),t.base64=r=>t.check(Dc(m4,r)),t.base64url=r=>t.check(Ac(f4,r)),t.xid=r=>t.check(Ic(s4,r)),t.ksuid=r=>t.check(Pc(d4,r)),t.ipv4=r=>t.check(Nc(p4,r)),t.ipv6=r=>t.check(zc(l4,r)),t.cidrv4=r=>t.check(Oc(c4,r)),t.cidrv6=r=>t.check(Rc(u4,r)),t.e164=r=>t.check(jc(h4,r)),t.datetime=r=>t.check(W2(r)),t.date=r=>t.check(G2(r)),t.time=r=>t.check(K2(r)),t.duration=r=>t.check(Y2(r))});function _(t){return i2(Jc,t)}var Ue=h("ZodStringFormat",(t,e)=>{De.init(t,e),e4.init(t,e)}),t4=h("ZodEmail",(t,e)=>{Kf.init(t,e),Ue.init(t,e)});function dI(t){return yc(t4,t)}var Fc=h("ZodGUID",(t,e)=>{Gf.init(t,e),Ue.init(t,e)});function pI(t){return Fd(Fc,t)}var jn=h("ZodUUID",(t,e)=>{Hf.init(t,e),Ue.init(t,e)});function lI(t){return _c(jn,t)}function cI(t){return bc(jn,t)}function uI(t){return wc(jn,t)}function mI(t){return xc(jn,t)}var Gc=h("ZodURL",(t,e)=>{Xf.init(t,e),Ue.init(t,e)});function fI(t){return Bd(Gc,t)}function hI(t){return Bd(Gc,{protocol:/^https?$/,hostname:br.domain,...$.normalizeParams(t)})}var r4=h("ZodEmoji",(t,e)=>{Yf.init(t,e),Ue.init(t,e)});function gI(t){return $c(r4,t)}var n4=h("ZodNanoID",(t,e)=>{Qf.init(t,e),Ue.init(t,e)});function vI(t){return Sc(n4,t)}var a4=h("ZodCUID",(t,e)=>{e0.init(t,e),Ue.init(t,e)});function yI(t){return kc(a4,t)}var i4=h("ZodCUID2",(t,e)=>{t0.init(t,e),Ue.init(t,e)});function _I(t){return Tc(i4,t)}var o4=h("ZodULID",(t,e)=>{r0.init(t,e),Ue.init(t,e)});function bI(t){return Ec(o4,t)}var s4=h("ZodXID",(t,e)=>{n0.init(t,e),Ue.init(t,e)});function wI(t){return Ic(s4,t)}var d4=h("ZodKSUID",(t,e)=>{a0.init(t,e),Ue.init(t,e)});function xI(t){return Pc(d4,t)}var p4=h("ZodIPv4",(t,e)=>{p0.init(t,e),Ue.init(t,e)});function $I(t){return Nc(p4,t)}var W7=h("ZodMAC",(t,e)=>{c0.init(t,e),Ue.init(t,e)});function SI(t){return o2(W7,t)}var l4=h("ZodIPv6",(t,e)=>{l0.init(t,e),Ue.init(t,e)});function kI(t){return zc(l4,t)}var c4=h("ZodCIDRv4",(t,e)=>{u0.init(t,e),Ue.init(t,e)});function TI(t){return Oc(c4,t)}var u4=h("ZodCIDRv6",(t,e)=>{m0.init(t,e),Ue.init(t,e)});function EI(t){return Rc(u4,t)}var m4=h("ZodBase64",(t,e)=>{f0.init(t,e),Ue.init(t,e)});function II(t){return Dc(m4,t)}var f4=h("ZodBase64URL",(t,e)=>{h0.init(t,e),Ue.init(t,e)});function PI(t){return Ac(f4,t)}var h4=h("ZodE164",(t,e)=>{g0.init(t,e),Ue.init(t,e)});function NI(t){return jc(h4,t)}var g4=h("ZodJWT",(t,e)=>{v0.init(t,e),Ue.init(t,e)});function zI(t){return Cc(g4,t)}var op=h("ZodCustomStringFormat",(t,e)=>{y0.init(t,e),Ue.init(t,e)});function OI(t,e,r={}){return Wo(op,t,e,r)}function RI(t){return Wo(op,"hostname",br.hostname,t)}function DI(t){return Wo(op,"hex",br.hex,t)}function AI(t,e){let r=e?.enc??"hex",n=`${t}_${r}`,a=br[n];if(!a)throw new Error(`Unrecognized hash format: ${n}`);return Wo(op,n,a,e)}var Hc=h("ZodNumber",(t,e)=>{fc.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,a,i)=>J8(t,n,a,i),t.gt=(n,a)=>t.check(Dn(n,a)),t.gte=(n,a)=>t.check(qt(n,a)),t.min=(n,a)=>t.check(qt(n,a)),t.lt=(n,a)=>t.check(Rn(n,a)),t.lte=(n,a)=>t.check(ur(n,a)),t.max=(n,a)=>t.check(ur(n,a)),t.int=n=>t.check(Q2(n)),t.safe=n=>t.check(Q2(n)),t.positive=n=>t.check(Dn(0,n)),t.nonnegative=n=>t.check(qt(0,n)),t.negative=n=>t.check(Rn(0,n)),t.nonpositive=n=>t.check(ur(0,n)),t.multipleOf=(n,a)=>t.check(hi(n,a)),t.step=(n,a)=>t.check(hi(n,a)),t.finite=()=>t;let r=t._zod.bag;t.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),t.isFinite=!0,t.format=r.format??null});function Ne(t){return c2(Hc,t)}var Go=h("ZodNumberFormat",(t,e)=>{_0.init(t,e),Hc.init(t,e)});function Q2(t){return u2(Go,t)}function jI(t){return m2(Go,t)}function CI(t){return f2(Go,t)}function UI(t){return h2(Go,t)}function VI(t){return g2(Go,t)}var Kc=h("ZodBoolean",(t,e)=>{Md.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>G8(t,r,n,a)});function pt(t){return v2(Kc,t)}var Xc=h("ZodBigInt",(t,e)=>{hc.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,a,i)=>H8(t,n,a,i),t.gte=(n,a)=>t.check(qt(n,a)),t.min=(n,a)=>t.check(qt(n,a)),t.gt=(n,a)=>t.check(Dn(n,a)),t.gte=(n,a)=>t.check(qt(n,a)),t.min=(n,a)=>t.check(qt(n,a)),t.lt=(n,a)=>t.check(Rn(n,a)),t.lte=(n,a)=>t.check(ur(n,a)),t.max=(n,a)=>t.check(ur(n,a)),t.positive=n=>t.check(Dn(BigInt(0),n)),t.negative=n=>t.check(Rn(BigInt(0),n)),t.nonpositive=n=>t.check(ur(BigInt(0),n)),t.nonnegative=n=>t.check(qt(BigInt(0),n)),t.multipleOf=(n,a)=>t.check(hi(n,a));let r=t._zod.bag;t.minValue=r.minimum??null,t.maxValue=r.maximum??null,t.format=r.format??null});function LI(t){return y2(Xc,t)}var v4=h("ZodBigIntFormat",(t,e)=>{b0.init(t,e),Xc.init(t,e)});function MI(t){return _2(v4,t)}function qI(t){return b2(v4,t)}var J7=h("ZodSymbol",(t,e)=>{w0.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>K8(t,r,n,a)});function ZI(t){return w2(J7,t)}var G7=h("ZodUndefined",(t,e)=>{x0.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>Y8(t,r,n,a)});function FI(t){return x2(G7,t)}var H7=h("ZodNull",(t,e)=>{$0.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>X8(t,r,n,a)});function sp(t){return $2(H7,t)}var K7=h("ZodAny",(t,e)=>{S0.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>t7(t,r,n,a)});function BI(){return S2(K7)}var X7=h("ZodUnknown",(t,e)=>{k0.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>r7(t,r,n,a)});function Ve(){return k2(X7)}var Y7=h("ZodNever",(t,e)=>{T0.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>e7(t,r,n,a)});function y4(t){return T2(Y7,t)}var Q7=h("ZodVoid",(t,e)=>{E0.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>Q8(t,r,n,a)});function WI(t){return E2(Q7,t)}var _4=h("ZodDate",(t,e)=>{I0.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,a,i)=>n7(t,n,a,i),t.min=(n,a)=>t.check(qt(n,a)),t.max=(n,a)=>t.check(ur(n,a));let r=t._zod.bag;t.minDate=r.minimum?new Date(r.minimum):null,t.maxDate=r.maximum?new Date(r.maximum):null});function JI(t){return I2(_4,t)}var eg=h("ZodArray",(t,e)=>{P0.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>h7(t,r,n,a),t.element=e.element,t.min=(r,n)=>t.check(ha(r,n)),t.nonempty=r=>t.check(ha(1,r)),t.max=(r,n)=>t.check(Fo(r,n)),t.length=(r,n)=>t.check(Bo(r,n)),t.unwrap=()=>t.element});function me(t,e){return F8(eg,t,e)}function GI(t){let e=t._zod.def.shape;return Pt(Object.keys(e))}var Yc=h("ZodObject",(t,e)=>{q8.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>g7(t,r,n,a),$.defineLazy(t,"shape",()=>e.shape),t.keyof=()=>Pt(Object.keys(t._zod.def.shape)),t.catchall=r=>t.clone({...t._zod.def,catchall:r}),t.passthrough=()=>t.clone({...t._zod.def,catchall:Ve()}),t.loose=()=>t.clone({...t._zod.def,catchall:Ve()}),t.strict=()=>t.clone({...t._zod.def,catchall:y4()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=r=>$.extend(t,r),t.safeExtend=r=>$.safeExtend(t,r),t.merge=r=>$.merge(t,r),t.pick=r=>$.pick(t,r),t.omit=r=>$.omit(t,r),t.partial=(...r)=>$.partial(w4,t,r[0]),t.required=(...r)=>$.required(x4,t,r[0])});function R(t,e){let r={type:"object",shape:t??{},...$.normalizeParams(e)};return new Yc(r)}function HI(t,e){return new Yc({type:"object",shape:t,catchall:y4(),...$.normalizeParams(e)})}function It(t,e){return new Yc({type:"object",shape:t,catchall:Ve(),...$.normalizeParams(e)})}var Qc=h("ZodUnion",(t,e)=>{qd.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>q2(t,r,n,a),t.options=e.options});function Ae(t,e){return new Qc({type:"union",options:t,...$.normalizeParams(e)})}var tg=h("ZodXor",(t,e)=>{Qc.init(t,e),N0.init(t,e),t._zod.processJSONSchema=(r,n,a)=>q2(t,r,n,a),t.options=e.options});function KI(t,e){return new tg({type:"union",options:t,inclusive:!1,...$.normalizeParams(e)})}var rg=h("ZodDiscriminatedUnion",(t,e)=>{Qc.init(t,e),z0.init(t,e)});function eu(t,e,r){return new rg({type:"union",options:e,discriminator:t,...$.normalizeParams(r)})}var ng=h("ZodIntersection",(t,e)=>{O0.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>v7(t,r,n,a)});function dp(t,e){return new ng({type:"intersection",left:t,right:e})}var ag=h("ZodTuple",(t,e)=>{gc.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>y7(t,r,n,a),t.rest=r=>t.clone({...t._zod.def,rest:r})});function ig(t,e,r){let n=e instanceof Y,a=n?r:e,i=n?e:null;return new ag({type:"tuple",items:t,rest:i,...$.normalizeParams(a)})}var tu=h("ZodRecord",(t,e)=>{R0.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>_7(t,r,n,a),t.keyType=e.keyType,t.valueType=e.valueType});function Be(t,e,r){return new tu({type:"record",keyType:t,valueType:e,...$.normalizeParams(r)})}function XI(t,e,r){let n=Lt(t);return n._zod.values=void 0,new tu({type:"record",keyType:n,valueType:e,...$.normalizeParams(r)})}function YI(t,e,r){return new tu({type:"record",keyType:t,valueType:e,mode:"loose",...$.normalizeParams(r)})}var og=h("ZodMap",(t,e)=>{D0.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>m7(t,r,n,a),t.keyType=e.keyType,t.valueType=e.valueType,t.min=(...r)=>t.check(An(...r)),t.nonempty=r=>t.check(An(1,r)),t.max=(...r)=>t.check(gi(...r)),t.size=(...r)=>t.check(Zo(...r))});function QI(t,e,r){return new og({type:"map",keyType:t,valueType:e,...$.normalizeParams(r)})}var sg=h("ZodSet",(t,e)=>{A0.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>f7(t,r,n,a),t.min=(...r)=>t.check(An(...r)),t.nonempty=r=>t.check(An(1,r)),t.max=(...r)=>t.check(gi(...r)),t.size=(...r)=>t.check(Zo(...r))});function eP(t,e){return new sg({type:"set",valueType:t,...$.normalizeParams(e)})}var ip=h("ZodEnum",(t,e)=>{j0.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(n,a,i)=>a7(t,n,a,i),t.enum=e.entries,t.options=Object.values(e.entries);let r=new Set(Object.keys(e.entries));t.extract=(n,a)=>{let i={};for(let o of n)if(r.has(o))i[o]=e.entries[o];else throw new Error(`Key ${o} not found in enum`);return new ip({...e,checks:[],...$.normalizeParams(a),entries:i})},t.exclude=(n,a)=>{let i={...e.entries};for(let o of n)if(r.has(o))delete i[o];else throw new Error(`Key ${o} not found in enum`);return new ip({...e,checks:[],...$.normalizeParams(a),entries:i})}});function Pt(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(n=>[n,n])):t;return new ip({type:"enum",entries:r,...$.normalizeParams(e)})}function tP(t,e){return new ip({type:"enum",entries:t,...$.normalizeParams(e)})}var dg=h("ZodLiteral",(t,e)=>{C0.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>i7(t,r,n,a),t.values=new Set(e.values),Object.defineProperty(t,"value",{get(){if(e.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return e.values[0]}})});function U(t,e){return new dg({type:"literal",values:Array.isArray(t)?t:[t],...$.normalizeParams(e)})}var pg=h("ZodFile",(t,e)=>{U0.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>d7(t,r,n,a),t.min=(r,n)=>t.check(An(r,n)),t.max=(r,n)=>t.check(gi(r,n)),t.mime=(r,n)=>t.check(Yd(Array.isArray(r)?r:[r],n))});function rP(t){return A2(pg,t)}var lg=h("ZodTransform",(t,e)=>{V0.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>u7(t,r,n,a),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new ci(t.constructor.name);r.addIssue=i=>{if(typeof i=="string")r.issues.push($.issue(i,r.value,e));else{let o=i;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=r.value),o.inst??(o.inst=t),r.issues.push($.issue(o))}};let a=e.transform(r.value,r);return a instanceof Promise?a.then(i=>(r.value=i,r)):(r.value=a,r)}});function b4(t){return new lg({type:"transform",transform:t})}var w4=h("ZodOptional",(t,e)=>{vc.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>Z2(t,r,n,a),t.unwrap=()=>t._zod.def.innerType});function We(t){return new w4({type:"optional",innerType:t})}var cg=h("ZodExactOptional",(t,e)=>{L0.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>Z2(t,r,n,a),t.unwrap=()=>t._zod.def.innerType});function ug(t){return new cg({type:"optional",innerType:t})}var mg=h("ZodNullable",(t,e)=>{M0.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>b7(t,r,n,a),t.unwrap=()=>t._zod.def.innerType});function Bc(t){return new mg({type:"nullable",innerType:t})}function nP(t){return We(Bc(t))}var fg=h("ZodDefault",(t,e)=>{q0.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>x7(t,r,n,a),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function hg(t,e){return new fg({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():$.shallowClone(e)}})}var gg=h("ZodPrefault",(t,e)=>{Z0.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>$7(t,r,n,a),t.unwrap=()=>t._zod.def.innerType});function vg(t,e){return new gg({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():$.shallowClone(e)}})}var x4=h("ZodNonOptional",(t,e)=>{F0.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>w7(t,r,n,a),t.unwrap=()=>t._zod.def.innerType});function yg(t,e){return new x4({type:"nonoptional",innerType:t,...$.normalizeParams(e)})}var _g=h("ZodSuccess",(t,e)=>{B0.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>p7(t,r,n,a),t.unwrap=()=>t._zod.def.innerType});function aP(t){return new _g({type:"success",innerType:t})}var bg=h("ZodCatch",(t,e)=>{W0.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>S7(t,r,n,a),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function wg(t,e){return new bg({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var xg=h("ZodNaN",(t,e)=>{J0.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>o7(t,r,n,a)});function iP(t){return P2(xg,t)}var $4=h("ZodPipe",(t,e)=>{G0.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>k7(t,r,n,a),t.in=e.in,t.out=e.out});function Wc(t,e){return new $4({type:"pipe",in:t,out:e})}var S4=h("ZodCodec",(t,e)=>{$4.init(t,e),Zd.init(t,e)});function oP(t,e,r){return new S4({type:"pipe",in:t,out:e,transform:r.decode,reverseTransform:r.encode})}var $g=h("ZodReadonly",(t,e)=>{H0.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>T7(t,r,n,a),t.unwrap=()=>t._zod.def.innerType});function Sg(t){return new $g({type:"readonly",innerType:t})}var kg=h("ZodTemplateLiteral",(t,e)=>{K0.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>s7(t,r,n,a)});function sP(t,e){return new kg({type:"template_literal",parts:t,...$.normalizeParams(e)})}var Tg=h("ZodLazy",(t,e)=>{Q0.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>I7(t,r,n,a),t.unwrap=()=>t._zod.def.getter()});function Eg(t){return new Tg({type:"lazy",getter:t})}var Ig=h("ZodPromise",(t,e)=>{Y0.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>E7(t,r,n,a),t.unwrap=()=>t._zod.def.innerType});function dP(t){return new Ig({type:"promise",innerType:t})}var Pg=h("ZodFunction",(t,e)=>{X0.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>c7(t,r,n,a)});function pP(t){return new Pg({type:"function",input:Array.isArray(t?.input)?ig(t?.input):t?.input??me(Ve()),output:t?.output??Ve()})}var ru=h("ZodCustom",(t,e)=>{e2.init(t,e),oe.init(t,e),t._zod.processJSONSchema=(r,n,a)=>l7(t,r,n,a)});function lP(t){let e=new Ce({check:"custom"});return e._zod.check=t,e}function k4(t,e){return j2(ru,t??(()=>!0),e)}function Ng(t,e={}){return C2(ru,t,e)}function zg(t){return U2(t)}var cP=V2,uP=L2;function mP(t,e={}){let r=new ru({type:"custom",check:"custom",fn:n=>n instanceof t,abort:!0,...$.normalizeParams(e)});return r._zod.bag.Class=t,r._zod.check=n=>{n.value instanceof t||n.issues.push({code:"invalid_type",expected:t.name,input:n.value,inst:r,path:[...r._zod.def.path??[]]})},r}var fP=(...t)=>M2({Codec:S4,Boolean:Kc,String:Jc},...t);function hP(t){let e=Eg(()=>Ae([_(t),Ne(),pt(),sp(),me(e),Be(_(),e)]));return e}function nu(t,e){return Wc(b4(t),e)}var Og;Og||(Og={});var JK={...ap,...Zc,iso:vi};ut(t2());var E4="2025-11-25";var Rg=[E4,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],va="io.modelcontextprotocol/related-task",iu="2.0",vt=k4(t=>t!==null&&(typeof t=="object"||typeof t=="function")),Dg=Ae([_(),Ne().int()]),Ag=_(),uX=It({ttl:Ae([Ne(),sp()]).optional(),pollInterval:Ne().optional()}),_P=R({ttl:Ne().optional()}),bP=R({taskId:_()}),I4=It({progressToken:Dg.optional(),[va]:bP.optional()}),fr=R({_meta:I4.optional()}),pp=fr.extend({task:_P.optional()}),jg=t=>pp.safeParse(t).success,yt=R({method:_(),params:fr.loose().optional()}),wr=R({_meta:I4.optional()}),xr=R({method:_(),params:wr.loose().optional()}),_t=It({_meta:I4.optional()}),ou=Ae([_(),Ne().int()]),Cg=R({jsonrpc:U(iu),id:ou,...yt.shape}).strict(),P4=t=>Cg.safeParse(t).success,Ug=R({jsonrpc:U(iu),...xr.shape}).strict(),Vg=t=>Ug.safeParse(t).success,N4=R({jsonrpc:U(iu),id:ou,result:_t}).strict(),lp=t=>N4.safeParse(t).success;var we;(function(t){t[t.ConnectionClosed=-32e3]="ConnectionClosed",t[t.RequestTimeout=-32001]="RequestTimeout",t[t.ParseError=-32700]="ParseError",t[t.InvalidRequest=-32600]="InvalidRequest",t[t.MethodNotFound=-32601]="MethodNotFound",t[t.InvalidParams=-32602]="InvalidParams",t[t.InternalError=-32603]="InternalError",t[t.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(we||(we={}));var z4=R({jsonrpc:U(iu),id:ou.optional(),error:R({code:Ne().int(),message:_(),data:Ve().optional()})}).strict();var Lg=t=>z4.safeParse(t).success;var Mg=Ae([Cg,Ug,N4,z4]),mX=Ae([N4,z4]),su=_t.strict(),wP=wr.extend({requestId:ou.optional(),reason:_().optional()}),du=xr.extend({method:U("notifications/cancelled"),params:wP}),xP=R({src:_(),mimeType:_().optional(),sizes:me(_()).optional(),theme:Pt(["light","dark"]).optional()}),cp=R({icons:me(xP).optional()}),Ho=R({name:_(),title:_().optional()}),qg=Ho.extend({...Ho.shape,...cp.shape,version:_(),websiteUrl:_().optional(),description:_().optional()}),$P=dp(R({applyDefaults:pt().optional()}),Be(_(),Ve())),SP=nu(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,dp(R({form:$P.optional(),url:vt.optional()}),Be(_(),Ve()).optional())),kP=It({list:vt.optional(),cancel:vt.optional(),requests:It({sampling:It({createMessage:vt.optional()}).optional(),elicitation:It({create:vt.optional()}).optional()}).optional()}),TP=It({list:vt.optional(),cancel:vt.optional(),requests:It({tools:It({call:vt.optional()}).optional()}).optional()}),EP=R({experimental:Be(_(),vt).optional(),sampling:R({context:vt.optional(),tools:vt.optional()}).optional(),elicitation:SP.optional(),roots:R({listChanged:pt().optional()}).optional(),tasks:kP.optional()}),IP=fr.extend({protocolVersion:_(),capabilities:EP,clientInfo:qg}),O4=yt.extend({method:U("initialize"),params:IP});var PP=R({experimental:Be(_(),vt).optional(),logging:vt.optional(),completions:vt.optional(),prompts:R({listChanged:pt().optional()}).optional(),resources:R({subscribe:pt().optional(),listChanged:pt().optional()}).optional(),tools:R({listChanged:pt().optional()}).optional(),tasks:TP.optional()}),NP=_t.extend({protocolVersion:_(),capabilities:PP,serverInfo:qg,instructions:_().optional()}),R4=xr.extend({method:U("notifications/initialized"),params:wr.optional()});var pu=yt.extend({method:U("ping"),params:fr.optional()}),zP=R({progress:Ne(),total:We(Ne()),message:We(_())}),OP=R({...wr.shape,...zP.shape,progressToken:Dg}),lu=xr.extend({method:U("notifications/progress"),params:OP}),RP=fr.extend({cursor:Ag.optional()}),up=yt.extend({params:RP.optional()}),mp=_t.extend({nextCursor:Ag.optional()}),DP=Pt(["working","input_required","completed","failed","cancelled"]),fp=R({taskId:_(),status:DP,ttl:Ae([Ne(),sp()]),createdAt:_(),lastUpdatedAt:_(),pollInterval:We(Ne()),statusMessage:We(_())}),Ko=_t.extend({task:fp}),AP=wr.merge(fp),hp=xr.extend({method:U("notifications/tasks/status"),params:AP}),cu=yt.extend({method:U("tasks/get"),params:fr.extend({taskId:_()})}),uu=_t.merge(fp),mu=yt.extend({method:U("tasks/result"),params:fr.extend({taskId:_()})}),fX=_t.loose(),fu=up.extend({method:U("tasks/list")}),hu=mp.extend({tasks:me(fp)}),gu=yt.extend({method:U("tasks/cancel"),params:fr.extend({taskId:_()})}),Zg=_t.merge(fp),Fg=R({uri:_(),mimeType:We(_()),_meta:Be(_(),Ve()).optional()}),Bg=Fg.extend({text:_()}),D4=_().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),Wg=Fg.extend({blob:D4}),gp=Pt(["user","assistant"]),Xo=R({audience:me(gp).optional(),priority:Ne().min(0).max(1).optional(),lastModified:vi.datetime({offset:!0}).optional()}),Jg=R({...Ho.shape,...cp.shape,uri:_(),description:We(_()),mimeType:We(_()),annotations:Xo.optional(),_meta:We(It({}))}),jP=R({...Ho.shape,...cp.shape,uriTemplate:_(),description:We(_()),mimeType:We(_()),annotations:Xo.optional(),_meta:We(It({}))}),CP=up.extend({method:U("resources/list")}),UP=mp.extend({resources:me(Jg)}),VP=up.extend({method:U("resources/templates/list")}),LP=mp.extend({resourceTemplates:me(jP)}),A4=fr.extend({uri:_()}),MP=A4,qP=yt.extend({method:U("resources/read"),params:MP}),ZP=_t.extend({contents:me(Ae([Bg,Wg]))}),FP=xr.extend({method:U("notifications/resources/list_changed"),params:wr.optional()}),BP=A4,WP=yt.extend({method:U("resources/subscribe"),params:BP}),JP=A4,GP=yt.extend({method:U("resources/unsubscribe"),params:JP}),HP=wr.extend({uri:_()}),KP=xr.extend({method:U("notifications/resources/updated"),params:HP}),XP=R({name:_(),description:We(_()),required:We(pt())}),YP=R({...Ho.shape,...cp.shape,description:We(_()),arguments:We(me(XP)),_meta:We(It({}))}),QP=up.extend({method:U("prompts/list")}),eN=mp.extend({prompts:me(YP)}),tN=fr.extend({name:_(),arguments:Be(_(),_()).optional()}),rN=yt.extend({method:U("prompts/get"),params:tN}),j4=R({type:U("text"),text:_(),annotations:Xo.optional(),_meta:Be(_(),Ve()).optional()}),C4=R({type:U("image"),data:D4,mimeType:_(),annotations:Xo.optional(),_meta:Be(_(),Ve()).optional()}),U4=R({type:U("audio"),data:D4,mimeType:_(),annotations:Xo.optional(),_meta:Be(_(),Ve()).optional()}),nN=R({type:U("tool_use"),name:_(),id:_(),input:Be(_(),Ve()),_meta:Be(_(),Ve()).optional()}),aN=R({type:U("resource"),resource:Ae([Bg,Wg]),annotations:Xo.optional(),_meta:Be(_(),Ve()).optional()}),iN=Jg.extend({type:U("resource_link")}),V4=Ae([j4,C4,U4,iN,aN]),oN=R({role:gp,content:V4}),sN=_t.extend({description:_().optional(),messages:me(oN)}),dN=xr.extend({method:U("notifications/prompts/list_changed"),params:wr.optional()}),pN=R({title:_().optional(),readOnlyHint:pt().optional(),destructiveHint:pt().optional(),idempotentHint:pt().optional(),openWorldHint:pt().optional()}),lN=R({taskSupport:Pt(["required","optional","forbidden"]).optional()}),Gg=R({...Ho.shape,...cp.shape,description:_().optional(),inputSchema:R({type:U("object"),properties:Be(_(),vt).optional(),required:me(_()).optional()}).catchall(Ve()),outputSchema:R({type:U("object"),properties:Be(_(),vt).optional(),required:me(_()).optional()}).catchall(Ve()).optional(),annotations:pN.optional(),execution:lN.optional(),_meta:Be(_(),Ve()).optional()}),L4=up.extend({method:U("tools/list")}),cN=mp.extend({tools:me(Gg)}),vu=_t.extend({content:me(V4).default([]),structuredContent:Be(_(),Ve()).optional(),isError:pt().optional()}),hX=vu.or(_t.extend({toolResult:Ve()})),uN=pp.extend({name:_(),arguments:Be(_(),Ve()).optional()}),vp=yt.extend({method:U("tools/call"),params:uN}),mN=xr.extend({method:U("notifications/tools/list_changed"),params:wr.optional()}),gX=R({autoRefresh:pt().default(!0),debounceMs:Ne().int().nonnegative().default(300)}),yp=Pt(["debug","info","notice","warning","error","critical","alert","emergency"]),fN=fr.extend({level:yp}),M4=yt.extend({method:U("logging/setLevel"),params:fN}),hN=wr.extend({level:yp,logger:_().optional(),data:Ve()}),gN=xr.extend({method:U("notifications/message"),params:hN}),vN=R({name:_().optional()}),yN=R({hints:me(vN).optional(),costPriority:Ne().min(0).max(1).optional(),speedPriority:Ne().min(0).max(1).optional(),intelligencePriority:Ne().min(0).max(1).optional()}),_N=R({mode:Pt(["auto","required","none"]).optional()}),bN=R({type:U("tool_result"),toolUseId:_().describe("The unique identifier for the corresponding tool call."),content:me(V4).default([]),structuredContent:R({}).loose().optional(),isError:pt().optional(),_meta:Be(_(),Ve()).optional()}),wN=eu("type",[j4,C4,U4]),au=eu("type",[j4,C4,U4,nN,bN]),xN=R({role:gp,content:Ae([au,me(au)]),_meta:Be(_(),Ve()).optional()}),$N=pp.extend({messages:me(xN),modelPreferences:yN.optional(),systemPrompt:_().optional(),includeContext:Pt(["none","thisServer","allServers"]).optional(),temperature:Ne().optional(),maxTokens:Ne().int(),stopSequences:me(_()).optional(),metadata:vt.optional(),tools:me(Gg).optional(),toolChoice:_N.optional()}),SN=yt.extend({method:U("sampling/createMessage"),params:$N}),q4=_t.extend({model:_(),stopReason:We(Pt(["endTurn","stopSequence","maxTokens"]).or(_())),role:gp,content:wN}),Z4=_t.extend({model:_(),stopReason:We(Pt(["endTurn","stopSequence","maxTokens","toolUse"]).or(_())),role:gp,content:Ae([au,me(au)])}),kN=R({type:U("boolean"),title:_().optional(),description:_().optional(),default:pt().optional()}),TN=R({type:U("string"),title:_().optional(),description:_().optional(),minLength:Ne().optional(),maxLength:Ne().optional(),format:Pt(["email","uri","date","date-time"]).optional(),default:_().optional()}),EN=R({type:Pt(["number","integer"]),title:_().optional(),description:_().optional(),minimum:Ne().optional(),maximum:Ne().optional(),default:Ne().optional()}),IN=R({type:U("string"),title:_().optional(),description:_().optional(),enum:me(_()),default:_().optional()}),PN=R({type:U("string"),title:_().optional(),description:_().optional(),oneOf:me(R({const:_(),title:_()})),default:_().optional()}),NN=R({type:U("string"),title:_().optional(),description:_().optional(),enum:me(_()),enumNames:me(_()).optional(),default:_().optional()}),zN=Ae([IN,PN]),ON=R({type:U("array"),title:_().optional(),description:_().optional(),minItems:Ne().optional(),maxItems:Ne().optional(),items:R({type:U("string"),enum:me(_())}),default:me(_()).optional()}),RN=R({type:U("array"),title:_().optional(),description:_().optional(),minItems:Ne().optional(),maxItems:Ne().optional(),items:R({anyOf:me(R({const:_(),title:_()}))}),default:me(_()).optional()}),DN=Ae([ON,RN]),AN=Ae([NN,zN,DN]),jN=Ae([AN,kN,TN,EN]),CN=pp.extend({mode:U("form").optional(),message:_(),requestedSchema:R({type:U("object"),properties:Be(_(),jN),required:me(_()).optional()})}),UN=pp.extend({mode:U("url"),message:_(),elicitationId:_(),url:_().url()}),VN=Ae([CN,UN]),LN=yt.extend({method:U("elicitation/create"),params:VN}),MN=wr.extend({elicitationId:_()}),qN=xr.extend({method:U("notifications/elicitation/complete"),params:MN}),yu=_t.extend({action:Pt(["accept","decline","cancel"]),content:nu(t=>t===null?void 0:t,Be(_(),Ae([_(),Ne(),pt(),me(_())])).optional())}),ZN=R({type:U("ref/resource"),uri:_()});var FN=R({type:U("ref/prompt"),name:_()}),BN=fr.extend({ref:Ae([FN,ZN]),argument:R({name:_(),value:_()}),context:R({arguments:Be(_(),_()).optional()}).optional()}),WN=yt.extend({method:U("completion/complete"),params:BN});var JN=_t.extend({completion:It({values:me(_()).max(100),total:We(Ne().int()),hasMore:We(pt())})}),GN=R({uri:_().startsWith("file://"),name:_().optional(),_meta:Be(_(),Ve()).optional()}),HN=yt.extend({method:U("roots/list"),params:fr.optional()}),F4=_t.extend({roots:me(GN)}),KN=xr.extend({method:U("notifications/roots/list_changed"),params:wr.optional()}),vX=Ae([pu,O4,WN,M4,rN,QP,CP,VP,qP,WP,GP,vp,L4,cu,mu,fu,gu]),yX=Ae([du,lu,R4,KN,hp]),_X=Ae([su,q4,Z4,yu,F4,uu,hu,Ko]),bX=Ae([pu,SN,LN,HN,cu,mu,fu,gu]),wX=Ae([du,lu,gN,KP,FP,mN,dN,hp,qN]),xX=Ae([su,NP,JN,sN,eN,UP,LP,ZP,vu,cN,uu,hu,Ko]),de=class t extends Error{constructor(e,r,n){super(`MCP error ${e}: ${r}`),this.code=e,this.data=n,this.name="McpError"}static fromError(e,r,n){if(e===we.UrlElicitationRequired&&n){let a=n;if(a.elicitations)return new T4(a.elicitations,r)}return new t(e,r,n)}},T4=class extends de{constructor(e,r=`URL elicitation${e.length>1?"s":""} required`){super(we.UrlElicitationRequired,r,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function ya(t){return t==="completed"||t==="failed"||t==="cancelled"}var rY=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function B4(t){let r=qc(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=O7(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function W4(t,e){let r=ga(t,e);if(!r.success)throw r.error;return r.data}var rz=6e4,_u=class{constructor(e){this._options=e,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(du,r=>{this._oncancel(r)}),this.setNotificationHandler(lu,r=>{this._onprogress(r)}),this.setRequestHandler(pu,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(cu,async(r,n)=>{let a=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!a)throw new de(we.InvalidParams,"Failed to retrieve task: Task not found");return{...a}}),this.setRequestHandler(mu,async(r,n)=>{let a=async()=>{let i=r.params.taskId;if(this._taskMessageQueue){let s;for(;s=await this._taskMessageQueue.dequeue(i,n.sessionId);){if(s.type==="response"||s.type==="error"){let d=s.message,p=d.id,l=this._requestResolvers.get(p);if(l)if(this._requestResolvers.delete(p),s.type==="response")l(d);else{let c=d,u=new de(c.error.code,c.error.message,c.error.data);l(u)}else{let c=s.type==="response"?"Response":"Error";this._onerror(new Error(`${c} handler missing for request ${p}`))}continue}await this._transport?.send(s.message,{relatedRequestId:n.requestId})}}let o=await this._taskStore.getTask(i,n.sessionId);if(!o)throw new de(we.InvalidParams,`Task not found: ${i}`);if(!ya(o.status))return await this._waitForTaskUpdate(i,n.signal),await a();if(ya(o.status)){let s=await this._taskStore.getTaskResult(i,n.sessionId);return this._clearTaskQueue(i),{...s,_meta:{...s._meta,[va]:{taskId:i}}}}return await a()};return await a()}),this.setRequestHandler(fu,async(r,n)=>{try{let{tasks:a,nextCursor:i}=await this._taskStore.listTasks(r.params?.cursor,n.sessionId);return{tasks:a,nextCursor:i,_meta:{}}}catch(a){throw new de(we.InvalidParams,`Failed to list tasks: ${a instanceof Error?a.message:String(a)}`)}}),this.setRequestHandler(gu,async(r,n)=>{try{let a=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!a)throw new de(we.InvalidParams,`Task not found: ${r.params.taskId}`);if(ya(a.status))throw new de(we.InvalidParams,`Cannot cancel task in terminal status: ${a.status}`);await this._taskStore.updateTaskStatus(r.params.taskId,"cancelled","Client cancelled task execution.",n.sessionId),this._clearTaskQueue(r.params.taskId);let i=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!i)throw new de(we.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...i}}catch(a){throw a instanceof de?a:new de(we.InvalidRequest,`Failed to cancel task: ${a instanceof Error?a.message:String(a)}`)}}))}async _oncancel(e){if(!e.params.requestId)return;this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,r,n,a,i=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(a,r),startTime:Date.now(),timeout:r,maxTotalTimeout:n,resetTimeoutOnProgress:i,onTimeout:a})}_resetTimeout(e){let r=this._timeoutInfo.get(e);if(!r)return!1;let n=Date.now()-r.startTime;if(r.maxTotalTimeout&&n>=r.maxTotalTimeout)throw this._timeoutInfo.delete(e),de.fromError(we.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:r.maxTotalTimeout,totalElapsed:n});return clearTimeout(r.timeoutId),r.timeoutId=setTimeout(r.onTimeout,r.timeout),!0}_cleanupTimeout(e){let r=this._timeoutInfo.get(e);r&&(clearTimeout(r.timeoutId),this._timeoutInfo.delete(e))}async connect(e){this._transport=e;let r=this.transport?.onclose;this._transport.onclose=()=>{r?.(),this._onclose()};let n=this.transport?.onerror;this._transport.onerror=i=>{n?.(i),this._onerror(i)};let a=this._transport?.onmessage;this._transport.onmessage=(i,o)=>{a?.(i,o),lp(i)||Lg(i)?this._onresponse(i):P4(i)?this._onrequest(i,o):Vg(i)?this._onnotification(i):this._onerror(new Error(`Unknown message type: ${JSON.stringify(i)}`))},await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();let r=de.fromError(we.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let n of e.values())n(r)}_onerror(e){this.onerror?.(e)}_onnotification(e){let r=this._notificationHandlers.get(e.method)??this.fallbackNotificationHandler;r!==void 0&&Promise.resolve().then(()=>r(e)).catch(n=>this._onerror(new Error(`Uncaught error in notification handler: ${n}`)))}_onrequest(e,r){let n=this._requestHandlers.get(e.method)??this.fallbackRequestHandler,a=this._transport,i=e.params?._meta?.[va]?.taskId;if(n===void 0){let l={jsonrpc:"2.0",id:e.id,error:{code:we.MethodNotFound,message:"Method not found"}};i&&this._taskMessageQueue?this._enqueueTaskMessage(i,{type:"error",message:l,timestamp:Date.now()},a?.sessionId).catch(c=>this._onerror(new Error(`Failed to enqueue error response: ${c}`))):a?.send(l).catch(c=>this._onerror(new Error(`Failed to send an error response: ${c}`)));return}let o=new AbortController;this._requestHandlerAbortControllers.set(e.id,o);let s=jg(e.params)?e.params.task:void 0,d=this._taskStore?this.requestTaskStore(e,a?.sessionId):void 0,p={signal:o.signal,sessionId:a?.sessionId,_meta:e.params?._meta,sendNotification:async l=>{let c={relatedRequestId:e.id};i&&(c.relatedTask={taskId:i}),await this.notification(l,c)},sendRequest:async(l,c,u)=>{let m={...u,relatedRequestId:e.id};i&&!m.relatedTask&&(m.relatedTask={taskId:i});let f=m.relatedTask?.taskId??i;return f&&d&&await d.updateTaskStatus(f,"input_required"),await this.request(l,c,m)},authInfo:r?.authInfo,requestId:e.id,requestInfo:r?.requestInfo,taskId:i,taskStore:d,taskRequestedTtl:s?.ttl,closeSSEStream:r?.closeSSEStream,closeStandaloneSSEStream:r?.closeStandaloneSSEStream};Promise.resolve().then(()=>{s&&this.assertTaskHandlerCapability(e.method)}).then(()=>n(e,p)).then(async l=>{if(o.signal.aborted)return;let c={result:l,jsonrpc:"2.0",id:e.id};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"response",message:c,timestamp:Date.now()},a?.sessionId):await a?.send(c)},async l=>{if(o.signal.aborted)return;let c={jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(l.code)?l.code:we.InternalError,message:l.message??"Internal error",...l.data!==void 0&&{data:l.data}}};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"error",message:c,timestamp:Date.now()},a?.sessionId):await a?.send(c)}).catch(l=>this._onerror(new Error(`Failed to send response: ${l}`))).finally(()=>{this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:r,...n}=e.params,a=Number(r),i=this._progressHandlers.get(a);if(!i){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let o=this._responseHandlers.get(a),s=this._timeoutInfo.get(a);if(s&&o&&s.resetTimeoutOnProgress)try{this._resetTimeout(a)}catch(d){this._responseHandlers.delete(a),this._progressHandlers.delete(a),this._cleanupTimeout(a),o(d);return}i(n)}_onresponse(e){let r=Number(e.id),n=this._requestResolvers.get(r);if(n){if(this._requestResolvers.delete(r),lp(e))n(e);else{let o=new de(e.error.code,e.error.message,e.error.data);n(o)}return}let a=this._responseHandlers.get(r);if(a===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}this._responseHandlers.delete(r),this._cleanupTimeout(r);let i=!1;if(lp(e)&&e.result&&typeof e.result=="object"){let o=e.result;if(o.task&&typeof o.task=="object"){let s=o.task;typeof s.taskId=="string"&&(i=!0,this._taskProgressTokens.set(s.taskId,r))}}if(i||this._progressHandlers.delete(r),lp(e))a(e);else{let o=de.fromError(e.error.code,e.error.message,e.error.data);a(o)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(e,r,n){let{task:a}=n??{};if(!a){try{yield{type:"result",result:await this.request(e,r,n)}}catch(o){yield{type:"error",error:o instanceof de?o:new de(we.InternalError,String(o))}}return}let i;try{let o=await this.request(e,Ko,n);if(o.task)i=o.task.taskId,yield{type:"taskCreated",task:o.task};else throw new de(we.InternalError,"Task creation did not return a task");for(;;){let s=await this.getTask({taskId:i},n);if(yield{type:"taskStatus",task:s},ya(s.status)){s.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)}:s.status==="failed"?yield{type:"error",error:new de(we.InternalError,`Task ${i} failed`)}:s.status==="cancelled"&&(yield{type:"error",error:new de(we.InternalError,`Task ${i} was cancelled`)});return}if(s.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)};return}let d=s.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(p=>setTimeout(p,d)),n?.signal?.throwIfAborted()}}catch(o){yield{type:"error",error:o instanceof de?o:new de(we.InternalError,String(o))}}}request(e,r,n){let{relatedRequestId:a,resumptionToken:i,onresumptiontoken:o,task:s,relatedTask:d}=n??{};return new Promise((p,l)=>{let c=S=>{l(S)};if(!this._transport){c(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(e.method),s&&this.assertTaskCapability(e.method)}catch(S){c(S);return}n?.signal?.throwIfAborted();let u=this._requestMessageId++,m={...e,jsonrpc:"2.0",id:u};n?.onprogress&&(this._progressHandlers.set(u,n.onprogress),m.params={...e.params,_meta:{...e.params?._meta||{},progressToken:u}}),s&&(m.params={...m.params,task:s}),d&&(m.params={...m.params,_meta:{...m.params?._meta||{},[va]:d}});let f=S=>{this._responseHandlers.delete(u),this._progressHandlers.delete(u),this._cleanupTimeout(u),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:u,reason:String(S)}},{relatedRequestId:a,resumptionToken:i,onresumptiontoken:o}).catch(T=>this._onerror(new Error(`Failed to send cancellation: ${T}`)));let E=S instanceof de?S:new de(we.RequestTimeout,String(S));l(E)};this._responseHandlers.set(u,S=>{if(!n?.signal?.aborted){if(S instanceof Error)return l(S);try{let E=ga(r,S.result);E.success?p(E.data):l(E.error)}catch(E){l(E)}}}),n?.signal?.addEventListener("abort",()=>{f(n?.signal?.reason)});let g=n?.timeout??rz,y=()=>f(de.fromError(we.RequestTimeout,"Request timed out",{timeout:g}));this._setupTimeout(u,g,n?.maxTotalTimeout,y,n?.resetTimeoutOnProgress??!1);let b=d?.taskId;if(b){let S=E=>{let T=this._responseHandlers.get(u);T?T(E):this._onerror(new Error(`Response handler missing for side-channeled request ${u}`))};this._requestResolvers.set(u,S),this._enqueueTaskMessage(b,{type:"request",message:m,timestamp:Date.now()}).catch(E=>{this._cleanupTimeout(u),l(E)})}else this._transport.send(m,{relatedRequestId:a,resumptionToken:i,onresumptiontoken:o}).catch(S=>{this._cleanupTimeout(u),l(S)})})}async getTask(e,r){return this.request({method:"tasks/get",params:e},uu,r)}async getTaskResult(e,r,n){return this.request({method:"tasks/result",params:e},r,n)}async listTasks(e,r){return this.request({method:"tasks/list",params:e},hu,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},Zg,r)}async notification(e,r){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(e.method);let n=r?.relatedTask?.taskId;if(n){let s={...e,jsonrpc:"2.0",params:{...e.params,_meta:{...e.params?._meta||{},[va]:r.relatedTask}}};await this._enqueueTaskMessage(n,{type:"notification",message:s,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(e.method)&&!e.params&&!r?.relatedRequestId&&!r?.relatedTask){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(e.method),!this._transport)return;let s={...e,jsonrpc:"2.0"};r?.relatedTask&&(s={...s,params:{...s.params,_meta:{...s.params?._meta||{},[va]:r.relatedTask}}}),this._transport?.send(s,r).catch(d=>this._onerror(d))});return}let o={...e,jsonrpc:"2.0"};r?.relatedTask&&(o={...o,params:{...o.params,_meta:{...o.params?._meta||{},[va]:r.relatedTask}}}),await this._transport.send(o,r)}setRequestHandler(e,r){let n=B4(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(a,i)=>{let o=W4(e,a);return Promise.resolve(r(o,i))})}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw new Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,r){let n=B4(e);this._notificationHandlers.set(n,a=>{let i=W4(e,a);return Promise.resolve(r(i))})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}_cleanupTaskProgressHandler(e){let r=this._taskProgressTokens.get(e);r!==void 0&&(this._progressHandlers.delete(r),this._taskProgressTokens.delete(e))}async _enqueueTaskMessage(e,r,n){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let a=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(e,r,n,a)}async _clearTaskQueue(e,r){if(this._taskMessageQueue){let n=await this._taskMessageQueue.dequeueAll(e,r);for(let a of n)if(a.type==="request"&&P4(a.message)){let i=a.message.id,o=this._requestResolvers.get(i);o?(o(new de(we.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(i)):this._onerror(new Error(`Resolver missing for request ${i} during task ${e} cleanup`))}}}async _waitForTaskUpdate(e,r){let n=this._options?.defaultTaskPollInterval??1e3;try{let a=await this._taskStore?.getTask(e);a?.pollInterval&&(n=a.pollInterval)}catch{}return new Promise((a,i)=>{if(r.aborted){i(new de(we.InvalidRequest,"Request cancelled"));return}let o=setTimeout(a,n);r.addEventListener("abort",()=>{clearTimeout(o),i(new de(we.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(e,r){let n=this._taskStore;if(!n)throw new Error("No task store configured");return{createTask:async a=>{if(!e)throw new Error("No request provided");return await n.createTask(a,e.id,{method:e.method,params:e.params},r)},getTask:async a=>{let i=await n.getTask(a,r);if(!i)throw new de(we.InvalidParams,"Failed to retrieve task: Task not found");return i},storeTaskResult:async(a,i,o)=>{await n.storeTaskResult(a,i,o,r);let s=await n.getTask(a,r);if(s){let d=hp.parse({method:"notifications/tasks/status",params:s});await this.notification(d),ya(s.status)&&this._cleanupTaskProgressHandler(a)}},getTaskResult:a=>n.getTaskResult(a,r),updateTaskStatus:async(a,i,o)=>{let s=await n.getTask(a,r);if(!s)throw new de(we.InvalidParams,`Task "${a}" not found - it may have been cleaned up`);if(ya(s.status))throw new de(we.InvalidParams,`Cannot update task "${a}" from terminal status "${s.status}" to "${i}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await n.updateTaskStatus(a,i,o,r);let d=await n.getTask(a,r);if(d){let p=hp.parse({method:"notifications/tasks/status",params:d});await this.notification(p),ya(d.status)&&this._cleanupTaskProgressHandler(a)}},listTasks:a=>n.listTasks(a,r)}}};function Hg(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function Kg(t,e){let r={...t};for(let n in e){let a=n,i=e[a];if(i===void 0)continue;let o=r[a];Hg(o)&&Hg(i)?r[a]={...o,...i}:r[a]=i}return r}var T_=Ze(Uh(),1),E_=Ze(Wh(),1);function Wj(){let t=new T_.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,E_.default)(t),t}var r1=class{constructor(e){this._ajv=e??Wj()}getValidator(e){let r="$id"in e&&typeof e.$id=="string"?this._ajv.getSchema(e.$id)??this._ajv.compile(e):this._ajv.compile(e);return n=>r(n)?{valid:!0,data:n,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(r.errors)}}};var n1=class{constructor(e){this._server=e}requestStream(e,r,n){return this._server.requestStream(e,r,n)}async getTask(e,r){return this._server.getTask({taskId:e},r)}async getTaskResult(e,r,n){return this._server.getTaskResult({taskId:e},r,n)}async listTasks(e,r){return this._server.listTasks(e?{cursor:e}:void 0,r)}async cancelTask(e,r){return this._server.cancelTask({taskId:e},r)}};function I_(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"tools/call":if(!t.tools?.call)throw new Error(`${r} does not support task creation for tools/call (required for ${e})`);break;default:break}}function P_(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"sampling/createMessage":if(!t.sampling?.createMessage)throw new Error(`${r} does not support task creation for sampling/createMessage (required for ${e})`);break;case"elicitation/create":if(!t.elicitation?.create)throw new Error(`${r} does not support task creation for elicitation/create (required for ${e})`);break;default:break}}var a1=class extends _u{constructor(e,r){super(r),this._serverInfo=e,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(yp.options.map((n,a)=>[n,a])),this.isMessageIgnored=(n,a)=>{let i=this._loggingLevels.get(a);return i?this.LOG_LEVEL_SEVERITY.get(n)this._oninitialize(n)),this.setNotificationHandler(R4,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(M4,async(n,a)=>{let i=a.sessionId||a.requestInfo?.headers["mcp-session-id"]||void 0,{level:o}=n.params,s=yp.safeParse(o);return s.success&&this._loggingLevels.set(i,s.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new n1(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=Kg(this._capabilities,e)}setRequestHandler(e,r){let a=qc(e)?.method;if(!a)throw new Error("Schema is missing a method literal");let i;if(Jo(a)){let s=a;i=s._zod?.def?.value??s.value}else{let s=a;i=s._def?.value??s.value}if(typeof i!="string")throw new Error("Schema method literal must be a string");if(i==="tools/call"){let s=async(d,p)=>{let l=ga(vp,d);if(!l.success){let f=l.error instanceof Error?l.error.message:String(l.error);throw new de(we.InvalidParams,`Invalid tools/call request: ${f}`)}let{params:c}=l.data,u=await Promise.resolve(r(d,p));if(c.task){let f=ga(Ko,u);if(!f.success){let g=f.error instanceof Error?f.error.message:String(f.error);throw new de(we.InvalidParams,`Invalid task creation result: ${g}`)}return f.data}let m=ga(vu,u);if(!m.success){let f=m.error instanceof Error?m.error.message:String(m.error);throw new de(we.InvalidParams,`Invalid tools/call result: ${f}`)}return m.data};return super.setRequestHandler(e,s)}return super.setRequestHandler(e,r)}assertCapabilityForMethod(e){switch(e){case"sampling/createMessage":if(!this._clientCapabilities?.sampling)throw new Error(`Client does not support sampling (required for ${e})`);break;case"elicitation/create":if(!this._clientCapabilities?.elicitation)throw new Error(`Client does not support elicitation (required for ${e})`);break;case"roots/list":if(!this._clientCapabilities?.roots)throw new Error(`Client does not support listing roots (required for ${e})`);break;case"ping":break}}assertNotificationCapability(e){switch(e){case"notifications/message":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw new Error(`Server does not support notifying about resources (required for ${e})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw new Error(`Server does not support notifying of tool list changes (required for ${e})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw new Error(`Server does not support notifying of prompt list changes (required for ${e})`);break;case"notifications/elicitation/complete":if(!this._clientCapabilities?.elicitation?.url)throw new Error(`Client does not support URL elicitation (required for ${e})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(e){if(this._capabilities)switch(e){case"completion/complete":if(!this._capabilities.completions)throw new Error(`Server does not support completions (required for ${e})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw new Error(`Server does not support prompts (required for ${e})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw new Error(`Server does not support resources (required for ${e})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw new Error(`Server does not support tools (required for ${e})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Server does not support tasks capability (required for ${e})`);break;case"ping":case"initialize":break}}assertTaskCapability(e){P_(this._clientCapabilities?.tasks?.requests,e,"Client")}assertTaskHandlerCapability(e){this._capabilities&&I_(this._capabilities.tasks?.requests,e,"Server")}async _oninitialize(e){let r=e.params.protocolVersion;return this._clientCapabilities=e.params.capabilities,this._clientVersion=e.params.clientInfo,{protocolVersion:Rg.includes(r)?r:E4,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},su)}async createMessage(e,r){if((e.tools||e.toolChoice)&&!this._clientCapabilities?.sampling?.tools)throw new Error("Client does not support sampling tools capability.");if(e.messages.length>0){let n=e.messages[e.messages.length-1],a=Array.isArray(n.content)?n.content:[n.content],i=a.some(p=>p.type==="tool_result"),o=e.messages.length>1?e.messages[e.messages.length-2]:void 0,s=o?Array.isArray(o.content)?o.content:[o.content]:[],d=s.some(p=>p.type==="tool_use");if(i){if(a.some(p=>p.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!d)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(d){let p=new Set(s.filter(c=>c.type==="tool_use").map(c=>c.id)),l=new Set(a.filter(c=>c.type==="tool_result").map(c=>c.toolUseId));if(p.size!==l.size||![...p].every(c=>l.has(c)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return e.tools?this.request({method:"sampling/createMessage",params:e},Z4,r):this.request({method:"sampling/createMessage",params:e},q4,r)}async elicitInput(e,r){switch(e.mode??"form"){case"url":{if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support url elicitation.");let a=e;return this.request({method:"elicitation/create",params:a},yu,r)}case"form":{if(!this._clientCapabilities?.elicitation?.form)throw new Error("Client does not support form elicitation.");let a=e.mode==="form"?e:{...e,mode:"form"},i=await this.request({method:"elicitation/create",params:a},yu,r);if(i.action==="accept"&&i.content&&a.requestedSchema)try{let s=this._jsonSchemaValidator.getValidator(a.requestedSchema)(i.content);if(!s.valid)throw new de(we.InvalidParams,`Elicitation response content does not match requested schema: ${s.errorMessage}`)}catch(o){throw o instanceof de?o:new de(we.InternalError,`Error validating elicitation response: ${o instanceof Error?o.message:String(o)}`)}return i}}}createElicitationCompletionNotifier(e,r){if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support URL elicitation (required for notifications/elicitation/complete)");return()=>this.notification({method:"notifications/elicitation/complete",params:{elicitationId:e}},r)}async listRoots(e,r){return this.request({method:"roots/list",params:e},F4,r)}async sendLoggingMessage(e,r){if(this._capabilities.logging&&!this.isMessageIgnored(e.level,r))return this.notification({method:"notifications/message",params:e})}async sendResourceUpdated(e){return this.notification({method:"notifications/resources/updated",params:e})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}};var Jh=Ze(require("node:process"),1);var i1=class{append(e){this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){if(!this._buffer)return null;let e=this._buffer.indexOf(` -`);if(e===-1)return null;let r=this._buffer.toString("utf8",0,e).replace(/\r$/,"");return this._buffer=this._buffer.subarray(e+1),Jj(r)}clear(){this._buffer=void 0}};function Jj(t){return Mg.parse(JSON.parse(t))}function N_(t){return JSON.stringify(t)+` -`}var o1=class{constructor(e=Jh.default.stdin,r=Jh.default.stdout){this._stdin=e,this._stdout=r,this._readBuffer=new i1,this._started=!1,this._ondata=n=>{this._readBuffer.append(n),this.processReadBuffer()},this._onerror=n=>{this.onerror?.(n)}}async start(){if(this._started)throw new Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0,this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror)}processReadBuffer(){for(;;)try{let e=this._readBuffer.readMessage();if(e===null)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}async close(){this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0&&this._stdin.pause(),this._readBuffer.clear(),this.onclose?.()}send(e){return new Promise(r=>{let n=N_(e);this._stdout.write(n)?r():this._stdout.once("drain",r)})}};var s1="0123456789abcdef",d1=class t{constructor(e){this.bytes=e}static ofInner(e){if(e.length!==16)throw new TypeError("not 128-bit length");return new t(e)}static fromFieldsV7(e,r,n,a){if(!Number.isInteger(e)||!Number.isInteger(r)||!Number.isInteger(n)||!Number.isInteger(a)||e<0||r<0||n<0||a<0||e>0xffffffffffff||r>4095||n>1073741823||a>4294967295)throw new RangeError("invalid field value");let i=new Uint8Array(16);return i[0]=e/2**40,i[1]=e/2**32,i[2]=e/2**24,i[3]=e/2**16,i[4]=e/2**8,i[5]=e,i[6]=112|r>>>8,i[7]=r,i[8]=128|n>>>24,i[9]=n>>>16,i[10]=n>>>8,i[11]=n,i[12]=a>>>24,i[13]=a>>>16,i[14]=a>>>8,i[15]=a,new t(i)}static parse(e){var r,n,a,i;let o;switch(e.length){case 32:o=(r=/^[0-9a-f]{32}$/i.exec(e))===null||r===void 0?void 0:r[0];break;case 36:o=(n=/^([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(e))===null||n===void 0?void 0:n.slice(1,6).join("");break;case 38:o=(a=/^\{([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})\}$/i.exec(e))===null||a===void 0?void 0:a.slice(1,6).join("");break;case 45:o=(i=/^urn:uuid:([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(e))===null||i===void 0?void 0:i.slice(1,6).join("");break;default:break}if(o){let s=new Uint8Array(16);for(let d=0;d<16;d+=4){let p=parseInt(o.substring(2*d,2*d+8),16);s[d+0]=p>>>24,s[d+1]=p>>>16,s[d+2]=p>>>8,s[d+3]=p}return new t(s)}else throw new SyntaxError("could not parse UUID string")}toString(){let e="";for(let r=0;r>>4),e+=s1.charAt(this.bytes[r]&15),(r===3||r===5||r===7||r===9)&&(e+="-");return e}toHex(){let e="";for(let r=0;r>>4),e+=s1.charAt(this.bytes[r]&15);return e}toJSON(){return this.toString()}getVariant(){let e=this.bytes[8]>>>4;if(e<0)throw new Error("unreachable");if(e<=7)return this.bytes.every(r=>r===0)?"NIL":"VAR_0";if(e<=11)return"VAR_10";if(e<=13)return"VAR_110";if(e<=15)return this.bytes.every(r=>r===255)?"MAX":"VAR_RESERVED";throw new Error("unreachable")}getVersion(){return this.getVariant()==="VAR_10"?this.bytes[6]>>>4:void 0}clone(){return new t(this.bytes.slice(0))}equals(e){return this.compareTo(e)===0}compareTo(e){for(let r=0;r<16;r++){let n=this.bytes[r]-e.bytes[r];if(n!==0)return Math.sign(n)}return 0}},Gh=class{constructor(e){this.timestamp_biased=0,this.counter=0,this.random=e??Gj()}generate(){return this.generateOrResetCore(Date.now(),1e4)}generateOrAbort(){return this.generateOrAbortCore(Date.now(),1e4)}generateOrResetCore(e,r){let n=this.generateOrAbortCore(e,r);return n===void 0&&(this.timestamp_biased=0,n=this.generateOrAbortCore(e,r)),n}generateOrAbortCore(e,r){if(!Number.isInteger(e)||e<0||e>0xffffffffffff)throw new RangeError("`unixTsMs` must be a 48-bit unsigned integer");if(r<0||r>0xffffffffffff)throw new RangeError("`rollbackAllowance` out of reasonable range");if(e++,e>this.timestamp_biased)this.timestamp_biased=e,this.resetCounter();else if(e+r>=this.timestamp_biased)this.counter++,this.counter>4398046511103&&(this.timestamp_biased++,this.resetCounter());else return;return d1.fromFieldsV7(this.timestamp_biased-1,Math.trunc(this.counter/2**30),this.counter&2**30-1,this.random.nextUint32())}resetCounter(){this.counter=this.random.nextUint32()*1024+(this.random.nextUint32()&1023)}generateV4(){let e=new Uint8Array(Uint32Array.of(this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32()).buffer);return e[6]=64|e[6]>>>4,e[8]=128|e[8]>>>2,d1.ofInner(e)}},Gj=()=>{if(typeof crypto<"u"&&typeof crypto.getRandomValues<"u")return new Hh;if(typeof UUIDV7_DENY_WEAK_RNG<"u"&&UUIDV7_DENY_WEAK_RNG)throw new Error("no cryptographically strong RNG available");return{nextUint32:()=>Math.trunc(Math.random()*65536)*65536+Math.trunc(Math.random()*65536)}},Hh=class{constructor(){this.buffer=new Uint32Array(8),this.cursor=65535}nextUint32(){return this.cursor>=this.buffer.length&&(crypto.getRandomValues(this.buffer),this.cursor=0),this.buffer[this.cursor++]}},z_,Kh=()=>Hj().toString(),Hj=()=>(z_||(z_=new Gh)).generate();var O_=!1,Ii,Xh,Kj,Xj,Yj,Yh,Qj,p1,Qh,e9,t9,l1,r9;function R_(t,e={auto:!1}){if(O_)throw new Error(`you must \`import '@runloop/api-client/shims/${t.kind}'\` before importing anything else from @runloop/api-client`);if(Ii)throw new Error(`can't \`import '@runloop/api-client/shims/${t.kind}'\` after \`import '@runloop/api-client/shims/${Ii}'\``);O_=e.auto,Ii=t.kind,Xh=t.fetch,Kj=t.Request,Xj=t.Response,Yj=t.Headers,Yh=t.FormData,Qj=t.Blob,p1=t.File,Qh=t.ReadableStream,e9=t.getMultipartRequestOptions,t9=t.getDefaultAgent,l1=t.fileFromPath,r9=t.isFsReadStream}var Va=Ze(yb(),1);var Jw=require("util");fl();W9();W1();var Fw=t=>t instanceof gn;Z1();var Bw=require("util"),Ww=(0,Bw.deprecate)(()=>{},'Constructor "entries" argument is not spec-compliant and will be removed in next major release.');var vn=function(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)},H1,yn,J9,K1=class{constructor(e){H1.add(this),yn.set(this,new Map),e&&(Ww(),e.forEach(({name:r,value:n,fileName:a})=>this.append(r,n,a)))}static[(yn=new WeakMap,H1=new WeakSet,Symbol.hasInstance)](e){return!!(e&&st(e.constructor)&&e[Symbol.toStringTag]==="FormData"&&st(e.append)&&st(e.set)&&st(e.get)&&st(e.getAll)&&st(e.has)&&st(e.delete)&&st(e.entries)&&st(e.values)&&st(e.keys)&&st(e[Symbol.iterator])&&st(e.forEach))}append(e,r,n){vn(this,H1,"m",J9).call(this,{name:e,fileName:n,append:!0,rawValue:r,argsLength:arguments.length})}set(e,r,n){vn(this,H1,"m",J9).call(this,{name:e,fileName:n,append:!1,rawValue:r,argsLength:arguments.length})}get(e){let r=vn(this,yn,"f").get(String(e));return r?r[0]:null}getAll(e){let r=vn(this,yn,"f").get(String(e));return r?r.slice():[]}has(e){return vn(this,yn,"f").has(String(e))}delete(e){vn(this,yn,"f").delete(String(e))}*keys(){for(let e of vn(this,yn,"f").keys())yield e}*entries(){for(let e of this.keys()){let r=this.getAll(e);for(let n of r)yield[e,n]}}*values(){for(let[,e]of this)yield e}[(J9=function({name:r,rawValue:n,append:a,fileName:i,argsLength:o}){let s=a?"append":"set";if(o<2)throw new TypeError(`Failed to execute '${s}' on 'FormData': 2 arguments required, but only ${o} present.`);r=String(r);let d;if(B9(n))d=i===void 0?n:new Xr([n],i,{type:n.type,lastModified:n.lastModified});else if(Fw(n))d=new Xr([n],i===void 0?"blob":i,{type:n.type});else{if(i)throw new TypeError(`Failed to execute '${s}' on 'FormData': parameter 2 is not of type 'Blob'.`);d=String(n)}let p=vn(this,yn,"f").get(r);if(!p)return void vn(this,yn,"f").set(r,[d]);if(!a)return void vn(this,yn,"f").set(r,[d]);p.push(d)},Symbol.iterator)](){return this.entries()}forEach(e,r){for(let[n,a]of this)e.call(r,a,n,this)}get[Symbol.toStringTag](){return"FormData"}[Jw.inspect.custom](){return this[Symbol.toStringTag]}};W1();fl();var p3=Ze(sx(),1),Ax=Ze(bx(),1),jx=require("node:fs");var wx="abcdefghijklmnopqrstuvwxyz0123456789";function LU(){let t=16,e="";for(;t--;)e+=wx[Math.random()*wx.length<<0];return e}var xx=LU;var MU=t=>Object.prototype.toString.call(t).slice(8,-1).toLowerCase();function qU(t){if(MU(t)!=="object")return!1;let e=Object.getPrototypeOf(t);return e==null?!0:(e.constructor&&e.constructor.toString())===Object.toString()}var a3=qU;var ZU=t=>String(t).replace(/\r|\n/g,(e,r,n)=>e==="\r"&&n[r+1]!==` -`||e===` -`&&n[r-1]!=="\r"?`\r -`:e),i3=ZU;var FU=t=>String(t).replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/"/g,"%22"),o3=FU;var BU=t=>typeof t=="function",ea=BU;var Li=t=>!!(t&&typeof t=="object"&&ea(t.constructor)&&t[Symbol.toStringTag]==="File"&&ea(t.stream)&&t.name!=null&&t.size!=null&&t.lastModified!=null);var $x=t=>!!(t&&ea(t.constructor)&&t[Symbol.toStringTag]==="FormData"&&ea(t.append)&&ea(t.getAll)&&ea(t.entries)&&ea(t[Symbol.iterator]));var Sl=function(t,e,r,n,a){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!a)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!a:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?a.call(t,r):a?a.value=r:e.set(t,r),r},Ye=function(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)},nm,Ua,kl,am,Tl,Mi,El,Il,im,s3,WU={enableAdditionalHeaders:!1},om=class{constructor(e,r,n){if(nm.add(this),Ua.set(this,`\r -`),kl.set(this,void 0),am.set(this,void 0),Tl.set(this,"-".repeat(2)),Mi.set(this,new TextEncoder),El.set(this,void 0),Il.set(this,void 0),im.set(this,void 0),!$x(e))throw new TypeError("Expected first argument to be a FormData instance.");let a;if(a3(r)?n=r:a=r,a||(a=xx()),typeof a!="string")throw new TypeError("Expected boundary argument to be a string.");if(n&&!a3(n))throw new TypeError("Expected options argument to be an object.");Sl(this,Il,e,"f"),Sl(this,im,{...WU,...n},"f"),Sl(this,kl,Ye(this,Mi,"f").encode(Ye(this,Ua,"f")),"f"),Sl(this,am,Ye(this,kl,"f").byteLength,"f"),this.boundary=`form-data-boundary-${a}`,this.contentType=`multipart/form-data; boundary=${this.boundary}`,Sl(this,El,Ye(this,Mi,"f").encode(`${Ye(this,Tl,"f")}${this.boundary}${Ye(this,Tl,"f")}${Ye(this,Ua,"f").repeat(2)}`),"f"),this.contentLength=String(this.getContentLength()),this.headers=Object.freeze({"Content-Type":this.contentType,"Content-Length":this.contentLength}),Object.defineProperties(this,{boundary:{writable:!1,configurable:!1},contentType:{writable:!1,configurable:!1},contentLength:{writable:!1,configurable:!1},headers:{writable:!1,configurable:!1}})}getContentLength(){let e=0;for(let[r,n]of Ye(this,Il,"f")){let a=Li(n)?n:Ye(this,Mi,"f").encode(i3(n));e+=Ye(this,nm,"m",s3).call(this,r,a).byteLength,e+=Li(a)?a.size:a.byteLength,e+=Ye(this,am,"f")}return e+Ye(this,El,"f").byteLength}*values(){for(let[e,r]of Ye(this,Il,"f").entries()){let n=Li(r)?r:Ye(this,Mi,"f").encode(i3(r));yield Ye(this,nm,"m",s3).call(this,e,n),yield n,yield Ye(this,kl,"f")}yield Ye(this,El,"f")}async*encode(){for(let e of this.values())Li(e)?yield*e.stream():yield e}[(Ua=new WeakMap,kl=new WeakMap,am=new WeakMap,Tl=new WeakMap,Mi=new WeakMap,El=new WeakMap,Il=new WeakMap,im=new WeakMap,nm=new WeakSet,s3=function(r,n){let a="";return a+=`${Ye(this,Tl,"f")}${this.boundary}${Ye(this,Ua,"f")}`,a+=`Content-Disposition: form-data; name="${o3(r)}"`,Li(n)&&(a+=`; filename="${o3(n.name)}"${Ye(this,Ua,"f")}`,a+=`Content-Type: ${n.type||"application/octet-stream"}`),Ye(this,im,"f").enableAdditionalHeaders===!0&&(a+=`${Ye(this,Ua,"f")}Content-Length: ${Li(n)?n.size:n.byteLength}`),Ye(this,Mi,"f").encode(`${a}${Ye(this,Ua,"f").repeat(2)}`)},Symbol.iterator)](){return this.values()}[Symbol.asyncIterator](){return this.encode()}};var Cx=require("node:stream");var sm=class{constructor(e){this.body=e}get[Symbol.toStringTag](){return"MultipartBody"}};var Ux=require("node:stream/web"),Dx=!1;async function YU(t,...e){let{fileFromPath:r}=await Promise.resolve().then(()=>(Rx(),Ox));return Dx||(console.warn(`fileFromPath is deprecated; use fs.createReadStream(${JSON.stringify(t)}) instead`),Dx=!0),await r(t,...e)}var QU=new p3.default({keepAlive:!0,timeout:600*1e3}),eV=new p3.default.HttpsAgent({keepAlive:!0,timeout:600*1e3});async function tV(t,e){let r=new om(t),n=Cx.Readable.from(r),a=new sm(n),i={...e.headers,...r.headers,"Content-Length":r.contentLength};return{...e,body:a,headers:i}}function Vx(){return typeof AbortController>"u"&&(globalThis.AbortController=Ax.AbortController),{kind:"node",fetch:Va.default,Request:Va.Request,Response:Va.Response,Headers:Va.Headers,FormData:K1,Blob:gn,File:Xr,ReadableStream:Ux.ReadableStream,getMultipartRequestOptions:tV,getDefaultAgent:t=>t.startsWith("https")?eV:QU,fileFromPath:YU,isFsReadStream:t=>t instanceof jx.ReadStream}}var l3=()=>{Ii||R_(Vx(),{auto:!0})};l3();var Fi="1.3.0";var nt=class extends Error{},at=class t extends nt{constructor(e,r,n,a){super(`${t.makeMessage(e,r,n)}`),this.status=e,this.headers=a,this.error=r}static makeMessage(e,r,n){let a=r?.message?typeof r.message=="string"?r.message:JSON.stringify(r.message):r?JSON.stringify(r):n;return e&&a?`${e} ${a}`:e?`${e} status code (no body)`:a||"(no status code or body)"}static generate(e,r,n,a){if(!e||!a)return new ta({message:n,cause:dm(r)});let i=r;return e===400?new As(e,i,n,a):e===401?new js(e,i,n,a):e===403?new Cs(e,i,n,a):e===404?new Us(e,i,n,a):e===409?new Vs(e,i,n,a):e===422?new Ls(e,i,n,a):e===429?new Ms(e,i,n,a):e>=500?new qs(e,i,n,a):new t(e,i,n,a)}},La=class extends at{constructor({message:e}={}){super(void 0,void 0,e||"Request was aborted.",void 0)}},ta=class extends at{constructor({message:e,cause:r}){super(void 0,void 0,e||"Connection error.",void 0),r&&(this.cause=r)}},Bi=class extends ta{constructor({message:e}={}){super({message:e??"Request timed out."})}},As=class extends at{},js=class extends at{},Cs=class extends at{},Us=class extends at{},Vs=class extends at{},Ls=class extends at{},Ms=class extends at{},qs=class extends at{};var pm=function(t,e,r,n,a){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!a)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!a:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?a.call(t,r):a?a.value=r:e.set(t,r),r},Wi=function(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)},gr,Ji=class{constructor(){gr.set(this,void 0),this.buffer=new Uint8Array,pm(this,gr,null,"f")}decode(e){if(e==null)return[];let r=e instanceof ArrayBuffer?new Uint8Array(e):typeof e=="string"?new TextEncoder().encode(e):e,n=new Uint8Array(this.buffer.length+r.length);n.set(this.buffer),n.set(r,this.buffer.length),this.buffer=n;let a=[],i;for(;(i=nV(this.buffer,Wi(this,gr,"f")))!=null;){if(i.carriage&&Wi(this,gr,"f")==null){pm(this,gr,i.index,"f");continue}if(Wi(this,gr,"f")!=null&&(i.index!==Wi(this,gr,"f")+1||i.carriage)){a.push(this.decodeText(this.buffer.slice(0,Wi(this,gr,"f")-1))),this.buffer=this.buffer.slice(Wi(this,gr,"f")),pm(this,gr,null,"f");continue}let o=Wi(this,gr,"f")!==null?i.preceding-1:i.preceding,s=this.decodeText(this.buffer.slice(0,o));a.push(s),this.buffer=this.buffer.slice(i.index),pm(this,gr,null,"f")}return a}decodeText(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof Buffer<"u"){if(e instanceof Buffer)return e.toString();if(e instanceof Uint8Array)return Buffer.from(e).toString();throw new nt(`Unexpected: received non-Uint8Array (${e.constructor.name}) stream chunk in an environment with a global "Buffer" defined, which this library assumes to be Node. Please report this error.`)}if(typeof TextDecoder<"u"){if(e instanceof Uint8Array||e instanceof ArrayBuffer)return this.textDecoder??(this.textDecoder=new TextDecoder("utf8")),this.textDecoder.decode(e);throw new nt(`Unexpected: received non-Uint8Array/ArrayBuffer (${e.constructor.name}) in a web platform. Please report this error.`)}throw new nt("Unexpected: neither Buffer nor TextDecoder are available as globals. Please report this error.")}flush(){return this.buffer.length?this.decode(` -`):[]}};gr=new WeakMap;Ji.NEWLINE_CHARS=new Set([` -`,"\r"]);Ji.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function nV(t,e){for(let a=e??0;a({next:()=>{if(i.length===0){let o=n.next();e.push(o),r.push(o)}return i.shift()}});return[new t(()=>a(e),this.controller),new t(()=>a(r),this.controller)]}toReadableStream(){let e=this,r,n=new TextEncoder;return new Qh({async start(){r=e[Symbol.asyncIterator]()},async pull(a){try{let{value:i,done:o}=await r.next();if(o)return a.close();let s=n.encode(JSON.stringify(i)+` -`);a.enqueue(s)}catch(i){a.error(i)}},async cancel(){await r.return?.()}})}};async function*aV(t,e){if(!t.body)throw e.abort(),new nt("Attempted to iterate over a response with no body");let r=new u3,n=new Ji,a=c3(t.body);for await(let i of iV(a))for(let o of n.decode(i)){let s=r.decode(o);s&&(yield s)}for(let i of n.flush()){let o=r.decode(i);o&&(yield o)}}async function*iV(t){let e=new Uint8Array;for await(let r of t){if(r==null)continue;let n=r instanceof ArrayBuffer?new Uint8Array(r):typeof r=="string"?new TextEncoder().encode(r):r,a=new Uint8Array(e.length+n.length);a.set(e),a.set(n,e.length),e=a;let i;for(;(i=Lx(e))!==-1;)yield e.slice(0,i),e=e.slice(i)}e.length>0&&(yield e)}var u3=class{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(e){if(e.endsWith("\r")&&(e=e.substring(0,e.length-1)),!e){if(!this.event&&!this.data.length)return null;let i={event:this.event,data:this.data.join(` -`),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],i}if(this.chunks.push(e),e.startsWith(":"))return null;let[r,n,a]=oV(e,":");return a.startsWith(" ")&&(a=a.substring(1)),r==="event"?this.event=a:r==="data"&&this.data.push(a),null}};function oV(t,e){let r=t.indexOf(e);return r!==-1?[t.substring(0,r),e,t.substring(r+e.length)]:[t,"",""]}var Mx=t=>t!=null&&typeof t=="object"&&typeof t.url=="string"&&typeof t.blob=="function",qx=t=>t!=null&&typeof t=="object"&&typeof t.name=="string"&&typeof t.lastModified=="number"&&Nl(t),Nl=t=>t!=null&&typeof t=="object"&&typeof t.size=="number"&&typeof t.type=="string"&&typeof t.text=="function"&&typeof t.slice=="function"&&typeof t.arrayBuffer=="function",sV=t=>qx(t)||Mx(t)||r9(t);async function h3(t,e,r){if(t=await t,qx(t))return t;if(Mx(t)){let a=await t.blob();e||(e=new URL(t.url).pathname.split(/[\\/]/).pop()??"unknown_file");let i=Nl(a)?[await a.arrayBuffer()]:[a];return new p1(i,e,r)}let n=await dV(t);if(e||(e=lV(t)??"unknown_file"),!r?.type){let a=n[0]?.type;typeof a=="string"&&(r={...r,type:a})}return new p1(n,e,r)}async function dV(t){let e=[];if(typeof t=="string"||ArrayBuffer.isView(t)||t instanceof ArrayBuffer)e.push(t);else if(Nl(t))e.push(await t.arrayBuffer());else if(cV(t))for await(let r of t)e.push(r);else throw new Error(`Unexpected data type: ${typeof t}; constructor: ${t?.constructor?.name}; props: ${pV(t)}`);return e}function pV(t){return`[${Object.getOwnPropertyNames(t).map(r=>`"${r}"`).join(", ")}]`}function lV(t){return m3(t.name)||m3(t.filename)||m3(t.path)?.split(/[\\/]/).pop()}var m3=t=>{if(typeof t=="string")return t;if(typeof Buffer<"u"&&t instanceof Buffer)return String(t)},cV=t=>t!=null&&typeof t=="object"&&typeof t[Symbol.asyncIterator]=="function",g3=t=>t&&typeof t=="object"&&t.body&&t[Symbol.toStringTag]==="MultipartBody";var v3=async t=>{let e=await Zx(t.body);return e9(e,t)},Zx=async t=>{let e=new Yh;return await Promise.all(Object.entries(t||{}).map(([r,n])=>f3(e,r,n))),e};var f3=async(t,e,r)=>{if(r!==void 0){if(r==null)throw new TypeError(`Received null for "${e}"; to pass null in FormData, you must use the string 'null'`);if(typeof r=="string"||typeof r=="number"||typeof r=="boolean")t.append(e,String(r));else if(sV(r)){let n=await h3(r);t.append(e,n)}else if(Array.isArray(r))await Promise.all(r.map(n=>f3(t,e+"[]",n)));else if(typeof r=="object")await Promise.all(Object.entries(r).map(([n,a])=>f3(t,`${e}[${n}]`,a)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${r} instead`)}};var Gx=function(t,e,r,n,a){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!a)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!a:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?a.call(t,r):a?a.value=r:e.set(t,r),r},Hx=function(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)},um,lm;l3();async function Kx(t){let{response:e}=t;if(t.options.stream)return Fs("response",e.status,e.url,e.headers,e.body),t.options.__streamClass?t.options.__streamClass.fromSSEResponse(e,t.controller):Zs.fromSSEResponse(e,t.controller);if(e.status===204)return null;if(t.options.__binaryResponse)return e;let n=e.headers.get("content-type")?.split(";")[0]?.trim();if(n?.includes("application/json")||n?.endsWith("+json")){let o=await e.json();return Fs("response",e.status,e.url,e.headers,o),o}let i=await e.text();return Fs("response",e.status,e.url,e.headers,i),i}var mm=class t extends Promise{constructor(e,r=Kx){super(n=>{n(null)}),this.responsePromise=e,this.parseResponse=r}_thenUnwrap(e){return new t(this.responsePromise,async r=>e(await this.parseResponse(r),r))}asResponse(){return this.responsePromise.then(e=>e.response)}async withResponse(){let[e,r]=await Promise.all([this.parse(),this.asResponse()]);return{data:e,response:r}}parse(){return this.parsedPromise||(this.parsedPromise=this.responsePromise.then(this.parseResponse)),this.parsedPromise}then(e,r){return this.parse().then(e,r)}catch(e){return this.parse().catch(e)}finally(e){return this.parse().finally(e)}},fm=class{constructor({baseURL:e,baseURLOverridden:r,maxRetries:n=5,timeout:a=3e4,httpAgent:i,fetch:o}){um.set(this,void 0),this.baseURL=e,Gx(this,um,r,"f"),this.maxRetries=y3("maxRetries",n),this.timeout=y3("timeout",a),this.httpAgent=i,this.fetch=o??Xh}authHeaders(e){return{}}defaultHeaders(e){return{Accept:"application/json",...["head","get"].includes(e.method)?{}:{"Content-Type":"application/json"},"User-Agent":this.getUserAgent(),...vV(),...this.authHeaders(e)}}validateHeaders(e,r){}defaultIdempotencyKey(){return`stainless-node-retry-${xV()}`}get(e,r){return this.methodRequest("get",e,r)}post(e,r){return this.methodRequest("post",e,r)}patch(e,r){return this.methodRequest("patch",e,r)}put(e,r){return this.methodRequest("put",e,r)}delete(e,r){return this.methodRequest("delete",e,r)}methodRequest(e,r,n){return this.request(Promise.resolve(n).then(async a=>{let i=a&&Nl(a?.body)?new DataView(await a.body.arrayBuffer()):a?.body instanceof DataView?a.body:a?.body instanceof ArrayBuffer?new DataView(a.body):a&&ArrayBuffer.isView(a?.body)?new DataView(a.body.buffer):a?.body;return{method:e,path:r,...a,body:i}}))}getAPIList(e,r,n){return this.requestAPIList(r,{method:"get",path:e,...n})}calculateContentLength(e){if(typeof e=="string"){if(typeof Buffer<"u")return Buffer.byteLength(e,"utf8").toString();if(typeof TextEncoder<"u")return new TextEncoder().encode(e).length.toString()}else if(ArrayBuffer.isView(e))return e.byteLength.toString();return null}async buildRequest(e,{retryCount:r=0}={}){let n={...e},{method:a,path:i,query:o,defaultBaseURL:s,headers:d={}}=n,p=ArrayBuffer.isView(n.body)||n.__binaryRequest&&typeof n.body=="string"?n.body:g3(n.body)?n.body.body:n.body?JSON.stringify(n.body,null,2):null,l=this.calculateContentLength(p),c=this.buildURL(i,o,s);"timeout"in n&&y3("timeout",n.timeout),n.timeout=n.timeout??this.timeout;let u=n.httpAgent??this.httpAgent??t9(c),m=n.timeout+1e3;typeof u?.options?.timeout=="number"&&m>(u.options.timeout??0)&&(u.options.timeout=m),this.idempotencyHeader&&a!=="get"&&(e.idempotencyKey||(e.idempotencyKey=this.defaultIdempotencyKey()),d[this.idempotencyHeader]=e.idempotencyKey);let f=this.buildHeaders({options:n,headers:d,contentLength:l,retryCount:r});return{req:{method:a,...p&&{body:p},headers:f,...u&&{agent:u},signal:n.signal??null},url:c,timeout:n.timeout}}buildHeaders({options:e,headers:r,contentLength:n,retryCount:a}){let i={};n&&(i["content-length"]=n);let o=this.defaultHeaders(e);return Jx(i,o),Jx(i,r),g3(e.body)&&Ii!=="node"&&delete i["content-type"],cm(o,"x-stainless-retry-count")===void 0&&cm(r,"x-stainless-retry-count")===void 0&&(i["x-stainless-retry-count"]=String(a)),cm(o,"x-stainless-timeout")===void 0&&cm(r,"x-stainless-timeout")===void 0&&e.timeout&&(i["x-stainless-timeout"]=String(Math.trunc(e.timeout/1e3))),this.validateHeaders(i,r),i}async prepareOptions(e){}async prepareRequest(e,{url:r,options:n}){}parseHeaders(e){return e?Symbol.iterator in e?Object.fromEntries(Array.from(e).map(r=>[...r])):{...e}:{}}makeStatusError(e,r,n,a){return at.generate(e,r,n,a)}request(e,r=null){return new mm(this.makeRequest(e,r))}async makeRequest(e,r){let n=await e,a=n.maxRetries??this.maxRetries;r==null&&(r=a),await this.prepareOptions(n);let{req:i,url:o,timeout:s}=await this.buildRequest(n,{retryCount:a-r});if(await this.prepareRequest(i,{url:o,options:n}),Fs("request",o,n,i.headers),n.signal?.aborted)throw new La;let d=new AbortController,p=await this.fetchWithTimeout(o,i,s,d).catch(dm);if(p instanceof Error){if(n.signal?.aborted)throw new La;if(r)return this.retryRequest(n,r);throw p.name==="AbortError"?new Bi:new ta({cause:p})}let l=mV(p.headers);if(!p.ok){if(r&&this.shouldRetry(p)){let y=`retrying, ${r} attempts remaining`;return Fs(`response (error; ${y})`,p.status,o,l),this.retryRequest(n,r,l)}let c=await p.text().catch(y=>dm(y).message),u=yV(c),m=u?void 0:c;throw Fs(`response (error; ${r?"(error; no more retries left)":"(error; not retryable)"})`,p.status,o,l,m),this.makeStatusError(p.status,u,m,l)}return{response:p,options:n,controller:d}}requestAPIList(e,r){let n=this.makeRequest(r,null);return new _3(this,n,e)}buildURL(e,r,n){let a=!Hx(this,um,"f")&&n||this.baseURL,i=bV(e)?new URL(e):new URL(a+(a.endsWith("/")&&e.startsWith("/")?e.slice(1):e)),o=this.defaultQuery();return Xx(o)||(r={...o,...r}),typeof r=="object"&&r&&!Array.isArray(r)&&(i.search=this.stringifyQuery(r)),i.toString()}stringifyQuery(e){return Object.entries(e).filter(([r,n])=>typeof n<"u").map(([r,n])=>{if(typeof n=="string"||typeof n=="number"||typeof n=="boolean")return`${encodeURIComponent(r)}=${encodeURIComponent(n)}`;if(n===null)return`${encodeURIComponent(r)}=`;throw new nt(`Cannot stringify type ${typeof n}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join("&")}async fetchWithTimeout(e,r,n,a){let{signal:i,...o}=r||{};i&&i.addEventListener("abort",()=>a.abort());let s=setTimeout(()=>a.abort(),n),d={signal:a.signal,...o};return d.method&&(d.method=d.method.toUpperCase()),this.fetch.call(void 0,e,d).finally(()=>{clearTimeout(s)})}shouldRetry(e){let r=e.headers.get("x-should-retry");return r==="true"?!0:r==="false"?!1:e.status===408||e.status===409||e.status===429||e.status>=500}async retryRequest(e,r,n){let a,i=n?.["retry-after-ms"];if(i){let s=parseFloat(i);Number.isNaN(s)||(a=s)}let o=n?.["retry-after"];if(o&&!a){let s=parseFloat(o);Number.isNaN(s)?a=Date.parse(o)-Date.now():a=s*1e3}if(!(a&&0<=a&&a<60*1e3)){let s=e.maxRetries??this.maxRetries;a=this.calculateDefaultRetryTimeoutMillis(r,s)}return await wV(a),this.makeRequest(e,r-1)}calculateDefaultRetryTimeoutMillis(e,r){let i=r-e,o=Math.min(1*Math.pow(2,i),60),s=1-Math.random()*.25;return o*s*1e3}getUserAgent(){return`${this.constructor.name}/JS ${Fi}`}};um=new WeakMap;var nr=class{constructor(e,r,n,a){lm.set(this,void 0),Gx(this,lm,e,"f"),this.options=a,this.response=r,this.body=n}hasNextPage(){return this.getPaginatedItems().length?this.nextPageInfo()!=null:!1}async getNextPage(){let e=this.nextPageInfo();if(!e)throw new nt("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");let r={...this.options};if("params"in e&&typeof r.query=="object")r.query={...r.query,...e.params};else if("url"in e){let n=[...Object.entries(r.query||{}),...e.url.searchParams.entries()];for(let[a,i]of n)e.url.searchParams.set(a,i);r.query=void 0,r.path=e.url.toString()}return await Hx(this,lm,"f").requestAPIList(this.constructor,r)}async*iterPages(){let e=this;for(yield e;e.hasNextPage();)e=await e.getNextPage(),yield e}async*[(lm=new WeakMap,Symbol.asyncIterator)](){for await(let e of this.iterPages())for(let r of e.getPaginatedItems())yield r}},_3=class extends mm{constructor(e,r,n){super(r,async a=>new n(e,a.response,await Kx(a),a.options))}async*[Symbol.asyncIterator](){let e=await this;for await(let r of e)yield r}},mV=t=>new Proxy(Object.fromEntries(t.entries()),{get(e,r){let n=r.toString();return e[n.toLowerCase()]||e[n]}}),fV={method:!0,path:!0,query:!0,body:!0,headers:!0,defaultBaseURL:!0,maxRetries:!0,stream:!0,timeout:!0,httpAgent:!0,signal:!0,idempotencyKey:!0,__binaryRequest:!0,__binaryResponse:!0,__streamClass:!0},L=t=>typeof t=="object"&&t!==null&&!Xx(t)&&Object.keys(t).every(e=>Yx(fV,e)),hV=()=>{if(typeof Deno<"u"&&Deno.build!=null)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Fi,"X-Stainless-OS":Bx(Deno.build.os),"X-Stainless-Arch":Fx(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version=="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime<"u")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Fi,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":process.version};if(Object.prototype.toString.call(typeof process<"u"?process:0)==="[object process]")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Fi,"X-Stainless-OS":Bx(process.platform),"X-Stainless-Arch":Fx(process.arch),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":process.version};let t=gV();return t?{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Fi,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${t.browser}`,"X-Stainless-Runtime-Version":t.version}:{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Fi,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function gV(){if(typeof navigator>"u"||!navigator)return null;let t=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:e,pattern:r}of t){let n=r.exec(navigator.userAgent);if(n){let a=n[1]||0,i=n[2]||0,o=n[3]||0;return{browser:e,version:`${a}.${i}.${o}`}}}return null}var Fx=t=>t==="x32"?"x32":t==="x86_64"||t==="x64"?"x64":t==="arm"?"arm":t==="aarch64"||t==="arm64"?"arm64":t?`other:${t}`:"unknown",Bx=t=>(t=t.toLowerCase(),t.includes("ios")?"iOS":t==="android"?"Android":t==="darwin"?"MacOS":t==="win32"?"Windows":t==="freebsd"?"FreeBSD":t==="openbsd"?"OpenBSD":t==="linux"?"Linux":t?`Other:${t}`:"Unknown"),Wx,vV=()=>Wx??(Wx=hV()),yV=t=>{try{return JSON.parse(t)}catch{return}},_V=/^[a-z][a-z0-9+.-]*:/i,bV=t=>_V.test(t),wV=t=>new Promise(e=>setTimeout(e,t)),y3=(t,e)=>{if(typeof e!="number"||!Number.isInteger(e))throw new nt(`${t} must be an integer`);if(e<0)throw new nt(`${t} must be a positive integer`);return e},dm=t=>{if(t instanceof Error)return t;if(typeof t=="object"&&t!==null)try{return new Error(JSON.stringify(t))}catch{}return new Error(t)};var b3=t=>{if(typeof process<"u")return process.env?.[t]?.trim()??void 0;if(typeof Deno<"u")return Deno.env?.get?.(t)?.trim()};function Xx(t){if(!t)return!0;for(let e in t)return!1;return!0}function Yx(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function Jx(t,e){for(let r in e){if(!Yx(e,r))continue;let n=r.toLowerCase();if(!n)continue;let a=e[r];a===null?delete t[n]:a!==void 0&&(t[n]=a)}}function Fs(t,...e){typeof process<"u"&&process?.env?.DEBUG==="true"&&console.log(`Runloop:DEBUG:${t}`,...e)}var xV=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>{let e=Math.random()*16|0;return(t==="x"?e:e&3|8).toString(16)});var $V=t=>typeof t?.get=="function";var cm=(t,e)=>{let r=e.toLowerCase();if($V(t)){let n=e[0]?.toUpperCase()+e.substring(1).replace(/([^\w])(\w)/g,(a,i,o)=>i+o.toUpperCase());for(let a of[e,r,e.toUpperCase(),n]){let i=t.get(a);if(i)return i}}for(let[n,a]of Object.entries(t))if(n.toLowerCase()===r)return Array.isArray(a)?(a.length<=1||console.warn(`Received ${a.length} entries for the ${e} header, using the first entry.`),a[0]):a};var be=class{constructor(e){this._client=e}};var hm=class extends nr{constructor(e,r,n,a){super(e,r,n,a),this.blueprints=n.blueprints||[],this.has_more=n.has_more||!1,this.total_count=n.total_count||0}getPaginatedItems(){return this.blueprints??[]}hasNextPage(){return this.has_more===!1?!1:super.hasNextPage()}nextPageParams(){let e=this.nextPageInfo();if(!e)return null;if("params"in e)return e.params;let r=Object.fromEntries(e.url.searchParams);return Object.keys(r).length?r:null}nextPageInfo(){let e=this.getPaginatedItems();if(!e.length)return null;let r=e[e.length-1]?.id;return r?{params:{starting_after:r}}:null}},gm=class extends nr{constructor(e,r,n,a){super(e,r,n,a),this.devboxes=n.devboxes||[],this.has_more=n.has_more||!1,this.total_count=n.total_count||0}getPaginatedItems(){return this.devboxes??[]}hasNextPage(){return this.has_more===!1?!1:super.hasNextPage()}nextPageParams(){let e=this.nextPageInfo();if(!e)return null;if("params"in e)return e.params;let r=Object.fromEntries(e.url.searchParams);return Object.keys(r).length?r:null}nextPageInfo(){let e=this.getPaginatedItems();if(!e.length)return null;let r=e[e.length-1]?.id;return r?{params:{starting_after:r}}:null}},vm=class extends nr{constructor(e,r,n,a){super(e,r,n,a),this.repositories=n.repositories||[],this.has_more=n.has_more||!1,this.total_count=n.total_count||0}getPaginatedItems(){return this.repositories??[]}hasNextPage(){return this.has_more===!1?!1:super.hasNextPage()}nextPageParams(){let e=this.nextPageInfo();if(!e)return null;if("params"in e)return e.params;let r=Object.fromEntries(e.url.searchParams);return Object.keys(r).length?r:null}nextPageInfo(){let e=this.getPaginatedItems();if(!e.length)return null;let r=e[e.length-1]?.id;return r?{params:{starting_after:r}}:null}},ym=class extends nr{constructor(e,r,n,a){super(e,r,n,a),this.snapshots=n.snapshots||[],this.has_more=n.has_more||!1,this.total_count=n.total_count||0}getPaginatedItems(){return this.snapshots??[]}hasNextPage(){return this.has_more===!1?!1:super.hasNextPage()}nextPageParams(){let e=this.nextPageInfo();if(!e)return null;if("params"in e)return e.params;let r=Object.fromEntries(e.url.searchParams);return Object.keys(r).length?r:null}nextPageInfo(){let e=this.getPaginatedItems();if(!e.length)return null;let r=e[e.length-1]?.id;return r?{params:{starting_after:r}}:null}},_m=class extends nr{constructor(e,r,n,a){super(e,r,n,a),this.benchmarks=n.benchmarks||[],this.has_more=n.has_more||!1,this.total_count=n.total_count||0}getPaginatedItems(){return this.benchmarks??[]}hasNextPage(){return this.has_more===!1?!1:super.hasNextPage()}nextPageParams(){let e=this.nextPageInfo();if(!e)return null;if("params"in e)return e.params;let r=Object.fromEntries(e.url.searchParams);return Object.keys(r).length?r:null}nextPageInfo(){let e=this.getPaginatedItems();if(!e.length)return null;let r=e[e.length-1]?.id;return r?{params:{starting_after:r}}:null}},bm=class extends nr{constructor(e,r,n,a){super(e,r,n,a),this.agents=n.agents||[],this.has_more=n.has_more||!1,this.total_count=n.total_count||0}getPaginatedItems(){return this.agents??[]}hasNextPage(){return this.has_more===!1?!1:super.hasNextPage()}nextPageParams(){let e=this.nextPageInfo();if(!e)return null;if("params"in e)return e.params;let r=Object.fromEntries(e.url.searchParams);return Object.keys(r).length?r:null}nextPageInfo(){let e=this.getPaginatedItems();if(!e.length)return null;let r=e[e.length-1]?.id;return r?{params:{starting_after:r}}:null}},Bs=class extends nr{constructor(e,r,n,a){super(e,r,n,a),this.runs=n.runs||[],this.has_more=n.has_more||!1,this.total_count=n.total_count||0}getPaginatedItems(){return this.runs??[]}hasNextPage(){return this.has_more===!1?!1:super.hasNextPage()}nextPageParams(){let e=this.nextPageInfo();if(!e)return null;if("params"in e)return e.params;let r=Object.fromEntries(e.url.searchParams);return Object.keys(r).length?r:null}nextPageInfo(){let e=this.getPaginatedItems();if(!e.length)return null;let r=e[e.length-1]?.id;return r?{params:{starting_after:r}}:null}},wm=class extends nr{constructor(e,r,n,a){super(e,r,n,a),this.scenarios=n.scenarios||[],this.has_more=n.has_more||!1,this.total_count=n.total_count||0}getPaginatedItems(){return this.scenarios??[]}hasNextPage(){return this.has_more===!1?!1:super.hasNextPage()}nextPageParams(){let e=this.nextPageInfo();if(!e)return null;if("params"in e)return e.params;let r=Object.fromEntries(e.url.searchParams);return Object.keys(r).length?r:null}nextPageInfo(){let e=this.getPaginatedItems();if(!e.length)return null;let r=e[e.length-1]?.id;return r?{params:{starting_after:r}}:null}};var xm=class extends nr{constructor(e,r,n,a){super(e,r,n,a),this.scorers=n.scorers||[],this.has_more=n.has_more||!1,this.total_count=n.total_count||0}getPaginatedItems(){return this.scorers??[]}hasNextPage(){return this.has_more===!1?!1:super.hasNextPage()}nextPageParams(){let e=this.nextPageInfo();if(!e)return null;if("params"in e)return e.params;let r=Object.fromEntries(e.url.searchParams);return Object.keys(r).length?r:null}nextPageInfo(){let e=this.getPaginatedItems();if(!e.length)return null;let r=e[e.length-1]?.id;return r?{params:{starting_after:r}}:null}},$m=class extends nr{constructor(e,r,n,a){super(e,r,n,a),this.objects=n.objects||[],this.has_more=n.has_more||!1,this.total_count=n.total_count||0}getPaginatedItems(){return this.objects??[]}hasNextPage(){return this.has_more===!1?!1:super.hasNextPage()}nextPageParams(){let e=this.nextPageInfo();if(!e)return null;if("params"in e)return e.params;let r=Object.fromEntries(e.url.searchParams);return Object.keys(r).length?r:null}nextPageInfo(){let e=this.getPaginatedItems();if(!e.length)return null;let r=e[e.length-1]?.id;return r?{params:{starting_after:r}}:null}},Sm=class extends nr{constructor(e,r,n,a){super(e,r,n,a),this.network_policies=n.network_policies||[],this.has_more=n.has_more||!1,this.total_count=n.total_count||0}getPaginatedItems(){return this.network_policies??[]}hasNextPage(){return this.has_more===!1?!1:super.hasNextPage()}nextPageParams(){let e=this.nextPageInfo();if(!e)return null;if("params"in e)return e.params;let r=Object.fromEntries(e.url.searchParams);return Object.keys(r).length?r:null}nextPageInfo(){let e=this.getPaginatedItems();if(!e.length)return null;let r=e[e.length-1]?.id;return r?{params:{starting_after:r}}:null}};var Ma=class extends be{create(e,r){return this._client.post("/v1/agents",{body:e,...r})}retrieve(e,r){return this._client.get(`/v1/agents/${e}`,r)}list(e={},r){return L(e)?this.list({},e):this._client.getAPIList("/v1/agents",Gi,{query:e,...r})}},Gi=class extends bm{};Ma.AgentViewsAgentsCursorIDPage=Gi;var SV={initialDelayMs:1e3,pollingIntervalMs:1e3},w3=class extends Error{constructor(e,r){super(`${e}. Last result: ${JSON.stringify(r,null,2)}`),this.lastResult=r,this.name="PollingTimeoutError"}},km=class extends Error{constructor(e,r){super(`${e}. Last result: ${JSON.stringify(r,null,2)}`),this.lastResult=r,this.name="MaxAttemptsExceededError"}},e$=t=>new Promise(e=>setTimeout(e,t));async function Or(t,e,r={}){let{initialDelayMs:n,pollingIntervalMs:a,maxAttempts:i,timeoutMs:o,shouldStop:s,onPollingAttempt:d,onError:p}={...SV,...r},l,c=null,u=o?new Promise((f,g)=>{c=setTimeout(()=>{g(new w3(`Polling timed out after ${o}ms`,l))},o)}):null,m=()=>{c&&(clearTimeout(c),c=null)};try{try{l=await t()}catch(g){if(p&&g instanceof at)l=p(g);else throw g}if(s?.(l))return m(),l;await e$(n);let f=0;for(;i===void 0||f{try{l=await e()}catch(b){if(p&&b instanceof at)l=p(b);else throw b}if(d?.(f,l),s?.(l))return l;if(i!==void 0&&f===i)throw new km(`Polling exceeded maximum attempts (${i})`,l);return await e$(a),null},y=u?await Promise.race([g(),u]):await g();if(y!==null)return m(),y}throw new km(`Polling exceeded maximum attempts (${i})`,l)}catch(f){throw m(),f}}var Ws=class extends be{retrieve(e,r){return this._client.get(`/v1/scenarios/runs/${e}`,r)}list(e={},r){return L(e)?this.list({},e):this._client.getAPIList("/v1/scenarios/runs",Hi,{query:e,...r})}cancel(e,r){return this._client.post(`/v1/scenarios/runs/${e}/cancel`,r)}complete(e,r){return this._client.post(`/v1/scenarios/runs/${e}/complete`,r)}downloadLogs(e,r){return this._client.post(`/v1/scenarios/runs/${e}/download_logs`,{...r,headers:{Accept:"application/zip",...r?.headers},__binaryResponse:!0})}score(e,r){return this._client.post(`/v1/scenarios/runs/${e}/score`,r)}async awaitScored(e,r){let n=await Or(()=>this.retrieve(e,r),()=>this.retrieve(e,r),{...r?.polling,shouldStop:a=>a.state!=="scoring"});if(n.state!=="scored")throw new nt(`Scenario run ${e} failed to transition to scored state. Final state: ${n.state}`);return n}async scoreAndAwait(e,r){let n=await this.score(e,r);return this.awaitScored(n.id,r)}async scoreAndComplete(e,r){let n=await this.scoreAndAwait(e,r);return this.complete(n.id,r)}};var Ki=class extends be{create(e,r){return this._client.post("/v1/scenarios/scorers",{body:e,...r})}retrieve(e,r){return this._client.get(`/v1/scenarios/scorers/${e}`,r)}update(e,r,n){return this._client.post(`/v1/scenarios/scorers/${e}`,{body:r,...n})}list(e={},r){return L(e)?this.list({},e):this._client.getAPIList("/v1/scenarios/scorers",Js,{query:e,...r})}validate(e,r,n){return this._client.post(`/v1/scenarios/scorers/${e}/validate`,{body:r,...n})}},Js=class extends xm{};Ki.ScorerListResponsesScenarioScorersCursorIDPage=Js;var Qr=class extends be{constructor(){super(...arguments),this.runs=new Ws(this._client),this.scorers=new Ki(this._client)}create(e,r){return this._client.post("/v1/scenarios",{body:e,...r})}retrieve(e,r){return this._client.get(`/v1/scenarios/${e}`,r)}update(e,r={},n){return L(r)?this.update(e,{},r):this._client.post(`/v1/scenarios/${e}`,{body:r,...n})}list(e={},r){return L(e)?this.list({},e):this._client.getAPIList("/v1/scenarios",qa,{query:e,...r})}listPublic(e={},r){return L(e)?this.listPublic({},e):this._client.getAPIList("/v1/scenarios/list_public",qa,{query:e,...r})}startRun(e,r){return this._client.post("/v1/scenarios/start_run",{body:e,...r})}async startRunAndAwaitEnvReady(e,r){let n=await this.startRun(e,r);return await this._client.devboxes.awaitRunning(n.devbox_id,r),n}},qa=class extends wm{},Hi=class extends Bs{};Qr.ScenarioViewsScenariosCursorIDPage=qa;Qr.Runs=Ws;Qr.Scorers=Ki;Qr.ScorerListResponsesScenarioScorersCursorIDPage=Js;var Za=class extends be{retrieve(e,r){return this._client.get(`/v1/benchmark_runs/${e}`,r)}list(e={},r){return L(e)?this.list({},e):this._client.getAPIList("/v1/benchmark_runs",Xi,{query:e,...r})}cancel(e,r){return this._client.post(`/v1/benchmark_runs/${e}/cancel`,r)}complete(e,r){return this._client.post(`/v1/benchmark_runs/${e}/complete`,r)}listScenarioRuns(e,r={},n){return L(r)?this.listScenarioRuns(e,{},r):this._client.getAPIList(`/v1/benchmark_runs/${e}/scenario_runs`,Hi,{query:r,...n})}},Xi=class extends Bs{};Za.BenchmarkRunViewsBenchmarkRunsCursorIDPage=Xi;var Fa=class extends be{create(e,r){return this._client.post("/v1/benchmarks",{body:e,...r})}retrieve(e,r){return this._client.get(`/v1/benchmarks/${e}`,r)}update(e,r={},n){return L(r)?this.update(e,{},r):this._client.post(`/v1/benchmarks/${e}`,{body:r,...n})}list(e={},r){return L(e)?this.list({},e):this._client.getAPIList("/v1/benchmarks",Ba,{query:e,...r})}definitions(e,r={},n){return L(r)?this.definitions(e,{},r):this._client.get(`/v1/benchmarks/${e}/definitions`,{query:r,...n})}listPublic(e={},r){return L(e)?this.listPublic({},e):this._client.getAPIList("/v1/benchmarks/list_public",Ba,{query:e,...r})}startRun(e,r){return this._client.post("/v1/benchmarks/start_run",{body:e,...r})}updateScenarios(e,r={},n){return L(r)?this.updateScenarios(e,{},r):this._client.post(`/v1/benchmarks/${e}/scenarios`,{body:r,...n})}},Ba=class extends _m{};Fa.BenchmarkViewsBenchmarksCursorIDPage=Ba;function Gs(t){if(t<1024)return`${t} bytes`;let e=[[1<<30,"GB"],[1<<20,"MB"],[1024,"KB"]];for(let[r,n]of e)if(t>=r){let a=t/r;return Number.isInteger(a)?`${a} ${n}`:`${a.toFixed(1)} ${n}`}return`${t} bytes`}function EV(t){let e=0;for(let r=0;r=55296&&n<=56319?(r+=1,e+=4):e+=3}return e}function n$(t){let e=[];if(!t)return e;let r=0;for(let[n,a]of Object.entries(t)){let i=EV(a??"");if(i>131e3){let o=i-131e3;e.push(`file_mount '${n}' is ${Gs(o)} over the limit (${Gs(i)} / ${Gs(131e3)}). Use object_mounts instead.`)}r+=i}if(r>131e4){let n=r-131e4;e.push(`total file_mounts size is ${Gs(n)} over the limit (${Gs(r)} / ${Gs(131e4)}). Use object_mounts instead.`)}return e}var Wa=class extends be{create(e,r){let n=n$(e?.file_mounts);if(n.length>0)throw new Error(n.join("; "));return this._client.post("/v1/blueprints",{body:e,...r})}retrieve(e,r){return this._client.get(`/v1/blueprints/${e}`,r)}async awaitBuildComplete(e,r){let n=await Or(()=>this.retrieve(e,r),()=>this.retrieve(e,r),{...r?.polling,shouldStop:a=>!["provisioning","building"].includes(a.status)});if(n.status!=="build_complete")throw new nt(`Blueprint ${e} is in non-complete state ${n.status}`);return n}async createAndAwaitBuildCompleted(e,r){let n=await this.create(e,r);return this.awaitBuildComplete(n.id,r)}list(e={},r){return L(e)?this.list({},e):this._client.getAPIList("/v1/blueprints",Ja,{query:e,...r})}delete(e,r){return this._client.post(`/v1/blueprints/${e}/delete`,r)}createFromInspection(e,r){let n=n$(e?.file_mounts);if(n.length>0)throw new Error(n.join("; "));return this._client.post("/v1/blueprints/create_from_inspection",{body:e,...r})}listPublic(e={},r){return L(e)?this.listPublic({},e):this._client.getAPIList("/v1/blueprints/list_public",Ja,{query:e,...r})}logs(e,r){return this._client.get(`/v1/blueprints/${e}/logs`,r)}preview(e,r){return this._client.post("/v1/blueprints/preview",{body:e,...r})}},Ja=class extends hm{};Wa.BlueprintViewsBlueprintsCursorIDPage=Ja;var Hs=class extends be{create(e={},r){return L(e)?this.create({},e):this._client.post("/v1/devboxes/browsers",{body:e,...r})}retrieve(e,r){return this._client.get(`/v1/devboxes/browsers/${e}`,r)}};var Ks=class extends be{create(e={},r){return L(e)?this.create({},e):this._client.post("/v1/devboxes/computers",{body:e,...r})}retrieve(e,r){return this._client.get(`/v1/devboxes/computers/${e}`,r)}keyboardInteraction(e,r,n){return this._client.post(`/v1/devboxes/computers/${e}/keyboard_interaction`,{body:r,...n})}mouseInteraction(e,r,n){return this._client.post(`/v1/devboxes/computers/${e}/mouse_interaction`,{body:r,...n})}screenInteraction(e,r,n){return this._client.post(`/v1/devboxes/computers/${e}/screen_interaction`,{body:r,...n})}};var Xs=class extends be{update(e,r={},n){return L(r)?this.update(e,{},r):this._client.post(`/v1/devboxes/disk_snapshots/${e}`,{body:r,...n})}list(e={},r){return L(e)?this.list({},e):this._client.getAPIList("/v1/devboxes/disk_snapshots",ra,{query:e,...r})}delete(e,r){return this._client.post(`/v1/devboxes/disk_snapshots/${e}/delete`,r)}queryStatus(e,r){return this._client.get(`/v1/devboxes/disk_snapshots/${e}/status`,r)}async awaitCompleted(e,r){let n=await Or(()=>this.queryStatus(e,r),()=>this.queryStatus(e,r),{...r?.polling,shouldStop:a=>a.status==="complete"||a.status==="error",onError:a=>{throw a}});if(n.status==="error")throw new Error(`Snapshot ${e} failed: ${n.error_message||"Unknown error"}`);return n}};async function x3(t,e){let r,n=await t(r);async function*a(){for(;;)try{for await(let i of n)e(i)!==void 0&&(r=e(i)),yield i;return}catch(i){if(i?.status===408){n=await t(r);continue}throw i}}return new Zs(a,n.controller)}var Ys=class extends be{retrieve(e,r,n={},a){return L(n)?this.retrieve(e,r,{},n):this._client.get(`/v1/devboxes/${e}/executions/${r}`,{query:n,...a})}executeAsync(e,r,n){return this._client.post(`/v1/devboxes/${e}/execute_async`,{body:r,...n})}async awaitCompleted(e,r,n){let a=()=>this._client.post(`/v1/devboxes/${e}/executions/${r}/wait_for_status`,{body:{statuses:["completed"]}});return await Or(()=>a(),()=>a(),{...n?.polling,shouldStop:o=>o.status==="completed",onError:o=>{if(o.status===408)return{status:"running"};throw o}})}executeSync(e,r,n){return this._client.post(`/v1/devboxes/${e}/execute_sync`,{body:r,timeout:this._client._options.timeout??6e5,...n})}kill(e,r,n={},a){return L(n)?this.kill(e,r,{},n):this._client.post(`/v1/devboxes/${e}/executions/${r}/kill`,{body:n,...a})}sendStdIn(e,r,n={},a){return L(n)?this.sendStdIn(e,r,{},n):this._client.post(`/v1/devboxes/${e}/executions/${r}/send_std_in`,{body:n,...a})}streamStderrUpdates(e,r,n={},a){let o={headers:{Accept:"text/event-stream"},...a};return x3(d=>this._client.get(`/v1/devboxes/${e}/executions/${r}/stream_stderr_updates`,{query:{...n,offset:d?.toString()||"0"},...o,stream:!0}),d=>d.offset)}streamStdoutUpdates(e,r,n={},a){let o={headers:{Accept:"text/event-stream"},...a};return x3(d=>this._client.get(`/v1/devboxes/${e}/executions/${r}/stream_stdout_updates`,{query:{...n,offset:d?.toString()||"0"},...o,stream:!0}),d=>d.offset)}};var Qs=class extends be{list(e,r={},n){return L(r)?this.list(e,{},r):this._client.get(`/v1/devboxes/${e}/logs`,{query:r,...n})}};async function $3(t){let{client:e,devboxId:r,targetState:n,statesToCheck:a,transitionStates:i,pollingOptions:o,errorMessage:s}=t,d=()=>e.post(`/v1/devboxes/${r}/wait_for_status`,{body:{statuses:a}}),p=await Or(()=>d(),()=>d(),{...o,shouldStop:l=>!i.includes(l.status),onError:l=>{if(l.status===408)return{status:i[0]};throw l}});if(p.status!==n)throw new Error(s(r,p.status));return p}var dt={};di(dt,{BRAND:()=>aL,DIRTY:()=>Yi,EMPTY_PATH:()=>jV,INVALID:()=>F,NEVER:()=>qL,OK:()=>At,ParseStatus:()=>St,Schema:()=>pe,ZodAny:()=>Ka,ZodArray:()=>oa,ZodBigInt:()=>eo,ZodBoolean:()=>to,ZodBranded:()=>Ol,ZodCatch:()=>mo,ZodDate:()=>ro,ZodDefault:()=>uo,ZodDiscriminatedUnion:()=>Im,ZodEffects:()=>Ar,ZodEnum:()=>lo,ZodError:()=>ar,ZodFirstPartyTypeKind:()=>H,ZodFunction:()=>Nm,ZodIntersection:()=>oo,ZodIssueCode:()=>w,ZodLazy:()=>so,ZodLiteral:()=>po,ZodMap:()=>id,ZodNaN:()=>sd,ZodNativeEnum:()=>co,ZodNever:()=>en,ZodNull:()=>ao,ZodNullable:()=>xn,ZodNumber:()=>Qi,ZodObject:()=>ir,ZodOptional:()=>Rr,ZodParsedType:()=>z,ZodPipeline:()=>Rl,ZodPromise:()=>Xa,ZodReadonly:()=>fo,ZodRecord:()=>Pm,ZodSchema:()=>pe,ZodSet:()=>od,ZodString:()=>Ha,ZodSymbol:()=>nd,ZodTransformer:()=>Ar,ZodTuple:()=>wn,ZodType:()=>pe,ZodUndefined:()=>no,ZodUnion:()=>io,ZodUnknown:()=>ia,ZodVoid:()=>ad,addIssueToContext:()=>I,any:()=>mL,array:()=>vL,bigint:()=>dL,boolean:()=>f$,coerce:()=>ML,custom:()=>c$,date:()=>pL,datetimeRegex:()=>p$,defaultErrorMap:()=>na,discriminatedUnion:()=>wL,effect:()=>RL,enum:()=>NL,function:()=>EL,getErrorMap:()=>ed,getParsedType:()=>bn,instanceof:()=>oL,intersection:()=>xL,isAborted:()=>Tm,isAsync:()=>td,isDirty:()=>Em,isValid:()=>Ga,late:()=>iL,lazy:()=>IL,literal:()=>PL,makeIssue:()=>zl,map:()=>kL,nan:()=>sL,nativeEnum:()=>zL,never:()=>hL,null:()=>uL,nullable:()=>AL,number:()=>m$,object:()=>yL,objectUtil:()=>S3,oboolean:()=>LL,onumber:()=>VL,optional:()=>DL,ostring:()=>UL,pipeline:()=>CL,preprocess:()=>jL,promise:()=>OL,quotelessJson:()=>RV,record:()=>SL,set:()=>TL,setErrorMap:()=>AV,strictObject:()=>_L,string:()=>u$,symbol:()=>lL,transformer:()=>RL,tuple:()=>$L,undefined:()=>cL,union:()=>bL,unknown:()=>fL,util:()=>ve,void:()=>gL});var ve;(function(t){t.assertEqual=a=>{};function e(a){}t.assertIs=e;function r(a){throw new Error}t.assertNever=r,t.arrayToEnum=a=>{let i={};for(let o of a)i[o]=o;return i},t.getValidEnumValues=a=>{let i=t.objectKeys(a).filter(s=>typeof a[a[s]]!="number"),o={};for(let s of i)o[s]=a[s];return t.objectValues(o)},t.objectValues=a=>t.objectKeys(a).map(function(i){return a[i]}),t.objectKeys=typeof Object.keys=="function"?a=>Object.keys(a):a=>{let i=[];for(let o in a)Object.prototype.hasOwnProperty.call(a,o)&&i.push(o);return i},t.find=(a,i)=>{for(let o of a)if(i(o))return o},t.isInteger=typeof Number.isInteger=="function"?a=>Number.isInteger(a):a=>typeof a=="number"&&Number.isFinite(a)&&Math.floor(a)===a;function n(a,i=" | "){return a.map(o=>typeof o=="string"?`'${o}'`:o).join(i)}t.joinValues=n,t.jsonStringifyReplacer=(a,i)=>typeof i=="bigint"?i.toString():i})(ve||(ve={}));var S3;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(S3||(S3={}));var z=ve.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),bn=t=>{switch(typeof t){case"undefined":return z.undefined;case"string":return z.string;case"number":return Number.isNaN(t)?z.nan:z.number;case"boolean":return z.boolean;case"function":return z.function;case"bigint":return z.bigint;case"symbol":return z.symbol;case"object":return Array.isArray(t)?z.array:t===null?z.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?z.promise:typeof Map<"u"&&t instanceof Map?z.map:typeof Set<"u"&&t instanceof Set?z.set:typeof Date<"u"&&t instanceof Date?z.date:z.object;default:return z.unknown}};var w=ve.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),RV=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:"),ar=class t extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}format(e){let r=e||function(i){return i.message},n={_errors:[]},a=i=>{for(let o of i.issues)if(o.code==="invalid_union")o.unionErrors.map(a);else if(o.code==="invalid_return_type")a(o.returnTypeError);else if(o.code==="invalid_arguments")a(o.argumentsError);else if(o.path.length===0)n._errors.push(r(o));else{let s=n,d=0;for(;dr.message){let r={},n=[];for(let a of this.issues)if(a.path.length>0){let i=a.path[0];r[i]=r[i]||[],r[i].push(e(a))}else n.push(e(a));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};ar.create=t=>new ar(t);var DV=(t,e)=>{let r;switch(t.code){case w.invalid_type:t.received===z.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case w.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,ve.jsonStringifyReplacer)}`;break;case w.unrecognized_keys:r=`Unrecognized key(s) in object: ${ve.joinValues(t.keys,", ")}`;break;case w.invalid_union:r="Invalid input";break;case w.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${ve.joinValues(t.options)}`;break;case w.invalid_enum_value:r=`Invalid enum value. Expected ${ve.joinValues(t.options)}, received '${t.received}'`;break;case w.invalid_arguments:r="Invalid function arguments";break;case w.invalid_return_type:r="Invalid function return type";break;case w.invalid_date:r="Invalid date";break;case w.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:ve.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case w.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case w.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case w.custom:r="Invalid input";break;case w.invalid_intersection_types:r="Intersection results could not be merged";break;case w.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case w.not_finite:r="Number must be finite";break;default:r=e.defaultError,ve.assertNever(t)}return{message:r}},na=DV;var a$=na;function AV(t){a$=t}function ed(){return a$}var zl=t=>{let{data:e,path:r,errorMaps:n,issueData:a}=t,i=[...r,...a.path||[]],o={...a,path:i};if(a.message!==void 0)return{...a,path:i,message:a.message};let s="",d=n.filter(p=>!!p).slice().reverse();for(let p of d)s=p(o,{data:e,defaultError:s}).message;return{...a,path:i,message:s}},jV=[];function I(t,e){let r=ed(),n=zl({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===na?void 0:na].filter(a=>!!a)});t.common.issues.push(n)}var St=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let a of r){if(a.status==="aborted")return F;a.status==="dirty"&&e.dirty(),n.push(a.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let a of r){let i=await a.key,o=await a.value;n.push({key:i,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let a of r){let{key:i,value:o}=a;if(i.status==="aborted"||o.status==="aborted")return F;i.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),i.value!=="__proto__"&&(typeof o.value<"u"||a.alwaysSet)&&(n[i.value]=o.value)}return{status:e.value,value:n}}},F=Object.freeze({status:"aborted"}),Yi=t=>({status:"dirty",value:t}),At=t=>({status:"valid",value:t}),Tm=t=>t.status==="aborted",Em=t=>t.status==="dirty",Ga=t=>t.status==="valid",td=t=>typeof Promise<"u"&&t instanceof Promise;var C;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(C||(C={}));var Dr=class{constructor(e,r,n,a){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=a}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},i$=(t,e)=>{if(Ga(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new ar(t.common.issues);return this._error=r,this._error}}};function re(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:a}=t;if(e&&(r||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:a}:{errorMap:(o,s)=>{let{message:d}=t;return o.code==="invalid_enum_value"?{message:d??s.defaultError}:typeof s.data>"u"?{message:d??n??s.defaultError}:o.code!=="invalid_type"?{message:s.defaultError}:{message:d??r??s.defaultError}},description:a}}var pe=class{get description(){return this._def.description}_getType(e){return bn(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:bn(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new St,ctx:{common:e.parent.common,data:e.data,parsedType:bn(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(td(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){let n={common:{issues:[],async:r?.async??!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:bn(e)},a=this._parseSync({data:e,path:n.path,parent:n});return i$(n,a)}"~validate"(e){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:bn(e)};if(!this["~standard"].async)try{let n=this._parseSync({data:e,path:[],parent:r});return Ga(n)?{value:n.value}:{issues:r.common.issues}}catch(n){n?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),r.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:r}).then(n=>Ga(n)?{value:n.value}:{issues:r.common.issues})}async parseAsync(e,r){let n=await this.safeParseAsync(e,r);if(n.success)return n.data;throw n.error}async safeParseAsync(e,r){let n={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:bn(e)},a=this._parse({data:e,path:n.path,parent:n}),i=await(td(a)?a:Promise.resolve(a));return i$(n,i)}refine(e,r){let n=a=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(a):r;return this._refinement((a,i)=>{let o=e(a),s=()=>i.addIssue({code:w.custom,...n(a)});return typeof Promise<"u"&&o instanceof Promise?o.then(d=>d?!0:(s(),!1)):o?!0:(s(),!1)})}refinement(e,r){return this._refinement((n,a)=>e(n)?!0:(a.addIssue(typeof r=="function"?r(n,a):r),!1))}_refinement(e){return new Ar({schema:this,typeName:H.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:r=>this["~validate"](r)}}optional(){return Rr.create(this,this._def)}nullable(){return xn.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return oa.create(this)}promise(){return Xa.create(this,this._def)}or(e){return io.create([this,e],this._def)}and(e){return oo.create(this,e,this._def)}transform(e){return new Ar({...re(this._def),schema:this,typeName:H.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new uo({...re(this._def),innerType:this,defaultValue:r,typeName:H.ZodDefault})}brand(){return new Ol({typeName:H.ZodBranded,type:this,...re(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new mo({...re(this._def),innerType:this,catchValue:r,typeName:H.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Rl.create(this,e)}readonly(){return fo.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},CV=/^c[^\s-]{8,}$/i,UV=/^[0-9a-z]+$/,VV=/^[0-9A-HJKMNP-TV-Z]{26}$/i,LV=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,MV=/^[a-z0-9_-]{21}$/i,qV=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,ZV=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,FV=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,BV="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",k3,WV=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,JV=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,GV=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,HV=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,KV=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,XV=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,s$="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",YV=new RegExp(`^${s$}$`);function d$(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);let r=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${r}`}function QV(t){return new RegExp(`^${d$(t)}$`)}function p$(t){let e=`${s$}T${d$(t)}`,r=[];return r.push(t.local?"Z?":"Z"),t.offset&&r.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${r.join("|")})`,new RegExp(`^${e}$`)}function eL(t,e){return!!((e==="v4"||!e)&&WV.test(t)||(e==="v6"||!e)&&GV.test(t))}function tL(t,e){if(!qV.test(t))return!1;try{let[r]=t.split(".");if(!r)return!1;let n=r.replace(/-/g,"+").replace(/_/g,"/").padEnd(r.length+(4-r.length%4)%4,"="),a=JSON.parse(atob(n));return!(typeof a!="object"||a===null||"typ"in a&&a?.typ!=="JWT"||!a.alg||e&&a.alg!==e)}catch{return!1}}function rL(t,e){return!!((e==="v4"||!e)&&JV.test(t)||(e==="v6"||!e)&&HV.test(t))}var Ha=class t extends pe{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==z.string){let i=this._getOrReturnCtx(e);return I(i,{code:w.invalid_type,expected:z.string,received:i.parsedType}),F}let n=new St,a;for(let i of this._def.checks)if(i.kind==="min")e.data.lengthi.value&&(a=this._getOrReturnCtx(e,a),I(a,{code:w.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),n.dirty());else if(i.kind==="length"){let o=e.data.length>i.value,s=e.data.lengthe.test(a),{validation:r,code:w.invalid_string,...C.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...C.errToObj(e)})}url(e){return this._addCheck({kind:"url",...C.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...C.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...C.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...C.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...C.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...C.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...C.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...C.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...C.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...C.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...C.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...C.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...C.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...C.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...C.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...C.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...C.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...C.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...C.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...C.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...C.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...C.errToObj(r)})}nonempty(e){return this.min(1,C.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxLength(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew Ha({checks:[],typeName:H.ZodString,coerce:t?.coerce??!1,...re(t)});function nL(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,a=r>n?r:n,i=Number.parseInt(t.toFixed(a).replace(".","")),o=Number.parseInt(e.toFixed(a).replace(".",""));return i%o/10**a}var Qi=class t extends pe{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==z.number){let i=this._getOrReturnCtx(e);return I(i,{code:w.invalid_type,expected:z.number,received:i.parsedType}),F}let n,a=new St;for(let i of this._def.checks)i.kind==="int"?ve.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),I(n,{code:w.invalid_type,expected:"integer",received:"float",message:i.message}),a.dirty()):i.kind==="min"?(i.inclusive?e.datai.value:e.data>=i.value)&&(n=this._getOrReturnCtx(e,n),I(n,{code:w.too_big,maximum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),a.dirty()):i.kind==="multipleOf"?nL(e.data,i.value)!==0&&(n=this._getOrReturnCtx(e,n),I(n,{code:w.not_multiple_of,multipleOf:i.value,message:i.message}),a.dirty()):i.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),I(n,{code:w.not_finite,message:i.message}),a.dirty()):ve.assertNever(i);return{status:a.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,C.toString(r))}gt(e,r){return this.setLimit("min",e,!1,C.toString(r))}lte(e,r){return this.setLimit("max",e,!0,C.toString(r))}lt(e,r){return this.setLimit("max",e,!1,C.toString(r))}setLimit(e,r,n,a){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:C.toString(a)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:C.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:C.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:C.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:C.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:C.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:C.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:C.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:C.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:C.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuee.kind==="int"||e.kind==="multipleOf"&&ve.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.valuenew Qi({checks:[],typeName:H.ZodNumber,coerce:t?.coerce||!1,...re(t)});var eo=class t extends pe{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==z.bigint)return this._getInvalidInput(e);let n,a=new St;for(let i of this._def.checks)i.kind==="min"?(i.inclusive?e.datai.value:e.data>=i.value)&&(n=this._getOrReturnCtx(e,n),I(n,{code:w.too_big,type:"bigint",maximum:i.value,inclusive:i.inclusive,message:i.message}),a.dirty()):i.kind==="multipleOf"?e.data%i.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),I(n,{code:w.not_multiple_of,multipleOf:i.value,message:i.message}),a.dirty()):ve.assertNever(i);return{status:a.value,value:e.data}}_getInvalidInput(e){let r=this._getOrReturnCtx(e);return I(r,{code:w.invalid_type,expected:z.bigint,received:r.parsedType}),F}gte(e,r){return this.setLimit("min",e,!0,C.toString(r))}gt(e,r){return this.setLimit("min",e,!1,C.toString(r))}lte(e,r){return this.setLimit("max",e,!0,C.toString(r))}lt(e,r){return this.setLimit("max",e,!1,C.toString(r))}setLimit(e,r,n,a){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:C.toString(a)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:C.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:C.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:C.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:C.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:C.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew eo({checks:[],typeName:H.ZodBigInt,coerce:t?.coerce??!1,...re(t)});var to=class extends pe{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==z.boolean){let n=this._getOrReturnCtx(e);return I(n,{code:w.invalid_type,expected:z.boolean,received:n.parsedType}),F}return At(e.data)}};to.create=t=>new to({typeName:H.ZodBoolean,coerce:t?.coerce||!1,...re(t)});var ro=class t extends pe{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==z.date){let i=this._getOrReturnCtx(e);return I(i,{code:w.invalid_type,expected:z.date,received:i.parsedType}),F}if(Number.isNaN(e.data.getTime())){let i=this._getOrReturnCtx(e);return I(i,{code:w.invalid_date}),F}let n=new St,a;for(let i of this._def.checks)i.kind==="min"?e.data.getTime()i.value&&(a=this._getOrReturnCtx(e,a),I(a,{code:w.too_big,message:i.message,inclusive:!0,exact:!1,maximum:i.value,type:"date"}),n.dirty()):ve.assertNever(i);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:C.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:C.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew ro({checks:[],coerce:t?.coerce||!1,typeName:H.ZodDate,...re(t)});var nd=class extends pe{_parse(e){if(this._getType(e)!==z.symbol){let n=this._getOrReturnCtx(e);return I(n,{code:w.invalid_type,expected:z.symbol,received:n.parsedType}),F}return At(e.data)}};nd.create=t=>new nd({typeName:H.ZodSymbol,...re(t)});var no=class extends pe{_parse(e){if(this._getType(e)!==z.undefined){let n=this._getOrReturnCtx(e);return I(n,{code:w.invalid_type,expected:z.undefined,received:n.parsedType}),F}return At(e.data)}};no.create=t=>new no({typeName:H.ZodUndefined,...re(t)});var ao=class extends pe{_parse(e){if(this._getType(e)!==z.null){let n=this._getOrReturnCtx(e);return I(n,{code:w.invalid_type,expected:z.null,received:n.parsedType}),F}return At(e.data)}};ao.create=t=>new ao({typeName:H.ZodNull,...re(t)});var Ka=class extends pe{constructor(){super(...arguments),this._any=!0}_parse(e){return At(e.data)}};Ka.create=t=>new Ka({typeName:H.ZodAny,...re(t)});var ia=class extends pe{constructor(){super(...arguments),this._unknown=!0}_parse(e){return At(e.data)}};ia.create=t=>new ia({typeName:H.ZodUnknown,...re(t)});var en=class extends pe{_parse(e){let r=this._getOrReturnCtx(e);return I(r,{code:w.invalid_type,expected:z.never,received:r.parsedType}),F}};en.create=t=>new en({typeName:H.ZodNever,...re(t)});var ad=class extends pe{_parse(e){if(this._getType(e)!==z.undefined){let n=this._getOrReturnCtx(e);return I(n,{code:w.invalid_type,expected:z.void,received:n.parsedType}),F}return At(e.data)}};ad.create=t=>new ad({typeName:H.ZodVoid,...re(t)});var oa=class t extends pe{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),a=this._def;if(r.parsedType!==z.array)return I(r,{code:w.invalid_type,expected:z.array,received:r.parsedType}),F;if(a.exactLength!==null){let o=r.data.length>a.exactLength.value,s=r.data.lengtha.maxLength.value&&(I(r,{code:w.too_big,maximum:a.maxLength.value,type:"array",inclusive:!0,exact:!1,message:a.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((o,s)=>a.type._parseAsync(new Dr(r,o,r.path,s)))).then(o=>St.mergeArray(n,o));let i=[...r.data].map((o,s)=>a.type._parseSync(new Dr(r,o,r.path,s)));return St.mergeArray(n,i)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:C.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:C.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:C.toString(r)}})}nonempty(e){return this.min(1,e)}};oa.create=(t,e)=>new oa({type:t,minLength:null,maxLength:null,exactLength:null,typeName:H.ZodArray,...re(e)});function rd(t){if(t instanceof ir){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=Rr.create(rd(n))}return new ir({...t._def,shape:()=>e})}else return t instanceof oa?new oa({...t._def,type:rd(t.element)}):t instanceof Rr?Rr.create(rd(t.unwrap())):t instanceof xn?xn.create(rd(t.unwrap())):t instanceof wn?wn.create(t.items.map(e=>rd(e))):t}var ir=class t extends pe{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=ve.objectKeys(e);return this._cached={shape:e,keys:r},this._cached}_parse(e){if(this._getType(e)!==z.object){let p=this._getOrReturnCtx(e);return I(p,{code:w.invalid_type,expected:z.object,received:p.parsedType}),F}let{status:n,ctx:a}=this._processInputParams(e),{shape:i,keys:o}=this._getCached(),s=[];if(!(this._def.catchall instanceof en&&this._def.unknownKeys==="strip"))for(let p in a.data)o.includes(p)||s.push(p);let d=[];for(let p of o){let l=i[p],c=a.data[p];d.push({key:{status:"valid",value:p},value:l._parse(new Dr(a,c,a.path,p)),alwaysSet:p in a.data})}if(this._def.catchall instanceof en){let p=this._def.unknownKeys;if(p==="passthrough")for(let l of s)d.push({key:{status:"valid",value:l},value:{status:"valid",value:a.data[l]}});else if(p==="strict")s.length>0&&(I(a,{code:w.unrecognized_keys,keys:s}),n.dirty());else if(p!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let p=this._def.catchall;for(let l of s){let c=a.data[l];d.push({key:{status:"valid",value:l},value:p._parse(new Dr(a,c,a.path,l)),alwaysSet:l in a.data})}}return a.common.async?Promise.resolve().then(async()=>{let p=[];for(let l of d){let c=await l.key,u=await l.value;p.push({key:c,value:u,alwaysSet:l.alwaysSet})}return p}).then(p=>St.mergeObjectSync(n,p)):St.mergeObjectSync(n,d)}get shape(){return this._def.shape()}strict(e){return C.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{let a=this._def.errorMap?.(r,n).message??n.defaultError;return r.code==="unrecognized_keys"?{message:C.errToObj(e).message??a}:{message:a}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:H.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};for(let n of ve.objectKeys(e))e[n]&&this.shape[n]&&(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}omit(e){let r={};for(let n of ve.objectKeys(this.shape))e[n]||(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}deepPartial(){return rd(this)}partial(e){let r={};for(let n of ve.objectKeys(this.shape)){let a=this.shape[n];e&&!e[n]?r[n]=a:r[n]=a.optional()}return new t({...this._def,shape:()=>r})}required(e){let r={};for(let n of ve.objectKeys(this.shape))if(e&&!e[n])r[n]=this.shape[n];else{let i=this.shape[n];for(;i instanceof Rr;)i=i._def.innerType;r[n]=i}return new t({...this._def,shape:()=>r})}keyof(){return l$(ve.objectKeys(this.shape))}};ir.create=(t,e)=>new ir({shape:()=>t,unknownKeys:"strip",catchall:en.create(),typeName:H.ZodObject,...re(e)});ir.strictCreate=(t,e)=>new ir({shape:()=>t,unknownKeys:"strict",catchall:en.create(),typeName:H.ZodObject,...re(e)});ir.lazycreate=(t,e)=>new ir({shape:t,unknownKeys:"strip",catchall:en.create(),typeName:H.ZodObject,...re(e)});var io=class extends pe{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function a(i){for(let s of i)if(s.result.status==="valid")return s.result;for(let s of i)if(s.result.status==="dirty")return r.common.issues.push(...s.ctx.common.issues),s.result;let o=i.map(s=>new ar(s.ctx.common.issues));return I(r,{code:w.invalid_union,unionErrors:o}),F}if(r.common.async)return Promise.all(n.map(async i=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await i._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(a);{let i,o=[];for(let d of n){let p={...r,common:{...r.common,issues:[]},parent:null},l=d._parseSync({data:r.data,path:r.path,parent:p});if(l.status==="valid")return l;l.status==="dirty"&&!i&&(i={result:l,ctx:p}),p.common.issues.length&&o.push(p.common.issues)}if(i)return r.common.issues.push(...i.ctx.common.issues),i.result;let s=o.map(d=>new ar(d));return I(r,{code:w.invalid_union,unionErrors:s}),F}}get options(){return this._def.options}};io.create=(t,e)=>new io({options:t,typeName:H.ZodUnion,...re(e)});var aa=t=>t instanceof so?aa(t.schema):t instanceof Ar?aa(t.innerType()):t instanceof po?[t.value]:t instanceof lo?t.options:t instanceof co?ve.objectValues(t.enum):t instanceof uo?aa(t._def.innerType):t instanceof no?[void 0]:t instanceof ao?[null]:t instanceof Rr?[void 0,...aa(t.unwrap())]:t instanceof xn?[null,...aa(t.unwrap())]:t instanceof Ol||t instanceof fo?aa(t.unwrap()):t instanceof mo?aa(t._def.innerType):[],Im=class t extends pe{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==z.object)return I(r,{code:w.invalid_type,expected:z.object,received:r.parsedType}),F;let n=this.discriminator,a=r.data[n],i=this.optionsMap.get(a);return i?r.common.async?i._parseAsync({data:r.data,path:r.path,parent:r}):i._parseSync({data:r.data,path:r.path,parent:r}):(I(r,{code:w.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),F)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let a=new Map;for(let i of r){let o=aa(i.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let s of o){if(a.has(s))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(s)}`);a.set(s,i)}}return new t({typeName:H.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:a,...re(n)})}};function T3(t,e){let r=bn(t),n=bn(e);if(t===e)return{valid:!0,data:t};if(r===z.object&&n===z.object){let a=ve.objectKeys(e),i=ve.objectKeys(t).filter(s=>a.indexOf(s)!==-1),o={...t,...e};for(let s of i){let d=T3(t[s],e[s]);if(!d.valid)return{valid:!1};o[s]=d.data}return{valid:!0,data:o}}else if(r===z.array&&n===z.array){if(t.length!==e.length)return{valid:!1};let a=[];for(let i=0;i{if(Tm(i)||Tm(o))return F;let s=T3(i.value,o.value);return s.valid?((Em(i)||Em(o))&&r.dirty(),{status:r.value,value:s.data}):(I(n,{code:w.invalid_intersection_types}),F)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([i,o])=>a(i,o)):a(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};oo.create=(t,e,r)=>new oo({left:t,right:e,typeName:H.ZodIntersection,...re(r)});var wn=class t extends pe{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==z.array)return I(n,{code:w.invalid_type,expected:z.array,received:n.parsedType}),F;if(n.data.lengththis._def.items.length&&(I(n,{code:w.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let i=[...n.data].map((o,s)=>{let d=this._def.items[s]||this._def.rest;return d?d._parse(new Dr(n,o,n.path,s)):null}).filter(o=>!!o);return n.common.async?Promise.all(i).then(o=>St.mergeArray(r,o)):St.mergeArray(r,i)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};wn.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new wn({items:t,typeName:H.ZodTuple,rest:null,...re(e)})};var Pm=class t extends pe{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==z.object)return I(n,{code:w.invalid_type,expected:z.object,received:n.parsedType}),F;let a=[],i=this._def.keyType,o=this._def.valueType;for(let s in n.data)a.push({key:i._parse(new Dr(n,s,n.path,s)),value:o._parse(new Dr(n,n.data[s],n.path,s)),alwaysSet:s in n.data});return n.common.async?St.mergeObjectAsync(r,a):St.mergeObjectSync(r,a)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof pe?new t({keyType:e,valueType:r,typeName:H.ZodRecord,...re(n)}):new t({keyType:Ha.create(),valueType:e,typeName:H.ZodRecord,...re(r)})}},id=class extends pe{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==z.map)return I(n,{code:w.invalid_type,expected:z.map,received:n.parsedType}),F;let a=this._def.keyType,i=this._def.valueType,o=[...n.data.entries()].map(([s,d],p)=>({key:a._parse(new Dr(n,s,n.path,[p,"key"])),value:i._parse(new Dr(n,d,n.path,[p,"value"]))}));if(n.common.async){let s=new Map;return Promise.resolve().then(async()=>{for(let d of o){let p=await d.key,l=await d.value;if(p.status==="aborted"||l.status==="aborted")return F;(p.status==="dirty"||l.status==="dirty")&&r.dirty(),s.set(p.value,l.value)}return{status:r.value,value:s}})}else{let s=new Map;for(let d of o){let p=d.key,l=d.value;if(p.status==="aborted"||l.status==="aborted")return F;(p.status==="dirty"||l.status==="dirty")&&r.dirty(),s.set(p.value,l.value)}return{status:r.value,value:s}}}};id.create=(t,e,r)=>new id({valueType:e,keyType:t,typeName:H.ZodMap,...re(r)});var od=class t extends pe{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==z.set)return I(n,{code:w.invalid_type,expected:z.set,received:n.parsedType}),F;let a=this._def;a.minSize!==null&&n.data.sizea.maxSize.value&&(I(n,{code:w.too_big,maximum:a.maxSize.value,type:"set",inclusive:!0,exact:!1,message:a.maxSize.message}),r.dirty());let i=this._def.valueType;function o(d){let p=new Set;for(let l of d){if(l.status==="aborted")return F;l.status==="dirty"&&r.dirty(),p.add(l.value)}return{status:r.value,value:p}}let s=[...n.data.values()].map((d,p)=>i._parse(new Dr(n,d,n.path,p)));return n.common.async?Promise.all(s).then(d=>o(d)):o(s)}min(e,r){return new t({...this._def,minSize:{value:e,message:C.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:C.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};od.create=(t,e)=>new od({valueType:t,minSize:null,maxSize:null,typeName:H.ZodSet,...re(e)});var Nm=class t extends pe{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==z.function)return I(r,{code:w.invalid_type,expected:z.function,received:r.parsedType}),F;function n(s,d){return zl({data:s,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,ed(),na].filter(p=>!!p),issueData:{code:w.invalid_arguments,argumentsError:d}})}function a(s,d){return zl({data:s,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,ed(),na].filter(p=>!!p),issueData:{code:w.invalid_return_type,returnTypeError:d}})}let i={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof Xa){let s=this;return At(async function(...d){let p=new ar([]),l=await s._def.args.parseAsync(d,i).catch(m=>{throw p.addIssue(n(d,m)),p}),c=await Reflect.apply(o,this,l);return await s._def.returns._def.type.parseAsync(c,i).catch(m=>{throw p.addIssue(a(c,m)),p})})}else{let s=this;return At(function(...d){let p=s._def.args.safeParse(d,i);if(!p.success)throw new ar([n(d,p.error)]);let l=Reflect.apply(o,this,p.data),c=s._def.returns.safeParse(l,i);if(!c.success)throw new ar([a(l,c.error)]);return c.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:wn.create(e).rest(ia.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,n){return new t({args:e||wn.create([]).rest(ia.create()),returns:r||ia.create(),typeName:H.ZodFunction,...re(n)})}},so=class extends pe{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};so.create=(t,e)=>new so({getter:t,typeName:H.ZodLazy,...re(e)});var po=class extends pe{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return I(r,{received:r.data,code:w.invalid_literal,expected:this._def.value}),F}return{status:"valid",value:e.data}}get value(){return this._def.value}};po.create=(t,e)=>new po({value:t,typeName:H.ZodLiteral,...re(e)});function l$(t,e){return new lo({values:t,typeName:H.ZodEnum,...re(e)})}var lo=class t extends pe{_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return I(r,{expected:ve.joinValues(n),received:r.parsedType,code:w.invalid_type}),F}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return I(r,{received:r.data,code:w.invalid_enum_value,options:n}),F}return At(e.data)}get options(){return this._def.values}get enum(){let e={};for(let r of this._def.values)e[r]=r;return e}get Values(){let e={};for(let r of this._def.values)e[r]=r;return e}get Enum(){let e={};for(let r of this._def.values)e[r]=r;return e}extract(e,r=this._def){return t.create(e,{...this._def,...r})}exclude(e,r=this._def){return t.create(this.options.filter(n=>!e.includes(n)),{...this._def,...r})}};lo.create=l$;var co=class extends pe{_parse(e){let r=ve.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==z.string&&n.parsedType!==z.number){let a=ve.objectValues(r);return I(n,{expected:ve.joinValues(a),received:n.parsedType,code:w.invalid_type}),F}if(this._cache||(this._cache=new Set(ve.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let a=ve.objectValues(r);return I(n,{received:n.data,code:w.invalid_enum_value,options:a}),F}return At(e.data)}get enum(){return this._def.values}};co.create=(t,e)=>new co({values:t,typeName:H.ZodNativeEnum,...re(e)});var Xa=class extends pe{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==z.promise&&r.common.async===!1)return I(r,{code:w.invalid_type,expected:z.promise,received:r.parsedType}),F;let n=r.parsedType===z.promise?r.data:Promise.resolve(r.data);return At(n.then(a=>this._def.type.parseAsync(a,{path:r.path,errorMap:r.common.contextualErrorMap})))}};Xa.create=(t,e)=>new Xa({type:t,typeName:H.ZodPromise,...re(e)});var Ar=class extends pe{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===H.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),a=this._def.effect||null,i={addIssue:o=>{I(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),a.type==="preprocess"){let o=a.transform(n.data,i);if(n.common.async)return Promise.resolve(o).then(async s=>{if(r.value==="aborted")return F;let d=await this._def.schema._parseAsync({data:s,path:n.path,parent:n});return d.status==="aborted"?F:d.status==="dirty"?Yi(d.value):r.value==="dirty"?Yi(d.value):d});{if(r.value==="aborted")return F;let s=this._def.schema._parseSync({data:o,path:n.path,parent:n});return s.status==="aborted"?F:s.status==="dirty"?Yi(s.value):r.value==="dirty"?Yi(s.value):s}}if(a.type==="refinement"){let o=s=>{let d=a.refinement(s,i);if(n.common.async)return Promise.resolve(d);if(d instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return s};if(n.common.async===!1){let s=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?F:(s.status==="dirty"&&r.dirty(),o(s.value),{status:r.value,value:s.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(s=>s.status==="aborted"?F:(s.status==="dirty"&&r.dirty(),o(s.value).then(()=>({status:r.value,value:s.value}))))}if(a.type==="transform")if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!Ga(o))return F;let s=a.transform(o.value,i);if(s instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:s}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>Ga(o)?Promise.resolve(a.transform(o.value,i)).then(s=>({status:r.value,value:s})):F);ve.assertNever(a)}};Ar.create=(t,e,r)=>new Ar({schema:t,typeName:H.ZodEffects,effect:e,...re(r)});Ar.createWithPreprocess=(t,e,r)=>new Ar({schema:e,effect:{type:"preprocess",transform:t},typeName:H.ZodEffects,...re(r)});var Rr=class extends pe{_parse(e){return this._getType(e)===z.undefined?At(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Rr.create=(t,e)=>new Rr({innerType:t,typeName:H.ZodOptional,...re(e)});var xn=class extends pe{_parse(e){return this._getType(e)===z.null?At(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};xn.create=(t,e)=>new xn({innerType:t,typeName:H.ZodNullable,...re(e)});var uo=class extends pe{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===z.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};uo.create=(t,e)=>new uo({innerType:t,typeName:H.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...re(e)});var mo=class extends pe{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},a=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return td(a)?a.then(i=>({status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new ar(n.common.issues)},input:n.data})})):{status:"valid",value:a.status==="valid"?a.value:this._def.catchValue({get error(){return new ar(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};mo.create=(t,e)=>new mo({innerType:t,typeName:H.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...re(e)});var sd=class extends pe{_parse(e){if(this._getType(e)!==z.nan){let n=this._getOrReturnCtx(e);return I(n,{code:w.invalid_type,expected:z.nan,received:n.parsedType}),F}return{status:"valid",value:e.data}}};sd.create=t=>new sd({typeName:H.ZodNaN,...re(t)});var aL=Symbol("zod_brand"),Ol=class extends pe{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},Rl=class t extends pe{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let i=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?F:i.status==="dirty"?(r.dirty(),Yi(i.value)):this._def.out._parseAsync({data:i.value,path:n.path,parent:n})})();{let a=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?F:a.status==="dirty"?(r.dirty(),{status:"dirty",value:a.value}):this._def.out._parseSync({data:a.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:H.ZodPipeline})}},fo=class extends pe{_parse(e){let r=this._def.innerType._parse(e),n=a=>(Ga(a)&&(a.value=Object.freeze(a.value)),a);return td(r)?r.then(a=>n(a)):n(r)}unwrap(){return this._def.innerType}};fo.create=(t,e)=>new fo({innerType:t,typeName:H.ZodReadonly,...re(e)});function o$(t,e){let r=typeof t=="function"?t(e):typeof t=="string"?{message:t}:t;return typeof r=="string"?{message:r}:r}function c$(t,e={},r){return t?Ka.create().superRefine((n,a)=>{let i=t(n);if(i instanceof Promise)return i.then(o=>{if(!o){let s=o$(e,n),d=s.fatal??r??!0;a.addIssue({code:"custom",...s,fatal:d})}});if(!i){let o=o$(e,n),s=o.fatal??r??!0;a.addIssue({code:"custom",...o,fatal:s})}}):Ka.create()}var iL={object:ir.lazycreate},H;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(H||(H={}));var oL=(t,e={message:`Input not instance of ${t.name}`})=>c$(r=>r instanceof t,e),u$=Ha.create,m$=Qi.create,sL=sd.create,dL=eo.create,f$=to.create,pL=ro.create,lL=nd.create,cL=no.create,uL=ao.create,mL=Ka.create,fL=ia.create,hL=en.create,gL=ad.create,vL=oa.create,yL=ir.create,_L=ir.strictCreate,bL=io.create,wL=Im.create,xL=oo.create,$L=wn.create,SL=Pm.create,kL=id.create,TL=od.create,EL=Nm.create,IL=so.create,PL=po.create,NL=lo.create,zL=co.create,OL=Xa.create,RL=Ar.create,DL=Rr.create,AL=xn.create,jL=Ar.createWithPreprocess,CL=Rl.create,UL=()=>u$().optional(),VL=()=>m$().optional(),LL=()=>f$().optional(),ML={string:(t=>Ha.create({...t,coerce:!0})),number:(t=>Qi.create({...t,coerce:!0})),boolean:(t=>to.create({...t,coerce:!0})),bigint:(t=>eo.create({...t,coerce:!0})),date:(t=>ro.create({...t,coerce:!0}))};var qL=F;var zm=class{constructor(e){this.devboxes=e}fileTools(e,r){return{read_file_contents:{name:"read_file_contents",description:"Read contents of a file on the devbox",parameters:dt.object({file_path:dt.string().describe("The path of the file to read relative to the user home directory")}),execute:async a=>this.devboxes.readFileContents(e,{file_path:a.file_path},r)},write_file_contents:{name:"write_file_contents",description:"Write contents to a file on the devbox",parameters:dt.object({file_path:dt.string().describe("The path of the file to write relative to the user home directory"),contents:dt.string().describe("The contents to write to the file")}),execute:async a=>{try{return await this.devboxes.writeFileContents(e,{file_path:a.file_path,contents:a.contents},r),"File written successfully"}catch(i){return`Failed to write file: ${i}`}}}}}shellTools(e,r){return{execute_command:{name:"execute_command",description:"Execute a shell command on the devbox",parameters:dt.object({command:dt.string().describe("The shell command to execute")}),execute:async a=>{try{let i=await this.devboxes.executeSync(e,{command:a.command},r);return JSON.stringify(i,null,2)}catch(i){return`Failed to execute command: ${i}`}}},execute_command_async:{name:"execute_command_async",description:"Execute a shell command asynchronously on the devbox",parameters:dt.object({command:dt.string().describe("The shell command to execute asynchronously")}),execute:async a=>{try{return`Async command execution started with ID: ${(await this.devboxes.executeAsync(e,{command:a.command},r)).execution_id}`}catch(i){return`Failed to execute async command: ${i}`}}},retrieve_async_command_status:{name:"retrieve_async_command_status",description:"Retrieve the status and output of an asynchronous command execution",parameters:dt.object({execution_id:dt.string().describe("The ID of the async execution to retrieve")}),execute:async a=>{try{let i=await this.devboxes.executions.retrieve(e,a.execution_id,r);return JSON.stringify(i,null,2)}catch(i){return`Failed to retrieve async command execution: ${i}`}}},kill_async_command:{name:"kill_async_command",description:"Kill an asynchronous command execution",parameters:dt.object({execution_id:dt.string().describe("The ID of the async execution to kill")}),execute:async a=>{try{return await this.devboxes.executions.kill(e,a.execution_id,r),"Async command execution killed successfully"}catch(i){return`Failed to kill async command execution: ${i}`}}}}}tunnelTools(e,r){return{create_tunnel:{name:"create_tunnel",description:"Create a new tunnel to expose a port on the devbox",parameters:dt.object({port:dt.number().describe("The port number to tunnel"),protocol:dt.enum(["http","https","tcp"]).describe("The protocol to use for the tunnel")}),execute:async a=>{try{let i=await this.devboxes.createTunnel(e,{port:a.port},r);return`Created tunnel: ${JSON.stringify(i,null,2)}`}catch(i){return`Failed to create tunnel: ${i}`}}},remove_tunnel:{name:"remove_tunnel",description:"Delete a tunnel",parameters:dt.object({port:dt.number().describe("The port of the tunnel to delete")}),execute:async a=>{try{return await this.devboxes.removeTunnel(e,{port:a.port},r),"Tunnel deleted successfully"}catch(i){return`Failed to delete tunnel: ${i}`}}}}}};var ZL=["provisioning","initializing"],or=class extends be{constructor(){super(...arguments),this.diskSnapshots=new Xs(this._client),this.browsers=new Hs(this._client),this.computers=new Ks(this._client),this.logs=new Qs(this._client),this.executions=new Ys(this._client)}create(e={},r){return L(e)?this.create({},e):this._client.post("/v1/devboxes",{body:e,...r})}retrieve(e,r){return this._client.get(`/v1/devboxes/${e}`,r)}async awaitRunning(e,r){return $3({client:this._client,devboxId:e,targetState:"running",statesToCheck:["running","failure","shutdown"],transitionStates:ZL,pollingOptions:r?.polling,errorMessage:(n,a)=>`Devbox ${n} is in non-running state ${a}`})}async awaitSuspended(e,r){return $3({client:this._client,devboxId:e,targetState:"suspended",statesToCheck:["suspended","failure","shutdown"],transitionStates:["suspending"],pollingOptions:r?.polling,errorMessage:(n,a)=>`Devbox ${n} is in non-suspended state ${a}`})}async createAndAwaitRunning(e,r){let n=await this.create(e,r);return this.awaitRunning(n.id,r)}update(e,r={},n){return L(r)?this.update(e,{},r):this._client.post(`/v1/devboxes/${e}`,{body:r,...n})}list(e={},r){return L(e)?this.list({},e):this._client.getAPIList("/v1/devboxes",ho,{query:e,...r})}createSSHKey(e,r){return this._client.post(`/v1/devboxes/${e}/create_ssh_key`,r)}createTunnel(e,r,n){return this._client.post(`/v1/devboxes/${e}/create_tunnel`,{body:r,...n})}deleteDiskSnapshot(e,r){return this._client.post(`/v1/devboxes/disk_snapshots/${e}/delete`,r)}downloadFile(e,r,n){return this._client.post(`/v1/devboxes/${e}/download_file`,{body:r,timeout:this._client._options.timeout??6e5,...n,headers:{Accept:"application/octet-stream",...n?.headers},__binaryResponse:!0})}execute(e,r,n){let{last_n:a,...i}=r;return this._client.post(`/v1/devboxes/${e}/execute`,{body:{...i,command_id:i.command_id||Kh()},query:{last_n:a},timeout:this._client._options.timeout??6e5,...n})}async executeAndAwaitCompletion(e,r,n){let a=Kh(),i=await this.execute(e,{...r,command_id:a},{timeout:n?.timeout??n?.polling?.timeoutMs??6e5,...n});if(i.status==="completed")return i;let o={statuses:["completed"]};return r.last_n&&(o.last_n=r.last_n),await Or(()=>this.waitForCommand(e,i.execution_id,o),()=>this.waitForCommand(e,i.execution_id,o),{...n?.polling,shouldStop:d=>d.status==="completed",onError:d=>{if(d.status===408)return i;throw d}})}executeAsync(e,r,n){return this._client.post(`/v1/devboxes/${e}/execute_async`,{body:r,...n})}executeSync(e,r,n){return this._client.post(`/v1/devboxes/${e}/execute_sync`,{body:r,timeout:this._client._options.timeout??6e5,...n})}keepAlive(e,r){return this._client.post(`/v1/devboxes/${e}/keep_alive`,r)}listDiskSnapshots(e={},r){return L(e)?this.listDiskSnapshots({},e):this._client.getAPIList("/v1/devboxes/disk_snapshots",ra,{query:e,...r})}readFileContents(e,r,n){return this._client.post(`/v1/devboxes/${e}/read_file_contents`,{body:r,timeout:this._client._options.timeout??6e5,...n,headers:{Accept:"text/plain",...n?.headers}})}removeTunnel(e,r,n){return this._client.post(`/v1/devboxes/${e}/remove_tunnel`,{body:r,...n})}resume(e,r){return this._client.post(`/v1/devboxes/${e}/resume`,r)}shutdown(e,r){return this._client.post(`/v1/devboxes/${e}/shutdown`,r)}snapshotDisk(e,r={},n){return L(r)?this.snapshotDisk(e,{},r):this._client.post(`/v1/devboxes/${e}/snapshot_disk`,{body:r,timeout:this._client._options.timeout??6e5,...n})}snapshotDiskAsync(e,r={},n){return L(r)?this.snapshotDiskAsync(e,{},r):this._client.post(`/v1/devboxes/${e}/snapshot_disk_async`,{body:r,...n})}suspend(e,r){return this._client.post(`/v1/devboxes/${e}/suspend`,r)}uploadFile(e,r,n){return this._client.post(`/v1/devboxes/${e}/upload_file`,v3({body:r,timeout:this._client._options.timeout??6e5,...n}))}waitForCommand(e,r,n,a){let{last_n:i,...o}=n;return this._client.post(`/v1/devboxes/${e}/executions/${r}/wait_for_status`,{query:{last_n:i},body:o,...a})}writeFileContents(e,r,n){return this._client.post(`/v1/devboxes/${e}/write_file_contents`,{body:r,timeout:this._client._options.timeout??6e5,...n})}get tools(){return new zm(this)}},ho=class extends gm{},ra=class extends ym{};or.DevboxViewsDevboxesCursorIDPage=ho;or.DevboxSnapshotViewsDiskSnapshotsCursorIDPage=ra;or.DiskSnapshots=Xs;or.Browsers=Hs;or.Computers=Ks;or.Logs=Qs;or.Executions=Ys;var Ya=class extends be{create(e,r){return this._client.post("/v1/network-policies",{body:e,...r})}retrieve(e,r){return this._client.get(`/v1/network-policies/${e}`,r)}update(e,r={},n){return L(r)?this.update(e,{},r):this._client.post(`/v1/network-policies/${e}`,{body:r,...n})}list(e={},r){return L(e)?this.list({},e):this._client.getAPIList("/v1/network-policies",go,{query:e,...r})}delete(e,r,n){return this._client.post(`/v1/network-policies/${e}/delete`,{body:r,...n})}},go=class extends Sm{};Ya.NetworkPolicyViewsNetworkPoliciesCursorIDPage=go;var Qa=class extends be{create(e,r){return this._client.post("/v1/objects",{body:e,...r})}retrieve(e,r){return this._client.get(`/v1/objects/${e}`,r)}list(e={},r){return L(e)?this.list({},e):this._client.getAPIList("/v1/objects",ei,{query:e,...r})}delete(e,r,n){return this._client.post(`/v1/objects/${e}/delete`,{body:r,...n})}complete(e,r,n){return this._client.post(`/v1/objects/${e}/complete`,{body:r,...n})}download(e,r={},n){return L(r)?this.download(e,{},r):this._client.get(`/v1/objects/${e}/download`,{query:r,...n})}listPublic(e={},r){return L(e)?this.listPublic({},e):this._client.getAPIList("/v1/objects/list_public",ei,{query:e,...r})}},ei=class extends $m{};Qa.ObjectViewsObjectsCursorIDPage=ei;var ti=class extends be{create(e,r){return this._client.post("/v1/repositories",{body:e,...r})}retrieve(e,r){return this._client.get(`/v1/repositories/${e}`,r)}list(e={},r){return L(e)?this.list({},e):this._client.getAPIList("/v1/repositories",vo,{query:e,...r})}delete(e,r,n){return this._client.post(`/v1/repositories/${e}/delete`,{body:r,...n})}inspect(e,r={},n){return L(r)?this.inspect(e,{},r):this._client.post(`/v1/repositories/${e}/inspect`,{body:r,...n})}listInspections(e,r){return this._client.get(`/v1/repositories/${e}/inspections`,r)}refresh(e,r={},n){return L(r)?this.refresh(e,{},r):this._client.post(`/v1/repositories/${e}/refresh`,{body:r,...n})}retrieveInspection(e,r){return this._client.get(`/v1/repositories/inspections/${e}`,r)}},vo=class extends vm{};ti.RepositoryConnectionViewsRepositoriesCursorIDPage=vo;var yo=class extends be{create(e,r){return this._client.post("/v1/secrets",{body:e,...r})}update(e,r,n){return this._client.post(`/v1/secrets/${e}`,{body:r,...n})}list(e={},r){return L(e)?this.list({},e):this._client.get("/v1/secrets",{query:e,...r})}delete(e,r,n){return this._client.post(`/v1/secrets/${e}/delete`,{body:r,...n})}};var h$,g$,BL,ne=class extends fm{constructor({baseURL:e=b3("RUNLOOP_BASE_URL"),bearerToken:r=b3("RUNLOOP_API_KEY"),...n}={}){if(r===void 0)throw new nt("The RUNLOOP_API_KEY environment variable is missing or empty; either provide it, or instantiate the Runloop client with an bearerToken option, like new Runloop({ bearerToken: 'My Bearer Token' }).");let a={bearerToken:r,...n,baseURL:e||"https://api.runloop.ai"};super({baseURL:a.baseURL,baseURLOverridden:e?e!=="https://api.runloop.ai":!1,timeout:a.timeout??3e4,httpAgent:a.httpAgent,maxRetries:a.maxRetries,fetch:a.fetch}),h$.add(this),this.benchmarks=new Fa(this),this.benchmarkRuns=new Za(this),this.agents=new Ma(this),this.blueprints=new Wa(this),this.devboxes=new or(this),this.scenarios=new Qr(this),this.objects=new Qa(this),this.repositories=new ti(this),this.secrets=new yo(this),this.networkPolicies=new Ya(this),this._options=a,this.idempotencyHeader="x-request-id",this.bearerToken=r}defaultQuery(){return this._options.defaultQuery}defaultHeaders(e){return{...super.defaultHeaders(e),...this._options.defaultHeaders}}authHeaders(e){return{Authorization:`Bearer ${this.bearerToken}`}}};g$=ne,h$=new WeakSet,BL=function(){return this.baseURL!=="https://api.runloop.ai"};ne.Runloop=g$;ne.DEFAULT_TIMEOUT=3e4;ne.RunloopError=nt;ne.APIError=at;ne.APIConnectionError=ta;ne.APIConnectionTimeoutError=Bi;ne.APIUserAbortError=La;ne.NotFoundError=Us;ne.ConflictError=Vs;ne.RateLimitError=Ms;ne.BadRequestError=As;ne.AuthenticationError=js;ne.InternalServerError=qs;ne.PermissionDeniedError=Cs;ne.UnprocessableEntityError=Ls;ne.toFile=h3;ne.fileFromPath=l1;ne.Benchmarks=Fa;ne.BenchmarkViewsBenchmarksCursorIDPage=Ba;ne.BenchmarkRuns=Za;ne.BenchmarkRunViewsBenchmarkRunsCursorIDPage=Xi;ne.Agents=Ma;ne.AgentViewsAgentsCursorIDPage=Gi;ne.Blueprints=Wa;ne.BlueprintViewsBlueprintsCursorIDPage=Ja;ne.Devboxes=or;ne.DevboxViewsDevboxesCursorIDPage=ho;ne.DevboxSnapshotViewsDiskSnapshotsCursorIDPage=ra;ne.Scenarios=Qr;ne.ScenarioViewsScenariosCursorIDPage=qa;ne.Objects=Qa;ne.ObjectViewsObjectsCursorIDPage=ei;ne.Repositories=ti;ne.RepositoryConnectionViewsRepositoriesCursorIDPage=vo;ne.Secrets=yo;ne.NetworkPolicies=Ya;ne.NetworkPolicyViewsNetworkPoliciesCursorIDPage=go;var v$=ne;var lT=Ze(y$(),1);var I5=require("node:util"),Xm=Ze(require("node:process"),1),En=Ze(require("node:fs"),1),Hl=Ze(require("node:path"),1),oi=Ze(require("node:crypto"),1),P5=Ze(require("node:assert"),1);var _o=t=>{let e=typeof t;return t!==null&&(e==="object"||e==="function")};var _$=new Set(["__proto__","prototype","constructor"]),b$=1e6,WL=t=>t>="0"&&t<="9";function w$(t){if(t==="0")return!0;if(/^[1-9]\d*$/.test(t)){let e=Number.parseInt(t,10);return e<=Number.MAX_SAFE_INTEGER&&e<=b$}return!1}function E3(t,e){return _$.has(t)?!1:(t&&w$(t)?e.push(Number.parseInt(t,10)):e.push(t),!0)}function JL(t){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);let e=[],r="",n="start",a=!1,i=0;for(let o of t){if(i++,a){r+=o,a=!1;continue}if(o==="\\"){if(n==="index")throw new Error(`Invalid character '${o}' in an index at position ${i}`);if(n==="indexEnd")throw new Error(`Invalid character '${o}' after an index at position ${i}`);a=!0,n=n==="start"?"property":n;continue}switch(o){case".":{if(n==="index")throw new Error(`Invalid character '${o}' in an index at position ${i}`);if(n==="indexEnd"){n="property";break}if(!E3(r,e))return[];r="",n="property";break}case"[":{if(n==="index")throw new Error(`Invalid character '${o}' in an index at position ${i}`);if(n==="indexEnd"){n="index";break}if(n==="property"||n==="start"){if((r||n==="property")&&!E3(r,e))return[];r=""}n="index";break}case"]":{if(n==="index"){if(r==="")r=(e.pop()||"")+"[]",n="property";else{let s=Number.parseInt(r,10);!Number.isNaN(s)&&Number.isFinite(s)&&s>=0&&s<=Number.MAX_SAFE_INTEGER&&s<=b$&&r===String(s)?e.push(s):e.push(r),r="",n="indexEnd"}break}if(n==="indexEnd")throw new Error(`Invalid character '${o}' after an index at position ${i}`);r+=o;break}default:{if(n==="index"&&!WL(o))throw new Error(`Invalid character '${o}' in an index at position ${i}`);if(n==="indexEnd")throw new Error(`Invalid character '${o}' after an index at position ${i}`);n==="start"&&(n="property"),r+=o}}}switch(a&&(r+="\\"),n){case"property":{if(!E3(r,e))return[];break}case"index":throw new Error("Index was not closed");case"start":{e.push("");break}}return e}function Rm(t){if(typeof t=="string")return JL(t);if(Array.isArray(t)){let e=[];for(let[r,n]of t.entries()){if(typeof n!="string"&&typeof n!="number")throw new TypeError(`Expected a string or number for path segment at index ${r}, got ${typeof n}`);if(typeof n=="number"&&!Number.isFinite(n))throw new TypeError(`Path segment at index ${r} must be a finite number, got ${n}`);if(_$.has(n))return[];typeof n=="string"&&w$(n)?e.push(Number.parseInt(n,10)):e.push(n)}return e}return[]}function I3(t,e,r){if(!_o(t)||typeof e!="string"&&!Array.isArray(e))return r===void 0?t:r;let n=Rm(e);if(n.length===0)return r;for(let a=0;a{let e=Qe.default.join(ri,"Library");return{data:Qe.default.join(e,"Application Support",t),config:Qe.default.join(e,"Preferences",t),cache:Qe.default.join(e,"Caches",t),log:Qe.default.join(e,"Logs",t),temp:Qe.default.join(N3,t)}},HL=t=>{let e=dd.APPDATA||Qe.default.join(ri,"AppData","Roaming"),r=dd.LOCALAPPDATA||Qe.default.join(ri,"AppData","Local");return{data:Qe.default.join(r,t,"Data"),config:Qe.default.join(e,t,"Config"),cache:Qe.default.join(r,t,"Cache"),log:Qe.default.join(r,t,"Log"),temp:Qe.default.join(N3,t)}},KL=t=>{let e=Qe.default.basename(ri);return{data:Qe.default.join(dd.XDG_DATA_HOME||Qe.default.join(ri,".local","share"),t),config:Qe.default.join(dd.XDG_CONFIG_HOME||Qe.default.join(ri,".config"),t),cache:Qe.default.join(dd.XDG_CACHE_HOME||Qe.default.join(ri,".cache"),t),log:Qe.default.join(dd.XDG_STATE_HOME||Qe.default.join(ri,".local","state"),t),temp:Qe.default.join(N3,e,t)}};function z3(t,{suffix:e="nodejs"}={}){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);return e&&(t+=`-${e}`),Am.default.platform==="darwin"?GL(t):Am.default.platform==="win32"?HL(t):KL(t)}var C$=Ze(require("node:path"),1);var ke=Ze(require("node:fs"),1),Tt=require("node:util");var XL=(t,e)=>{let{onError:r}=e;return function(...a){return t.apply(void 0,a).catch(r)}},$n=XL;var YL=(t,e)=>{let{onError:r}=e;return function(...a){try{return t.apply(void 0,a)}catch(i){return r(i)}}},tn=YL;var eM=(t,e)=>{let{isRetriable:r}=e;return function(a){let{timeout:i}=a,o=a.interval??250,s=Date.now()+i;return function d(...p){return t.apply(void 0,p).catch(l=>{if(!r(l)||Date.now()>=s)throw l;let c=Math.round(o*Math.random());return c>0?new Promise(m=>setTimeout(m,c)).then(()=>d.apply(void 0,p)):d.apply(void 0,p)})}}},Sn=eM;var tM=(t,e)=>{let{isRetriable:r}=e;return function(a){let{timeout:i}=a,o=Date.now()+i;return function(...d){for(;;)try{return t.apply(void 0,d)}catch(p){if(!r(p)||Date.now()>=o)throw p;continue}}}},kn=tM;var R3=Ze(require("node:process"),1);var Al={isChangeErrorOk:t=>{if(!Al.isNodeError(t))return!1;let{code:e}=t;return e==="ENOSYS"||!$$&&(e==="EINVAL"||e==="EPERM")},isNodeError:t=>t instanceof Error,isRetriableError:t=>{if(!Al.isNodeError(t))return!1;let{code:e}=t;return e==="EMFILE"||e==="ENFILE"||e==="EAGAIN"||e==="EBUSY"||e==="EACCESS"||e==="EACCES"||e==="EACCS"||e==="EPERM"},onChangeError:t=>{if(!Al.isNodeError(t))throw t;if(!Al.isChangeErrorOk(t))throw t}},O3=Al;var jl={onError:O3.onChangeError},sr={onError:()=>{}},$$=R3.default.getuid?!R3.default.getuid():!1,kt={isRetriable:O3.isRetriableError};var rM={attempt:{chmod:$n((0,Tt.promisify)(ke.default.chmod),jl),chown:$n((0,Tt.promisify)(ke.default.chown),jl),close:$n((0,Tt.promisify)(ke.default.close),sr),fsync:$n((0,Tt.promisify)(ke.default.fsync),sr),mkdir:$n((0,Tt.promisify)(ke.default.mkdir),sr),realpath:$n((0,Tt.promisify)(ke.default.realpath),sr),stat:$n((0,Tt.promisify)(ke.default.stat),sr),unlink:$n((0,Tt.promisify)(ke.default.unlink),sr),chmodSync:tn(ke.default.chmodSync,jl),chownSync:tn(ke.default.chownSync,jl),closeSync:tn(ke.default.closeSync,sr),existsSync:tn(ke.default.existsSync,sr),fsyncSync:tn(ke.default.fsync,sr),mkdirSync:tn(ke.default.mkdirSync,sr),realpathSync:tn(ke.default.realpathSync,sr),statSync:tn(ke.default.statSync,sr),unlinkSync:tn(ke.default.unlinkSync,sr)},retry:{close:Sn((0,Tt.promisify)(ke.default.close),kt),fsync:Sn((0,Tt.promisify)(ke.default.fsync),kt),open:Sn((0,Tt.promisify)(ke.default.open),kt),readFile:Sn((0,Tt.promisify)(ke.default.readFile),kt),rename:Sn((0,Tt.promisify)(ke.default.rename),kt),stat:Sn((0,Tt.promisify)(ke.default.stat),kt),write:Sn((0,Tt.promisify)(ke.default.write),kt),writeFile:Sn((0,Tt.promisify)(ke.default.writeFile),kt),closeSync:kn(ke.default.closeSync,kt),fsyncSync:kn(ke.default.fsyncSync,kt),openSync:kn(ke.default.openSync,kt),readFileSync:kn(ke.default.readFileSync,kt),renameSync:kn(ke.default.renameSync,kt),statSync:kn(ke.default.statSync,kt),writeSync:kn(ke.default.writeSync,kt),writeFileSync:kn(ke.default.writeFileSync,kt)}},gt=rM;var ni=Ze(require("node:process"),1),S$="utf8",D3=438,k$=511;var T$={},E$=ni.default.geteuid?ni.default.geteuid():-1,I$=ni.default.getegid?ni.default.getegid():-1;var P$=1e3,N$=!!ni.default.getuid,gse=ni.default.getuid?!ni.default.getuid():!1,A3=128;var z$=t=>t instanceof Error&&"code"in t;var j3=t=>typeof t=="string",jm=t=>t===void 0;var j$=Ze(require("node:path"),1);var bo=Ze(require("node:process"),1);var C3=Ze(require("node:process"),1),O$=C3.default.platform==="linux",Cm=C3.default.platform==="win32";var U3=["SIGHUP","SIGINT","SIGTERM"];Cm||U3.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");O$&&U3.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var R$=U3;var V3=class{constructor(){this.callbacks=new Set,this.exited=!1,this.exit=e=>{if(!this.exited){this.exited=!0;for(let r of this.callbacks)r();e&&(Cm&&e!=="SIGINT"&&e!=="SIGTERM"&&e!=="SIGKILL"?bo.default.kill(bo.default.pid,"SIGTERM"):bo.default.kill(bo.default.pid,e))}},this.hook=()=>{bo.default.once("exit",()=>this.exit());for(let e of R$)try{bo.default.once(e,()=>this.exit(e))}catch{}},this.register=e=>(this.callbacks.add(e),()=>{this.callbacks.delete(e)}),this.hook()}},D$=new V3;var nM=D$.register,A$=nM;var vr={store:{},create:t=>{let e=`000000${Math.floor(Math.random()*16777215).toString(16)}`.slice(-6),a=`.tmp-${Date.now().toString().slice(-10)}${e}`;return`${t}${a}`},get:(t,e,r=!0)=>{let n=vr.truncate(e(t));return n in vr.store?vr.get(t,e,r):(vr.store[n]=r,[n,()=>delete vr.store[n]])},purge:t=>{vr.store[t]&&(delete vr.store[t],gt.attempt.unlink(t))},purgeSync:t=>{vr.store[t]&&(delete vr.store[t],gt.attempt.unlinkSync(t))},purgeSyncAll:()=>{for(let t in vr.store)vr.purgeSync(t)},truncate:t=>{let e=j$.default.basename(t);if(e.length<=A3)return t;let r=/^(\.?)(.*?)((?:\.[^.]+)?(?:\.tmp-\d{10}[a-f0-9]{6})?)$/.exec(e);if(!r)return t;let n=e.length-A3;return`${t.slice(0,-e.length)}${r[1]}${r[2].slice(0,-n)}${r[3]}`}};A$(vr.purgeSyncAll);var Cl=vr;function L3(t,e,r=T$){if(j3(r))return L3(t,e,{encoding:r});let a={timeout:r.timeout??P$},i=null,o=null,s=null;try{let d=gt.attempt.realpathSync(t),p=!!d;t=d||t,[o,i]=Cl.get(t,r.tmpCreate||Cl.create,r.tmpPurge!==!1);let l=N$&&jm(r.chown),c=jm(r.mode);if(p&&(l||c)){let u=gt.attempt.statSync(t);u&&(r={...r},l&&(r.chown={uid:u.uid,gid:u.gid}),c&&(r.mode=u.mode))}if(!p){let u=C$.default.dirname(t);gt.attempt.mkdirSync(u,{mode:k$,recursive:!0})}s=gt.retry.openSync(a)(o,"w",r.mode||D3),r.tmpCreated&&r.tmpCreated(o),j3(e)?gt.retry.writeSync(a)(s,e,0,r.encoding||S$):jm(e)||gt.retry.writeSync(a)(s,e,0,e.length,0),r.fsync!==!1&&(r.fsyncWait!==!1?gt.retry.fsyncSync(a)(s):gt.attempt.fsync(s)),gt.retry.closeSync(a)(s),s=null,r.chown&&(r.chown.uid!==E$||r.chown.gid!==I$)&>.attempt.chownSync(o,r.chown.uid,r.chown.gid),r.mode&&r.mode!==D3&>.attempt.chmodSync(o,r.mode);try{gt.retry.renameSync(a)(o,t)}catch(u){if(!z$(u)||u.code!=="ENAMETOOLONG")throw u;gt.retry.renameSync(a)(o,Cl.truncate(t))}i(),o=null}finally{s&>.attempt.closeSync(s),o&&Cl.purge(o)}}var sT=Ze(mS(),1),dT=Ze(Wh(),1);var gq=(t,e,r,n)=>{if(r==="length"||r==="prototype"||r==="arguments"||r==="caller")return;let a=Object.getOwnPropertyDescriptor(t,r),i=Object.getOwnPropertyDescriptor(e,r);!vq(a,i)&&n||Object.defineProperty(t,r,i)},vq=function(t,e){return t===void 0||t.configurable||t.writable===e.writable&&t.enumerable===e.enumerable&&t.configurable===e.configurable&&(t.writable||t.value===e.value)},yq=(t,e)=>{let r=Object.getPrototypeOf(e);r!==Object.getPrototypeOf(t)&&Object.setPrototypeOf(t,r)},_q=(t,e)=>`/* Wrapped ${t}*/ -${e}`,bq=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),wq=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),xq=(t,e,r)=>{let n=r===""?"":`with ${r.trim()}() `,a=_q.bind(null,n,e.toString());Object.defineProperty(a,"name",wq);let{writable:i,enumerable:o,configurable:s}=bq;Object.defineProperty(t,"toString",{value:a,writable:i,enumerable:o,configurable:s})};function a5(t,e,{ignoreNonConfigurable:r=!1}={}){let{name:n}=t;for(let a of Reflect.ownKeys(e))gq(t,e,a,r);return yq(t,e),xq(t,e,n),t}var $q=(t,e={})=>{if(typeof t!="function")throw new TypeError(`Expected the first argument to be a function, got \`${typeof t}\``);let{wait:r=0,maxWait:n=Number.POSITIVE_INFINITY,before:a=!1,after:i=!0}=e;if(r<0||n<0)throw new RangeError("`wait` and `maxWait` must not be negative.");if(!a&&!i)throw new Error("Both `before` and `after` are false, function wouldn't be called.");let o,s,d,p=function(...l){let c=this,u=()=>{o=void 0,s&&(clearTimeout(s),s=void 0),i&&(d=t.apply(c,l))},m=()=>{s=void 0,o&&(clearTimeout(o),o=void 0),i&&(d=t.apply(c,l))},f=a&&!o;return clearTimeout(o),o=setTimeout(u,r),n>0&&n!==Number.POSITIVE_INFINITY&&!s&&(s=setTimeout(m,n)),f&&(d=t.apply(c,l)),d};return a5(p,t),p.cancel=()=>{o&&(clearTimeout(o),o=void 0),s&&(clearTimeout(s),s=void 0)},p},i5=$q;var $o=Ze(rT(),1);var _B=Object.prototype.toString,bB="[object Uint8Array]",wB="[object ArrayBuffer]";function aT(t,e,r){return t?t.constructor===e?!0:_B.call(t)===r:!1}function iT(t){return aT(t,Uint8Array,bB)}function xB(t){return aT(t,ArrayBuffer,wB)}function $B(t){return iT(t)||xB(t)}function SB(t){if(!iT(t))throw new TypeError(`Expected \`Uint8Array\`, got \`${typeof t}\``)}function kB(t){if(!$B(t))throw new TypeError(`Expected \`Uint8Array\` or \`ArrayBuffer\`, got \`${typeof t}\``)}function Km(t,e){if(t.length===0)return new Uint8Array(0);e??=t.reduce((a,i)=>a+i.length,0);let r=new Uint8Array(e),n=0;for(let a of t)SB(a),r.set(a,n),n+=a.length;return r}var nT={utf8:new globalThis.TextDecoder("utf8")};function Jl(t,e="utf8"){return kB(t),nT[e]??=new globalThis.TextDecoder(e),nT[e].decode(t)}function TB(t){if(typeof t!="string")throw new TypeError(`Expected \`string\`, got \`${typeof t}\``)}var EB=new globalThis.TextEncoder;function Gl(t){return TB(t),EB.encode(t)}var ape=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));var k5="aes-256-cbc",ii=()=>Object.create(null),oT=t=>t!==void 0,T5=(t,e)=>{let r=new Set(["undefined","symbol","function"]),n=typeof e;if(r.has(n))throw new TypeError(`Setting a value of type \`${n}\` for key \`${t}\` is not allowed as it's not supported by JSON`)},si="__internal__",E5=`${si}.migrations.version`,Kl=class{path;events;#a;#r;#e;#t={};#i=!1;#o;#s;#n;constructor(e={}){let r=this.#d(e);this.#e=r,this.#p(r),this.#c(r),this.#u(r),this.events=new EventTarget,this.#r=r.encryptionKey,this.path=this.#m(r),this.#f(r),r.watch&&this._watch()}get(e,r){if(this.#e.accessPropertiesByDotNotation)return this._get(e,r);let{store:n}=this;return e in n?n[e]:r}set(e,r){if(typeof e!="string"&&typeof e!="object")throw new TypeError(`Expected \`key\` to be of type \`string\` or \`object\`, got ${typeof e}`);if(typeof e!="object"&&r===void 0)throw new TypeError("Use `delete()` to clear values");if(this._containsReservedKey(e))throw new TypeError(`Please don't use the ${si} key, as it's used to manage this module internal operations.`);let{store:n}=this,a=(i,o)=>{if(T5(i,o),this.#e.accessPropertiesByDotNotation)Dl(n,i,o);else{if(i==="__proto__"||i==="constructor"||i==="prototype")return;n[i]=o}};if(typeof e=="object"){let i=e;for(let[o,s]of Object.entries(i))a(o,s)}else a(e,r);this.store=n}has(e){return this.#e.accessPropertiesByDotNotation?Dm(this.store,e):e in this.store}appendToArray(e,r){T5(e,r);let n=this.#e.accessPropertiesByDotNotation?this._get(e,[]):e in this.store?this.store[e]:[];if(!Array.isArray(n))throw new TypeError(`The key \`${e}\` is already set to a non-array value`);this.set(e,[...n,r])}reset(...e){for(let r of e)oT(this.#t[r])&&this.set(r,this.#t[r])}delete(e){let{store:r}=this;this.#e.accessPropertiesByDotNotation?x$(r,e):delete r[e],this.store=r}clear(){let e=ii();for(let r of Object.keys(this.#t))oT(this.#t[r])&&(T5(r,this.#t[r]),this.#e.accessPropertiesByDotNotation?Dl(e,r,this.#t[r]):e[r]=this.#t[r]);this.store=e}onDidChange(e,r){if(typeof e!="string")throw new TypeError(`Expected \`key\` to be of type \`string\`, got ${typeof e}`);if(typeof r!="function")throw new TypeError(`Expected \`callback\` to be of type \`function\`, got ${typeof r}`);return this._handleValueChange(()=>this.get(e),r)}onDidAnyChange(e){if(typeof e!="function")throw new TypeError(`Expected \`callback\` to be of type \`function\`, got ${typeof e}`);return this._handleStoreChange(e)}get size(){return Object.keys(this.store).filter(r=>!this._isReservedKeyPath(r)).length}get store(){try{let e=En.default.readFileSync(this.path,this.#r?null:"utf8"),r=this._decryptData(e),n=this._deserialize(r);return this.#i||this._validate(n),Object.assign(ii(),n)}catch(e){if(e?.code==="ENOENT")return this._ensureDirectory(),ii();if(this.#e.clearInvalidConfig){let r=e;if(r.name==="SyntaxError"||r.message?.startsWith("Config schema violation:"))return ii()}throw e}}set store(e){if(this._ensureDirectory(),!Dm(e,si))try{let r=En.default.readFileSync(this.path,this.#r?null:"utf8"),n=this._decryptData(r),a=this._deserialize(n);Dm(a,si)&&Dl(e,si,I3(a,si))}catch{}this.#i||this._validate(e),this._write(e),this.events.dispatchEvent(new Event("change"))}*[Symbol.iterator](){for(let[e,r]of Object.entries(this.store))this._isReservedKeyPath(e)||(yield[e,r])}_closeWatcher(){this.#o&&(this.#o.close(),this.#o=void 0),this.#s&&(En.default.unwatchFile(this.path),this.#s=!1),this.#n=void 0}_decryptData(e){if(!this.#r)return typeof e=="string"?e:Jl(e);try{let r=e.slice(0,16),n=oi.default.pbkdf2Sync(this.#r,r,1e4,32,"sha512"),a=oi.default.createDecipheriv(k5,n,r),i=e.slice(17),o=typeof i=="string"?Gl(i):i;return Jl(Km([a.update(o),a.final()]))}catch{try{let r=e.slice(0,16),n=oi.default.pbkdf2Sync(this.#r,r.toString(),1e4,32,"sha512"),a=oi.default.createDecipheriv(k5,n,r),i=e.slice(17),o=typeof i=="string"?Gl(i):i;return Jl(Km([a.update(o),a.final()]))}catch{}}return typeof e=="string"?e:Jl(e)}_handleStoreChange(e){let r=this.store,n=()=>{let a=r,i=this.store;(0,I5.isDeepStrictEqual)(i,a)||(r=i,e.call(this,i,a))};return this.events.addEventListener("change",n),()=>{this.events.removeEventListener("change",n)}}_handleValueChange(e,r){let n=e(),a=()=>{let i=n,o=e();(0,I5.isDeepStrictEqual)(o,i)||(n=o,r.call(this,o,i))};return this.events.addEventListener("change",a),()=>{this.events.removeEventListener("change",a)}}_deserialize=e=>JSON.parse(e);_serialize=e=>JSON.stringify(e,void 0," ");_validate(e){if(!this.#a||this.#a(e)||!this.#a.errors)return;let n=this.#a.errors.map(({instancePath:a,message:i=""})=>`\`${a.slice(1)}\` ${i}`);throw new Error("Config schema violation: "+n.join("; "))}_ensureDirectory(){En.default.mkdirSync(Hl.default.dirname(this.path),{recursive:!0})}_write(e){let r=this._serialize(e);if(this.#r){let n=oi.default.randomBytes(16),a=oi.default.pbkdf2Sync(this.#r,n,1e4,32,"sha512"),i=oi.default.createCipheriv(k5,a,n);r=Km([n,Gl(":"),i.update(Gl(r)),i.final()])}if(Xm.default.env.SNAP)En.default.writeFileSync(this.path,r,{mode:this.#e.configFileMode});else try{L3(this.path,r,{mode:this.#e.configFileMode})}catch(n){if(n?.code==="EXDEV"){En.default.writeFileSync(this.path,r,{mode:this.#e.configFileMode});return}throw n}}_watch(){if(this._ensureDirectory(),En.default.existsSync(this.path)||this._write(ii()),Xm.default.platform==="win32"||Xm.default.platform==="darwin"){this.#n??=i5(()=>{this.events.dispatchEvent(new Event("change"))},{wait:100});let e=Hl.default.dirname(this.path),r=Hl.default.basename(this.path);this.#o=En.default.watch(e,{persistent:!1,encoding:"utf8"},(n,a)=>{a&&a!==r||typeof this.#n=="function"&&this.#n()})}else this.#n??=i5(()=>{this.events.dispatchEvent(new Event("change"))},{wait:1e3}),En.default.watchFile(this.path,{persistent:!1},(e,r)=>{typeof this.#n=="function"&&this.#n()}),this.#s=!0}_migrate(e,r,n){let a=this._get(E5,"0.0.0"),i=Object.keys(e).filter(s=>this._shouldPerformMigration(s,a,r)),o=structuredClone(this.store);for(let s of i)try{n&&n(this,{fromVersion:a,toVersion:s,finalVersion:r,versions:i});let d=e[s];d?.(this),this._set(E5,s),a=s,o=structuredClone(this.store)}catch(d){this.store=o;try{this._write(o)}catch{}let p=d instanceof Error?d.message:String(d);throw new Error(`Something went wrong during the migration! Changes applied to the store until this failed migration will be restored. ${p}`)}(this._isVersionInRangeFormat(a)||!$o.default.eq(a,r))&&this._set(E5,r)}_containsReservedKey(e){return typeof e=="string"?this._isReservedKeyPath(e):!e||typeof e!="object"?!1:this._objectContainsReservedKey(e)}_objectContainsReservedKey(e){if(!e||typeof e!="object")return!1;for(let[r,n]of Object.entries(e))if(this._isReservedKeyPath(r)||this._objectContainsReservedKey(n))return!0;return!1}_isReservedKeyPath(e){return e===si||e.startsWith(`${si}.`)}_isVersionInRangeFormat(e){return $o.default.clean(e)===null}_shouldPerformMigration(e,r,n){return this._isVersionInRangeFormat(e)?r!=="0.0.0"&&$o.default.satisfies(r,e)?!1:$o.default.satisfies(n,e):!($o.default.lte(e,r)||$o.default.gt(e,n))}_get(e,r){return I3(this.store,e,r)}_set(e,r){let{store:n}=this;Dl(n,e,r),this.store=n}#d(e){let r={configName:"config",fileExtension:"json",projectSuffix:"nodejs",clearInvalidConfig:!1,accessPropertiesByDotNotation:!0,configFileMode:438,...e};if(!r.cwd){if(!r.projectName)throw new Error("Please specify the `projectName` option.");r.cwd=z3(r.projectName,{suffix:r.projectSuffix}).config}return typeof r.fileExtension=="string"&&(r.fileExtension=r.fileExtension.replace(/^\.+/,"")),r}#p(e){if(!(e.schema??e.ajvOptions??e.rootSchema))return;if(e.schema&&typeof e.schema!="object")throw new TypeError("The `schema` option must be an object.");let r=dT.default.default,n=new sT.Ajv2020({allErrors:!0,useDefaults:!0,...e.ajvOptions});r(n);let a={...e.rootSchema,type:"object",properties:e.schema};this.#a=n.compile(a),this.#l(e.schema)}#l(e){let r=Object.entries(e??{});for(let[n,a]of r){if(!a||typeof a!="object"||!Object.hasOwn(a,"default"))continue;let{default:i}=a;i!==void 0&&(this.#t[n]=i)}}#c(e){e.defaults&&Object.assign(this.#t,e.defaults)}#u(e){e.serialize&&(this._serialize=e.serialize),e.deserialize&&(this._deserialize=e.deserialize)}#m(e){let r=typeof e.fileExtension=="string"?e.fileExtension:void 0,n=r?`.${r}`:"";return Hl.default.resolve(e.cwd,`${e.configName??"config"}${n}`)}#f(e){if(e.migrations){this.#h(e),this._validate(this.store);return}let r=this.store,n=Object.assign(ii(),e.defaults??{},r);this._validate(n);try{P5.default.deepEqual(r,n)}catch{this.store=n}}#h(e){let{migrations:r,projectVersion:n}=e;if(r){if(!n)throw new Error("Please specify the `projectVersion` option.");this.#i=!0;try{let a=this.store,i=Object.assign(ii(),e.defaults??{},a);try{P5.default.deepEqual(a,i)}catch{this._write(i)}this._migrate(r,n,e.beforeEachMigration)}finally{this.#i=!1}}}};var IB=process.exit.bind(process),PB=process.stdout.write.bind(process.stdout),NB=process.stderr.write.bind(process.stderr),zB=process.cwd.bind(process),OB=process.on.bind(process),RB=process.off.bind(process),pT={exit:IB,stdout:{write:t=>PB(t),get isTTY(){return process.stdout.isTTY??!1}},stderr:{write:t=>NB(t),get isTTY(){return process.stderr.isTTY??!1}},stdin:{get isTTY(){return process.stdin.isTTY??!1},setRawMode:process.stdin.setRawMode?.bind(process.stdin),on:process.stdin.on.bind(process.stdin),removeListener:process.stdin.removeListener.bind(process.stdin)},cwd:zB,on:OB,off:RB,get env(){return process.env}};var N5=null;function DB(){return N5||(N5=new Kl({projectName:"runloop-cli"})),N5}function AB(){let t=process.env.RUNLOOP_API_KEY;if(t)return{apiKey:t};try{return{apiKey:DB().get("apiKey")}}catch(e){return console.error("Warning: Failed to load config:",e),{}}}function jB(){return process.env.RUNLOOP_ENV?.toLowerCase()==="dev"?"https://api.runloop.pro":"https://api.runloop.ai"}function CB(){let t=AB();if(!t.apiKey)throw new Error("API key not configured. Please set RUNLOOP_API_KEY environment variable.");let e=jB();return new v$({bearerToken:t.apiKey,baseURL:e,timeout:1e4,maxRetries:2,defaultHeaders:{"User-Agent":`Runloop/JS - CLI MCP ${lT.VERSION}`}})}var UB=[{name:"list_devboxes",description:"List all devboxes with optional filtering by status",inputSchema:{type:"object",properties:{status:{type:"string",description:"Filter by status (running, provisioning, suspended, etc.)",enum:["running","provisioning","initializing","suspended","shutdown","failure"]},limit:{type:"number",description:"Maximum number of devboxes to return"}}}},{name:"get_devbox",description:"Get detailed information about a specific devbox by ID",inputSchema:{type:"object",properties:{id:{type:"string",description:"The devbox ID"}},required:["id"]}},{name:"create_devbox",description:"Create a new devbox with specified configuration",inputSchema:{type:"object",properties:{name:{type:"string",description:"Name for the devbox"},blueprint_id:{type:"string",description:"Blueprint ID to use as template"},snapshot_id:{type:"string",description:"Snapshot ID to restore from"},entrypoint:{type:"string",description:"Entrypoint script to run on startup"},environment_variables:{type:"object",description:"Environment variables as key-value pairs"},resource_size:{type:"string",description:"Resource size (SMALL, MEDIUM, LARGE, XLARGE)",enum:["SMALL","MEDIUM","LARGE","XLARGE"]},keep_alive_seconds:{type:"number",description:"Keep alive time in seconds"}}}},{name:"execute_command",description:"Execute a command on a devbox and get the result",inputSchema:{type:"object",properties:{devbox_id:{type:"string",description:"The devbox ID to execute the command on"},command:{type:"string",description:"The command to execute"}},required:["devbox_id","command"]}},{name:"shutdown_devbox",description:"Shutdown a devbox by ID",inputSchema:{type:"object",properties:{id:{type:"string",description:"The devbox ID to shutdown"}},required:["id"]}},{name:"suspend_devbox",description:"Suspend a devbox by ID",inputSchema:{type:"object",properties:{id:{type:"string",description:"The devbox ID to suspend"}},required:["id"]}},{name:"resume_devbox",description:"Resume a suspended devbox by ID",inputSchema:{type:"object",properties:{id:{type:"string",description:"The devbox ID to resume"}},required:["id"]}},{name:"list_blueprints",description:"List all available blueprints",inputSchema:{type:"object",properties:{limit:{type:"number",description:"Maximum number of blueprints to return"}}}},{name:"list_snapshots",description:"List all snapshots",inputSchema:{type:"object",properties:{devbox_id:{type:"string",description:"Filter snapshots by devbox ID"},limit:{type:"number",description:"Maximum number of snapshots to return"}}}},{name:"create_snapshot",description:"Create a snapshot of a devbox",inputSchema:{type:"object",properties:{devbox_id:{type:"string",description:"The devbox ID to snapshot"},name:{type:"string",description:"Name for the snapshot"}},required:["devbox_id"]}}],z5=new a1({name:"runloop-mcp-server",version:"1.0.0"},{capabilities:{tools:{}}});z5.setRequestHandler(L4,async()=>({tools:UB}));z5.setRequestHandler(vp,async t=>{let{name:e,arguments:r}=t.params;try{let n=CB();if(!r)throw new Error("Missing arguments");switch(e){case"list_devboxes":{let a=await n.devboxes.list({status:r.status,limit:r.limit});return{content:[{type:"text",text:JSON.stringify(a,null,2)}]}}case"get_devbox":{let a=await n.devboxes.retrieve(r.id);return{content:[{type:"text",text:JSON.stringify(a,null,2)}]}}case"create_devbox":{let a={};r.name&&(a.name=r.name),r.blueprint_id&&(a.blueprint_id=r.blueprint_id),r.snapshot_id&&(a.snapshot_id=r.snapshot_id),r.entrypoint&&(a.entrypoint=r.entrypoint),r.environment_variables&&(a.environment_variables=r.environment_variables),r.resource_size&&(a.launch_parameters={resource_size_request:r.resource_size}),r.keep_alive_seconds&&(a.launch_parameters||(a.launch_parameters={}),a.launch_parameters.keep_alive_time_seconds=r.keep_alive_seconds);let i=await n.devboxes.create(a);return{content:[{type:"text",text:JSON.stringify(i,null,2)}]}}case"execute_command":{let a=await n.devboxes.executeSync(r.devbox_id,{command:r.command});return{content:[{type:"text",text:JSON.stringify(a,null,2)}]}}case"shutdown_devbox":{let a=await n.devboxes.shutdown(r.id);return{content:[{type:"text",text:JSON.stringify(a,null,2)}]}}case"suspend_devbox":{let a=await n.devboxes.suspend(r.id);return{content:[{type:"text",text:JSON.stringify(a,null,2)}]}}case"resume_devbox":{let a=await n.devboxes.resume(r.id);return{content:[{type:"text",text:JSON.stringify(a,null,2)}]}}case"list_blueprints":{let a=await n.blueprints.list({limit:r.limit});return{content:[{type:"text",text:JSON.stringify(a,null,2)}]}}case"list_snapshots":{let a={};r.devbox_id&&(a.devbox_id=r.devbox_id);let i=[],o=0,s=r.limit||100;for await(let d of n.devboxes.listDiskSnapshots(a))if(i.push(d),o++,o>=s)break;return{content:[{type:"text",text:JSON.stringify(i,null,2)}]}}case"create_snapshot":{let a={};r.name&&(a.name=r.name);let i=await n.devboxes.snapshotDisk(r.devbox_id,a);return{content:[{type:"text",text:JSON.stringify(i,null,2)}]}}default:throw new Error(`Unknown tool: ${e}`)}}catch(n){return{content:[{type:"text",text:`Error: ${n.message}`}],isError:!0}}});async function VB(){try{console.error("[MCP] Starting Runloop MCP server...");let t=new o1;console.error("[MCP] Created stdio transport"),await z5.connect(t),console.error("[MCP] Server initialization complete, waiting for requests...")}catch(t){throw console.error("[MCP] Error in main():",t),t}}VB().catch(t=>{console.error("[MCP] Fatal error in main():",t),console.error("[MCP] Stack trace:",t instanceof Error?t.stack:"N/A"),pT.exit(1)}); -/*! Bundled license information: - -web-streams-polyfill/dist/ponyfill.mjs: - (** - * @license - * web-streams-polyfill v4.0.0-beta.3 - * Copyright 2021 Mattias Buelens, Diwank Singh Tomer and other contributors. - * This code is released under the MIT license. - * SPDX-License-Identifier: MIT - *) - -formdata-node/lib/esm/blobHelpers.js: -formdata-node/lib/esm/Blob.js: - (*! Based on fetch-blob. MIT License. Jimmy Wärting & David Frank *) - -humanize-ms/index.js: - (*! - * humanize-ms - index.js - * Copyright(c) 2014 dead_horse - * MIT Licensed - *) - -node-domexception/index.js: - (*! node-domexception. MIT License. Jimmy Wärting *) - -uuidv7/dist/index.js: - (** - * uuidv7: A JavaScript implementation of UUID version 7 - * - * Copyright 2021-2025 LiosK - * - * @license Apache-2.0 - * @packageDocumentation - *) -*/ diff --git a/src/router/Router.tsx b/src/router/Router.tsx index 61586b2e..beeddaeb 100644 --- a/src/router/Router.tsx +++ b/src/router/Router.tsx @@ -13,8 +13,6 @@ import { useNetworkPolicyStore } from "../store/networkPolicyStore.js"; import { useGatewayConfigStore } from "../store/gatewayConfigStore.js"; import { useMcpConfigStore } from "../store/mcpConfigStore.js"; import { useObjectStore } from "../store/objectStore.js"; -import { useBenchmarkStore } from "../store/benchmarkStore.js"; -import { useBenchmarkJobStore } from "../store/benchmarkJobStore.js"; import { ErrorBoundary } from "../components/ErrorBoundary.js"; import { colors } from "../utils/theme.js"; import type { ScreenName } from "../router/types.js"; @@ -56,16 +54,6 @@ const KNOWN_SCREENS: Set = new Set([ "object-create", "ssh-session", "pty-session", - "benchmark-menu", - "benchmark-list", - "benchmark-detail", - "benchmark-run-list", - "benchmark-run-detail", - "scenario-run-list", - "scenario-run-detail", - "benchmark-job-list", - "benchmark-job-detail", - "benchmark-job-create", ]); /** @@ -140,16 +128,6 @@ import { ObjectDetailScreen } from "../screens/ObjectDetailScreen.js"; import { ObjectCreateScreen } from "../screens/ObjectCreateScreen.js"; import { SSHSessionScreen } from "../screens/SSHSessionScreen.js"; import { PtySessionScreen } from "../screens/PtySessionScreen.js"; -import { BenchmarkMenuScreen } from "../screens/BenchmarkMenuScreen.js"; -import { BenchmarkListScreen } from "../screens/BenchmarkListScreen.js"; -import { BenchmarkDetailScreen } from "../screens/BenchmarkDetailScreen.js"; -import { BenchmarkRunListScreen } from "../screens/BenchmarkRunListScreen.js"; -import { BenchmarkRunDetailScreen } from "../screens/BenchmarkRunDetailScreen.js"; -import { ScenarioRunListScreen } from "../screens/ScenarioRunListScreen.js"; -import { ScenarioRunDetailScreen } from "../screens/ScenarioRunDetailScreen.js"; -import { BenchmarkJobListScreen } from "../screens/BenchmarkJobListScreen.js"; -import { BenchmarkJobDetailScreen } from "../screens/BenchmarkJobDetailScreen.js"; -import { BenchmarkJobCreateScreen } from "../screens/BenchmarkJobCreateScreen.js"; /** * Router component that renders the current screen @@ -228,29 +206,6 @@ export function Router() { } break; - case "benchmark-menu": - case "benchmark-list": - case "benchmark-detail": - case "benchmark-run-list": - case "benchmark-run-detail": - case "scenario-run-list": - case "scenario-run-detail": - if ( - !currentScreen.startsWith("benchmark") && - !currentScreen.startsWith("scenario") - ) { - useBenchmarkStore.getState().clearAll(); - } - break; - - case "benchmark-job-list": - case "benchmark-job-detail": - case "benchmark-job-create": - if (!currentScreen.startsWith("benchmark-job")) { - useBenchmarkJobStore.getState().clearAll(); - } - break; - case "agent-list": case "agent-detail": case "agent-create": @@ -366,39 +321,6 @@ export function Router() { {currentScreen === "pty-session" && ( )} - {currentScreen === "benchmark-menu" && ( - - )} - {currentScreen === "benchmark-list" && ( - - )} - {currentScreen === "benchmark-detail" && ( - - )} - {currentScreen === "benchmark-run-list" && ( - - )} - {currentScreen === "benchmark-run-detail" && ( - - )} - {currentScreen === "scenario-run-list" && ( - - )} - {currentScreen === "scenario-run-detail" && ( - - )} - {currentScreen === "benchmark-job-list" && ( - - )} - {currentScreen === "benchmark-job-detail" && ( - - )} - {currentScreen === "benchmark-job-create" && ( - - )} {!KNOWN_SCREENS.has(currentScreen) && ( )} diff --git a/src/screens/BenchmarkDetailScreen.tsx b/src/screens/BenchmarkDetailScreen.tsx deleted file mode 100644 index 71f24bb2..00000000 --- a/src/screens/BenchmarkDetailScreen.tsx +++ /dev/null @@ -1,289 +0,0 @@ -/** - * BenchmarkDetailScreen - Detail page for benchmark definitions - * Uses the generic ResourceDetailPage component - */ -import React from "react"; -import { Text } from "ink"; -import figures from "figures"; -import { useNavigation } from "../store/navigationStore.js"; -import { useBenchmarkStore, type Benchmark } from "../store/benchmarkStore.js"; -import { - ResourceDetailPage, - formatTimestamp, - type DetailSection, - type ResourceOperation, -} from "../components/ResourceDetailPage.js"; -import { getBenchmark } from "../services/benchmarkService.js"; -import { SpinnerComponent } from "../components/Spinner.js"; -import { ErrorMessage } from "../components/ErrorMessage.js"; -import { Breadcrumb } from "../components/Breadcrumb.js"; -import { colors } from "../utils/theme.js"; -import { getBenchmarkUrl } from "../utils/url.js"; - -interface BenchmarkDetailScreenProps { - benchmarkId?: string; -} - -export function BenchmarkDetailScreen({ - benchmarkId, -}: BenchmarkDetailScreenProps) { - const { goBack, navigate } = useNavigation(); - const benchmarks = useBenchmarkStore((state) => state.benchmarks); - - const [loading, setLoading] = React.useState(false); - const [error, setError] = React.useState(null); - const [fetchedBenchmark, setFetchedBenchmark] = - React.useState(null); - - // Find benchmark in store first - const benchmarkFromStore = benchmarks.find((b) => b.id === benchmarkId); - - // Polling function - const pollBenchmark = React.useCallback(async () => { - if (!benchmarkId) return null as unknown as Benchmark; - return getBenchmark(benchmarkId); - }, [benchmarkId]); - - // Fetch benchmark from API once per mount - const hasFetched = React.useRef(false); - React.useEffect(() => { - if (benchmarkId && !hasFetched.current && !benchmarkFromStore) { - hasFetched.current = true; - setLoading(true); - setError(null); - - getBenchmark(benchmarkId) - .then((benchmark) => { - setFetchedBenchmark(benchmark); - setLoading(false); - }) - .catch((err) => { - setError(err as Error); - setLoading(false); - }); - } - }, [benchmarkId, benchmarkFromStore]); - - // Use fetched benchmark for full details, fall back to store for basic display - const benchmark = fetchedBenchmark || benchmarkFromStore; - - // Show loading state - if (!benchmark && benchmarkId && !error) { - return ( - <> - - - - ); - } - - // Show error state - if (error && !benchmark) { - return ( - <> - - - - ); - } - - // Show not found error - if (!benchmark) { - return ( - <> - - - - ); - } - - // Build detail sections - const detailSections: DetailSection[] = []; - - // Basic details section - const basicFields = []; - - if ((benchmark as any).created_at) { - basicFields.push({ - label: "Created", - value: formatTimestamp((benchmark as any).created_at), - }); - } - - if ((benchmark as any).description) { - basicFields.push({ - label: "Description", - value: (benchmark as any).description, - }); - } - - if (basicFields.length > 0) { - detailSections.push({ - title: "Details", - icon: figures.squareSmallFilled, - color: colors.warning, - fields: basicFields, - }); - } - - // Metadata section - if ( - (benchmark as any).metadata && - Object.keys((benchmark as any).metadata).length > 0 - ) { - const metadataFields = Object.entries((benchmark as any).metadata).map( - ([key, value]) => ({ - label: key, - value: value as string, - }), - ); - - detailSections.push({ - title: "Metadata", - icon: figures.identical, - color: colors.secondary, - fields: metadataFields, - }); - } - - // Operations available for benchmarks - const operations: ResourceOperation[] = [ - { - key: "create-job", - label: "Create Benchmark Job", - color: colors.success, - icon: figures.play, - shortcut: "c", - }, - ]; - - // Handle operation selection - const handleOperation = async (operation: string, resource: Benchmark) => { - switch (operation) { - case "create-job": - navigate("benchmark-job-create", { initialBenchmarkIds: resource.id }); - break; - } - }; - - // Build detailed info lines for full details view - const buildDetailLines = (b: Benchmark): React.ReactElement[] => { - const lines: React.ReactElement[] = []; - - // Core Information - lines.push( - - Benchmark Details - , - ); - lines.push( - - {" "} - ID: {b.id} - , - ); - lines.push( - - {" "} - Name: {b.name || "(none)"} - , - ); - if ((b as any).description) { - lines.push( - - {" "} - Description: {(b as any).description} - , - ); - } - if ((b as any).created_at) { - lines.push( - - {" "} - Created: {new Date((b as any).created_at).toLocaleString()} - , - ); - } - lines.push( ); - - // Metadata - if ((b as any).metadata && Object.keys((b as any).metadata).length > 0) { - lines.push( - - Metadata - , - ); - Object.entries((b as any).metadata).forEach(([key, value], idx) => { - lines.push( - - {" "} - {key}: {value as string} - , - ); - }); - lines.push( ); - } - - // Raw JSON - lines.push( - - Raw JSON - , - ); - const jsonLines = JSON.stringify(b, null, 2).split("\n"); - jsonLines.forEach((line, idx) => { - lines.push( - - {" "} - {line} - , - ); - }); - - return lines; - }; - - return ( - b.name || b.id} - getId={(b) => b.id} - getUrl={(b) => getBenchmarkUrl(b.id, !!b.is_public)} - getStatus={(b) => (b as any).status} - detailSections={detailSections} - operations={operations} - onOperation={handleOperation} - onBack={goBack} - buildDetailLines={buildDetailLines} - breadcrumbPrefix={[{ label: "Home" }, { label: "Benchmarks" }]} - /> - ); -} diff --git a/src/screens/BenchmarkJobCreateScreen.tsx b/src/screens/BenchmarkJobCreateScreen.tsx deleted file mode 100644 index 086cff5f..00000000 --- a/src/screens/BenchmarkJobCreateScreen.tsx +++ /dev/null @@ -1,1651 +0,0 @@ -/** - * BenchmarkJobCreateScreen - Create a new benchmark job - * Uses benchmark definition spec type with multi-select benchmarks and agent picker - */ -import React from "react"; -import { Box, Text, useInput } from "ink"; -import TextInput from "ink-text-input"; -import figures from "figures"; -import { useNavigation, type RouteParams } from "../store/navigationStore.js"; -import { SpinnerComponent } from "../components/Spinner.js"; -import { ErrorMessage } from "../components/ErrorMessage.js"; -import { SuccessMessage } from "../components/SuccessMessage.js"; -import { Breadcrumb } from "../components/Breadcrumb.js"; -import { NavigationTips } from "../components/NavigationTips.js"; -import { ResourcePicker } from "../components/ResourcePicker.js"; -import { MetadataDisplay } from "../components/MetadataDisplay.js"; -import { colors } from "../utils/theme.js"; -import { useExitOnCtrlC } from "../hooks/useExitOnCtrlC.js"; -import { listBenchmarks, getBenchmark } from "../services/benchmarkService.js"; -import { - listScenarios, - getScenario, - type Scenario, -} from "../services/scenarioService.js"; -import { listAgents, type Agent } from "../services/agentService.js"; -import { buildAgentTableColumns } from "../components/agentColumns.js"; -import { - createBenchmarkJob, - type BenchmarkJob, - type AgentConfig, - type OrchestratorConfig, -} from "../services/benchmarkJobService.js"; -import type { Benchmark } from "../store/benchmarkStore.js"; -import { getClient } from "../utils/client.js"; - -/** Secret list item for account secrets picker */ -interface SecretListItem { - id: string; - name: string; -} - -type FormField = - | "source_type" - | "benchmark" - | "scenarios" - | "agents" - | "secrets" - | "model_names" - | "name" - | "agent_timeout" - | "concurrent_trials" - | "metadata" - | "create"; - -interface FormData { - sourceType: "benchmark" | "scenarios"; - benchmarkId: string; - benchmarkName: string; - scenarioIds: string[]; - scenarioNames: string[]; - agentIds: string[]; - agentNames: string[]; - /** Env var name -> secret name (account secret) */ - secretsMapping: Record; - /** Comma-separated model names (one per agent, or one value applied to all) */ - modelNamesInput: string; - name: string; - agentTimeout: string; - concurrentTrials: string; - metadata: Record; -} - -type ScreenState = - | "form" - | "picking_benchmark" - | "picking_scenarios" - | "picking_agents" - | "secrets_config" - | "picking_secret" - | "entering_env_var" - | "creating" - | "success" - | "error"; - -interface BenchmarkJobCreateScreenProps { - initialBenchmarkIds?: string; - initialScenarioIds?: string; - cloneFromJobId?: string; - cloneJobName?: string; - cloneSourceType?: "benchmark" | "scenarios"; - cloneAgentConfigs?: string; // JSON serialized AgentConfig[] - cloneOrchestratorConfig?: string; // JSON serialized OrchestratorConfig - // Legacy props for backward compatibility - cloneAgentIds?: string; - cloneAgentNames?: string; - cloneAgentTimeout?: string; - cloneConcurrentTrials?: string; -} - -/** - * Secrets config sub-screen: list mappings, Add, Done. Handles its own input so hooks are stable. - */ -function SecretsConfigView({ - mappingEntries, - selectedIndex, - onSelectIndex, - onAdd, - onDone, - onRemove, - onBack, -}: { - mappingEntries: [string, string][]; - selectedIndex: number; - onSelectIndex: (i: number) => void; - onAdd: () => void; - onDone: () => void; - onRemove: (envVar: string) => void; - onBack: () => void; -}) { - const totalOptions = mappingEntries.length + 2; - const idx = Math.min(selectedIndex, Math.max(0, totalOptions - 1)); - - useInput((_input, key) => { - if (key.upArrow && idx > 0) { - onSelectIndex(idx - 1); - } else if (key.downArrow && idx < totalOptions - 1) { - onSelectIndex(idx + 1); - } else if (key.return) { - if (idx === mappingEntries.length) { - onAdd(); - } else if (idx === mappingEntries.length + 1) { - onDone(); - } else { - const keyToRemove = mappingEntries[idx][0]; - onRemove(keyToRemove); - onSelectIndex(Math.max(0, idx - 1)); - } - } else if (key.escape) { - onBack(); - } - }); - - return ( - <> - - - - - {figures.pointer} Secrets (env → secret) - - - {mappingEntries.map(([envVar, secretName], i) => ( - - - - {idx === i ? figures.pointer : " "} - - - - {envVar} → {secretName} - - {idx === i && ( - - {" "} - Enter to remove - - )} - - ))} - - - - {idx === mappingEntries.length ? figures.pointer : " "} - - - - + Add secret - - - - - - {idx === mappingEntries.length + 1 ? figures.pointer : " "} - - - - Done - - - - - - ); -} - -/** - * Inline view to enter env var name for a selected secret - * Pre-fills with secret name so Enter uses it as-is; user can edit if needed. - */ -function EnvVarInputView({ - secretName, - onSubmit, - onCancel, -}: { - secretName: string; - onSubmit: (value: string) => void; - onCancel: () => void; -}) { - const [value, setValue] = React.useState(secretName); - useInput((_input, key) => { - if (key.return) { - onSubmit(value.trim() || secretName); - } else if (key.escape) { - onCancel(); - } - }); - return ( - <> - - - - - Env var name for secret "{secretName}": - - - - onSubmit(value.trim() || secretName)} - /> - - - - - ); -} - -/** - * Success screen component with input handling - */ -function SuccessScreen({ - job, - onViewDetails, - onGoToList, - onBack, -}: { - job: BenchmarkJob; - onViewDetails: () => void; - onGoToList: () => void; - onBack: () => void; -}) { - useInput((input, key) => { - if (input === "v") { - onViewDetails(); - } else if (input === "l") { - onGoToList(); - } else if (key.escape) { - onBack(); - } - }); - - return ( - <> - - - - - - ID:{" "} - - {job.id} - - - - Name:{" "} - - {job.name} - - - - State:{" "} - - {job.state} - - - - - ); -} - -export function BenchmarkJobCreateScreen({ - initialBenchmarkIds, - initialScenarioIds, - cloneFromJobId, - cloneJobName, - cloneSourceType, - cloneAgentConfigs, - cloneOrchestratorConfig, - cloneAgentIds, - cloneAgentNames, - cloneAgentTimeout, - cloneConcurrentTrials, -}: BenchmarkJobCreateScreenProps) { - const { navigate, goBack } = useNavigation(); - - // Determine initial source type and field - const initialSourceType: "benchmark" | "scenarios" = - cloneSourceType || (initialScenarioIds ? "scenarios" : "benchmark"); - - const initialField: FormField = - initialBenchmarkIds || initialScenarioIds ? "agents" : "source_type"; - - const [screenState, setScreenState] = React.useState("form"); - const [currentField, setCurrentField] = - React.useState(initialField); - - const [formData, setFormData] = React.useState(() => { - let modelNamesInput = ""; - let secretsMapping: Record = {}; - try { - if (cloneAgentConfigs) { - const arr = JSON.parse(cloneAgentConfigs) as Array<{ - modelName?: string | null; - model_name?: string | null; - secrets?: Record; - secret_names?: Record; - }>; - modelNamesInput = arr - .map((a) => a.modelName ?? a.model_name ?? "") - .filter(Boolean) - .join(", "); - // Merge secrets from all agent configs into one mapping (clone prefill) - const allSecrets = arr - .map((a) => a.secrets ?? a.secret_names) - .filter( - (s): s is Record => !!s && typeof s === "object", - ); - if (allSecrets.length > 0) { - secretsMapping = Object.assign({}, ...allSecrets); - } - } - } catch { - // ignore invalid JSON - } - return { - sourceType: initialSourceType, - benchmarkId: initialBenchmarkIds || "", - benchmarkName: "", - scenarioIds: initialScenarioIds ? initialScenarioIds.split(",") : [], - scenarioNames: [], - agentIds: cloneAgentIds ? cloneAgentIds.split(",") : [], - agentNames: cloneAgentNames ? cloneAgentNames.split(",") : [], - secretsMapping, - modelNamesInput, - name: cloneJobName ? `${cloneJobName} (clone)` : "", - agentTimeout: cloneAgentTimeout || "", - concurrentTrials: cloneConcurrentTrials || "1", - metadata: {}, - }; - }); - - const [createdJob, setCreatedJob] = React.useState(null); - const [error, setError] = React.useState(null); - const [metadataKey, setMetadataKey] = React.useState(""); - const [metadataValue, setMetadataValue] = React.useState(""); - const [inMetadataSection, setInMetadataSection] = React.useState(false); - const [metadataInputMode, setMetadataInputMode] = React.useState< - "key" | "value" | null - >(null); - const [selectedMetadataIndex, setSelectedMetadataIndex] = React.useState(0); - /** When adding a secret: selected secret awaiting env var name */ - const [pendingSecretForEnv, setPendingSecretForEnv] = React.useState<{ - id: string; - name: string; - } | null>(null); - /** In secrets_config, index of mapping row selected for removal (or -1 for Add/Done) */ - const [secretsConfigSelectedIndex, setSecretsConfigSelectedIndex] = - React.useState(0); - - // Handle Ctrl+C to exit - useExitOnCtrlC(); - - // Fetch benchmark name if we have an ID (from clone or initial selection) - React.useEffect(() => { - if (initialBenchmarkIds && !formData.benchmarkName) { - getBenchmark(initialBenchmarkIds) - .then((benchmark) => { - setFormData((prev) => ({ - ...prev, - benchmarkName: benchmark.name || benchmark.id, - })); - }) - .catch((err) => { - // Silently fail - user can re-select if needed - console.error("Failed to fetch benchmark name:", err); - }); - } - }, [initialBenchmarkIds, formData.benchmarkName]); - - // Fetch scenario names if we have IDs (from clone or initial selection) - React.useEffect(() => { - if ( - initialScenarioIds && - formData.scenarioIds.length > 0 && - formData.scenarioNames.length === 0 - ) { - // Fetch all scenarios to get their names - Promise.all( - formData.scenarioIds.map((id) => - getScenario(id).catch((err) => { - console.error(`Failed to fetch scenario ${id}:`, err); - return { id, name: id } as Scenario; - }), - ), - ).then((scenarios) => { - setFormData((prev) => ({ - ...prev, - scenarioNames: scenarios.map((s) => s.name || s.id), - })); - }); - } - }, [initialScenarioIds, formData.scenarioIds, formData.scenarioNames]); - - // Field definitions - conditionally include benchmark or scenarios based on source type - const fields: Array<{ - key: FormField; - label: string; - type: "text" | "picker" | "action" | "toggle" | "metadata"; - placeholder?: string; - required?: boolean; - description?: string; - }> = [ - { - key: "source_type", - label: "Source Type", - type: "toggle", - required: true, - description: "Choose between benchmark or scenarios", - }, - formData.sourceType === "benchmark" - ? { - key: "benchmark", - label: "Benchmark", - type: "picker" as const, - required: true, - description: "Select a benchmark definition to run", - } - : { - key: "scenarios", - label: "Scenarios", - type: "picker" as const, - required: true, - description: "Select one or more scenario definitions to run", - }, - { - key: "agents", - label: "Agents", - type: "picker", - required: true, - description: "Select one or more agents to run", - }, - { - key: "secrets", - label: "Secrets (env → secret)", - type: "picker", - required: false, - description: - cloneFromJobId && Object.keys(formData.secretsMapping).length === 0 - ? "Optional. The API does not return secrets on job fetch; add any needed env→secret mappings here." - : "Optional. Map environment variable names to account secrets.", - }, - { - key: "model_names", - label: "Model names (comma-separated, optional)", - type: "text", - placeholder: "e.g. claude-3-5-sonnet, gpt-4o", - description: "One per agent, or one value applied to all", - }, - { - key: "name", - label: "Job Name", - type: "text", - placeholder: "my-benchmark-job", - description: "Optional name for this job", - }, - { - key: "agent_timeout", - label: "Agent Timeout (s)", - type: "text", - placeholder: "300", - description: "Optional timeout in seconds", - }, - { - key: "concurrent_trials", - label: "Concurrent Trials", - type: "text", - placeholder: "1", - description: "Number of concurrent trials (default: 1)", - }, - { - key: "metadata", - label: "Metadata (optional)", - type: "metadata", - description: "Optional key-value metadata for the job", - }, - { - key: "create", - label: "Create Benchmark Job", - type: "action", - }, - ]; - - const fieldKeys = fields.map((f) => f.key); - const currentFieldIndex = fieldKeys.indexOf(currentField); - const currentFieldDef = fields.find((f) => f.key === currentField); - - // Check if form is valid - const isFormValid = - ((formData.sourceType === "benchmark" && formData.benchmarkId !== "") || - (formData.sourceType === "scenarios" && - formData.scenarioIds.length > 0)) && - formData.agentIds.length > 0; - - // Memoize the fetchBenchmarksPage function - const fetchBenchmarksPage = React.useCallback( - async (params: { limit: number; startingAt?: string; search?: string }) => { - const result = await listBenchmarks({ - limit: params.limit, - startingAfter: params.startingAt, - search: params.search, - }); - return { - items: result.benchmarks, - hasMore: result.hasMore, - totalCount: result.totalCount, - }; - }, - [], - ); - - // Memoize the fetchAgentsPage function - fetches all agents - const fetchAgentsPage = React.useCallback( - async (params: { limit: number; startingAt?: string; search?: string }) => { - const result = await listAgents({ - limit: params.limit, - startingAfter: params.startingAt, - search: params.search || undefined, - }); - return { - items: result.agents, - hasMore: result.hasMore, - totalCount: result.totalCount, - }; - }, - [], - ); - - // Memoize the fetchScenariosPage function - const fetchScenariosPage = React.useCallback( - async (params: { limit: number; startingAt?: string; search?: string }) => { - const result = await listScenarios({ - limit: params.limit, - startingAfter: params.startingAt, - search: params.search, - }); - return { - items: result.scenarios, - hasMore: result.hasMore, - totalCount: result.totalCount, - }; - }, - [], - ); - - // Memoize benchmark picker config (single-select) - const benchmarkPickerConfig = React.useMemo( - () => ({ - title: "Select Benchmark", - fetchPage: fetchBenchmarksPage, - getItemId: (benchmark: Benchmark) => benchmark.id, - getItemLabel: (benchmark: Benchmark) => benchmark.name || benchmark.id, - getItemStatus: (benchmark: Benchmark) => (benchmark as any).status, - mode: "single" as const, - minSelection: 1, - emptyMessage: "No benchmarks found", - searchPlaceholder: "Search benchmarks...", - breadcrumbItems: [ - { label: "Home" }, - { label: "Benchmarks" }, - { label: "Jobs" }, - { label: "Create" }, - { label: "Select Benchmark", active: true }, - ], - }), - [fetchBenchmarksPage], - ); - - // Memoize scenario picker config (multi-select) - const scenarioPickerConfig = React.useMemo( - () => ({ - title: "Select Scenarios", - fetchPage: fetchScenariosPage, - getItemId: (scenario: Scenario) => scenario.id, - getItemLabel: (scenario: Scenario) => scenario.name || scenario.id, - getItemStatus: (scenario: Scenario) => - scenario.is_public ? "public" : "private", - mode: "multi" as const, - minSelection: 1, - emptyMessage: "No scenarios found", - searchPlaceholder: "Search scenarios...", - breadcrumbItems: [ - { label: "Home" }, - { label: "Benchmarks" }, - { label: "Jobs" }, - { label: "Create" }, - { label: "Select Scenarios", active: true }, - ], - }), - [fetchScenariosPage], - ); - - // Memoize agent picker config (single-select) - const agentPickerConfig = React.useMemo( - () => ({ - title: "Select Agent", - fetchPage: fetchAgentsPage, - getItemId: (agent: Agent) => agent.id, - getItemLabel: (agent: Agent) => agent.name, - getItemStatus: (agent: Agent) => (agent.is_public ? "public" : "private"), - columns: buildAgentTableColumns, - mode: "single" as const, - emptyMessage: "No agents found", - searchPlaceholder: "Search agents...", - breadcrumbItems: [ - { label: "Home" }, - { label: "Benchmarks" }, - { label: "Jobs" }, - { label: "Create" }, - { label: "Select Agent", active: true }, - ], - }), - [fetchAgentsPage], - ); - - // Fetch account secrets for picker (client-side pagination) - const fetchSecretsPage = React.useCallback( - async (params: { limit: number; startingAt?: string; search?: string }) => { - const client = getClient(); - const result = await client.secrets.list({ limit: 5000 }); - const raw = (result.secrets || []) as Array<{ id: string; name: string }>; - let items = raw.map((s) => ({ id: s.id, name: s.name || s.id })); - if (params.search) { - const q = params.search.toLowerCase(); - items = items.filter( - (s) => - s.name.toLowerCase().includes(q) || s.id.toLowerCase().includes(q), - ); - } - const startIdx = params.startingAt - ? items.findIndex((s) => s.id === params.startingAt) + 1 - : 0; - const page = items.slice(startIdx, startIdx + params.limit); - return { - items: page, - hasMore: startIdx + params.limit < items.length, - totalCount: items.length, - }; - }, - [], - ); - - const secretPickerConfig = React.useMemo( - () => ({ - title: "Select Secret", - fetchPage: fetchSecretsPage, - getItemId: (s: SecretListItem) => s.id, - getItemLabel: (s: SecretListItem) => s.name, - getItemStatus: () => undefined, - mode: "single" as const, - minSelection: 1, - emptyMessage: "No secrets found", - searchPlaceholder: "Search secrets...", - breadcrumbItems: [ - { label: "Home" }, - { label: "Benchmarks" }, - { label: "Jobs" }, - { label: "Create" }, - { label: "Select Secret", active: true }, - ], - }), - [fetchSecretsPage], - ); - - // Handle benchmark selection (single) - const handleBenchmarkSelect = React.useCallback((items: Benchmark[]) => { - if (items.length > 0) { - const benchmark = items[0]; - setFormData((prev) => ({ - ...prev, - benchmarkId: benchmark.id, - benchmarkName: benchmark.name || benchmark.id, - })); - } - setScreenState("form"); - }, []); - - // Handle scenario selection (multi) - const handleScenarioSelect = React.useCallback((items: Scenario[]) => { - setFormData((prev) => ({ - ...prev, - scenarioIds: items.map((s) => s.id), - scenarioNames: items.map((s) => s.name || s.id), - })); - setScreenState("form"); - }, []); - - // Handle agent selection (multi) - const handleAgentSelect = React.useCallback((items: Agent[]) => { - setFormData((prev) => ({ - ...prev, - agentIds: items.map((a) => a.id), - agentNames: items.map((a) => a.name), - })); - setScreenState("form"); - }, []); - - // After picking a secret: set pending and go to env var input - const handleSecretSelect = React.useCallback((items: SecretListItem[]) => { - if (items.length > 0) { - const s = items[0]; - setPendingSecretForEnv({ id: s.id, name: s.name }); - setScreenState("entering_env_var"); - } else { - setScreenState("secrets_config"); - } - }, []); - - // After entering env var for pending secret: add mapping and return to secrets_config - // If envVarName is empty, use secret name as-is for the mapping (env var name = secret name). - const handleEnvVarForSecretSubmit = React.useCallback( - (envVarName: string) => { - const envVarToUse = envVarName.trim() || pendingSecretForEnv?.name || ""; - if (envVarToUse && pendingSecretForEnv) { - setFormData((prev) => ({ - ...prev, - secretsMapping: { - ...prev.secretsMapping, - [envVarToUse]: pendingSecretForEnv.name, - }, - })); - } - setPendingSecretForEnv(null); - setScreenState("secrets_config"); - }, - [pendingSecretForEnv], - ); - - // Handle create - const handleCreate = React.useCallback(async () => { - if (!isFormValid) return; - - setScreenState("creating"); - setError(null); - - try { - // Use cloned agent configs if available, otherwise build from form - let agentConfigs: AgentConfig[]; - if (cloneAgentConfigs) { - // Use the full cloned configs - agentConfigs = JSON.parse(cloneAgentConfigs); - } else { - // Parse comma-separated model names: one per agent, or single value applied to all - const modelNamesParsed = formData.modelNamesInput - ? formData.modelNamesInput - .split(",") - .map((s) => s.trim()) - .filter(Boolean) - : []; - const applyModelName = (index: number): string | undefined => { - if (modelNamesParsed.length === 0) return undefined; - if (modelNamesParsed.length === 1) return modelNamesParsed[0]; - return modelNamesParsed[index] ?? undefined; - }; - - // Build agent configs from form data (backward compatibility) - agentConfigs = formData.agentIds.map((agentId, index) => { - const config: AgentConfig = { - name: formData.agentNames[index], - agentId: agentId, - }; - - const modelName = applyModelName(index); - if (modelName) config.modelName = modelName; - - if (formData.agentTimeout) { - const timeout = parseInt(formData.agentTimeout, 10); - if (!isNaN(timeout) && timeout > 0) { - config.timeoutSeconds = timeout; - } - } else { - config.timeoutSeconds = 7200; // Default to 2 hours - } - - return config; - }); - } - - // Form secrets are source of truth: apply to all agents - if (Object.keys(formData.secretsMapping).length > 0) { - for (const config of agentConfigs) { - config.secrets = { ...formData.secretsMapping }; - } - } - - // Use cloned orchestrator config if available, otherwise build from form - let orchestratorConfig: OrchestratorConfig | undefined; - if (cloneOrchestratorConfig) { - orchestratorConfig = JSON.parse(cloneOrchestratorConfig); - } else if (formData.concurrentTrials) { - orchestratorConfig = { - nConcurrentTrials: parseInt(formData.concurrentTrials, 10) || 1, - }; - } - - const job = await createBenchmarkJob({ - name: formData.name || undefined, - benchmarkId: - formData.sourceType === "benchmark" - ? formData.benchmarkId - : undefined, - scenarioIds: - formData.sourceType === "scenarios" - ? formData.scenarioIds - : undefined, - agentConfigs, - orchestratorConfig, - metadata: - Object.keys(formData.metadata).length > 0 - ? formData.metadata - : undefined, - }); - - setCreatedJob(job); - setScreenState("success"); - } catch (err) { - setError(err as Error); - setScreenState("error"); - } - }, [formData, isFormValid, cloneAgentConfigs, cloneOrchestratorConfig]); - - // Handle input - useInput( - (input, key) => { - if (screenState !== "form") return; - - // Handle source type toggle with left/right arrows - if (currentField === "source_type" && (key.leftArrow || key.rightArrow)) { - setFormData((prev) => ({ - ...prev, - sourceType: - prev.sourceType === "benchmark" ? "scenarios" : "benchmark", - // Clear the other source when switching - benchmarkId: prev.sourceType === "scenarios" ? "" : prev.benchmarkId, - benchmarkName: - prev.sourceType === "scenarios" ? "" : prev.benchmarkName, - scenarioIds: prev.sourceType === "benchmark" ? [] : prev.scenarioIds, - scenarioNames: - prev.sourceType === "benchmark" ? [] : prev.scenarioNames, - })); - return; - } - - // Navigate between fields - if (key.upArrow && currentFieldIndex > 0) { - setCurrentField(fieldKeys[currentFieldIndex - 1]); - } else if (key.downArrow && currentFieldIndex < fieldKeys.length - 1) { - setCurrentField(fieldKeys[currentFieldIndex + 1]); - } else if (key.escape) { - goBack(); - } else if (key.return) { - if ( - currentFieldDef?.type === "picker" && - currentField === "benchmark" - ) { - setScreenState("picking_benchmark"); - } else if ( - currentFieldDef?.type === "picker" && - currentField === "scenarios" - ) { - setScreenState("picking_scenarios"); - } else if ( - currentFieldDef?.type === "picker" && - currentField === "agents" - ) { - setScreenState("picking_agents"); - } else if ( - currentFieldDef?.type === "picker" && - currentField === "secrets" - ) { - setScreenState("secrets_config"); - setSecretsConfigSelectedIndex(0); - } else if ( - currentFieldDef?.type === "metadata" && - currentField === "metadata" - ) { - setInMetadataSection(true); - setSelectedMetadataIndex(0); - } else if ( - currentFieldDef?.type === "action" && - currentField === "create" - ) { - handleCreate(); - } else if (currentFieldIndex < fieldKeys.length - 1) { - // Move to next field on Enter for text inputs - setCurrentField(fieldKeys[currentFieldIndex + 1]); - } - } - }, - { isActive: !inMetadataSection }, - ); - - useInput( - (input, key) => { - const metadataKeys = Object.keys(formData.metadata); - const maxIndex = metadataKeys.length + 1; - - if (metadataInputMode) { - if (metadataInputMode === "key" && key.return && metadataKey.trim()) { - setMetadataInputMode("value"); - return; - } else if (metadataInputMode === "value" && key.return) { - if (metadataKey.trim() && metadataValue.trim()) { - setFormData({ - ...formData, - metadata: { - ...formData.metadata, - [metadataKey.trim()]: metadataValue.trim(), - }, - }); - } - setMetadataKey(""); - setMetadataValue(""); - setMetadataInputMode(null); - setSelectedMetadataIndex(0); - return; - } else if (key.escape) { - setMetadataKey(""); - setMetadataValue(""); - setMetadataInputMode(null); - return; - } else if (key.tab) { - setMetadataInputMode(metadataInputMode === "key" ? "value" : "key"); - return; - } - return; - } - - if (key.upArrow && selectedMetadataIndex > 0) { - setSelectedMetadataIndex(selectedMetadataIndex - 1); - } else if (key.downArrow && selectedMetadataIndex < maxIndex) { - setSelectedMetadataIndex(selectedMetadataIndex + 1); - } else if (key.return) { - if (selectedMetadataIndex === 0) { - setMetadataKey(""); - setMetadataValue(""); - setMetadataInputMode("key"); - } else if (selectedMetadataIndex === maxIndex) { - setInMetadataSection(false); - setSelectedMetadataIndex(0); - setMetadataKey(""); - setMetadataValue(""); - setMetadataInputMode(null); - } else if ( - selectedMetadataIndex >= 1 && - selectedMetadataIndex <= metadataKeys.length - ) { - const keyToEdit = metadataKeys[selectedMetadataIndex - 1]; - setMetadataKey(keyToEdit || ""); - setMetadataValue(formData.metadata[keyToEdit] || ""); - const newMetadata = { ...formData.metadata }; - delete newMetadata[keyToEdit]; - setFormData({ ...formData, metadata: newMetadata }); - setMetadataInputMode("key"); - } - } else if ( - (input === "d" || key.delete) && - selectedMetadataIndex >= 1 && - selectedMetadataIndex <= metadataKeys.length - ) { - const keyToDelete = metadataKeys[selectedMetadataIndex - 1]; - const newMetadata = { ...formData.metadata }; - delete newMetadata[keyToDelete]; - setFormData({ ...formData, metadata: newMetadata }); - const newLength = Object.keys(newMetadata).length; - if (selectedMetadataIndex > newLength) { - setSelectedMetadataIndex(Math.max(0, newLength)); - } - } else if (key.escape || input === "q") { - setInMetadataSection(false); - setSelectedMetadataIndex(0); - setMetadataKey(""); - setMetadataValue(""); - setMetadataInputMode(null); - } - }, - { isActive: inMetadataSection && screenState === "form" }, - ); - - // ----- Secrets sub-flow ----- - const mappingEntries = Object.entries(formData.secretsMapping); - - if (screenState === "secrets_config") { - return ( - setScreenState("picking_secret")} - onDone={() => setScreenState("form")} - onRemove={(envVar) => { - setFormData((prev) => { - const next = { ...prev.secretsMapping }; - delete next[envVar]; - return { ...prev, secretsMapping: next }; - }); - setSecretsConfigSelectedIndex((i) => Math.max(0, i - 1)); - }} - onBack={() => setScreenState("form")} - /> - ); - } - - if (screenState === "entering_env_var" && pendingSecretForEnv) { - return ( - handleEnvVarForSecretSubmit(val)} - onCancel={() => { - setPendingSecretForEnv(null); - setScreenState("secrets_config"); - }} - /> - ); - } - - if (screenState === "picking_secret") { - return ( - - config={secretPickerConfig} - onSelect={handleSecretSelect} - onCancel={() => setScreenState("secrets_config")} - initialSelected={[]} - /> - ); - } - - // Show benchmark picker (single-select) - if (screenState === "picking_benchmark") { - return ( - - config={benchmarkPickerConfig} - onSelect={handleBenchmarkSelect} - onCancel={() => setScreenState("form")} - initialSelected={formData.benchmarkId ? [formData.benchmarkId] : []} - /> - ); - } - - // Show scenario picker (multi-select) - if (screenState === "picking_scenarios") { - return ( - - config={scenarioPickerConfig} - onSelect={handleScenarioSelect} - onCancel={() => setScreenState("form")} - initialSelected={formData.scenarioIds} - /> - ); - } - - // Show agent picker (single-select) - if (screenState === "picking_agents") { - return ( - - config={agentPickerConfig} - onSelect={handleAgentSelect} - onCancel={() => setScreenState("form")} - /> - ); - } - - // Show creating state - if (screenState === "creating") { - return ( - <> - - - - ); - } - - // Show success state - if (screenState === "success" && createdJob) { - return ( - - navigate("benchmark-job-detail", { benchmarkJobId: createdJob.id }) - } - onGoToList={() => navigate("benchmark-job-list")} - onBack={goBack} - /> - ); - } - - // Show error state - if (screenState === "error") { - return ( - <> - - - - - Press r to retry or{" "} - Esc to go back - - - - - ); - } - - // Helper to get display value for a field - const getFieldValue = (fieldKey: FormField): string => { - switch (fieldKey) { - case "source_type": - return formData.sourceType === "benchmark" ? "Benchmark" : "Scenarios"; - case "benchmark": - return formData.benchmarkName; - case "scenarios": - // Show count based on IDs even if names aren't loaded yet - if (formData.scenarioIds.length === 0) return ""; - if (formData.scenarioIds.length === 1) { - return formData.scenarioNames[0] || formData.scenarioIds[0]; - } - // If we have names, show the first name + count, otherwise show count - if (formData.scenarioNames.length > 0) { - return `${formData.scenarioNames.length} scenarios selected`; - } - return `${formData.scenarioIds.length} scenarios selected`; - case "agents": - if (formData.agentNames.length === 0) return ""; - if (formData.agentNames.length === 1) return formData.agentNames[0]; - return `${formData.agentNames.length} agents selected`; - case "secrets": { - const keys = Object.keys(formData.secretsMapping); - if (keys.length === 0) return ""; - if (keys.length === 1) - return `${keys[0]} → ${formData.secretsMapping[keys[0]]}`; - return `${keys.length} mappings`; - } - case "model_names": - return formData.modelNamesInput; - case "name": - return formData.name; - case "agent_timeout": - return formData.agentTimeout; - case "concurrent_trials": - return formData.concurrentTrials; - case "metadata": { - const keys = Object.keys(formData.metadata); - if (keys.length === 0) return ""; - if (keys.length === 1) - return `${keys[0]} = ${formData.metadata[keys[0]]}`; - return `${keys.length} item(s)`; - } - default: - return ""; - } - }; - - // Main form view - const isCloning = !!cloneFromJobId; - - return ( - <> - - - - - - {figures.pointer}{" "} - {isCloning ? "Clone Benchmark Job" : "Create Benchmark Job"} - - - - {fields.map((field) => { - const isSelected = currentField === field.key; - const value = getFieldValue(field.key); - - return ( - - - - {isSelected ? figures.pointer : " "} - - - - {field.type === "toggle" ? ( - - - {field.label} - {field.required && *} - :{" "} - - {/* Toggle between Benchmark and Scenarios */} - - {isSelected ? figures.arrowLeft : ""}{" "} - - - Benchmark - - / - - Scenarios - - - {" "} - {isSelected ? figures.arrowRight : ""} - - - ) : field.type === "action" ? ( - - - {" "} - {figures.play} {field.label}{" "} - {!isFormValid && "(select benchmark/scenarios and agents)"} - - - ) : field.type === "picker" ? ( - - - - {field.label} - {field.required && *} - :{" "} - - {value ? ( - {value} - ) : ( - - (none selected) - - )} - - {isSelected && ( - - - Press Enter to select - - - )} - - ) : field.type === "metadata" ? ( - !inMetadataSection ? ( - - - - {field.label}:{" "} - - - {Object.keys(formData.metadata).length > 0 - ? `${Object.keys(formData.metadata).length} item(s)` - : "None"} - - {isSelected && ( - - {" "} - [Enter to manage] - - )} - - {Object.keys(formData.metadata).length > 0 && ( - - - - )} - - ) : ( - (() => { - const metadataKeys = Object.keys(formData.metadata); - const maxIndex = metadataKeys.length + 1; - - return ( - - - {figures.hamburger} Manage Metadata - - - {metadataInputMode && ( - - - {selectedMetadataIndex === 0 - ? "Adding New" - : "Editing"} - - - {metadataInputMode === "key" ? ( - <> - Key: - - - ) : ( - Key: {metadataKey || ""} - )} - - - {metadataInputMode === "value" ? ( - <> - Value: - - - ) : ( - - Value: {metadataValue || ""} - - )} - - - )} - - {!metadataInputMode && ( - <> - - - {selectedMetadataIndex === 0 - ? figures.pointer - : " "}{" "} - - - + Add new metadata - - - - {metadataKeys.length > 0 && ( - - {metadataKeys.map((key, index) => { - const itemIndex = index + 1; - const isMetadataSelected = - selectedMetadataIndex === itemIndex; - return ( - - - {isMetadataSelected - ? figures.pointer - : " "}{" "} - - - {key}: {formData.metadata[key]} - - - ); - })} - - )} - - - - {selectedMetadataIndex === maxIndex - ? figures.pointer - : " "}{" "} - - - {figures.tick} Done - - - - )} - - - - {metadataInputMode - ? `[Tab] Switch field • [Enter] ${metadataInputMode === "key" ? "Next" : "Save"} • [esc] Cancel` - : `${figures.arrowUp}${figures.arrowDown} Navigate • [Enter] ${selectedMetadataIndex === 0 ? "Add" : selectedMetadataIndex === maxIndex ? "Done" : "Edit"} • [d] Delete • [esc] Back`} - - - - ); - })() - ) - ) : ( - - - {field.label} - {field.required && *} - :{" "} - - {isSelected ? ( - { - if (field.key === "name") { - setFormData((prev) => ({ ...prev, name: val })); - } else if (field.key === "model_names") { - setFormData((prev) => ({ - ...prev, - modelNamesInput: val, - })); - } else if (field.key === "agent_timeout") { - setFormData((prev) => ({ - ...prev, - agentTimeout: val, - })); - } else if (field.key === "concurrent_trials") { - setFormData((prev) => ({ - ...prev, - concurrentTrials: val, - })); - } - }} - placeholder={field.placeholder} - /> - ) : ( - - {value || field.placeholder || "(empty)"} - - )} - - )} - - ); - })} - - {/* Current field description */} - {currentFieldDef?.description && ( - - - {figures.info} {currentFieldDef.description} - - - )} - - - - - ); -} diff --git a/src/screens/BenchmarkJobDetailScreen.tsx b/src/screens/BenchmarkJobDetailScreen.tsx deleted file mode 100644 index e9fb2ed6..00000000 --- a/src/screens/BenchmarkJobDetailScreen.tsx +++ /dev/null @@ -1,889 +0,0 @@ -/** - * BenchmarkJobDetailScreen - Detail page for benchmark jobs - * Uses the generic ResourceDetailPage component - */ -import React from "react"; -import { Text } from "ink"; -import figures from "figures"; -import { useNavigation } from "../store/navigationStore.js"; -import { - useBenchmarkJobStore, - type BenchmarkJob, -} from "../store/benchmarkJobStore.js"; -import { - ResourceDetailPage, - formatTimestamp, - type DetailSection, - type ResourceOperation, -} from "../components/ResourceDetailPage.js"; -import { - getBenchmarkJob, - buildCloneParams, -} from "../services/benchmarkJobService.js"; -import { getBenchmarkRun } from "../services/benchmarkService.js"; -import { useResourceDetail } from "../hooks/useResourceDetail.js"; -import { SpinnerComponent } from "../components/Spinner.js"; -import { ErrorMessage } from "../components/ErrorMessage.js"; -import { Breadcrumb } from "../components/Breadcrumb.js"; -import { colors } from "../utils/theme.js"; - -interface BenchmarkJobDetailScreenProps { - benchmarkJobId?: string; -} - -export function BenchmarkJobDetailScreen({ - benchmarkJobId, -}: BenchmarkJobDetailScreenProps) { - const { goBack, navigate } = useNavigation(); - const benchmarkJobs = useBenchmarkJobStore((state) => state.benchmarkJobs); - const jobFromStore = benchmarkJobs.find((j) => j.id === benchmarkJobId); - - const { - data: job, - loading, - error, - } = useResourceDetail({ - id: benchmarkJobId, - fetch: getBenchmarkJob, - initialData: jobFromStore ?? undefined, - pollInterval: 3000, - shouldPoll: (j) => - j.state === "running" || - j.state === "queued" || - j.state === "initializing", - }); - - const [runNames, setRunNames] = React.useState>( - new Map(), - ); - - // Fetch run names when job is loaded - React.useEffect(() => { - if (!job) return; - - const runIds: string[] = []; - - // Collect run IDs from outcomes - if (job.benchmark_outcomes) { - job.benchmark_outcomes.forEach((outcome) => { - runIds.push(outcome.benchmark_run_id); - }); - } - - // Collect run IDs from in-progress runs - if (job.in_progress_runs) { - job.in_progress_runs.forEach((run) => { - if (!runIds.includes(run.benchmark_run_id)) { - runIds.push(run.benchmark_run_id); - } - }); - } - - // Fetch run details for each run ID - Promise.all( - runIds.map(async (runId) => { - try { - const run = await getBenchmarkRun(runId); - return { id: runId, name: run.name || runId }; - } catch { - return { id: runId, name: runId }; - } - }), - ).then((results) => { - const namesMap = new Map(); - results.forEach((result) => { - namesMap.set(result.id, result.name); - }); - setRunNames(namesMap); - }); - }, [job]); - - // Show loading state - if (!job && benchmarkJobId && !error) { - return ( - <> - - - - ); - } - - // Show error state - if (error && !job) { - return ( - <> - - - - ); - } - - // Show not found error - if (!job) { - return ( - <> - - - - ); - } - - // Helper to format duration - const formatDuration = (ms: number): string => { - if (ms < 1000) return `${ms}ms`; - const seconds = Math.floor(ms / 1000); - if (seconds < 60) return `${seconds}s`; - const minutes = Math.floor(seconds / 60); - const remainingSeconds = seconds % 60; - if (minutes < 60) return `${minutes}m ${remainingSeconds}s`; - const hours = Math.floor(minutes / 60); - const remainingMinutes = minutes % 60; - return `${hours}h ${remainingMinutes}m`; - }; - - // Build detail sections - const detailSections: DetailSection[] = []; - - // Basic details section - const basicFields = []; - if (job.create_time_ms) { - basicFields.push({ - label: "Created", - value: formatTimestamp(job.create_time_ms), - }); - } - - // Calculate overall score if available - if (job.benchmark_outcomes && job.benchmark_outcomes.length > 0) { - const scores = job.benchmark_outcomes - .map((o) => o.average_score) - .filter((s): s is number => s !== null && s !== undefined); - if (scores.length > 0) { - const avgScore = scores.reduce((a, b) => a + b, 0) / scores.length; - basicFields.push({ - label: "Overall Score", - value: ( - - {avgScore.toFixed(2)} - - ), - }); - } - } - - // Summary stats - if (job.benchmark_outcomes && job.benchmark_outcomes.length > 0) { - const totalCompleted = job.benchmark_outcomes.reduce( - (acc, o) => acc + o.n_completed, - 0, - ); - const totalFailed = job.benchmark_outcomes.reduce( - (acc, o) => acc + o.n_failed, - 0, - ); - const totalTimeout = job.benchmark_outcomes.reduce( - (acc, o) => acc + o.n_timeout, - 0, - ); - const total = totalCompleted + totalFailed + totalTimeout; - - basicFields.push({ - label: "Scenarios", - value: ( - - {totalCompleted} completed - {totalFailed > 0 && ( - / {totalFailed} failed - )} - {totalTimeout > 0 && ( - / {totalTimeout} timeout - )} - ({total} total) - - ), - }); - } - - if (job.failure_reason) { - basicFields.push({ - label: "Failure Reason", - value: {job.failure_reason}, - }); - } - - if (basicFields.length > 0) { - detailSections.push({ - title: "Summary", - icon: figures.squareSmallFilled, - color: colors.warning, - fields: basicFields, - }); - } - - // Build a unified view of benchmark runs per agent - // Collect all agents from job_spec, in_progress_runs, and benchmark_outcomes - // NOTE: We dedupe by benchmark_run_id, preferring completed outcomes over - // stale in-progress data to avoid showing mixed completed/running state. - interface AgentRunInfo { - agentName: string; - modelName?: string; - status: "pending" | "running" | "completed" | "failed" | "timeout"; - benchmarkRunId?: string; - score?: number; - nCompleted?: number; - nFailed?: number; - nTimeout?: number; - duration?: number; - startTime?: number; - } - - const agentRuns: AgentRunInfo[] = []; - - // Track which benchmark_run_ids we've already added from completed outcomes - const completedRunIds = new Set(); - - // First, add completed runs from benchmark_outcomes (authoritative) - if (job.benchmark_outcomes) { - job.benchmark_outcomes.forEach((outcome) => { - completedRunIds.add(outcome.benchmark_run_id); - - const total = outcome.n_completed + outcome.n_failed + outcome.n_timeout; - const status = - outcome.n_failed > 0 || outcome.n_timeout > 0 - ? outcome.n_completed === 0 - ? "failed" - : "completed" - : "completed"; - - agentRuns.push({ - agentName: outcome.agent_name, - modelName: outcome.model_name || undefined, - status, - benchmarkRunId: outcome.benchmark_run_id, - score: outcome.average_score ?? undefined, - nCompleted: outcome.n_completed, - nFailed: outcome.n_failed, - nTimeout: outcome.n_timeout, - duration: outcome.duration_ms ?? undefined, - }); - }); - } - - // Add in-progress runs that are NOT already in completed outcomes - if (job.in_progress_runs) { - job.in_progress_runs.forEach((run) => { - // Skip if we already have this run from benchmark_outcomes - if (completedRunIds.has(run.benchmark_run_id)) { - return; - } - - // Get agent name from agent_config if available - let agentName = "Unknown Agent"; - if (run.agent_config && "name" in run.agent_config) { - agentName = (run.agent_config as any).name; - } - - agentRuns.push({ - agentName, - status: "running", - benchmarkRunId: run.benchmark_run_id, - duration: run.duration_ms ?? undefined, - startTime: run.start_time_ms, - }); - }); - } - - // Add pending agents from job_spec that don't have runs yet - if (job.job_spec?.agent_configs) { - const runningOrCompletedAgents = new Set(agentRuns.map((r) => r.agentName)); - - job.job_spec.agent_configs.forEach((agent) => { - if (!runningOrCompletedAgents.has(agent.name)) { - agentRuns.push({ - agentName: agent.name, - modelName: agent.model_name || undefined, - status: "pending", - }); - } - }); - } - - // Benchmark Runs section - show all agent runs with their status - if (agentRuns.length > 0) { - const runsFields = agentRuns.map((run) => { - const parts: React.ReactNode[] = []; - - // Status indicator - switch (run.status) { - case "pending": - parts.push( - - {figures.circleDotted} Pending - , - ); - break; - case "running": - parts.push( - - {figures.play} Running - , - ); - if (run.duration) { - parts.push( - - {" "} - ({formatDuration(run.duration)}) - , - ); - } - break; - case "completed": - parts.push( - - {figures.tick} Completed - , - ); - if (run.score !== undefined) { - parts.push( - - {" "} - Score: {run.score.toFixed(2)} - , - ); - } - break; - case "failed": - parts.push( - - {figures.cross} Failed - , - ); - if (run.score !== undefined) { - parts.push( - - {" "} - Score: {run.score.toFixed(2)} - , - ); - } - break; - case "timeout": - parts.push( - - {figures.warning} Timeout - , - ); - break; - } - - // Stats for completed/failed runs - if (run.nCompleted !== undefined) { - parts.push( - - {" "} - ({run.nCompleted}✓{run.nFailed ? ` ${run.nFailed}✗` : ""} - {run.nTimeout ? ` ${run.nTimeout}⏱` : ""}) - , - ); - } - - // Duration for completed runs - if (run.status !== "running" && run.duration) { - parts.push( - - {" "} - {formatDuration(run.duration)} - , - ); - } - - // Benchmark Run ID (clickable hint) - if (run.benchmarkRunId) { - parts.push( - - {"\n"} - {" "} - {figures.arrowRight} Run:{" "} - {run.benchmarkRunId} - , - ); - } - - // Model name - if (run.modelName) { - parts.push( - - {" "} - [{run.modelName}] - , - ); - } - - return { - label: run.agentName, - value: {parts}, - ...(run.benchmarkRunId - ? { - action: { - type: "navigate" as const, - screen: "benchmark-run-detail" as const, - params: { benchmarkRunId: run.benchmarkRunId }, - hint: "View Run", - }, - } - : {}), - }; - }); - - const pendingCount = agentRuns.filter((r) => r.status === "pending").length; - const runningCount = agentRuns.filter((r) => r.status === "running").length; - const completedCount = agentRuns.filter( - (r) => r.status === "completed" || r.status === "failed", - ).length; - - let sectionTitle = `Benchmark Runs (${agentRuns.length} agents)`; - if (pendingCount > 0 || runningCount > 0) { - const statusParts: string[] = []; - if (completedCount > 0) statusParts.push(`${completedCount} done`); - if (runningCount > 0) statusParts.push(`${runningCount} running`); - if (pendingCount > 0) statusParts.push(`${pendingCount} pending`); - sectionTitle = `Benchmark Runs - ${statusParts.join(", ")}`; - } - - detailSections.push({ - title: sectionTitle, - icon: figures.pointer, - color: colors.primary, - fields: runsFields, - }); - } - - // Job Configuration section (condensed) - if (job.job_spec) { - const spec = job.job_spec; - const specFields = []; - - if (spec.scenario_ids && spec.scenario_ids.length > 0) { - specFields.push({ - label: "Scenarios", - value: `${spec.scenario_ids.length} scenario(s)`, - }); - } - - if (spec.orchestrator_config) { - const orch = spec.orchestrator_config; - const orchParts: string[] = []; - if (orch.n_concurrent_trials) - orchParts.push(`${orch.n_concurrent_trials} concurrent`); - if (orch.n_attempts) orchParts.push(`${orch.n_attempts} retries`); - if (orch.timeout_multiplier && orch.timeout_multiplier !== 1) { - orchParts.push(`${orch.timeout_multiplier}x timeout`); - } - if (orchParts.length > 0) { - specFields.push({ - label: "Orchestrator", - value: orchParts.join(", "), - }); - } - } - - if (specFields.length > 0) { - detailSections.push({ - title: "Job Configuration", - icon: figures.circleFilled, - color: colors.secondary, - fields: specFields, - }); - } - } - - // Job Source section - if (job.job_source) { - const source = job.job_source; - const sourceFields = []; - - if ("type" in source) { - sourceFields.push({ - label: "Source Type", - value: source.type, - }); - } - if ("benchmark_id" in source && source.benchmark_id) { - sourceFields.push({ - label: "Benchmark ID", - value: {source.benchmark_id}, - action: { - type: "navigate" as const, - screen: "benchmark-detail" as const, - params: { benchmarkId: source.benchmark_id as string }, - hint: "View Benchmark", - }, - }); - } - - if (sourceFields.length > 0) { - detailSections.push({ - title: "Job Source", - icon: figures.info, - color: colors.textDim, - fields: sourceFields, - }); - } - } - - // Collect benchmark run IDs for operations - const benchmarkRunIds: { id: string; name: string }[] = []; - if (job.benchmark_outcomes) { - job.benchmark_outcomes.forEach((outcome) => { - // Use fetched run name from state, fallback to run ID - const runName = - runNames.get(outcome.benchmark_run_id) || outcome.benchmark_run_id; - benchmarkRunIds.push({ - id: outcome.benchmark_run_id, - name: runName, - }); - }); - } - if (job.in_progress_runs) { - job.in_progress_runs.forEach((run) => { - // Avoid duplicates - if (!benchmarkRunIds.find((r) => r.id === run.benchmark_run_id)) { - // Use fetched run name from state, fallback to run ID - const runName = - runNames.get(run.benchmark_run_id) || run.benchmark_run_id; - benchmarkRunIds.push({ id: run.benchmark_run_id, name: runName }); - } - }); - } - - // Operations available for benchmark jobs - const operations: ResourceOperation[] = []; - - // Add "View Run" operations for each benchmark run (limit to first 9 for shortcuts) - benchmarkRunIds.slice(0, 9).forEach((run, idx) => { - operations.push({ - key: `view-run-${idx}`, - label: `View Run: ${run.name}`, - color: colors.info, - icon: figures.arrowRight, - shortcut: String(idx + 1), - }); - }); - - // Always add clone job option - operations.push({ - key: "clone-job", - label: "Clone Job", - color: colors.success, - icon: figures.play, - shortcut: "c", - }); - - // Handle operation selection - const handleOperation = async (operation: string, resource: BenchmarkJob) => { - if (operation.startsWith("view-run-")) { - const idx = parseInt(operation.replace("view-run-", ""), 10); - if (benchmarkRunIds[idx]) { - navigate("benchmark-run-detail", { - benchmarkRunId: benchmarkRunIds[idx].id, - }); - } - } else if (operation === "clone-job") { - navigate("benchmark-job-create", buildCloneParams(resource)); - } - }; - - // Build detailed info lines for full details view - const buildDetailLines = (j: BenchmarkJob): React.ReactElement[] => { - const lines: React.ReactElement[] = []; - - // Core Information - lines.push( - - Benchmark Job Details - , - ); - lines.push( - - {" "} - ID: {j.id} - , - ); - lines.push( - - {" "} - Name: {j.name || "(none)"} - , - ); - lines.push( - - {" "} - Status: {j.state} - , - ); - if (j.create_time_ms) { - lines.push( - - {" "} - Created: {new Date(j.create_time_ms).toLocaleString()} - , - ); - } - if (j.failure_reason) { - lines.push( - - {" "} - Failure: {j.failure_reason} - , - ); - } - lines.push( ); - - // Benchmark Runs - unified view - lines.push( - - Benchmark Runs - , - ); - - // Completed runs from benchmark_outcomes - if (j.benchmark_outcomes && j.benchmark_outcomes.length > 0) { - j.benchmark_outcomes.forEach((outcome, idx) => { - const scoreStr = - outcome.average_score !== undefined && outcome.average_score !== null - ? `Score: ${outcome.average_score.toFixed(2)}` - : "No score"; - const statsStr = `${outcome.n_completed}✓ ${outcome.n_failed}✗ ${outcome.n_timeout}⏱`; - const durationStr = outcome.duration_ms - ? formatDuration(outcome.duration_ms) - : ""; - const statusIcon = outcome.n_failed > 0 ? figures.cross : figures.tick; - const statusColor = - outcome.n_failed > 0 ? colors.error : colors.success; - - lines.push( - - {" "} - {statusIcon} - - {" "} - {outcome.agent_name || `Agent ${idx + 1}`} - - - : {scoreStr} ({statsStr}) {durationStr} - - , - ); - lines.push( - - {" "}Run ID: {outcome.benchmark_run_id} - , - ); - - // Show scenario outcomes - if (outcome.scenario_outcomes && outcome.scenario_outcomes.length > 0) { - outcome.scenario_outcomes.forEach((scenario, sIdx) => { - const scenarioScore = - scenario.score !== undefined && scenario.score !== null - ? scenario.score.toFixed(2) - : "-"; - const scenarioDur = scenario.duration_ms - ? formatDuration(scenario.duration_ms) - : ""; - const scenarioIcon = - scenario.state === "COMPLETED" - ? figures.tick - : scenario.state === "FAILED" - ? figures.cross - : figures.warning; - const scenarioColor = - scenario.state === "COMPLETED" - ? colors.success - : scenario.state === "FAILED" - ? colors.error - : colors.warning; - lines.push( - - {" "} - {scenarioIcon} - - {" "} - {scenario.scenario_name}: {scenario.state} (score:{" "} - {scenarioScore}) {scenarioDur} - - , - ); - if (scenario.failure_reason) { - lines.push( - - {" "} - {scenario.failure_reason.exception_type}:{" "} - {scenario.failure_reason.exception_message} - , - ); - } - }); - } - }); - } - - // In-progress runs (skip any that are already in completed outcomes) - if (j.in_progress_runs && j.in_progress_runs.length > 0) { - // Build set of completed run IDs to skip - const detailCompletedRunIds = new Set(); - j.benchmark_outcomes?.forEach((o) => - detailCompletedRunIds.add(o.benchmark_run_id), - ); - - j.in_progress_runs.forEach((run, idx) => { - // Skip if already in completed outcomes - if (detailCompletedRunIds.has(run.benchmark_run_id)) { - return; - } - - let agentName = "Unknown Agent"; - if (run.agent_config && "name" in run.agent_config) { - agentName = (run.agent_config as any).name; - } - const durationStr = run.duration_ms - ? formatDuration(run.duration_ms) - : ""; - - lines.push( - - {" "} - {figures.play} - {agentName} - : Running {durationStr} - , - ); - lines.push( - - {" "}Run ID: {run.benchmark_run_id} - , - ); - }); - } - - // Pending agents - if (j.job_spec?.agent_configs) { - const runningOrCompletedAgents = new Set(); - j.benchmark_outcomes?.forEach((o) => - runningOrCompletedAgents.add(o.agent_name), - ); - j.in_progress_runs?.forEach((r) => { - if (r.agent_config && "name" in r.agent_config) { - runningOrCompletedAgents.add((r.agent_config as any).name); - } - }); - - j.job_spec.agent_configs.forEach((agent, idx) => { - if (!runningOrCompletedAgents.has(agent.name)) { - lines.push( - - {" "} - {figures.circleDotted} - {agent.name}: Pending - , - ); - } - }); - } - - lines.push( ); - - // Job Configuration - if (j.job_spec) { - lines.push( - - Job Configuration - , - ); - if (j.job_spec.scenario_ids) { - lines.push( - - {" "} - Scenarios: {j.job_spec.scenario_ids.length} - , - ); - } - if (j.job_spec.orchestrator_config) { - const orch = j.job_spec.orchestrator_config; - const orchInfo = []; - if (orch.n_concurrent_trials) - orchInfo.push(`${orch.n_concurrent_trials} concurrent`); - if (orch.n_attempts) orchInfo.push(`${orch.n_attempts} retries`); - if (orchInfo.length > 0) { - lines.push( - - {" "} - Orchestrator: {orchInfo.join(", ")} - , - ); - } - } - lines.push( ); - } - - // Raw JSON - lines.push( - - Raw JSON - , - ); - const jsonLines = JSON.stringify(j, null, 2).split("\n"); - jsonLines.forEach((line, idx) => { - lines.push( - - {" "} - {line} - , - ); - }); - - return lines; - }; - - return ( - j.name || j.id} - getId={(j) => j.id} - getStatus={(j) => j.state} - detailSections={detailSections} - operations={operations} - onOperation={handleOperation} - onBack={goBack} - buildDetailLines={buildDetailLines} - breadcrumbPrefix={[{ label: "Home" }]} - /> - ); -} diff --git a/src/screens/BenchmarkJobListScreen.tsx b/src/screens/BenchmarkJobListScreen.tsx deleted file mode 100644 index b95c9926..00000000 --- a/src/screens/BenchmarkJobListScreen.tsx +++ /dev/null @@ -1,495 +0,0 @@ -/** - * BenchmarkJobListScreen - List view for benchmark jobs - */ -import React from "react"; -import { Box, Text, useInput, useApp } from "ink"; -import figures from "figures"; -import { useNavigation } from "../store/navigationStore.js"; -import { SpinnerComponent } from "../components/Spinner.js"; -import { ErrorMessage } from "../components/ErrorMessage.js"; -import { Breadcrumb } from "../components/Breadcrumb.js"; -import { NavigationTips } from "../components/NavigationTips.js"; -import { - Table, - createTextColumn, - createComponentColumn, -} from "../components/Table.js"; -import { ActionsPopup } from "../components/ActionsPopup.js"; -import { Operation } from "../components/OperationsMenu.js"; -import { formatTimeAgo } from "../components/ResourceListView.js"; -import { SearchBar } from "../components/SearchBar.js"; -import { getStatusDisplay } from "../components/StatusBadge.js"; -import { colors } from "../utils/theme.js"; -import { useViewportHeight } from "../hooks/useViewportHeight.js"; -import { useExitOnCtrlC } from "../hooks/useExitOnCtrlC.js"; -import { useCursorPagination } from "../hooks/useCursorPagination.js"; -import { useListSearch } from "../hooks/useListSearch.js"; -import { - listBenchmarkJobs, - buildCloneParams, - type BenchmarkJob, -} from "../services/benchmarkJobService.js"; - -export function BenchmarkJobListScreen() { - const { exit: inkExit } = useApp(); - const { navigate, goBack } = useNavigation(); - const [selectedIndex, setSelectedIndex] = React.useState(0); - const [showPopup, setShowPopup] = React.useState(false); - const [selectedOperation, setSelectedOperation] = React.useState(0); - - // Search state - const search = useListSearch({ - onSearchSubmit: () => setSelectedIndex(0), - onSearchClear: () => setSelectedIndex(0), - }); - - // Calculate overhead for viewport height - const overhead = 13 + search.getSearchOverhead(); - const { viewportHeight, terminalWidth } = useViewportHeight({ - overhead, - minHeight: 5, - }); - - const PAGE_SIZE = viewportHeight; - - // Column widths - const fixedWidth = 6; - const idWidth = 25; - const statusWidth = 12; - const scoreWidth = 8; - const statsWidth = 14; - const timeWidth = 14; - const baseWidth = - fixedWidth + idWidth + statusWidth + scoreWidth + statsWidth + timeWidth; - const remainingWidth = terminalWidth - baseWidth; - const nameWidth = Math.min(60, Math.max(15, remainingWidth)); - - // Helper to get score from job outcomes - const getJobScore = (job: BenchmarkJob): string => { - if (!job.benchmark_outcomes || job.benchmark_outcomes.length === 0) { - return "-"; - } - // Calculate average score across all outcomes - const scores = job.benchmark_outcomes - .map((o) => o.average_score) - .filter((s): s is number => s !== null && s !== undefined); - if (scores.length === 0) return "-"; - const avg = scores.reduce((a, b) => a + b, 0) / scores.length; - return avg.toFixed(2); - }; - - // Helper to get stats from job - const getJobStats = (job: BenchmarkJob): string => { - if (!job.benchmark_outcomes || job.benchmark_outcomes.length === 0) { - if (job.in_progress_runs && job.in_progress_runs.length > 0) { - return `${job.in_progress_runs.length} running`; - } - return "-"; - } - const totalCompleted = job.benchmark_outcomes.reduce( - (acc, o) => acc + o.n_completed, - 0, - ); - const totalFailed = job.benchmark_outcomes.reduce( - (acc, o) => acc + o.n_failed, - 0, - ); - const totalTimeout = job.benchmark_outcomes.reduce( - (acc, o) => acc + o.n_timeout, - 0, - ); - - const parts: string[] = []; - if (totalCompleted > 0) parts.push(`${totalCompleted}✓`); - if (totalFailed > 0) parts.push(`${totalFailed}✗`); - if (totalTimeout > 0) parts.push(`${totalTimeout}⏱`); - - return parts.length > 0 ? parts.join(" ") : "-"; - }; - - // Fetch function for pagination hook - const fetchPage = React.useCallback( - async (params: { - limit: number; - startingAt?: string; - includeTotalCount?: boolean; - }) => { - const result = await listBenchmarkJobs({ - limit: params.limit, - startingAfter: params.startingAt, - name: search.submittedSearchQuery || undefined, - includeTotalCount: params.includeTotalCount, - }); - - return { - items: result.jobs, - hasMore: result.hasMore, - totalCount: result.totalCount, - }; - }, - [search.submittedSearchQuery], - ); - - // Use the shared pagination hook - const { - items: benchmarkJobs, - loading, - navigating, - error, - currentPage, - hasMore, - hasPrev, - totalCount, - nextPage, - prevPage, - } = useCursorPagination({ - fetchPage, - pageSize: PAGE_SIZE, - getItemId: (job: BenchmarkJob) => job.id, - pollInterval: 5000, - pollingEnabled: !showPopup && !search.searchMode, - deps: [PAGE_SIZE, search.submittedSearchQuery], - }); - - // Operations for benchmark jobs - const operations: Operation[] = React.useMemo( - () => [ - { - key: "view_details", - label: "View Details", - color: colors.primary, - icon: figures.pointer, - }, - { - key: "clone_job", - label: "Clone Job", - color: colors.success, - icon: figures.play, - }, - ], - [], - ); - - // Build columns - const columns = React.useMemo( - () => [ - createTextColumn("id", "ID", (job: BenchmarkJob) => job.id, { - width: idWidth + 1, - color: colors.idColor, - dimColor: false, - bold: false, - }), - createTextColumn("name", "Name", (job: BenchmarkJob) => job.name || "", { - width: nameWidth, - }), - createComponentColumn( - "status", - "Status", - (job, _index, isSelected) => { - const statusDisplay = getStatusDisplay(job.state); - const text = statusDisplay.text - .slice(0, statusWidth) - .padEnd(statusWidth, " "); - return ( - - {text} - - ); - }, - { width: statusWidth }, - ), - createComponentColumn( - "score", - "Score", - (job, _index, isSelected) => { - const score = getJobScore(job); - const scoreColor = score === "-" ? colors.textDim : colors.success; - return ( - - {score.padEnd(scoreWidth, " ")} - - ); - }, - { width: scoreWidth }, - ), - createTextColumn( - "stats", - "Results", - (job: BenchmarkJob) => getJobStats(job), - { - width: statsWidth, - color: colors.textDim, - dimColor: false, - bold: false, - }, - ), - createTextColumn( - "created", - "Created", - (job: BenchmarkJob) => - job.create_time_ms ? formatTimeAgo(job.create_time_ms) : "", - { - width: timeWidth, - color: colors.textDim, - dimColor: false, - bold: false, - }, - ), - ], - [idWidth, nameWidth, statusWidth, scoreWidth, statsWidth, timeWidth], - ); - - // Handle Ctrl+C to exit - useExitOnCtrlC(); - - // Ensure selected index is within bounds - React.useEffect(() => { - if (benchmarkJobs.length > 0 && selectedIndex >= benchmarkJobs.length) { - setSelectedIndex(Math.max(0, benchmarkJobs.length - 1)); - } - }, [benchmarkJobs.length, selectedIndex]); - - const selectedJob = benchmarkJobs[selectedIndex]; - - // Calculate pagination info for display - const totalPages = Math.max(1, Math.ceil(totalCount / PAGE_SIZE)); - const startIndex = currentPage * PAGE_SIZE; - const endIndex = startIndex + benchmarkJobs.length; - - useInput((input, key) => { - // Handle search mode input - if (search.searchMode) { - if (key.escape) { - search.cancelSearch(); - } - return; - } - - // Handle popup navigation - if (showPopup) { - if (key.upArrow && selectedOperation > 0) { - setSelectedOperation(selectedOperation - 1); - } else if (key.downArrow && selectedOperation < operations.length - 1) { - setSelectedOperation(selectedOperation + 1); - } else if (key.return) { - setShowPopup(false); - const operationKey = operations[selectedOperation].key; - - if (operationKey === "view_details" && selectedJob) { - navigate("benchmark-job-detail", { - benchmarkJobId: selectedJob.id, - }); - } else if (operationKey === "clone_job" && selectedJob) { - navigate("benchmark-job-create", buildCloneParams(selectedJob)); - } - } else if (input === "v" && selectedJob) { - setShowPopup(false); - navigate("benchmark-job-detail", { - benchmarkJobId: selectedJob.id, - }); - } else if (input === "n" && selectedJob) { - setShowPopup(false); - navigate("benchmark-job-create", buildCloneParams(selectedJob)); - } else if (key.escape || input === "q") { - setShowPopup(false); - setSelectedOperation(0); - } - return; - } - - const pageJobs = benchmarkJobs.length; - - // Handle list view navigation - if (key.upArrow && selectedIndex > 0) { - setSelectedIndex(selectedIndex - 1); - } else if (key.downArrow && selectedIndex < pageJobs - 1) { - setSelectedIndex(selectedIndex + 1); - } else if ( - (input === "n" || key.rightArrow) && - !loading && - !navigating && - hasMore - ) { - nextPage(); - setSelectedIndex(0); - } else if ( - (input === "p" || key.leftArrow) && - !loading && - !navigating && - hasPrev - ) { - prevPage(); - setSelectedIndex(0); - } else if (key.return && selectedJob) { - navigate("benchmark-job-detail", { - benchmarkJobId: selectedJob.id, - }); - } else if (input === "a" && selectedJob) { - setShowPopup(true); - setSelectedOperation(0); - } else if (input === "3") { - // Quick shortcut to clone the selected job, or create a new job if none selected - if (selectedJob) { - navigate("benchmark-job-create", buildCloneParams(selectedJob)); - } else { - navigate("benchmark-job-create"); - } - } else if (input === "/") { - search.enterSearchMode(); - } else if (key.escape) { - if (search.handleEscape()) { - return; - } - goBack(); - } - }); - - // Loading state - if (loading && benchmarkJobs.length === 0) { - return ( - <> - - - - ); - } - - // Error state - if (error) { - return ( - <> - - - - ); - } - - // Main list view - return ( - <> - - - {/* Search bar */} - - - {/* Table */} - {!showPopup && ( - job.id} - selectedIndex={selectedIndex} - title={`benchmark_jobs[${totalCount}]`} - columns={columns} - emptyState={ - - {figures.info} No benchmark jobs found - - } - /> - )} - - {/* Statistics Bar */} - {!showPopup && ( - - - {figures.hamburger} {totalCount} - - - {" "} - total - - {totalPages > 1 && ( - <> - - {" "} - •{" "} - - {navigating ? ( - - {figures.pointer} Loading page {currentPage + 1}... - - ) : ( - - Page {currentPage + 1} of {totalPages} - - )} - - )} - {endIndex > startIndex && ( - <> - - {" "} - •{" "} - - - Showing {startIndex + 1}-{endIndex} of {totalCount} - - - )} - - )} - - {/* Actions Popup */} - {showPopup && selectedJob && ( - - ({ - key: op.key, - label: op.label, - color: op.color, - icon: op.icon, - shortcut: - op.key === "view_details" - ? "v" - : op.key === "clone_job" - ? "n" - : "", - }))} - selectedOperation={selectedOperation} - onClose={() => setShowPopup(false)} - /> - - )} - - {/* Help Bar */} - - - ); -} diff --git a/src/screens/BenchmarkListScreen.tsx b/src/screens/BenchmarkListScreen.tsx deleted file mode 100644 index 5bbe5c19..00000000 --- a/src/screens/BenchmarkListScreen.tsx +++ /dev/null @@ -1,478 +0,0 @@ -/** - * BenchmarkListScreen - List view for benchmark definitions - */ -import React from "react"; -import { Box, Text, useInput, useApp } from "ink"; -import figures from "figures"; -import { useNavigation } from "../store/navigationStore.js"; -import { SpinnerComponent } from "../components/Spinner.js"; -import { ErrorMessage } from "../components/ErrorMessage.js"; -import { Breadcrumb } from "../components/Breadcrumb.js"; -import { NavigationTips } from "../components/NavigationTips.js"; -import { - Table, - createTextColumn, - createComponentColumn, -} from "../components/Table.js"; -import { ActionsPopup } from "../components/ActionsPopup.js"; -import { Operation } from "../components/OperationsMenu.js"; -import { formatTimeAgo } from "../components/ResourceListView.js"; -import { SearchBar } from "../components/SearchBar.js"; -import { getStatusDisplay } from "../components/StatusBadge.js"; -import { colors } from "../utils/theme.js"; -import { useViewportHeight } from "../hooks/useViewportHeight.js"; -import { useExitOnCtrlC } from "../hooks/useExitOnCtrlC.js"; -import { useCursorPagination } from "../hooks/useCursorPagination.js"; -import { useListSearch } from "../hooks/useListSearch.js"; -import { - listBenchmarks, - listPublicBenchmarks, -} from "../services/benchmarkService.js"; -import type { Benchmark } from "../store/benchmarkStore.js"; -import { openInBrowser } from "../utils/browser.js"; -import { getBenchmarkUrl } from "../utils/url.js"; - -export function BenchmarkListScreen() { - const { exit: inkExit } = useApp(); - const { navigate, goBack } = useNavigation(); - const [selectedIndex, setSelectedIndex] = React.useState(0); - const [showPopup, setShowPopup] = React.useState(false); - const [selectedOperation, setSelectedOperation] = React.useState(0); - const [showPublic, setShowPublic] = React.useState(true); - - // Search state - const search = useListSearch({ - onSearchSubmit: () => setSelectedIndex(0), - onSearchClear: () => setSelectedIndex(0), - }); - - // Calculate overhead for viewport height - const overhead = 14 + search.getSearchOverhead(); - const { viewportHeight, terminalWidth } = useViewportHeight({ - overhead, - minHeight: 5, - }); - - const PAGE_SIZE = viewportHeight; - - // Column widths - const fixedWidth = 6; - const idWidth = 25; - const statusWidth = 12; - const timeWidth = 18; - const baseWidth = fixedWidth + idWidth + statusWidth + timeWidth; - const remainingWidth = terminalWidth - baseWidth; - const nameWidth = Math.min(80, Math.max(15, remainingWidth)); - - // Fetch function for pagination hook - const fetchPage = React.useCallback( - async (params: { - limit: number; - startingAt?: string; - includeTotalCount?: boolean; - }) => { - const listFn = showPublic ? listPublicBenchmarks : listBenchmarks; - const result = await listFn({ - limit: params.limit, - startingAfter: params.startingAt, - search: search.submittedSearchQuery || undefined, - includeTotalCount: params.includeTotalCount, - }); - - return { - items: result.benchmarks, - hasMore: result.hasMore, - totalCount: result.totalCount, - }; - }, - [showPublic, search.submittedSearchQuery], - ); - - // Use the shared pagination hook - const { - items: benchmarks, - loading, - navigating, - error, - currentPage, - hasMore, - hasPrev, - totalCount, - nextPage, - prevPage, - } = useCursorPagination({ - fetchPage, - pageSize: PAGE_SIZE, - getItemId: (benchmark: Benchmark) => benchmark.id, - pollInterval: 5000, - pollingEnabled: !showPopup && !search.searchMode, - deps: [PAGE_SIZE, search.submittedSearchQuery, showPublic], - }); - - // Operations for benchmarks - const operations: Operation[] = React.useMemo( - () => [ - { - key: "view_details", - label: "View Details", - color: colors.primary, - icon: figures.pointer, - }, - { - key: "create_job", - label: "Create Benchmark Job", - color: colors.success, - icon: figures.play, - }, - ], - [], - ); - - // Build columns - const columns = React.useMemo( - () => [ - createTextColumn("id", "ID", (benchmark: Benchmark) => benchmark.id, { - width: idWidth + 1, - color: colors.idColor, - dimColor: false, - bold: false, - }), - createTextColumn( - "name", - "Name", - (benchmark: Benchmark) => benchmark.name || "", - { - width: nameWidth, - }, - ), - createComponentColumn( - "status", - "Status", - (benchmark, _index, isSelected) => { - const status = (benchmark as any).status || "active"; - const statusDisplay = getStatusDisplay(status); - const text = statusDisplay.text - .slice(0, statusWidth) - .padEnd(statusWidth, " "); - return ( - - {text} - - ); - }, - { width: statusWidth }, - ), - createTextColumn( - "created", - "Created", - (benchmark: Benchmark) => - (benchmark as any).created_at - ? formatTimeAgo((benchmark as any).created_at) - : "", - { - width: timeWidth, - color: colors.textDim, - dimColor: false, - bold: false, - }, - ), - ], - [idWidth, nameWidth, statusWidth, timeWidth], - ); - - // Handle Ctrl+C to exit - useExitOnCtrlC(); - - // Ensure selected index is within bounds - React.useEffect(() => { - if (benchmarks.length > 0 && selectedIndex >= benchmarks.length) { - setSelectedIndex(Math.max(0, benchmarks.length - 1)); - } - }, [benchmarks.length, selectedIndex]); - - const selectedBenchmark = benchmarks[selectedIndex]; - - // Calculate pagination info for display - const totalPages = Math.max(1, Math.ceil(totalCount / PAGE_SIZE)); - const startIndex = currentPage * PAGE_SIZE; - const endIndex = startIndex + benchmarks.length; - - useInput((input, key) => { - // Handle search mode input - if (search.searchMode) { - if (key.escape) { - search.cancelSearch(); - } - return; - } - - // Handle popup navigation - if (showPopup) { - if (key.upArrow && selectedOperation > 0) { - setSelectedOperation(selectedOperation - 1); - } else if (key.downArrow && selectedOperation < operations.length - 1) { - setSelectedOperation(selectedOperation + 1); - } else if (key.return) { - setShowPopup(false); - const operationKey = operations[selectedOperation].key; - - if (operationKey === "view_details") { - navigate("benchmark-detail", { - benchmarkId: selectedBenchmark.id, - }); - } else if (operationKey === "create_job") { - navigate("benchmark-job-create", { - initialBenchmarkIds: selectedBenchmark.id, - }); - } - } else if (input === "v" && selectedBenchmark) { - setShowPopup(false); - navigate("benchmark-detail", { - benchmarkId: selectedBenchmark.id, - }); - } else if (input === "s" && selectedBenchmark) { - setShowPopup(false); - navigate("benchmark-job-create", { - initialBenchmarkIds: selectedBenchmark.id, - }); - } else if (key.escape || input === "q") { - setShowPopup(false); - setSelectedOperation(0); - } - return; - } - - // Tab switching - if (key.tab) { - setShowPublic((prev) => !prev); - setSelectedIndex(0); - return; - } - - const pageBenchmarks = benchmarks.length; - - // Handle list view navigation - if (key.upArrow && selectedIndex > 0) { - setSelectedIndex(selectedIndex - 1); - } else if (key.downArrow && selectedIndex < pageBenchmarks - 1) { - setSelectedIndex(selectedIndex + 1); - } else if ( - (input === "n" || key.rightArrow) && - !loading && - !navigating && - hasMore - ) { - nextPage(); - setSelectedIndex(0); - } else if ( - (input === "p" || key.leftArrow) && - !loading && - !navigating && - hasPrev - ) { - prevPage(); - setSelectedIndex(0); - } else if (key.return && selectedBenchmark) { - navigate("benchmark-detail", { - benchmarkId: selectedBenchmark.id, - }); - } else if (input === "a" && selectedBenchmark) { - setShowPopup(true); - setSelectedOperation(0); - } else if (input === "o" && selectedBenchmark) { - openInBrowser(getBenchmarkUrl(selectedBenchmark.id, showPublic)); - } else if (input === "s" && selectedBenchmark) { - // Quick shortcut to create a job - navigate("benchmark-job-create", { - initialBenchmarkIds: selectedBenchmark.id, - }); - } else if (input === "/") { - search.enterSearchMode(); - } else if (key.escape) { - if (search.handleEscape()) { - return; - } - goBack(); - } - }); - - // Loading state - if (loading && benchmarks.length === 0) { - return ( - <> - - - - ); - } - - // Error state - if (error) { - return ( - <> - - - - ); - } - - // Main list view - return ( - <> - - - {/* Tab bar */} - - - {showPublic ? figures.pointer : " "} Public - - - - {!showPublic ? figures.pointer : " "} Custom - - - {" "} - (Tab to switch) - - - - {/* Search bar */} - - - {/* Table */} - {!showPopup && ( -
benchmark.id} - selectedIndex={selectedIndex} - title={`benchmarks[${totalCount}] ${showPublic ? "(public)" : "(custom)"}`} - columns={columns} - emptyState={ - - {figures.info} No {showPublic ? "public " : ""}benchmarks found - - } - /> - )} - - {/* Statistics Bar */} - {!showPopup && ( - - - {figures.hamburger} {totalCount} - - - {" "} - total - - {totalPages > 1 && ( - <> - - {" "} - •{" "} - - {navigating ? ( - - {figures.pointer} Loading page {currentPage + 1}... - - ) : ( - - Page {currentPage + 1} of {totalPages} - - )} - - )} - {endIndex > startIndex && ( - <> - - {" "} - •{" "} - - - Showing {startIndex + 1}-{endIndex} of {totalCount} - - - )} - - )} - - {/* Actions Popup */} - {showPopup && selectedBenchmark && ( - - ({ - key: op.key, - label: op.label, - color: op.color, - icon: op.icon, - shortcut: - op.key === "view_details" - ? "v" - : op.key === "create_job" - ? "s" - : "", - }))} - selectedOperation={selectedOperation} - onClose={() => setShowPopup(false)} - /> - - )} - - {/* Help Bar */} - - - ); -} diff --git a/src/screens/BenchmarkMenuScreen.tsx b/src/screens/BenchmarkMenuScreen.tsx deleted file mode 100644 index a6e3fadc..00000000 --- a/src/screens/BenchmarkMenuScreen.tsx +++ /dev/null @@ -1,36 +0,0 @@ -/** - * BenchmarkMenuScreen - Benchmark sub-menu using navigation context - */ -import React from "react"; -import { useNavigation, type ScreenName } from "../store/navigationStore.js"; -import { BenchmarkMenu } from "../components/BenchmarkMenu.js"; - -export function BenchmarkMenuScreen() { - const { navigate, goBack } = useNavigation(); - - const handleSelect = (key: string) => { - switch (key) { - case "benchmarks": - navigate("benchmark-list"); - break; - case "benchmark-runs": - navigate("benchmark-run-list"); - break; - case "benchmark-jobs": - navigate("benchmark-job-list"); - break; - case "scenario-runs": - navigate("scenario-run-list"); - break; - default: - // Fallback for any other screen names - navigate(key as ScreenName); - } - }; - - const handleBack = () => { - goBack(); - }; - - return ; -} diff --git a/src/screens/BenchmarkRunDetailScreen.tsx b/src/screens/BenchmarkRunDetailScreen.tsx deleted file mode 100644 index 0c6c05eb..00000000 --- a/src/screens/BenchmarkRunDetailScreen.tsx +++ /dev/null @@ -1,635 +0,0 @@ -/** - * BenchmarkRunDetailScreen - Detail page for benchmark runs - * Uses the generic ResourceDetailPage component - */ -import React from "react"; -import { Box, Text } from "ink"; -import figures from "figures"; -import { useNavigation } from "../store/navigationStore.js"; -import { - useBenchmarkStore, - type BenchmarkRun, - type ScenarioRun, -} from "../store/benchmarkStore.js"; -import { - ResourceDetailPage, - formatTimestamp, - type DetailSection, - type ResourceOperation, -} from "../components/ResourceDetailPage.js"; -import { - getBenchmarkRun, - listScenarioRuns, -} from "../services/benchmarkService.js"; -import { useResourceDetail } from "../hooks/useResourceDetail.js"; -import { SpinnerComponent } from "../components/Spinner.js"; -import { ErrorMessage } from "../components/ErrorMessage.js"; -import { Breadcrumb } from "../components/Breadcrumb.js"; -import { getStatusDisplay, StatusBadge } from "../components/StatusBadge.js"; -import { - Table, - createTextColumn, - createComponentColumn, -} from "../components/Table.js"; -import { colors } from "../utils/theme.js"; -import { getBenchmarkRunUrl } from "../utils/url.js"; - -interface BenchmarkRunDetailScreenProps { - benchmarkRunId?: string; -} - -export function BenchmarkRunDetailScreen({ - benchmarkRunId, -}: BenchmarkRunDetailScreenProps) { - const { goBack, navigate } = useNavigation(); - const benchmarkRuns = useBenchmarkStore((state) => state.benchmarkRuns); - - const runFromStore = benchmarkRuns.find((r) => r.id === benchmarkRunId); - - const { - data: run, - loading, - error, - } = useResourceDetail({ - id: benchmarkRunId, - fetch: getBenchmarkRun, - initialData: runFromStore ?? undefined, - pollInterval: 3000, - shouldPoll: (r) => r.state === "running", - }); - - const [scenarioRuns, setScenarioRuns] = React.useState([]); - const [scenarioRunsLoading, setScenarioRunsLoading] = React.useState(false); - - // Fetch scenario runs for this benchmark run - React.useEffect(() => { - if (benchmarkRunId && !scenarioRunsLoading && scenarioRuns.length === 0) { - setScenarioRunsLoading(true); - - listScenarioRuns({ - limit: 10, // Show up to 10 scenarios - benchmarkRunId, - }) - .then((result) => { - setScenarioRuns(result.scenarioRuns); - setScenarioRunsLoading(false); - }) - .catch(() => { - // Silently fail for scenario runs - not critical - setScenarioRunsLoading(false); - }); - } - }, [benchmarkRunId, scenarioRunsLoading, scenarioRuns.length]); - - // Auto-refresh scenario runs every 5 seconds if benchmark run is running - React.useEffect(() => { - if (!benchmarkRunId || !run) return; - - // Only refresh if run is still running - if (run.state !== "running") return; - - const interval = setInterval(() => { - listScenarioRuns({ - limit: 10, - benchmarkRunId, - }) - .then((result) => { - setScenarioRuns(result.scenarioRuns); - }) - .catch(() => { - // Silently fail - }); - }, 5000); - - return () => clearInterval(interval); - }, [benchmarkRunId, run]); - - // Show loading state - if (!run && benchmarkRunId && !error) { - return ( - <> - - - - ); - } - - // Show error state - if (error && !run) { - return ( - <> - - - - ); - } - - // Show not found error - if (!run) { - return ( - <> - - - - ); - } - - // Helper to calculate overall run status based on scenarios - const calculateOverallStatus = ( - scenarios: ScenarioRun[], - ): { - status: "failed" | "pass" | "in-progress" | "not-started"; - label: string; - color: string; - icon: string; - } => { - if (scenarios.length === 0) { - return { - status: "not-started", - label: "Not Started", - color: colors.textDim, - icon: figures.circle, - }; - } - - // Check for any failures or timeouts - const hasFailed = scenarios.some( - (s) => s.state === "failed" || s.state === "timeout", - ); - if (hasFailed) { - return { - status: "failed", - label: "Failed", - color: colors.error, - icon: figures.cross, - }; - } - - // Check if all are completed - const allCompleted = scenarios.every( - (s) => s.state === "completed" || s.state === "scored", - ); - if (allCompleted) { - return { - status: "pass", - label: "Complete", - color: colors.success, - icon: figures.tick, - }; - } - - // Check if any are running - const anyRunning = scenarios.some( - (s) => s.state === "running" || s.state === "scoring", - ); - if (anyRunning) { - return { - status: "in-progress", - label: "In Progress", - color: colors.warning, - icon: figures.circleFilled, - }; - } - - // Default to not started - return { - status: "not-started", - label: "Not Started", - color: colors.textDim, - icon: figures.circle, - }; - }; - - // Helper to format duration - const formatDuration = (ms: number): string => { - if (ms < 1000) return `${ms}ms`; - const seconds = Math.floor(ms / 1000); - if (seconds < 60) return `${seconds}s`; - const minutes = Math.floor(seconds / 60); - const remainingSeconds = seconds % 60; - if (minutes < 60) return `${minutes}m ${remainingSeconds}s`; - const hours = Math.floor(minutes / 60); - const remainingMinutes = minutes % 60; - return `${hours}h ${remainingMinutes}m`; - }; - - // Build detail sections - const detailSections: DetailSection[] = []; - - // Basic details section - const basicFields = []; - if (run.benchmark_id) { - basicFields.push({ - label: "Benchmark ID", - value: {run.benchmark_id}, - action: { - type: "navigate" as const, - screen: "benchmark-detail" as const, - params: { benchmarkId: run.benchmark_id }, - hint: "View Benchmark", - }, - }); - } - if (run.purpose) { - basicFields.push({ - label: "Purpose", - value: run.purpose, - }); - } - if (run.score !== undefined && run.score !== null) { - basicFields.push({ - label: "Score", - value: ( - - {run.score.toFixed(2)} - - ), - }); - } - - if (basicFields.length > 0) { - detailSections.push({ - title: "Details", - icon: figures.squareSmallFilled, - color: colors.warning, - fields: basicFields, - }); - } - - // Overall Status Section - const overallStatus = calculateOverallStatus(scenarioRuns); - detailSections.push({ - title: "Overall Status", - icon: overallStatus.icon, - color: overallStatus.color, - fields: [ - { - label: "Status", - value: ( - - {overallStatus.label} - - ), - }, - { - label: "Scenarios", - value: `${scenarioRuns.length} scenario${scenarioRuns.length !== 1 ? "s" : ""}`, - }, - ], - }); - - // Scenario Runs Section - if (scenarioRuns.length > 0) { - // Define columns for scenario table - const scenarioColumns = [ - createTextColumn("id", "ID", (s: ScenarioRun) => s.id, { - width: 26, - color: colors.idColor, - dimColor: false, - bold: false, - }), - createTextColumn( - "name", - "Name", - (s: ScenarioRun) => s.name || "(unnamed)", - { - width: 50, - }, - ), - createComponentColumn( - "status", - "Status", - (s, _index, isSelected) => { - const statusDisplay = getStatusDisplay(s.state); - const text = statusDisplay.text.slice(0, 12).padEnd(12, " "); - return ( - - {text} - - ); - }, - { width: 12 }, - ), - createTextColumn( - "score", - "Score", - (s: ScenarioRun) => { - const score = s.scoring_contract_result?.score; - return score !== undefined ? String(score) : ""; - }, - { - width: 10, - color: colors.info, - }, - ), - ]; - - detailSections.push({ - title: "Scenario Runs", - icon: figures.pointer, - color: colors.info, - fields: [ - { - label: "", - value: ( - -
s.id} - /> - - ), - }, - ], - }); - } - - // Timing section - const timingFields = []; - if (run.start_time_ms) { - timingFields.push({ - label: "Started", - value: formatTimestamp(run.start_time_ms), - }); - } - const endTimeMs = - run.start_time_ms && run.duration_ms - ? run.start_time_ms + run.duration_ms - : undefined; - if (endTimeMs) { - timingFields.push({ - label: "Ended", - value: formatTimestamp(endTimeMs), - }); - } - if (run.duration_ms) { - timingFields.push({ - label: "Duration", - value: {formatDuration(run.duration_ms)}, - }); - } - - if (timingFields.length > 0) { - detailSections.push({ - title: "Timing", - icon: figures.play, - color: colors.info, - fields: timingFields, - }); - } - - // Secrets Provided section (show keys only, not values) - if (run.secrets_provided && Object.keys(run.secrets_provided).length > 0) { - const secretFields = Object.entries(run.secrets_provided).map( - ([envVar, secretName]) => ({ - label: envVar, - value: {secretName} (secret), - action: { - type: "navigate" as const, - screen: "secret-detail" as const, - params: { secretId: secretName }, - hint: "View Secret", - }, - }), - ); - - detailSections.push({ - title: "Secrets Provided", - icon: figures.warning, - color: colors.warning, - fields: secretFields, - }); - } - - // Metadata section - if (run.metadata && Object.keys(run.metadata).length > 0) { - const metadataFields = Object.entries(run.metadata).map(([key, value]) => ({ - label: key, - value: value, - })); - - detailSections.push({ - title: "Metadata", - icon: figures.identical, - color: colors.secondary, - fields: metadataFields, - }); - } - - // Operations available for benchmark runs - const operations: ResourceOperation[] = [ - { - key: "view-scenarios", - label: "View Scenario Runs", - color: colors.info, - icon: figures.arrowRight, - shortcut: "s", - }, - ]; - - // Handle operation selection - const handleOperation = async (operation: string, resource: BenchmarkRun) => { - switch (operation) { - case "view-scenarios": - navigate("scenario-run-list", { benchmarkRunId: resource.id }); - break; - } - }; - - // Build detailed info lines for full details view - const buildDetailLines = (r: BenchmarkRun): React.ReactElement[] => { - const lines: React.ReactElement[] = []; - - // Core Information - lines.push( - - Benchmark Run Details - , - ); - lines.push( - - {" "} - ID: {r.id} - , - ); - lines.push( - - {" "} - Name: {r.name || "(none)"} - , - ); - lines.push( - - {" "} - Status: {r.state} - , - ); - if (r.benchmark_id) { - lines.push( - - {" "} - Benchmark ID: {r.benchmark_id} - , - ); - } - if (r.purpose) { - lines.push( - - {" "} - Purpose: {r.purpose} - , - ); - } - if (r.score !== undefined && r.score !== null) { - lines.push( - - {" "} - Score: {r.score.toFixed(2)} - , - ); - } - lines.push( ); - - // Timing - lines.push( - - Timing - , - ); - if (r.start_time_ms) { - lines.push( - - {" "} - Started: {new Date(r.start_time_ms).toLocaleString()} - , - ); - } - const detailEndTimeMs = - r.start_time_ms && r.duration_ms - ? r.start_time_ms + r.duration_ms - : undefined; - if (detailEndTimeMs) { - lines.push( - - {" "} - Ended: {new Date(detailEndTimeMs).toLocaleString()} - , - ); - } - if (r.duration_ms) { - lines.push( - - {" "} - Duration: {formatDuration(r.duration_ms)} - , - ); - } - lines.push( ); - - // Secrets Provided - if (r.secrets_provided && Object.keys(r.secrets_provided).length > 0) { - lines.push( - - Secrets Provided - , - ); - Object.entries(r.secrets_provided).forEach( - ([envVar, secretName], idx) => { - lines.push( - - {" "} - {envVar} → {secretName} - , - ); - }, - ); - lines.push( ); - } - - // Metadata - if (r.metadata && Object.keys(r.metadata).length > 0) { - lines.push( - - Metadata - , - ); - Object.entries(r.metadata).forEach(([key, value], idx) => { - lines.push( - - {" "} - {key}: {value} - , - ); - }); - lines.push( ); - } - - // Raw JSON - lines.push( - - Raw JSON - , - ); - const jsonLines = JSON.stringify(r, null, 2).split("\n"); - jsonLines.forEach((line, idx) => { - lines.push( - - {" "} - {line} - , - ); - }); - - return lines; - }; - - return ( - r.name || r.id} - getId={(r) => r.id} - getUrl={(r) => getBenchmarkRunUrl(r.id, r.benchmark_id)} - getStatus={(r) => r.state} - detailSections={detailSections} - operations={operations} - onOperation={handleOperation} - onBack={goBack} - buildDetailLines={buildDetailLines} - breadcrumbPrefix={[{ label: "Home" }, { label: "Benchmarks" }]} - /> - ); -} diff --git a/src/screens/BenchmarkRunListScreen.tsx b/src/screens/BenchmarkRunListScreen.tsx deleted file mode 100644 index 38c92c80..00000000 --- a/src/screens/BenchmarkRunListScreen.tsx +++ /dev/null @@ -1,449 +0,0 @@ -/** - * BenchmarkRunListScreen - List view for benchmark runs - */ -import React from "react"; -import { Box, Text, useInput, useApp } from "ink"; -import figures from "figures"; -import { useNavigation } from "../store/navigationStore.js"; -import { SpinnerComponent } from "../components/Spinner.js"; -import { ErrorMessage } from "../components/ErrorMessage.js"; -import { Breadcrumb } from "../components/Breadcrumb.js"; -import { NavigationTips } from "../components/NavigationTips.js"; -import { - Table, - createTextColumn, - createComponentColumn, -} from "../components/Table.js"; -import { ActionsPopup } from "../components/ActionsPopup.js"; -import { Operation } from "../components/OperationsMenu.js"; -import { formatTimeAgo } from "../components/ResourceListView.js"; -import { SearchBar } from "../components/SearchBar.js"; -import { getStatusDisplay } from "../components/StatusBadge.js"; -import { colors } from "../utils/theme.js"; -import { useViewportHeight } from "../hooks/useViewportHeight.js"; -import { useExitOnCtrlC } from "../hooks/useExitOnCtrlC.js"; -import { useCursorPagination } from "../hooks/useCursorPagination.js"; -import { useListSearch } from "../hooks/useListSearch.js"; -import { listBenchmarkRuns } from "../services/benchmarkService.js"; -import type { BenchmarkRun } from "../store/benchmarkStore.js"; -import { openInBrowser } from "../utils/browser.js"; -import { getBenchmarkRunUrl } from "../utils/url.js"; - -export function BenchmarkRunListScreen() { - const { exit: inkExit } = useApp(); - const { navigate, goBack } = useNavigation(); - const [selectedIndex, setSelectedIndex] = React.useState(0); - const [showPopup, setShowPopup] = React.useState(false); - const [selectedOperation, setSelectedOperation] = React.useState(0); - - // Search state - const search = useListSearch({ - onSearchSubmit: () => setSelectedIndex(0), - onSearchClear: () => setSelectedIndex(0), - }); - - // Calculate overhead for viewport height - const overhead = 13 + search.getSearchOverhead(); - const { viewportHeight, terminalWidth } = useViewportHeight({ - overhead, - minHeight: 5, - }); - - const PAGE_SIZE = viewportHeight; - - // Column widths - const fixedWidth = 6; - const idWidth = 25; - const statusWidth = 12; - const timeWidth = 18; - const baseWidth = fixedWidth + idWidth + statusWidth + timeWidth; - const remainingWidth = terminalWidth - baseWidth; - const nameWidth = Math.min(80, Math.max(15, remainingWidth)); - - // Fetch function for pagination hook - const fetchPage = React.useCallback( - async (params: { - limit: number; - startingAt?: string; - includeTotalCount?: boolean; - }) => { - const result = await listBenchmarkRuns({ - limit: params.limit, - startingAfter: params.startingAt, - includeTotalCount: params.includeTotalCount, - }); - - return { - items: result.benchmarkRuns, - hasMore: result.hasMore, - totalCount: result.totalCount, - }; - }, - [], - ); - - // Use the shared pagination hook - const { - items: benchmarkRuns, - loading, - navigating, - error, - currentPage, - hasMore, - hasPrev, - totalCount, - nextPage, - prevPage, - refresh, - } = useCursorPagination({ - fetchPage, - pageSize: PAGE_SIZE, - getItemId: (run: BenchmarkRun) => run.id, - pollInterval: 5000, - pollingEnabled: !showPopup && !search.searchMode, - deps: [PAGE_SIZE], - }); - - // Operations for benchmark runs - const operations: Operation[] = React.useMemo( - () => [ - { - key: "view_details", - label: "View Details", - color: colors.primary, - icon: figures.pointer, - }, - { - key: "view_scenarios", - label: "View Scenario Runs", - color: colors.info, - icon: figures.arrowRight, - }, - { - key: "create_job", - label: "Create Job", - color: colors.success, - icon: figures.play, - }, - ], - [], - ); - - // Build columns - const columns = React.useMemo( - () => [ - createTextColumn("id", "ID", (run: BenchmarkRun) => run.id, { - width: idWidth + 1, - color: colors.idColor, - dimColor: false, - bold: false, - }), - createTextColumn("name", "Name", (run: BenchmarkRun) => run.name || "", { - width: nameWidth, - }), - createComponentColumn( - "status", - "Status", - (run, _index, isSelected) => { - const statusDisplay = getStatusDisplay(run.state); - const text = statusDisplay.text - .slice(0, statusWidth) - .padEnd(statusWidth, " "); - return ( - - {text} - - ); - }, - { width: statusWidth }, - ), - createTextColumn( - "created", - "Created", - (run: BenchmarkRun) => - run.start_time_ms ? formatTimeAgo(run.start_time_ms) : "", - { - width: timeWidth, - color: colors.textDim, - dimColor: false, - bold: false, - }, - ), - ], - [idWidth, nameWidth, statusWidth, timeWidth], - ); - - // Handle Ctrl+C to exit - useExitOnCtrlC(); - - // Ensure selected index is within bounds - React.useEffect(() => { - if (benchmarkRuns.length > 0 && selectedIndex >= benchmarkRuns.length) { - setSelectedIndex(Math.max(0, benchmarkRuns.length - 1)); - } - }, [benchmarkRuns.length, selectedIndex]); - - const selectedRun = benchmarkRuns[selectedIndex]; - - // Calculate pagination info for display - const totalPages = Math.max(1, Math.ceil(totalCount / PAGE_SIZE)); - const startIndex = currentPage * PAGE_SIZE; - const endIndex = startIndex + benchmarkRuns.length; - - useInput((input, key) => { - // Handle search mode input - if (search.searchMode) { - if (key.escape) { - search.cancelSearch(); - } - return; - } - - // Handle popup navigation - if (showPopup) { - if (key.upArrow && selectedOperation > 0) { - setSelectedOperation(selectedOperation - 1); - } else if (key.downArrow && selectedOperation < operations.length - 1) { - setSelectedOperation(selectedOperation + 1); - } else if (key.return) { - setShowPopup(false); - const operationKey = operations[selectedOperation].key; - - if (operationKey === "view_details") { - navigate("benchmark-run-detail", { - benchmarkRunId: selectedRun.id, - }); - } else if (operationKey === "view_scenarios") { - navigate("scenario-run-list", { - benchmarkRunId: selectedRun.id, - }); - } else if (operationKey === "create_job") { - navigate("benchmark-job-create"); - } - } else if (input === "v" && selectedRun) { - setShowPopup(false); - navigate("benchmark-run-detail", { - benchmarkRunId: selectedRun.id, - }); - } else if (input === "s" && selectedRun) { - setShowPopup(false); - navigate("scenario-run-list", { - benchmarkRunId: selectedRun.id, - }); - } else if (input === "j") { - setShowPopup(false); - navigate("benchmark-job-create"); - } else if (key.escape || input === "q") { - setShowPopup(false); - setSelectedOperation(0); - } - return; - } - - const pageRuns = benchmarkRuns.length; - - // Handle list view navigation - if (key.upArrow && selectedIndex > 0) { - setSelectedIndex(selectedIndex - 1); - } else if (key.downArrow && selectedIndex < pageRuns - 1) { - setSelectedIndex(selectedIndex + 1); - } else if ( - (input === "n" || key.rightArrow) && - !loading && - !navigating && - hasMore - ) { - nextPage(); - setSelectedIndex(0); - } else if ( - (input === "p" || key.leftArrow) && - !loading && - !navigating && - hasPrev - ) { - prevPage(); - setSelectedIndex(0); - } else if (key.return && selectedRun) { - navigate("benchmark-run-detail", { - benchmarkRunId: selectedRun.id, - }); - } else if (input === "a" && selectedRun) { - setShowPopup(true); - setSelectedOperation(0); - } else if (input === "o" && selectedRun) { - openInBrowser( - getBenchmarkRunUrl(selectedRun.id, selectedRun.benchmark_id), - ); - } else if (input === "j") { - // Quick shortcut to create a new job - navigate("benchmark-job-create"); - } else if (input === "/") { - search.enterSearchMode(); - } else if (key.escape) { - if (search.handleEscape()) { - return; - } - goBack(); - } - }); - - // Loading state - if (loading && benchmarkRuns.length === 0) { - return ( - <> - - - - ); - } - - // Error state - if (error) { - return ( - <> - - - - ); - } - - // Main list view - return ( - <> - - - {/* Search bar */} - - - {/* Table */} - {!showPopup && ( -
run.id} - selectedIndex={selectedIndex} - title={`benchmark_runs[${totalCount}]`} - columns={columns} - emptyState={ - - {figures.info} No benchmark runs found - - } - /> - )} - - {/* Statistics Bar */} - {!showPopup && ( - - - {figures.hamburger} {totalCount} - - - {" "} - total - - {totalPages > 1 && ( - <> - - {" "} - •{" "} - - {navigating ? ( - - {figures.pointer} Loading page {currentPage + 1}... - - ) : ( - - Page {currentPage + 1} of {totalPages} - - )} - - )} - {endIndex > startIndex && ( - <> - - {" "} - •{" "} - - - Showing {startIndex + 1}-{endIndex} of {totalCount} - - - )} - - )} - - {/* Actions Popup */} - {showPopup && selectedRun && ( - - ({ - key: op.key, - label: op.label, - color: op.color, - icon: op.icon, - shortcut: - op.key === "view_details" - ? "v" - : op.key === "view_scenarios" - ? "s" - : op.key === "create_job" - ? "j" - : "", - }))} - selectedOperation={selectedOperation} - onClose={() => setShowPopup(false)} - /> - - )} - - {/* Help Bar */} - - - ); -} diff --git a/src/screens/MenuScreen.tsx b/src/screens/MenuScreen.tsx index 33532c54..98ca630d 100644 --- a/src/screens/MenuScreen.tsx +++ b/src/screens/MenuScreen.tsx @@ -25,9 +25,6 @@ export function MenuScreen() { case "agents-objects": navigate("agents-objects-menu"); break; - case "benchmarks": - navigate("benchmark-menu"); - break; default: // Fallback for any other screen names navigate(key as ScreenName); diff --git a/src/screens/ScenarioRunDetailScreen.tsx b/src/screens/ScenarioRunDetailScreen.tsx deleted file mode 100644 index 57f83c84..00000000 --- a/src/screens/ScenarioRunDetailScreen.tsx +++ /dev/null @@ -1,354 +0,0 @@ -/** - * ScenarioRunDetailScreen - Detail page for scenario runs - * Uses the generic ResourceDetailPage component - */ -import React from "react"; -import { Text } from "ink"; -import figures from "figures"; -import { useNavigation } from "../store/navigationStore.js"; -import { - useBenchmarkStore, - type ScenarioRun, -} from "../store/benchmarkStore.js"; -import { - ResourceDetailPage, - formatTimestamp, - type DetailSection, - type ResourceOperation, -} from "../components/ResourceDetailPage.js"; -import { getScenarioRun } from "../services/benchmarkService.js"; -import { useResourceDetail } from "../hooks/useResourceDetail.js"; -import { SpinnerComponent } from "../components/Spinner.js"; -import { ErrorMessage } from "../components/ErrorMessage.js"; -import { Breadcrumb, type BreadcrumbItem } from "../components/Breadcrumb.js"; -import { colors } from "../utils/theme.js"; -import { getScenarioRunUrl } from "../utils/url.js"; - -interface ScenarioRunDetailScreenProps { - scenarioRunId?: string; - benchmarkRunId?: string; -} - -export function ScenarioRunDetailScreen({ - scenarioRunId, - benchmarkRunId, -}: ScenarioRunDetailScreenProps) { - const { goBack, navigate } = useNavigation(); - const scenarioRuns = useBenchmarkStore((state) => state.scenarioRuns); - const runFromStore = scenarioRuns.find((r) => r.id === scenarioRunId); - - const { - data: run, - loading, - error, - } = useResourceDetail({ - id: scenarioRunId, - fetch: getScenarioRun, - initialData: runFromStore ?? undefined, - pollInterval: 3000, - shouldPoll: (r) => r.state === "running" || r.state === "scoring", - }); - - // Build breadcrumb items - const buildBreadcrumbItems = ( - lastLabel: string, - active = true, - ): BreadcrumbItem[] => { - const items: BreadcrumbItem[] = [ - { label: "Home" }, - { label: "Benchmarks" }, - ]; - if (benchmarkRunId) { - items.push({ label: `Run: ${benchmarkRunId.substring(0, 8)}...` }); - } - items.push({ label: "Scenario Runs" }); - items.push({ label: lastLabel, active }); - return items; - }; - - // Show loading state - if (!run && scenarioRunId && !error) { - return ( - <> - - - - ); - } - - // Show error state - if (error && !run) { - return ( - <> - - - - ); - } - - // Show not found error - if (!run) { - return ( - <> - - - - ); - } - - // Build detail sections - const detailSections: DetailSection[] = []; - - // Basic details section - const basicFields = []; - if (run.start_time_ms) { - basicFields.push({ - label: "Started", - value: formatTimestamp(run.start_time_ms), - }); - } - const endTimeMs = - run.start_time_ms && run.duration_ms - ? run.start_time_ms + run.duration_ms - : undefined; - if (endTimeMs) { - basicFields.push({ - label: "Ended", - value: formatTimestamp(endTimeMs), - }); - } - if (run.scenario_id) { - basicFields.push({ - label: "Scenario ID", - value: {run.scenario_id}, - }); - } - if (run.benchmark_run_id) { - basicFields.push({ - label: "Benchmark Run ID", - value: {run.benchmark_run_id}, - action: { - type: "navigate" as const, - screen: "benchmark-run-detail" as const, - params: { benchmarkRunId: run.benchmark_run_id }, - hint: "View Run", - }, - }); - } - - if (basicFields.length > 0) { - detailSections.push({ - title: "Details", - icon: figures.squareSmallFilled, - color: colors.warning, - fields: basicFields, - }); - } - - // Results section - const score = run.scoring_contract_result?.score; - if (score !== undefined) { - detailSections.push({ - title: "Results", - icon: figures.tick, - color: colors.success, - fields: [ - { - label: "Score", - value: {score}, - }, - ], - }); - } - - // Metadata section - if (run.metadata && Object.keys(run.metadata).length > 0) { - const metadataFields = Object.entries(run.metadata).map(([key, value]) => ({ - label: key, - value: value, - })); - - detailSections.push({ - title: "Metadata", - icon: figures.identical, - color: colors.secondary, - fields: metadataFields, - }); - } - - // Operations available for scenario runs - const operations: ResourceOperation[] = []; - - if (run.benchmark_run_id) { - operations.push({ - key: "view-benchmark-run", - label: "View Benchmark Run", - color: colors.info, - icon: figures.arrowRight, - shortcut: "b", - }); - } - - // Handle operation selection - const handleOperation = async (operation: string, resource: ScenarioRun) => { - switch (operation) { - case "view-benchmark-run": - if (resource.benchmark_run_id) { - navigate("benchmark-run-detail", { - benchmarkRunId: resource.benchmark_run_id, - }); - } - break; - } - }; - - // Build detailed info lines for full details view - const buildDetailLines = (r: ScenarioRun): React.ReactElement[] => { - const lines: React.ReactElement[] = []; - - // Core Information - lines.push( - - Scenario Run Details - , - ); - lines.push( - - {" "} - ID: {r.id} - , - ); - lines.push( - - {" "} - Name: {r.name || "(none)"} - , - ); - lines.push( - - {" "} - Status: {r.state} - , - ); - lines.push( - - {" "} - Scenario ID: {r.scenario_id} - , - ); - if (r.benchmark_run_id) { - lines.push( - - {" "} - Benchmark Run ID: {r.benchmark_run_id} - , - ); - } - if (r.start_time_ms) { - lines.push( - - {" "} - Started: {new Date(r.start_time_ms).toLocaleString()} - , - ); - } - const detailEndTimeMs = - r.start_time_ms && r.duration_ms - ? r.start_time_ms + r.duration_ms - : undefined; - if (detailEndTimeMs) { - lines.push( - - {" "} - Ended: {new Date(detailEndTimeMs).toLocaleString()} - , - ); - } - lines.push( ); - - // Results - const detailScore = r.scoring_contract_result?.score; - if (detailScore !== undefined) { - lines.push( - - Results - , - ); - lines.push( - - {" "} - Score: {detailScore} - , - ); - lines.push( ); - } - - // Metadata - if (r.metadata && Object.keys(r.metadata).length > 0) { - lines.push( - - Metadata - , - ); - Object.entries(r.metadata).forEach(([key, value], idx) => { - lines.push( - - {" "} - {key}: {value} - , - ); - }); - lines.push( ); - } - - // Raw JSON - lines.push( - - Raw JSON - , - ); - const jsonLines = JSON.stringify(r, null, 2).split("\n"); - jsonLines.forEach((line, idx) => { - lines.push( - - {" "} - {line} - , - ); - }); - - return lines; - }; - - // Build breadcrumb prefix - const breadcrumbPrefix = [{ label: "Home" }, { label: "Benchmarks" }]; - if (benchmarkRunId) { - breadcrumbPrefix.push({ - label: `Run: ${benchmarkRunId.substring(0, 8)}...`, - }); - } - breadcrumbPrefix.push({ label: "Scenario Runs" }); - - return ( - r.name || r.id} - getId={(r) => r.id} - getUrl={(r) => getScenarioRunUrl(r.scenario_id, r.id)} - getStatus={(r) => r.state} - detailSections={detailSections} - operations={operations} - onOperation={handleOperation} - onBack={goBack} - buildDetailLines={buildDetailLines} - breadcrumbPrefix={breadcrumbPrefix} - /> - ); -} diff --git a/src/screens/ScenarioRunListScreen.tsx b/src/screens/ScenarioRunListScreen.tsx deleted file mode 100644 index 40be8411..00000000 --- a/src/screens/ScenarioRunListScreen.tsx +++ /dev/null @@ -1,438 +0,0 @@ -/** - * ScenarioRunListScreen - List view for scenario runs - */ -import React from "react"; -import { Box, Text, useInput, useApp } from "ink"; -import figures from "figures"; -import { useNavigation } from "../store/navigationStore.js"; -import { SpinnerComponent } from "../components/Spinner.js"; -import { ErrorMessage } from "../components/ErrorMessage.js"; -import { Breadcrumb, type BreadcrumbItem } from "../components/Breadcrumb.js"; -import { NavigationTips } from "../components/NavigationTips.js"; -import { - Table, - createTextColumn, - createComponentColumn, -} from "../components/Table.js"; -import { ActionsPopup } from "../components/ActionsPopup.js"; -import { Operation } from "../components/OperationsMenu.js"; -import { formatTimeAgo } from "../components/ResourceListView.js"; -import { SearchBar } from "../components/SearchBar.js"; -import { getStatusDisplay } from "../components/StatusBadge.js"; -import { colors } from "../utils/theme.js"; -import { useViewportHeight } from "../hooks/useViewportHeight.js"; -import { useExitOnCtrlC } from "../hooks/useExitOnCtrlC.js"; -import { useCursorPagination } from "../hooks/useCursorPagination.js"; -import { useListSearch } from "../hooks/useListSearch.js"; -import { listScenarioRuns } from "../services/benchmarkService.js"; -import type { ScenarioRun } from "../store/benchmarkStore.js"; -import { openInBrowser } from "../utils/browser.js"; -import { getScenarioRunUrl } from "../utils/url.js"; - -interface ScenarioRunListScreenProps { - benchmarkRunId?: string; -} - -export function ScenarioRunListScreen({ - benchmarkRunId, -}: ScenarioRunListScreenProps) { - const { exit: inkExit } = useApp(); - const { navigate, goBack } = useNavigation(); - const [selectedIndex, setSelectedIndex] = React.useState(0); - const [showPopup, setShowPopup] = React.useState(false); - const [selectedOperation, setSelectedOperation] = React.useState(0); - - // Search state - const search = useListSearch({ - onSearchSubmit: () => setSelectedIndex(0), - onSearchClear: () => setSelectedIndex(0), - }); - - // Calculate overhead for viewport height - const overhead = 13 + search.getSearchOverhead(); - const { viewportHeight, terminalWidth } = useViewportHeight({ - overhead, - minHeight: 5, - }); - - const PAGE_SIZE = viewportHeight; - - // Column widths - const fixedWidth = 6; - const idWidth = 25; - const statusWidth = 12; - const scoreWidth = 8; - const timeWidth = 18; - const baseWidth = fixedWidth + idWidth + statusWidth + scoreWidth + timeWidth; - const remainingWidth = terminalWidth - baseWidth; - const nameWidth = Math.min(60, Math.max(15, remainingWidth)); - - // Fetch function for pagination hook - const fetchPage = React.useCallback( - async (params: { - limit: number; - startingAt?: string; - includeTotalCount?: boolean; - }) => { - const result = await listScenarioRuns({ - limit: params.limit, - startingAfter: params.startingAt, - benchmarkRunId, - includeTotalCount: params.includeTotalCount, - }); - - return { - items: result.scenarioRuns, - hasMore: result.hasMore, - totalCount: result.totalCount, - }; - }, - [benchmarkRunId], - ); - - // Use the shared pagination hook - const { - items: scenarioRuns, - loading, - navigating, - error, - currentPage, - hasMore, - hasPrev, - totalCount, - nextPage, - prevPage, - refresh, - } = useCursorPagination({ - fetchPage, - pageSize: PAGE_SIZE, - getItemId: (run: ScenarioRun) => run.id, - pollInterval: 5000, - pollingEnabled: !showPopup && !search.searchMode, - deps: [PAGE_SIZE, benchmarkRunId], - }); - - // Operations for scenario runs - const operations: Operation[] = React.useMemo( - () => [ - { - key: "view_details", - label: "View Details", - color: colors.primary, - icon: figures.pointer, - }, - ], - [], - ); - - // Build columns - const columns = React.useMemo( - () => [ - createTextColumn("id", "ID", (run: ScenarioRun) => run.id, { - width: idWidth + 1, - color: colors.idColor, - dimColor: false, - bold: false, - }), - createTextColumn("name", "Name", (run: ScenarioRun) => run.name || "", { - width: nameWidth, - }), - createComponentColumn( - "status", - "Status", - (run, _index, isSelected) => { - const statusDisplay = getStatusDisplay(run.state); - const text = statusDisplay.text - .slice(0, statusWidth) - .padEnd(statusWidth, " "); - return ( - - {text} - - ); - }, - { width: statusWidth }, - ), - createTextColumn( - "score", - "Score", - (run: ScenarioRun) => { - const score = run.scoring_contract_result?.score; - return score !== undefined ? String(score) : ""; - }, - { - width: scoreWidth, - color: colors.info, - }, - ), - createTextColumn( - "created", - "Created", - (run: ScenarioRun) => - run.start_time_ms ? formatTimeAgo(run.start_time_ms) : "", - { - width: timeWidth, - color: colors.textDim, - dimColor: false, - bold: false, - }, - ), - ], - [idWidth, nameWidth, statusWidth, scoreWidth, timeWidth], - ); - - // Handle Ctrl+C to exit - useExitOnCtrlC(); - - // Ensure selected index is within bounds - React.useEffect(() => { - if (scenarioRuns.length > 0 && selectedIndex >= scenarioRuns.length) { - setSelectedIndex(Math.max(0, scenarioRuns.length - 1)); - } - }, [scenarioRuns.length, selectedIndex]); - - const selectedRun = scenarioRuns[selectedIndex]; - - // Calculate pagination info for display - const totalPages = Math.max(1, Math.ceil(totalCount / PAGE_SIZE)); - const startIndex = currentPage * PAGE_SIZE; - const endIndex = startIndex + scenarioRuns.length; - - useInput((input, key) => { - // Handle search mode input - if (search.searchMode) { - if (key.escape) { - search.cancelSearch(); - } - return; - } - - // Handle popup navigation - if (showPopup) { - if (key.upArrow && selectedOperation > 0) { - setSelectedOperation(selectedOperation - 1); - } else if (key.downArrow && selectedOperation < operations.length - 1) { - setSelectedOperation(selectedOperation + 1); - } else if (key.return) { - setShowPopup(false); - const operationKey = operations[selectedOperation].key; - - if (operationKey === "view_details") { - navigate("scenario-run-detail", { - scenarioRunId: selectedRun.id, - benchmarkRunId, - }); - } - } else if (input === "v" && selectedRun) { - setShowPopup(false); - navigate("scenario-run-detail", { - scenarioRunId: selectedRun.id, - benchmarkRunId, - }); - } else if (key.escape || input === "q") { - setShowPopup(false); - setSelectedOperation(0); - } - return; - } - - const pageRuns = scenarioRuns.length; - - // Handle list view navigation - if (key.upArrow && selectedIndex > 0) { - setSelectedIndex(selectedIndex - 1); - } else if (key.downArrow && selectedIndex < pageRuns - 1) { - setSelectedIndex(selectedIndex + 1); - } else if ( - (input === "n" || key.rightArrow) && - !loading && - !navigating && - hasMore - ) { - nextPage(); - setSelectedIndex(0); - } else if ( - (input === "p" || key.leftArrow) && - !loading && - !navigating && - hasPrev - ) { - prevPage(); - setSelectedIndex(0); - } else if (key.return && selectedRun) { - navigate("scenario-run-detail", { - scenarioRunId: selectedRun.id, - benchmarkRunId, - }); - } else if (input === "a" && selectedRun) { - setShowPopup(true); - setSelectedOperation(0); - } else if (input === "o" && selectedRun) { - openInBrowser(getScenarioRunUrl(selectedRun.scenario_id, selectedRun.id)); - } else if (input === "/") { - search.enterSearchMode(); - } else if (key.escape) { - if (search.handleEscape()) { - return; - } - goBack(); - } - }); - - // Build breadcrumb items - const breadcrumbItems: BreadcrumbItem[] = [ - { label: "Home" }, - { label: "Benchmarks" }, - ]; - if (benchmarkRunId) { - breadcrumbItems.push({ - label: `Run: ${benchmarkRunId.substring(0, 8)}...`, - }); - } - breadcrumbItems.push({ label: "Scenario Runs", active: true }); - - // Loading state - if (loading && scenarioRuns.length === 0) { - return ( - <> - - - - ); - } - - // Error state - if (error) { - return ( - <> - - - - ); - } - - // Main list view - return ( - <> - - - {/* Search bar */} - - - {/* Table */} - {!showPopup && ( -
run.id} - selectedIndex={selectedIndex} - title={`scenario_runs[${totalCount}]`} - columns={columns} - emptyState={ - - {figures.info} No scenario runs found - - } - /> - )} - - {/* Statistics Bar */} - {!showPopup && ( - - - {figures.hamburger} {totalCount} - - - {" "} - total - - {totalPages > 1 && ( - <> - - {" "} - •{" "} - - {navigating ? ( - - {figures.pointer} Loading page {currentPage + 1}... - - ) : ( - - Page {currentPage + 1} of {totalPages} - - )} - - )} - {endIndex > startIndex && ( - <> - - {" "} - •{" "} - - - Showing {startIndex + 1}-{endIndex} of {totalCount} - - - )} - {benchmarkRunId && ( - <> - - {" "} - •{" "} - - - Run: {benchmarkRunId.substring(0, 8)}... - - - )} - - )} - - {/* Actions Popup */} - {showPopup && selectedRun && ( - - ({ - key: op.key, - label: op.label, - color: op.color, - icon: op.icon, - shortcut: op.key === "view_details" ? "v" : "", - }))} - selectedOperation={selectedOperation} - onClose={() => setShowPopup(false)} - /> - - )} - - {/* Help Bar */} - - - ); -} diff --git a/src/services/agentService.ts b/src/services/agentService.ts index 79f8d494..4006326d 100644 --- a/src/services/agentService.ts +++ b/src/services/agentService.ts @@ -151,7 +151,7 @@ export interface ListAgentsResult { /** * List agents with pagination - * Can filter to only return public agents for benchmark jobs + * Can filter to only return public agents */ export async function listAgents( options: ListAgentsOptions, diff --git a/src/services/benchmarkJobService.ts b/src/services/benchmarkJobService.ts deleted file mode 100644 index 698f6836..00000000 --- a/src/services/benchmarkJobService.ts +++ /dev/null @@ -1,319 +0,0 @@ -/** - * Benchmark Job Service - Handles API calls for benchmark jobs - */ -import { getClient } from "../utils/client.js"; -import type { - BenchmarkJobView, - BenchmarkJobListView, - BenchmarkJobCreateParams, -} from "@runloop/api-client/resources/benchmark-jobs"; -import type { - BenchmarkRunView, - BenchmarkRunListScenarioRunsParams, -} from "@runloop/api-client/resources/benchmark-runs"; -import type { ScenarioRunView } from "@runloop/api-client/resources/scenarios"; - -// Re-export types -export type BenchmarkJob = BenchmarkJobView; -export type BenchmarkRun = BenchmarkRunView; -export type ScenarioRun = ScenarioRunView; -export type { BenchmarkJobCreateParams }; - -/** - * Extract clone parameters from a benchmark job for navigating to the create screen. - * Handles source type detection, agent config mapping (with secrets format variants), - * and orchestrator config extraction. - */ -export function buildCloneParams(job: BenchmarkJob): Record { - const params: Record = { - cloneFromJobId: job.id, - cloneJobName: job.name ?? "", - }; - - // Determine source type and extract IDs - if (job.job_spec) { - const spec = job.job_spec as any; - - if (spec.scenario_ids && Array.isArray(spec.scenario_ids)) { - params.cloneSourceType = "scenarios"; - params.initialScenarioIds = spec.scenario_ids.join(","); - } else if (spec.benchmark_id) { - params.cloneSourceType = "benchmark"; - params.initialBenchmarkIds = spec.benchmark_id; - } else if (job.job_source) { - const source = job.job_source as any; - if (source.scenario_ids && Array.isArray(source.scenario_ids)) { - params.cloneSourceType = "scenarios"; - params.initialScenarioIds = source.scenario_ids.join(","); - } else if (source.benchmark_id) { - params.cloneSourceType = "benchmark"; - params.initialBenchmarkIds = source.benchmark_id; - } - } - } - - // Extract agent configs - if (job.job_spec?.agent_configs) { - const agentConfigs = job.job_spec.agent_configs.map((a: any) => { - const env = a.agent_environment; - const secrets = - env?.secrets ?? - env?.secret_names ?? - (typeof env?.secret_refs === "object" && env.secret_refs - ? env.secret_refs - : undefined); - return { - agentId: a.agent_id, - name: a.name, - modelName: a.model_name, - timeoutSeconds: a.timeout_seconds, - kwargs: a.kwargs, - environmentVariables: env?.environment_variables, - secrets, - }; - }); - params.cloneAgentConfigs = JSON.stringify(agentConfigs); - - // Also extract legacy fields for form initialization - params.cloneAgentIds = job.job_spec.agent_configs - .map((a: any) => a.agent_id) - .join(","); - params.cloneAgentNames = job.job_spec.agent_configs - .map((a: any) => a.name) - .join(","); - } - - // Extract orchestrator config - if (job.job_spec?.orchestrator_config) { - const orch = job.job_spec.orchestrator_config; - params.cloneOrchestratorConfig = JSON.stringify({ - nAttempts: orch.n_attempts, - nConcurrentTrials: orch.n_concurrent_trials, - quiet: orch.quiet, - timeoutMultiplier: orch.timeout_multiplier, - }); - } - - return params; -} - -export interface ListBenchmarkJobsOptions { - limit?: number; - startingAfter?: string; - name?: string; - includeTotalCount?: boolean; -} - -export interface ListBenchmarkJobsResult { - jobs: BenchmarkJob[]; - totalCount?: number; - hasMore: boolean; -} - -export interface AgentConfig { - name: string; - agentId?: string; - modelName?: string; - timeoutSeconds?: number; - kwargs?: Record; - environmentVariables?: Record; - secrets?: Record; -} - -export interface OrchestratorConfig { - nAttempts?: number; - nConcurrentTrials?: number; - quiet?: boolean; - timeoutMultiplier?: number; -} - -export interface CreateBenchmarkJobOptions { - name?: string; - benchmarkId?: string; - scenarioIds?: string[]; - agentConfigs: AgentConfig[]; - orchestratorConfig?: OrchestratorConfig; - metadata?: Record; -} - -/** - * List benchmark jobs with pagination - */ -export async function listBenchmarkJobs( - options: ListBenchmarkJobsOptions, -): Promise { - const client = getClient(); - - const queryParams: { - limit?: number; - starting_after?: string; - name?: string; - include_total_count?: boolean; - } = { - limit: options.limit, - include_total_count: options.includeTotalCount === true, - }; - - if (options.startingAfter) { - queryParams.starting_after = options.startingAfter; - } - - if (options.name) { - queryParams.name = options.name; - } - - const page: BenchmarkJobListView = - await client.benchmarkJobs.list(queryParams); - const jobs = page.jobs || []; - - return { - jobs, - totalCount: (page as unknown as { total_count?: number }).total_count, - hasMore: page.has_more || false, - }; -} - -/** - * Get benchmark job by ID - */ -export async function getBenchmarkJob(id: string): Promise { - const client = getClient(); - return client.benchmarkJobs.retrieve(id); -} - -/** - * Get benchmark run by ID - */ -export async function getBenchmarkRun(id: string): Promise { - const client = getClient(); - return client.benchmarkRuns.retrieve(id); -} - -/** - * List scenario runs for a benchmark run - */ -export async function listBenchmarkRunScenarioRuns( - benchmarkRunId: string, - options?: BenchmarkRunListScenarioRunsParams, -): Promise { - const client = getClient(); - const scenarioRuns: ScenarioRun[] = []; - - // Paginate through all scenario runs - for await (const run of client.benchmarkRuns.listScenarioRuns( - benchmarkRunId, - { limit: 100, ...options }, - )) { - scenarioRuns.push(run); - } - - return scenarioRuns; -} - -/** - * Create a benchmark job with either benchmark definition spec or scenario definition spec - */ -export async function createBenchmarkJob( - options: CreateBenchmarkJobOptions, -): Promise { - const client = getClient(); - - // Validate that either benchmarkId or scenarioIds is provided - if (!options.benchmarkId && !options.scenarioIds) { - throw new Error("Either benchmarkId or scenarioIds must be provided"); - } - if (options.benchmarkId && options.scenarioIds) { - throw new Error("Cannot specify both benchmarkId and scenarioIds"); - } - - // Build agent configs in API format - // Use the same agent config type for both spec types - const agentConfigs: Array = options.agentConfigs.map((agent) => { - const config: any = { - name: agent.name, - type: "job_agent" as const, - }; - - if (agent.agentId) { - config.agent_id = agent.agentId; - } - if (agent.modelName) { - config.model_name = agent.modelName; - } - if (agent.timeoutSeconds) { - config.timeout_seconds = agent.timeoutSeconds; - } - if (agent.kwargs && Object.keys(agent.kwargs).length > 0) { - config.kwargs = agent.kwargs; - } - if ( - (agent.environmentVariables && - Object.keys(agent.environmentVariables).length > 0) || - (agent.secrets && Object.keys(agent.secrets).length > 0) - ) { - config.agent_environment = {}; - if ( - agent.environmentVariables && - Object.keys(agent.environmentVariables).length > 0 - ) { - config.agent_environment.environment_variables = - agent.environmentVariables; - } - if (agent.secrets && Object.keys(agent.secrets).length > 0) { - config.agent_environment.secrets = agent.secrets; - } - } - - return config; - }); - - // Build orchestrator config if provided - let orchestratorConfig: any; - if (options.orchestratorConfig) { - orchestratorConfig = {}; - if (options.orchestratorConfig.nAttempts !== undefined) { - orchestratorConfig.n_attempts = options.orchestratorConfig.nAttempts; - } - if (options.orchestratorConfig.nConcurrentTrials !== undefined) { - orchestratorConfig.n_concurrent_trials = - options.orchestratorConfig.nConcurrentTrials; - } - if (options.orchestratorConfig.quiet !== undefined) { - orchestratorConfig.quiet = options.orchestratorConfig.quiet; - } - if (options.orchestratorConfig.timeoutMultiplier !== undefined) { - orchestratorConfig.timeout_multiplier = - options.orchestratorConfig.timeoutMultiplier; - } - } - - // Build the appropriate spec based on what's provided - let spec: BenchmarkJobCreateParams["spec"]; - if (options.benchmarkId) { - spec = { - type: "benchmark" as const, - benchmark_id: options.benchmarkId, - agent_configs: agentConfigs, - orchestrator_config: orchestratorConfig, - }; - } else if (options.scenarioIds) { - spec = { - type: "scenarios" as const, - scenario_ids: options.scenarioIds, - agent_configs: agentConfigs, - orchestrator_config: orchestratorConfig, - }; - } - - const createParams: BenchmarkJobCreateParams & { - metadata?: Record; - } = { - name: options.name, - spec, - }; - if (options.metadata && Object.keys(options.metadata).length > 0) { - createParams.metadata = options.metadata; - } - - return client.benchmarkJobs.create(createParams); -} diff --git a/src/services/benchmarkService.ts b/src/services/benchmarkService.ts deleted file mode 100644 index be9e807c..00000000 --- a/src/services/benchmarkService.ts +++ /dev/null @@ -1,260 +0,0 @@ -/** - * Benchmark Service - Handles all benchmark-related API calls - */ -import { getClient } from "../utils/client.js"; -import type { - BenchmarkRun, - ScenarioRun, - Benchmark, -} from "../store/benchmarkStore.js"; -import type { BenchmarkRunListParams } from "@runloop/api-client/resources/benchmark-runs"; -import type { RunListParams } from "@runloop/api-client/resources/scenarios/runs"; - -export interface ListBenchmarksOptions { - limit: number; - startingAfter?: string; - search?: string; - includeTotalCount?: boolean; -} - -export interface ListBenchmarksResult { - benchmarks: Benchmark[]; - totalCount?: number; - hasMore: boolean; -} - -export interface ListBenchmarkRunsOptions { - limit: number; - startingAfter?: string; - includeTotalCount?: boolean; -} - -export interface ListBenchmarkRunsResult { - benchmarkRuns: BenchmarkRun[]; - totalCount?: number; - hasMore: boolean; -} - -export interface ListScenarioRunsOptions { - limit: number; - startingAfter?: string; - benchmarkRunId?: string; - includeTotalCount?: boolean; -} - -export interface ListScenarioRunsResult { - scenarioRuns: ScenarioRun[]; - totalCount?: number; - hasMore: boolean; -} - -/** - * List benchmark runs with pagination - */ -export async function listBenchmarkRuns( - options: ListBenchmarkRunsOptions, -): Promise { - const client = getClient(); - - const queryParams: BenchmarkRunListParams & { - include_total_count?: boolean; - } = { - limit: options.limit, - include_total_count: options.includeTotalCount === true, - }; - - if (options.startingAfter) { - queryParams.starting_after = options.startingAfter; - } - - const page = await client.benchmarkRuns.list(queryParams); - const benchmarkRuns = page.runs || []; - - return { - benchmarkRuns, - totalCount: (page as unknown as { total_count?: number }).total_count, - hasMore: page.has_more || false, - }; -} - -/** - * Get benchmark run by ID - */ -export async function getBenchmarkRun(id: string): Promise { - const client = getClient(); - return client.benchmarkRuns.retrieve(id); -} - -/** - * List scenario runs with pagination - */ -export async function listScenarioRuns( - options: ListScenarioRunsOptions, -): Promise { - const client = getClient(); - - // If we have a benchmark run ID, use the dedicated endpoint - if (options.benchmarkRunId) { - const queryParams: { - limit?: number; - starting_after?: string; - include_total_count?: boolean; - } = { - limit: options.limit, - include_total_count: options.includeTotalCount === true, - }; - - if (options.startingAfter) { - queryParams.starting_after = options.startingAfter; - } - - const page = await client.benchmarkRuns.listScenarioRuns( - options.benchmarkRunId, - queryParams, - ); - const scenarioRuns = page.runs || []; - - return { - scenarioRuns, - totalCount: (page as unknown as { total_count?: number }).total_count, - hasMore: page.has_more || false, - }; - } - - // Otherwise, list all scenario runs - const queryParams: RunListParams & { include_total_count?: boolean } = { - limit: options.limit, - include_total_count: options.includeTotalCount === true, - }; - - if (options.startingAfter) { - queryParams.starting_after = options.startingAfter; - } - - const page = await client.scenarios.runs.list(queryParams); - const scenarioRuns = page.runs || []; - - return { - scenarioRuns, - totalCount: (page as unknown as { total_count?: number }).total_count, - hasMore: page.has_more || false, - }; -} - -/** - * Get scenario run by ID - */ -export async function getScenarioRun(id: string): Promise { - const client = getClient(); - return client.scenarios.runs.retrieve(id); -} - -/** - * List benchmark definitions with pagination - */ -export async function listBenchmarks( - options: ListBenchmarksOptions, -): Promise { - const client = getClient(); - - const queryParams: { - limit?: number; - starting_after?: string; - search?: string; - include_total_count?: boolean; - } = { - limit: options.limit, - include_total_count: options.includeTotalCount === true, - }; - - if (options.startingAfter) { - queryParams.starting_after = options.startingAfter; - } - - if (options.search) { - queryParams.search = options.search; - } - - const page = await client.benchmarks.list(queryParams); - const benchmarks = page.benchmarks || []; - - return { - benchmarks, - totalCount: (page as unknown as { total_count?: number }).total_count, - hasMore: page.has_more || false, - }; -} - -/** - * Get benchmark definition by ID - */ -export async function getBenchmark(id: string): Promise { - const client = getClient(); - return client.benchmarks.retrieve(id); -} - -/** - * List public benchmark definitions with pagination - */ -export async function listPublicBenchmarks( - options: ListBenchmarksOptions, -): Promise { - const client = getClient(); - - const queryParams: { - limit?: number; - starting_after?: string; - search?: string; - include_total_count?: boolean; - } = { - limit: options.limit, - include_total_count: options.includeTotalCount === true, - }; - - if (options.startingAfter) { - queryParams.starting_after = options.startingAfter; - } - - if (options.search) { - queryParams.search = options.search; - } - - const page = await client.benchmarks.listPublic(queryParams); - const benchmarks = page.benchmarks || []; - - return { - benchmarks, - totalCount: (page as unknown as { total_count?: number }).total_count, - hasMore: page.has_more || false, - }; -} - -/** - * Create/start a benchmark run with selected benchmarks (POST /v1/benchmark_runs) - */ -export async function createBenchmarkRun( - benchmarkIds: string[], - options?: { name?: string; metadata?: Record }, -): Promise { - const client = getClient(); - - const createParams: { - benchmark_ids: string[]; - name?: string; - metadata?: Record; - } = { - benchmark_ids: benchmarkIds, - }; - - if (options?.name) { - createParams.name = options.name; - } - - if (options?.metadata) { - createParams.metadata = options.metadata; - } - - // Use type assertion since the API client types may not be fully defined - // eslint-disable-next-line @typescript-eslint/no-explicit-any - return (client.benchmarkRuns as any).create(createParams); -} diff --git a/src/services/scenarioService.ts b/src/services/scenarioService.ts deleted file mode 100644 index 0b322095..00000000 --- a/src/services/scenarioService.ts +++ /dev/null @@ -1,61 +0,0 @@ -/** - * Scenario Service - Handles all scenario-related API calls - */ -import { getClient } from "../utils/client.js"; -import type { - ScenarioListParams, - ScenarioView, -} from "@runloop/api-client/resources/scenarios/scenarios"; - -export type Scenario = ScenarioView; - -export interface ListScenariosOptions { - limit: number; - startingAfter?: string; - search?: string; -} - -export interface ListScenariosResult { - scenarios: Scenario[]; - totalCount: number; - hasMore: boolean; -} - -/** - * List scenarios with pagination - */ -export async function listScenarios( - options: ListScenariosOptions, -): Promise { - const client = getClient(); - - const queryParams: ScenarioListParams = { - limit: options.limit, - }; - - if (options.startingAfter) { - queryParams.starting_after = options.startingAfter; - } - - // Use name filter instead of search - if (options.search) { - queryParams.name = options.search; - } - - const page = await client.scenarios.list(queryParams); - const scenarios = page.scenarios || []; - - return { - scenarios, - totalCount: scenarios.length, - hasMore: page.has_more || false, - }; -} - -/** - * Get scenario by ID - */ -export async function getScenario(id: string): Promise { - const client = getClient(); - return client.scenarios.retrieve(id); -} diff --git a/src/store/benchmarkJobStore.ts b/src/store/benchmarkJobStore.ts deleted file mode 100644 index 8ca0b90b..00000000 --- a/src/store/benchmarkJobStore.ts +++ /dev/null @@ -1,122 +0,0 @@ -/** - * Benchmark Job Store - Manages benchmark job state - */ -import { create } from "zustand"; -import type { BenchmarkJob } from "../services/benchmarkJobService.js"; - -// Re-export type for convenience -export type { BenchmarkJob }; - -interface BenchmarkJobState { - // Benchmark jobs - benchmarkJobs: BenchmarkJob[]; - benchmarkJobsLoading: boolean; - benchmarkJobsError: Error | null; - benchmarkJobsTotalCount: number; - benchmarkJobsHasMore: boolean; - benchmarkJobsCurrentPage: number; - - // Selection - selectedBenchmarkJobIndex: number; - - // Caching - benchmarkJobPageCache: Map; - - // Actions - setBenchmarkJobs: (jobs: BenchmarkJob[]) => void; - setBenchmarkJobsLoading: (loading: boolean) => void; - setBenchmarkJobsError: (error: Error | null) => void; - setBenchmarkJobsTotalCount: (count: number) => void; - setBenchmarkJobsHasMore: (hasMore: boolean) => void; - setBenchmarkJobsCurrentPage: (page: number) => void; - setSelectedBenchmarkJobIndex: (index: number) => void; - - // Cache management - cacheBenchmarkJobPage: (page: number, data: BenchmarkJob[]) => void; - getCachedBenchmarkJobPage: (page: number) => BenchmarkJob[] | undefined; - clearCache: () => void; - clearAll: () => void; - - // Selectors - getSelectedBenchmarkJob: () => BenchmarkJob | undefined; -} - -const MAX_CACHE_SIZE = 10; - -export const useBenchmarkJobStore = create((set, get) => ({ - // Initial state - benchmarkJobs: [], - benchmarkJobsLoading: false, - benchmarkJobsError: null, - benchmarkJobsTotalCount: 0, - benchmarkJobsHasMore: false, - benchmarkJobsCurrentPage: 0, - - // Selection - selectedBenchmarkJobIndex: 0, - - // Cache - benchmarkJobPageCache: new Map(), - - // Actions - setBenchmarkJobs: (jobs) => set({ benchmarkJobs: jobs }), - setBenchmarkJobsLoading: (loading) => set({ benchmarkJobsLoading: loading }), - setBenchmarkJobsError: (error) => set({ benchmarkJobsError: error }), - setBenchmarkJobsTotalCount: (count) => - set({ benchmarkJobsTotalCount: count }), - setBenchmarkJobsHasMore: (hasMore) => set({ benchmarkJobsHasMore: hasMore }), - setBenchmarkJobsCurrentPage: (page) => - set({ benchmarkJobsCurrentPage: page }), - setSelectedBenchmarkJobIndex: (index) => - set({ selectedBenchmarkJobIndex: index }), - - // Cache management - cacheBenchmarkJobPage: (page, data) => { - const state = get(); - const cache = state.benchmarkJobPageCache; - - if (cache.size >= MAX_CACHE_SIZE) { - const oldestKey = cache.keys().next().value; - if (oldestKey !== undefined) { - cache.delete(oldestKey); - } - } - - const plainData = data.map( - (d) => JSON.parse(JSON.stringify(d)) as BenchmarkJob, - ); - cache.set(page, plainData); - set({}); - }, - - getCachedBenchmarkJobPage: (page) => { - return get().benchmarkJobPageCache.get(page); - }, - - clearCache: () => { - const state = get(); - state.benchmarkJobPageCache.clear(); - set({ benchmarkJobPageCache: new Map() }); - }, - - clearAll: () => { - const state = get(); - state.benchmarkJobPageCache.clear(); - - set({ - benchmarkJobs: [], - benchmarkJobsLoading: false, - benchmarkJobsError: null, - benchmarkJobsTotalCount: 0, - benchmarkJobsHasMore: false, - benchmarkJobsCurrentPage: 0, - selectedBenchmarkJobIndex: 0, - benchmarkJobPageCache: new Map(), - }); - }, - - getSelectedBenchmarkJob: () => { - const state = get(); - return state.benchmarkJobs[state.selectedBenchmarkJobIndex]; - }, -})); diff --git a/src/store/benchmarkStore.ts b/src/store/benchmarkStore.ts deleted file mode 100644 index 217b6187..00000000 --- a/src/store/benchmarkStore.ts +++ /dev/null @@ -1,315 +0,0 @@ -/** - * Benchmark Store - Manages benchmark run and scenario run state - */ -import { create } from "zustand"; -import type { BenchmarkRunView } from "@runloop/api-client/resources/benchmark-runs"; -import type { ScenarioRunView } from "@runloop/api-client/resources/scenarios/scenarios"; -import type { BenchmarkView } from "@runloop/api-client/resources/benchmarks"; - -// Re-export SDK types for compatibility -export type BenchmarkRun = BenchmarkRunView; -export type ScenarioRun = ScenarioRunView; -export type Benchmark = BenchmarkView; - -interface BenchmarkState { - // Benchmarks (definitions) - benchmarks: Benchmark[]; - benchmarksLoading: boolean; - benchmarksError: Error | null; - benchmarksTotalCount: number; - benchmarksHasMore: boolean; - benchmarksCurrentPage: number; - selectedBenchmarkIndex: number; - selectedBenchmarkIds: Set; - - // Benchmark runs - benchmarkRuns: BenchmarkRun[]; - benchmarkRunsLoading: boolean; - benchmarkRunsError: Error | null; - benchmarkRunsTotalCount: number; - benchmarkRunsHasMore: boolean; - benchmarkRunsCurrentPage: number; - - // Scenario runs - scenarioRuns: ScenarioRun[]; - scenarioRunsLoading: boolean; - scenarioRunsError: Error | null; - scenarioRunsTotalCount: number; - scenarioRunsHasMore: boolean; - scenarioRunsCurrentPage: number; - - // Filter - benchmarkRunIdFilter?: string; - - // Selection - selectedBenchmarkRunIndex: number; - selectedScenarioRunIndex: number; - - // Caching - benchmarkPageCache: Map; - benchmarkRunPageCache: Map; - scenarioRunPageCache: Map; - - // Benchmark (definition) Actions - setBenchmarks: (benchmarks: Benchmark[]) => void; - setBenchmarksLoading: (loading: boolean) => void; - setBenchmarksError: (error: Error | null) => void; - setBenchmarksTotalCount: (count: number) => void; - setBenchmarksHasMore: (hasMore: boolean) => void; - setBenchmarksCurrentPage: (page: number) => void; - setSelectedBenchmarkIndex: (index: number) => void; - setSelectedBenchmarkIds: (ids: Set) => void; - toggleBenchmarkSelection: (id: string) => void; - clearBenchmarkSelection: () => void; - - // Benchmark Run Actions - setBenchmarkRuns: (runs: BenchmarkRun[]) => void; - setBenchmarkRunsLoading: (loading: boolean) => void; - setBenchmarkRunsError: (error: Error | null) => void; - setBenchmarkRunsTotalCount: (count: number) => void; - setBenchmarkRunsHasMore: (hasMore: boolean) => void; - setBenchmarkRunsCurrentPage: (page: number) => void; - setSelectedBenchmarkRunIndex: (index: number) => void; - - // Scenario Run Actions - setScenarioRuns: (runs: ScenarioRun[]) => void; - setScenarioRunsLoading: (loading: boolean) => void; - setScenarioRunsError: (error: Error | null) => void; - setScenarioRunsTotalCount: (count: number) => void; - setScenarioRunsHasMore: (hasMore: boolean) => void; - setScenarioRunsCurrentPage: (page: number) => void; - setSelectedScenarioRunIndex: (index: number) => void; - setBenchmarkRunIdFilter: (id?: string) => void; - - // Cache management - cacheBenchmarkPage: (page: number, data: Benchmark[]) => void; - getCachedBenchmarkPage: (page: number) => Benchmark[] | undefined; - cacheBenchmarkRunPage: (page: number, data: BenchmarkRun[]) => void; - getCachedBenchmarkRunPage: (page: number) => BenchmarkRun[] | undefined; - cacheScenarioRunPage: (page: number, data: ScenarioRun[]) => void; - getCachedScenarioRunPage: (page: number) => ScenarioRun[] | undefined; - clearCache: () => void; - clearAll: () => void; - - // Selectors - getSelectedBenchmark: () => Benchmark | undefined; - getSelectedBenchmarkRun: () => BenchmarkRun | undefined; - getSelectedScenarioRun: () => ScenarioRun | undefined; -} - -const MAX_CACHE_SIZE = 10; - -export const useBenchmarkStore = create((set, get) => ({ - // Initial benchmark (definition) state - benchmarks: [], - benchmarksLoading: false, - benchmarksError: null, - benchmarksTotalCount: 0, - benchmarksHasMore: false, - benchmarksCurrentPage: 0, - selectedBenchmarkIndex: 0, - selectedBenchmarkIds: new Set(), - - // Initial benchmark run state - benchmarkRuns: [], - benchmarkRunsLoading: false, - benchmarkRunsError: null, - benchmarkRunsTotalCount: 0, - benchmarkRunsHasMore: false, - benchmarkRunsCurrentPage: 0, - - // Initial scenario run state - scenarioRuns: [], - scenarioRunsLoading: false, - scenarioRunsError: null, - scenarioRunsTotalCount: 0, - scenarioRunsHasMore: false, - scenarioRunsCurrentPage: 0, - - // Filters - benchmarkRunIdFilter: undefined, - - // Selection - selectedBenchmarkRunIndex: 0, - selectedScenarioRunIndex: 0, - - // Caches - benchmarkPageCache: new Map(), - benchmarkRunPageCache: new Map(), - scenarioRunPageCache: new Map(), - - // Benchmark (definition) Actions - setBenchmarks: (benchmarks) => set({ benchmarks }), - setBenchmarksLoading: (loading) => set({ benchmarksLoading: loading }), - setBenchmarksError: (error) => set({ benchmarksError: error }), - setBenchmarksTotalCount: (count) => set({ benchmarksTotalCount: count }), - setBenchmarksHasMore: (hasMore) => set({ benchmarksHasMore: hasMore }), - setBenchmarksCurrentPage: (page) => set({ benchmarksCurrentPage: page }), - setSelectedBenchmarkIndex: (index) => set({ selectedBenchmarkIndex: index }), - setSelectedBenchmarkIds: (ids) => set({ selectedBenchmarkIds: ids }), - toggleBenchmarkSelection: (id) => { - const state = get(); - const next = new Set(state.selectedBenchmarkIds); - if (next.has(id)) { - next.delete(id); - } else { - next.add(id); - } - set({ selectedBenchmarkIds: next }); - }, - clearBenchmarkSelection: () => set({ selectedBenchmarkIds: new Set() }), - - // Benchmark Run Actions - setBenchmarkRuns: (runs) => set({ benchmarkRuns: runs }), - setBenchmarkRunsLoading: (loading) => set({ benchmarkRunsLoading: loading }), - setBenchmarkRunsError: (error) => set({ benchmarkRunsError: error }), - setBenchmarkRunsTotalCount: (count) => - set({ benchmarkRunsTotalCount: count }), - setBenchmarkRunsHasMore: (hasMore) => set({ benchmarkRunsHasMore: hasMore }), - setBenchmarkRunsCurrentPage: (page) => - set({ benchmarkRunsCurrentPage: page }), - setSelectedBenchmarkRunIndex: (index) => - set({ selectedBenchmarkRunIndex: index }), - - // Scenario Run Actions - setScenarioRuns: (runs) => set({ scenarioRuns: runs }), - setScenarioRunsLoading: (loading) => set({ scenarioRunsLoading: loading }), - setScenarioRunsError: (error) => set({ scenarioRunsError: error }), - setScenarioRunsTotalCount: (count) => set({ scenarioRunsTotalCount: count }), - setScenarioRunsHasMore: (hasMore) => set({ scenarioRunsHasMore: hasMore }), - setScenarioRunsCurrentPage: (page) => set({ scenarioRunsCurrentPage: page }), - setSelectedScenarioRunIndex: (index) => - set({ selectedScenarioRunIndex: index }), - setBenchmarkRunIdFilter: (id) => set({ benchmarkRunIdFilter: id }), - - // Cache management - cacheBenchmarkPage: (page, data) => { - const state = get(); - const cache = state.benchmarkPageCache; - - if (cache.size >= MAX_CACHE_SIZE) { - const oldestKey = cache.keys().next().value; - if (oldestKey !== undefined) { - cache.delete(oldestKey); - } - } - - const plainData = data.map( - (d) => JSON.parse(JSON.stringify(d)) as Benchmark, - ); - cache.set(page, plainData); - set({}); - }, - - getCachedBenchmarkPage: (page) => { - return get().benchmarkPageCache.get(page); - }, - - cacheBenchmarkRunPage: (page, data) => { - const state = get(); - const cache = state.benchmarkRunPageCache; - - if (cache.size >= MAX_CACHE_SIZE) { - const oldestKey = cache.keys().next().value; - if (oldestKey !== undefined) { - cache.delete(oldestKey); - } - } - - const plainData = data.map( - (d) => JSON.parse(JSON.stringify(d)) as BenchmarkRun, - ); - cache.set(page, plainData); - set({}); - }, - - getCachedBenchmarkRunPage: (page) => { - return get().benchmarkRunPageCache.get(page); - }, - - cacheScenarioRunPage: (page, data) => { - const state = get(); - const cache = state.scenarioRunPageCache; - - if (cache.size >= MAX_CACHE_SIZE) { - const oldestKey = cache.keys().next().value; - if (oldestKey !== undefined) { - cache.delete(oldestKey); - } - } - - const plainData = data.map( - (d) => JSON.parse(JSON.stringify(d)) as ScenarioRun, - ); - cache.set(page, plainData); - set({}); - }, - - getCachedScenarioRunPage: (page) => { - return get().scenarioRunPageCache.get(page); - }, - - clearCache: () => { - const state = get(); - state.benchmarkPageCache.clear(); - state.benchmarkRunPageCache.clear(); - state.scenarioRunPageCache.clear(); - - set({ - benchmarkPageCache: new Map(), - benchmarkRunPageCache: new Map(), - scenarioRunPageCache: new Map(), - }); - }, - - clearAll: () => { - const state = get(); - state.benchmarkPageCache.clear(); - state.benchmarkRunPageCache.clear(); - state.scenarioRunPageCache.clear(); - - set({ - benchmarks: [], - benchmarksLoading: false, - benchmarksError: null, - benchmarksTotalCount: 0, - benchmarksHasMore: false, - benchmarksCurrentPage: 0, - selectedBenchmarkIndex: 0, - selectedBenchmarkIds: new Set(), - benchmarkRuns: [], - benchmarkRunsLoading: false, - benchmarkRunsError: null, - benchmarkRunsTotalCount: 0, - benchmarkRunsHasMore: false, - benchmarkRunsCurrentPage: 0, - scenarioRuns: [], - scenarioRunsLoading: false, - scenarioRunsError: null, - scenarioRunsTotalCount: 0, - scenarioRunsHasMore: false, - scenarioRunsCurrentPage: 0, - benchmarkRunIdFilter: undefined, - selectedBenchmarkRunIndex: 0, - selectedScenarioRunIndex: 0, - benchmarkPageCache: new Map(), - benchmarkRunPageCache: new Map(), - scenarioRunPageCache: new Map(), - }); - }, - - getSelectedBenchmark: () => { - const state = get(); - return state.benchmarks[state.selectedBenchmarkIndex]; - }, - - getSelectedBenchmarkRun: () => { - const state = get(); - return state.benchmarkRuns[state.selectedBenchmarkRunIndex]; - }, - - getSelectedScenarioRun: () => { - const state = get(); - return state.scenarioRuns[state.selectedScenarioRunIndex]; - }, -})); diff --git a/src/store/menuStore.ts b/src/store/menuStore.ts index 80e0ee8b..70af3c08 100644 --- a/src/store/menuStore.ts +++ b/src/store/menuStore.ts @@ -7,8 +7,6 @@ interface MenuState { setSettingsSelectedKey: (key: string) => void; agentsObjectsSelectedKey: string; setAgentsObjectsSelectedKey: (key: string) => void; - benchmarkSelectedKey: string; - setBenchmarkSelectedKey: (key: string) => void; } export const useMenuStore = create((set) => ({ @@ -18,6 +16,4 @@ export const useMenuStore = create((set) => ({ setSettingsSelectedKey: (key) => set({ settingsSelectedKey: key }), agentsObjectsSelectedKey: "agents", setAgentsObjectsSelectedKey: (key) => set({ agentsObjectsSelectedKey: key }), - benchmarkSelectedKey: "benchmarks", - setBenchmarkSelectedKey: (key) => set({ benchmarkSelectedKey: key }), })); diff --git a/src/store/navigationStore.tsx b/src/store/navigationStore.tsx index 0c7afef5..61a29cc4 100644 --- a/src/store/navigationStore.tsx +++ b/src/store/navigationStore.tsx @@ -13,7 +13,6 @@ import type { NavigationState } from "./navigationStateMachine.js"; export type ScreenName = | "menu" | "settings-menu" - | "benchmark-menu" | "devbox-list" | "devbox-detail" | "devbox-actions" @@ -46,16 +45,7 @@ export type ScreenName = | "object-detail" | "object-create" | "ssh-session" - | "pty-session" - | "benchmark-list" - | "benchmark-detail" - | "benchmark-run-list" - | "benchmark-run-detail" - | "scenario-run-list" - | "scenario-run-detail" - | "benchmark-job-list" - | "benchmark-job-detail" - | "benchmark-job-create"; + | "pty-session"; export interface RouteParams { devboxId?: string; @@ -87,12 +77,6 @@ export interface RouteParams { // Exec session params executionId?: string; execCommand?: string; - // Benchmark params - benchmarkId?: string; - benchmarkRunId?: string; - scenarioRunId?: string; - benchmarkJobId?: string; - initialBenchmarkIds?: string; [key: string]: string | ScreenName | RouteParams | undefined; } diff --git a/src/utils/commands.ts b/src/utils/commands.ts index 35663f2d..106bf832 100644 --- a/src/utils/commands.ts +++ b/src/utils/commands.ts @@ -1119,142 +1119,6 @@ export function createProgram(): Command { await listAxonEventsCommand(id, options); }); - // Scenario commands - const scenario = program - .command("scenario") - .description("Manage scenarios") - .alias("scn"); - - scenario - .command("info ") - .description("Display scenario definition details") - .option( - "-o, --output [format]", - "Output format: text|json|yaml (default: text)", - ) - .action(async (id, options) => { - const { scenarioInfo } = await import("../commands/scenario/info.js"); - await scenarioInfo(id, options); - }); - - scenario - .command("list") - .description("List scenario runs") - .option("--limit ", "Max scenario runs to return (0 = unlimited)", "0") - .option("--benchmark-run-id ", "Filter by benchmark run ID") - .option( - "-o, --output [format]", - "Output format: text|json|yaml (default: text)", - ) - .action(async (options) => { - const { listScenarioRunsCommand } = - await import("../commands/scenario/list.js"); - await listScenarioRunsCommand(options); - }); - - // Benchmark job commands - const benchmarkJob = program - .command("benchmark-job") - .description("Manage benchmark jobs") - .alias("bmj"); - - benchmarkJob - .command("run") - .description("Run a benchmark job with one or more agents") - .option( - "--agent ", - "Agent(s) to use. Format: agent:model (e.g., claude-code:claude-sonnet-4). Can specify multiple.", - ) - .option("--benchmark ", "Benchmark ID or name to run") - .option( - "--scenarios ", - "Scenario IDs to run (alternative to --benchmark)", - ) - .option("-n, --job-name ", "Job name") - .option( - "--env-vars ", - "Additional environment variables (format: KEY=value)", - ) - .option( - "--secrets ", - "Secrets to inject as environment variables (format: ENV_VAR=SECRET_NAME)", - ) - .option("--timeout ", "Agent timeout in seconds") - .option("--n-attempts ", "Number of attempts per scenario") - .option("--n-concurrent-trials ", "Number of concurrent trials") - .option("--timeout-multiplier ", "Timeout multiplier") - .option( - "--metadata ", - "Metadata tag (format: key=value), repeatable", - collect, - [], - ) - .option( - "-o, --output [format]", - "Output format: text|json|yaml (default: text)", - ) - .action(async (options) => { - const { runBenchmarkJob } = - await import("../commands/benchmark-job/run.js"); - await runBenchmarkJob(options); - }); - - benchmarkJob - .command("summary ") - .description("Get benchmark job summary and results") - .option("-e, --extended", "Show individual scenario results") - .option( - "-o, --output [format]", - "Output format: text|json|yaml (default: text)", - ) - .action(async (id, options) => { - const { summaryBenchmarkJob } = - await import("../commands/benchmark-job/summary.js"); - await summaryBenchmarkJob(id, options); - }); - - benchmarkJob - .command("watch ") - .description("Watch benchmark job progress in real-time (full-screen)") - .action(async (id) => { - const { watchBenchmarkJob } = - await import("../commands/benchmark-job/watch.js"); - await watchBenchmarkJob(id); - }); - - benchmarkJob - .command("logs ") - .description( - "Download devbox logs for all scenario runs in a benchmark job", - ) - .option("-o, --output-dir ", "Output directory") - .option("--run ", "Download logs for a specific benchmark run only") - .option("--scenario ", "Download logs for a specific scenario run only") - .action(async (id, options) => { - const { downloadBenchmarkJobLogs } = - await import("../commands/benchmark-job/logs.js"); - await downloadBenchmarkJobLogs(id, options); - }); - - benchmarkJob - .command("list") - .description("List benchmark jobs") - .option("--days ", "Show jobs from the last N days (default: 1)") - .option("--all", "Show all jobs (no time filter)") - .option( - "--status ", - "Filter by status (comma-separated). Valid: initializing, queued, running, completed, failed, cancelled, timeout", - ) - .option( - "-o, --output [format]", - "Output format: text|json|yaml (default: text)", - ) - .action(async (options) => { - const { listBenchmarkJobsCommand } = - await import("../commands/benchmark-job/list.js"); - await listBenchmarkJobsCommand(options); - }); - // Agent commands const agent = program .command("agent") diff --git a/src/utils/url.ts b/src/utils/url.ts index 309511a2..8b76a5a4 100644 --- a/src/utils/url.ts +++ b/src/utils/url.ts @@ -32,38 +32,6 @@ export function getAxonUrl(axonId: string): string { return `${platformBaseUrl()}/axons/${axonId}`; } -/** - * Generate a benchmark URL for the given benchmark ID - */ -export function getBenchmarkUrl( - benchmarkId: string, - isPublic: boolean, -): string { - const segment = isPublic ? "public" : "custom"; - return `${platformBaseUrl()}/benchmarks/${segment}/${benchmarkId}`; -} - -/** - * Generate a benchmark run URL for the given benchmark run ID - */ -export function getBenchmarkRunUrl( - benchmarkRunId: string, - benchmarkId?: string | null, -): string { - const bmSegment = benchmarkId ?? "single"; - return `${platformBaseUrl()}/benchmarks/custom/${bmSegment}/runs/${benchmarkRunId}`; -} - -/** - * Generate a scenario run URL for the given scenario and run IDs - */ -export function getScenarioRunUrl( - scenarioId: string, - scenarioRunId: string, -): string { - return `${platformBaseUrl()}/scenarios/${scenarioId}/runs/${scenarioRunId}`; -} - /** * Generate a settings URL */ diff --git a/tests/__tests__/commands/benchmark-job/progress.test.ts b/tests/__tests__/commands/benchmark-job/progress.test.ts deleted file mode 100644 index 915efdc3..00000000 --- a/tests/__tests__/commands/benchmark-job/progress.test.ts +++ /dev/null @@ -1,301 +0,0 @@ -/** - * Tests for benchmark job progress helpers - * - * These tests verify that the progress reconciliation logic correctly - * handles the case where a job is completed but the prior progress - * snapshot still had scenario runs marked as running. - */ - -import { describe, it, expect } from "@jest/globals"; -import { - isJobCompleted, - isScenarioCompleted, - JOB_COMPLETED_STATES, - SCENARIO_COMPLETED_STATES, - fetchAllRunsProgress, - calculateRunProgress, - type RunProgress, -} from "@/commands/benchmark-job/progress.js"; -import type { BenchmarkJob } from "@/services/benchmarkJobService.js"; - -describe("isJobCompleted", () => { - it("should return true for completed states", () => { - expect(isJobCompleted("completed")).toBe(true); - expect(isJobCompleted("failed")).toBe(true); - expect(isJobCompleted("canceled")).toBe(true); - expect(isJobCompleted("cancelled")).toBe(true); - expect(isJobCompleted("timeout")).toBe(true); - }); - - it("should return false for in-progress states", () => { - expect(isJobCompleted("running")).toBe(false); - expect(isJobCompleted("queued")).toBe(false); - expect(isJobCompleted("initializing")).toBe(false); - }); - - it("should return false for null/undefined", () => { - expect(isJobCompleted(null)).toBe(false); - expect(isJobCompleted(undefined)).toBe(false); - expect(isJobCompleted("")).toBe(false); - }); - - it("should be case insensitive", () => { - expect(isJobCompleted("COMPLETED")).toBe(true); - expect(isJobCompleted("Completed")).toBe(true); - expect(isJobCompleted("FAILED")).toBe(true); - }); -}); - -describe("isScenarioCompleted", () => { - it("should return true for completed states", () => { - expect(isScenarioCompleted("completed")).toBe(true); - expect(isScenarioCompleted("failed")).toBe(true); - expect(isScenarioCompleted("canceled")).toBe(true); - expect(isScenarioCompleted("cancelled")).toBe(true); - expect(isScenarioCompleted("timeout")).toBe(true); - expect(isScenarioCompleted("error")).toBe(true); - }); - - it("should treat scored as completed", () => { - expect(isScenarioCompleted("scored")).toBe(true); - }); - - it("should return false for in-progress states", () => { - expect(isScenarioCompleted("running")).toBe(false); - expect(isScenarioCompleted("scoring")).toBe(false); - expect(isScenarioCompleted("pending")).toBe(false); - }); - - it("should return false for null/undefined", () => { - expect(isScenarioCompleted(null)).toBe(false); - expect(isScenarioCompleted(undefined)).toBe(false); - expect(isScenarioCompleted("")).toBe(false); - }); -}); - -describe("calculateRunProgress", () => { - it("should count scored scenarios as finished", () => { - const scenarioRuns = [ - { state: "completed", scoring_contract_result: { score: 1.0 } }, - { state: "scored", scoring_contract_result: { score: 0.5 } }, - { state: "running" }, - ] as any[]; - - const progress = calculateRunProgress( - "run_123", - "test-agent", - undefined, - "running", - 3, - scenarioRuns, - ); - - expect(progress.finished).toBe(2); - expect(progress.running).toBe(1); - expect(progress.scoring).toBe(0); - }); - - it("should count scoring scenarios separately", () => { - const scenarioRuns = [ - { state: "completed", scoring_contract_result: { score: 1.0 } }, - { state: "scoring" }, - { state: "running" }, - ] as any[]; - - const progress = calculateRunProgress( - "run_123", - "test-agent", - undefined, - "running", - 3, - scenarioRuns, - ); - - expect(progress.finished).toBe(1); - expect(progress.scoring).toBe(1); - expect(progress.running).toBe(1); - }); - - it("should calculate average score from completed scenarios", () => { - const scenarioRuns = [ - { state: "completed", scoring_contract_result: { score: 1.0 } }, - { state: "completed", scoring_contract_result: { score: 0.5 } }, - { state: "scored", scoring_contract_result: { score: 0.0 } }, - ] as any[]; - - const progress = calculateRunProgress( - "run_123", - "test-agent", - undefined, - "completed", - 3, - scenarioRuns, - ); - - expect(progress.avgScore).toBe(0.5); - }); -}); - -describe("fetchAllRunsProgress", () => { - it("should prefer completed outcomes over in-progress runs for same benchmark_run_id", async () => { - const job: Partial = { - job_spec: { - scenario_ids: ["s1", "s2", "s3"], - } as any, - benchmark_outcomes: [ - { - benchmark_run_id: "run_123", - agent_name: "test-agent", - model_name: "gpt-4", - average_score: 0.8, - n_completed: 3, - n_failed: 0, - n_timeout: 0, - scenario_outcomes: [ - { score: 1.0 }, - { score: 0.7 }, - { score: 0.7 }, - ] as any[], - }, - ], - in_progress_runs: [ - { - benchmark_run_id: "run_123", - state: "running", - agent_config: { type: "job_agent", name: "test-agent" }, - } as any, - ], - }; - - const mockFetchScenarioRuns = async () => []; - const progress = await fetchAllRunsProgress( - job as BenchmarkJob, - mockFetchScenarioRuns, - ); - - expect(progress).toHaveLength(1); - expect(progress[0].state).toBe("completed"); - expect(progress[0].running).toBe(0); - expect(progress[0].finished).toBe(3); - }); - - it("should include in-progress runs that are not in completed outcomes", async () => { - const job: Partial = { - job_spec: { - scenario_ids: ["s1", "s2", "s3"], - } as any, - benchmark_outcomes: [ - { - benchmark_run_id: "run_completed", - agent_name: "agent-1", - average_score: 0.8, - n_completed: 3, - n_failed: 0, - n_timeout: 0, - scenario_outcomes: [{ score: 0.8 }] as any[], - }, - ], - in_progress_runs: [ - { - benchmark_run_id: "run_in_progress", - state: "running", - agent_config: { type: "job_agent", name: "agent-2" }, - } as any, - ], - }; - - const mockFetchScenarioRuns = async () => [ - { state: "completed", scoring_contract_result: { score: 1.0 } }, - { state: "running" }, - ] as any[]; - - const progress = await fetchAllRunsProgress( - job as BenchmarkJob, - mockFetchScenarioRuns, - ); - - expect(progress).toHaveLength(2); - expect(progress[0].benchmarkRunId).toBe("run_completed"); - expect(progress[0].state).toBe("completed"); - expect(progress[1].benchmarkRunId).toBe("run_in_progress"); - expect(progress[1].running).toBe(1); - expect(progress[1].finished).toBe(1); - }); - - it("should handle job with no runs", async () => { - const job: Partial = { - benchmark_outcomes: [], - in_progress_runs: [], - }; - - const mockFetchScenarioRuns = async () => []; - const progress = await fetchAllRunsProgress( - job as BenchmarkJob, - mockFetchScenarioRuns, - ); - - expect(progress).toHaveLength(0); - }); - - it("should handle the bug case: completed job with stale in-progress snapshot", async () => { - // This is the specific bug case from the user report: - // - Job state is completed - // - benchmark_outcomes shows all scenarios finished - // - in_progress_runs still contains a run (stale data from previous poll) - const job: Partial = { - state: "completed", - job_spec: { - scenario_ids: Array(60).fill("s"), - } as any, - benchmark_outcomes: [ - { - benchmark_run_id: "run_123", - agent_name: "claude-code:claude-haiku-4", - average_score: 0.88, - n_completed: 60, - n_failed: 0, - n_timeout: 0, - scenario_outcomes: Array(60).fill({ - score: 0.88, - state: "completed", - }), - }, - ], - in_progress_runs: [ - { - benchmark_run_id: "run_123", - state: "running", - agent_config: { - type: "job_agent", - name: "claude-code:claude-haiku-4", - }, - } as any, - ], - }; - - const mockFetchScenarioRuns = async () => { - // Even if the scenario runs endpoint returns stale data... - return [ - ...Array(59).fill({ - state: "completed", - scoring_contract_result: { score: 0.88 }, - }), - { state: "running" }, - ] as any[]; - }; - - const progress = await fetchAllRunsProgress( - job as BenchmarkJob, - mockFetchScenarioRuns, - ); - - // Should only have 1 run (from completed outcomes) - expect(progress).toHaveLength(1); - - // Should show as completed, not running - expect(progress[0].state).toBe("completed"); - expect(progress[0].finished).toBe(60); - expect(progress[0].running).toBe(0); - expect(progress[0].avgScore).toBeCloseTo(0.88); - }); -}); diff --git a/tests/__tests__/commands/scenario/list.test.ts b/tests/__tests__/commands/scenario/list.test.ts deleted file mode 100644 index 0a9ed593..00000000 --- a/tests/__tests__/commands/scenario/list.test.ts +++ /dev/null @@ -1,155 +0,0 @@ -import { jest, describe, it, expect, beforeEach } from "@jest/globals"; - -const mockListScenarioRuns = jest.fn(); -jest.unstable_mockModule("@/services/benchmarkService.js", () => ({ - listScenarioRuns: mockListScenarioRuns, -})); - -const mockOutput = jest.fn(); -const mockOutputError = jest.fn(); -const mockParseLimit = jest.fn(); -jest.unstable_mockModule("@/utils/output.js", () => ({ - output: mockOutput, - outputError: mockOutputError, - parseLimit: mockParseLimit, -})); - -const { listScenarioRunsCommand } = await import( - "@/commands/scenario/list.js" -); - -describe("listScenarioRunsCommand", () => { - beforeEach(() => { - jest.clearAllMocks(); - mockParseLimit.mockReturnValue(Infinity); - }); - - it("outputs runs via output() with defaultFormat json", async () => { - const runs = [ - { id: "sr_1", name: "run-1", state: "completed", start_time_ms: 1000 }, - ]; - mockListScenarioRuns.mockResolvedValue({ - scenarioRuns: runs, - hasMore: false, - }); - - await listScenarioRunsCommand({}); - - expect(mockOutput).toHaveBeenCalledWith(runs, { - format: undefined, - defaultFormat: "json", - }); - }); - - it("fetches multiple pages when hasMore is true", async () => { - mockListScenarioRuns - .mockResolvedValueOnce({ - scenarioRuns: [ - { id: "sr_1", name: "run-1", state: "completed", start_time_ms: 1000 }, - ], - hasMore: true, - }) - .mockResolvedValueOnce({ - scenarioRuns: [ - { id: "sr_2", name: "run-2", state: "completed", start_time_ms: 2000 }, - ], - hasMore: false, - }); - - await listScenarioRunsCommand({}); - - expect(mockListScenarioRuns).toHaveBeenCalledTimes(2); - expect(mockListScenarioRuns).toHaveBeenLastCalledWith( - expect.objectContaining({ startingAfter: "sr_1" }), - ); - }); - - it("stops fetching when limit is reached", async () => { - mockParseLimit.mockReturnValue(1); - mockListScenarioRuns.mockResolvedValue({ - scenarioRuns: [ - { id: "sr_1", name: "run-1", state: "completed", start_time_ms: 1000 }, - ], - hasMore: true, - }); - - await listScenarioRunsCommand({ limit: "1" }); - - expect(mockListScenarioRuns).toHaveBeenCalledTimes(1); - }); - - it("sorts results by start_time_ms ascending", async () => { - const runs = [ - { id: "sr_2", name: "run-2", state: "completed", start_time_ms: 2000 }, - { id: "sr_1", name: "run-1", state: "completed", start_time_ms: 1000 }, - ]; - mockListScenarioRuns.mockResolvedValue({ - scenarioRuns: runs, - hasMore: false, - }); - - await listScenarioRunsCommand({}); - - const outputData = mockOutput.mock.calls[0][0] as typeof runs; - expect(outputData[0].id).toBe("sr_1"); - expect(outputData[1].id).toBe("sr_2"); - }); - - it("passes format option through to output()", async () => { - const runs = [ - { id: "sr_1", name: "run-1", state: "completed", start_time_ms: 1000 }, - ]; - mockListScenarioRuns.mockResolvedValue({ - scenarioRuns: runs, - hasMore: false, - }); - - await listScenarioRunsCommand({ output: "json" }); - - expect(mockOutput).toHaveBeenCalledWith(runs, { - format: "json", - defaultFormat: "json", - }); - }); - - it("passes benchmarkRunId filter", async () => { - mockListScenarioRuns.mockResolvedValue({ - scenarioRuns: [], - hasMore: false, - }); - - await listScenarioRunsCommand({ benchmarkRunId: "br_1" }); - - expect(mockListScenarioRuns).toHaveBeenCalledWith( - expect.objectContaining({ benchmarkRunId: "br_1" }), - ); - }); - - it("handles API error gracefully", async () => { - const error = new Error("Network error"); - mockListScenarioRuns.mockRejectedValue(error); - - await listScenarioRunsCommand({}); - - expect(mockOutputError).toHaveBeenCalledWith( - "Failed to list scenario runs", - error, - ); - }); - - it("adjusts page size based on limit", async () => { - mockParseLimit.mockReturnValue(5); - mockListScenarioRuns.mockResolvedValue({ - scenarioRuns: [ - { id: "sr_1", name: "run-1", state: "completed", start_time_ms: 1000 }, - ], - hasMore: false, - }); - - await listScenarioRunsCommand({ limit: "5" }); - - expect(mockListScenarioRuns).toHaveBeenCalledWith( - expect.objectContaining({ limit: 5 }), - ); - }); -}); diff --git a/tests/__tests__/services/benchmarkJobService.test.ts b/tests/__tests__/services/benchmarkJobService.test.ts deleted file mode 100644 index 309e79c3..00000000 --- a/tests/__tests__/services/benchmarkJobService.test.ts +++ /dev/null @@ -1,502 +0,0 @@ -import { jest, describe, it, expect, beforeEach } from "@jest/globals"; - -const mockCreate = jest.fn(); -const mockList = jest.fn(); -const mockRetrieve = jest.fn(); -const mockBenchmarkRunsRetrieve = jest.fn(); -const mockBenchmarkRunsListScenarioRuns = jest.fn(); - -jest.unstable_mockModule("@/utils/client.js", () => ({ - getClient: () => ({ - benchmarkJobs: { - create: mockCreate, - list: mockList, - retrieve: mockRetrieve, - }, - benchmarkRuns: { - retrieve: mockBenchmarkRunsRetrieve, - listScenarioRuns: mockBenchmarkRunsListScenarioRuns, - }, - }), -})); - -const { - buildCloneParams, - createBenchmarkJob, - listBenchmarkJobs, - getBenchmarkJob, - getBenchmarkRun, - listBenchmarkRunScenarioRuns, -} = await import("@/services/benchmarkJobService.js"); - -describe("buildCloneParams", () => { - it("extracts scenario_ids from job_spec", () => { - const job = { - id: "bj_1", - name: "test-job", - job_spec: { scenario_ids: ["s1", "s2"], agent_configs: [] }, - job_source: null, - } as any; - - const params = buildCloneParams(job); - expect(params.cloneSourceType).toBe("scenarios"); - expect(params.initialScenarioIds).toBe("s1,s2"); - }); - - it("extracts benchmark_id from job_spec", () => { - const job = { - id: "bj_2", - name: "test-job", - job_spec: { benchmark_id: "bm_1", agent_configs: [] }, - job_source: null, - } as any; - - const params = buildCloneParams(job); - expect(params.cloneSourceType).toBe("benchmark"); - expect(params.initialBenchmarkIds).toBe("bm_1"); - }); - - it("falls back to job_source when job_spec has neither", () => { - const job = { - id: "bj_3", - name: "test-job", - job_spec: { agent_configs: [] }, - job_source: { scenario_ids: ["s3"] }, - } as any; - - const params = buildCloneParams(job); - expect(params.cloneSourceType).toBe("scenarios"); - expect(params.initialScenarioIds).toBe("s3"); - }); - - it("falls back to job_source benchmark_id", () => { - const job = { - id: "bj_4", - name: "test-job", - job_spec: { agent_configs: [] }, - job_source: { benchmark_id: "bm_2" }, - } as any; - - const params = buildCloneParams(job); - expect(params.cloneSourceType).toBe("benchmark"); - expect(params.initialBenchmarkIds).toBe("bm_2"); - }); - - it("extracts agent configs with secrets", () => { - const job = { - id: "bj_5", - name: "test-job", - job_spec: { - benchmark_id: "bm_1", - agent_configs: [ - { - agent_id: "ag_1", - name: "agent-1", - model_name: "gpt-4", - timeout_seconds: 300, - kwargs: { key: "val" }, - agent_environment: { - secrets: { API_KEY: "secret-ref" }, - environment_variables: { ENV: "prod" }, - }, - }, - ], - }, - } as any; - - const params = buildCloneParams(job); - const configs = JSON.parse(params.cloneAgentConfigs); - expect(configs).toHaveLength(1); - expect(configs[0].agentId).toBe("ag_1"); - expect(configs[0].name).toBe("agent-1"); - expect(configs[0].modelName).toBe("gpt-4"); - expect(configs[0].timeoutSeconds).toBe(300); - expect(configs[0].kwargs).toEqual({ key: "val" }); - expect(configs[0].secrets).toEqual({ API_KEY: "secret-ref" }); - expect(configs[0].environmentVariables).toEqual({ ENV: "prod" }); - }); - - it("extracts agent configs with secret_names (legacy)", () => { - const job = { - id: "bj_6", - name: "test-job", - job_spec: { - benchmark_id: "bm_1", - agent_configs: [ - { - agent_id: "ag_1", - name: "agent-1", - agent_environment: { - secret_names: ["MY_SECRET"], - }, - }, - ], - }, - } as any; - - const params = buildCloneParams(job); - const configs = JSON.parse(params.cloneAgentConfigs); - expect(configs[0].secrets).toEqual(["MY_SECRET"]); - }); - - it("extracts agent configs with secret_refs (object)", () => { - const job = { - id: "bj_7", - name: "test-job", - job_spec: { - benchmark_id: "bm_1", - agent_configs: [ - { - agent_id: "ag_1", - name: "agent-1", - agent_environment: { - secret_refs: { KEY: "ref_123" }, - }, - }, - ], - }, - } as any; - - const params = buildCloneParams(job); - const configs = JSON.parse(params.cloneAgentConfigs); - expect(configs[0].secrets).toEqual({ KEY: "ref_123" }); - }); - - it("extracts orchestrator config", () => { - const job = { - id: "bj_8", - name: "test-job", - job_spec: { - benchmark_id: "bm_1", - agent_configs: [], - orchestrator_config: { - n_attempts: 3, - n_concurrent_trials: 2, - quiet: true, - timeout_multiplier: 1.5, - }, - }, - } as any; - - const params = buildCloneParams(job); - const orch = JSON.parse(params.cloneOrchestratorConfig); - expect(orch.nAttempts).toBe(3); - expect(orch.nConcurrentTrials).toBe(2); - expect(orch.quiet).toBe(true); - expect(orch.timeoutMultiplier).toBe(1.5); - }); - - it("handles minimal job (no configs)", () => { - const job = { - id: "bj_9", - name: "minimal-job", - job_spec: null, - } as any; - - const params = buildCloneParams(job); - expect(params.cloneFromJobId).toBe("bj_9"); - expect(params.cloneJobName).toBe("minimal-job"); - expect(params.cloneAgentConfigs).toBeUndefined(); - expect(params.cloneOrchestratorConfig).toBeUndefined(); - }); - - it("handles null name", () => { - const job = { - id: "bj_10", - name: null, - job_spec: null, - } as any; - - const params = buildCloneParams(job); - expect(params.cloneJobName).toBe(""); - }); - - it("extracts legacy agent IDs and names", () => { - const job = { - id: "bj_11", - name: "test-job", - job_spec: { - benchmark_id: "bm_1", - agent_configs: [ - { agent_id: "ag_1", name: "first" }, - { agent_id: "ag_2", name: "second" }, - ], - }, - } as any; - - const params = buildCloneParams(job); - expect(params.cloneAgentIds).toBe("ag_1,ag_2"); - expect(params.cloneAgentNames).toBe("first,second"); - }); -}); - -describe("createBenchmarkJob", () => { - beforeEach(() => { - jest.clearAllMocks(); - }); - - it("creates with benchmarkId", async () => { - const mockJob = { id: "bj_new" }; - mockCreate.mockResolvedValue(mockJob); - - const result = await createBenchmarkJob({ - benchmarkId: "bm_1", - agentConfigs: [{ name: "agent-1" }], - }); - - expect(result).toEqual(mockJob); - expect(mockCreate).toHaveBeenCalledWith( - expect.objectContaining({ - spec: expect.objectContaining({ - type: "benchmark", - benchmark_id: "bm_1", - }), - }), - ); - }); - - it("creates with scenarioIds", async () => { - const mockJob = { id: "bj_new" }; - mockCreate.mockResolvedValue(mockJob); - - await createBenchmarkJob({ - scenarioIds: ["s1", "s2"], - agentConfigs: [{ name: "agent-1" }], - }); - - expect(mockCreate).toHaveBeenCalledWith( - expect.objectContaining({ - spec: expect.objectContaining({ - type: "scenarios", - scenario_ids: ["s1", "s2"], - }), - }), - ); - }); - - it("throws when neither benchmarkId nor scenarioIds provided", async () => { - await expect( - createBenchmarkJob({ agentConfigs: [{ name: "agent-1" }] }), - ).rejects.toThrow("Either benchmarkId or scenarioIds must be provided"); - }); - - it("throws when both benchmarkId and scenarioIds provided", async () => { - await expect( - createBenchmarkJob({ - benchmarkId: "bm_1", - scenarioIds: ["s1"], - agentConfigs: [{ name: "agent-1" }], - }), - ).rejects.toThrow("Cannot specify both"); - }); - - it("maps agent config fields correctly", async () => { - mockCreate.mockResolvedValue({ id: "bj_new" }); - - await createBenchmarkJob({ - benchmarkId: "bm_1", - agentConfigs: [ - { - name: "my-agent", - agentId: "ag_1", - modelName: "gpt-4", - timeoutSeconds: 300, - kwargs: { temp: "0.5" }, - environmentVariables: { ENV: "test" }, - secrets: { KEY: "val" }, - }, - ], - }); - - const spec = mockCreate.mock.calls[0][0].spec; - const agentConfig = spec.agent_configs[0]; - expect(agentConfig.name).toBe("my-agent"); - expect(agentConfig.agent_id).toBe("ag_1"); - expect(agentConfig.model_name).toBe("gpt-4"); - expect(agentConfig.timeout_seconds).toBe(300); - expect(agentConfig.kwargs).toEqual({ temp: "0.5" }); - expect(agentConfig.agent_environment.environment_variables).toEqual({ - ENV: "test", - }); - expect(agentConfig.agent_environment.secrets).toEqual({ KEY: "val" }); - }); - - it("omits empty kwargs", async () => { - mockCreate.mockResolvedValue({ id: "bj_new" }); - - await createBenchmarkJob({ - benchmarkId: "bm_1", - agentConfigs: [{ name: "my-agent", kwargs: {} }], - }); - - const agentConfig = mockCreate.mock.calls[0][0].spec.agent_configs[0]; - expect(agentConfig.kwargs).toBeUndefined(); - }); - - it("includes orchestrator config when provided", async () => { - mockCreate.mockResolvedValue({ id: "bj_new" }); - - await createBenchmarkJob({ - benchmarkId: "bm_1", - agentConfigs: [{ name: "agent-1" }], - orchestratorConfig: { - nAttempts: 3, - nConcurrentTrials: 2, - quiet: true, - timeoutMultiplier: 1.5, - }, - }); - - const spec = mockCreate.mock.calls[0][0].spec; - expect(spec.orchestrator_config).toEqual({ - n_attempts: 3, - n_concurrent_trials: 2, - quiet: true, - timeout_multiplier: 1.5, - }); - }); - - it("includes job name when provided", async () => { - mockCreate.mockResolvedValue({ id: "bj_new" }); - - await createBenchmarkJob({ - name: "my-job", - benchmarkId: "bm_1", - agentConfigs: [{ name: "agent-1" }], - }); - - expect(mockCreate).toHaveBeenCalledWith( - expect.objectContaining({ name: "my-job" }), - ); - }); -}); - -describe("listBenchmarkJobs", () => { - beforeEach(() => { - jest.clearAllMocks(); - }); - - it("passes pagination params", async () => { - mockList.mockResolvedValue({ jobs: [], has_more: false }); - - await listBenchmarkJobs({ - limit: 10, - startingAfter: "bj_cursor", - name: "test", - includeTotalCount: true, - }); - - expect(mockList).toHaveBeenCalledWith({ - limit: 10, - starting_after: "bj_cursor", - name: "test", - include_total_count: true, - }); - }); - - it("defaults include_total_count to false when not specified", async () => { - mockList.mockResolvedValue({ jobs: [], has_more: false }); - - await listBenchmarkJobs({ limit: 10 }); - - expect(mockList).toHaveBeenCalledWith( - expect.objectContaining({ include_total_count: false }), - ); - }); - - it("returns jobs with hasMore and totalCount", async () => { - mockList.mockResolvedValue({ - jobs: [{ id: "bj_1" }], - has_more: true, - total_count: 42, - }); - - const result = await listBenchmarkJobs({ limit: 10 }); - expect(result.jobs).toHaveLength(1); - expect(result.hasMore).toBe(true); - expect(result.totalCount).toBe(42); - }); -}); - -describe("getBenchmarkJob", () => { - beforeEach(() => { - jest.clearAllMocks(); - }); - - it("retrieves by id", async () => { - const mockJob = { id: "bj_1", name: "test" }; - mockRetrieve.mockResolvedValue(mockJob); - - const result = await getBenchmarkJob("bj_1"); - expect(result).toEqual(mockJob); - expect(mockRetrieve).toHaveBeenCalledWith("bj_1"); - }); -}); - -describe("getBenchmarkRun", () => { - beforeEach(() => { - jest.clearAllMocks(); - }); - - it("retrieves by id", async () => { - const mockRun = { id: "br_1", name: "test-run" }; - mockBenchmarkRunsRetrieve.mockResolvedValue(mockRun); - - const result = await getBenchmarkRun("br_1"); - expect(result).toEqual(mockRun); - expect(mockBenchmarkRunsRetrieve).toHaveBeenCalledWith("br_1"); - }); -}); - -describe("listBenchmarkRunScenarioRuns", () => { - beforeEach(() => { - jest.clearAllMocks(); - }); - - it("paginates through all scenario runs", async () => { - const runs = [{ id: "sr_1" }, { id: "sr_2" }, { id: "sr_3" }]; - mockBenchmarkRunsListScenarioRuns.mockReturnValue({ - [Symbol.asyncIterator]: () => { - let i = 0; - return { - next: async () => - i < runs.length - ? { value: runs[i++], done: false } - : { value: undefined, done: true }, - }; - }, - }); - - const result = await listBenchmarkRunScenarioRuns("br_1"); - expect(result).toHaveLength(3); - expect(result[0].id).toBe("sr_1"); - expect(result[2].id).toBe("sr_3"); - expect(mockBenchmarkRunsListScenarioRuns).toHaveBeenCalledWith("br_1", { - limit: 100, - }); - }); - - it("passes additional options", async () => { - mockBenchmarkRunsListScenarioRuns.mockReturnValue({ - [Symbol.asyncIterator]: () => ({ - next: async () => ({ value: undefined, done: true }), - }), - }); - - await listBenchmarkRunScenarioRuns("br_1", { limit: 50 } as any); - expect(mockBenchmarkRunsListScenarioRuns).toHaveBeenCalledWith("br_1", { - limit: 50, - }); - }); - - it("returns empty array when no runs", async () => { - mockBenchmarkRunsListScenarioRuns.mockReturnValue({ - [Symbol.asyncIterator]: () => ({ - next: async () => ({ value: undefined, done: true }), - }), - }); - - const result = await listBenchmarkRunScenarioRuns("br_1"); - expect(result).toEqual([]); - }); -}); diff --git a/tests/__tests__/services/benchmarkService.test.ts b/tests/__tests__/services/benchmarkService.test.ts deleted file mode 100644 index 53b7ed67..00000000 --- a/tests/__tests__/services/benchmarkService.test.ts +++ /dev/null @@ -1,318 +0,0 @@ -import { jest, describe, it, expect, beforeEach } from "@jest/globals"; - -const mockBenchmarkRunsList = jest.fn(); -const mockBenchmarkRunsRetrieve = jest.fn(); -const mockBenchmarkRunsListScenarioRuns = jest.fn(); -const mockBenchmarkRunsCreate = jest.fn(); -const mockScenarioRunsList = jest.fn(); -const mockScenarioRunsRetrieve = jest.fn(); -const mockBenchmarksList = jest.fn(); -const mockBenchmarksRetrieve = jest.fn(); -const mockBenchmarksListPublic = jest.fn(); - -jest.unstable_mockModule("@/utils/client.js", () => ({ - getClient: () => ({ - benchmarkRuns: { - list: mockBenchmarkRunsList, - retrieve: mockBenchmarkRunsRetrieve, - listScenarioRuns: mockBenchmarkRunsListScenarioRuns, - create: mockBenchmarkRunsCreate, - }, - scenarios: { - runs: { - list: mockScenarioRunsList, - retrieve: mockScenarioRunsRetrieve, - }, - }, - benchmarks: { - list: mockBenchmarksList, - retrieve: mockBenchmarksRetrieve, - listPublic: mockBenchmarksListPublic, - }, - }), -})); - -const { - listBenchmarkRuns, - getBenchmarkRun, - listScenarioRuns, - getScenarioRun, - listBenchmarks, - getBenchmark, - listPublicBenchmarks, - createBenchmarkRun, -} = await import("@/services/benchmarkService.js"); - -describe("listScenarioRuns", () => { - beforeEach(() => { - jest.clearAllMocks(); - }); - - it("with benchmarkRunId uses benchmarkRuns.listScenarioRuns endpoint", async () => { - mockBenchmarkRunsListScenarioRuns.mockResolvedValue({ - runs: [{ id: "sr_1" }], - has_more: false, - total_count: 1, - }); - - const result = await listScenarioRuns({ - limit: 10, - benchmarkRunId: "br_1", - }); - - expect(mockBenchmarkRunsListScenarioRuns).toHaveBeenCalledWith("br_1", { - limit: 10, - include_total_count: false, - }); - expect(mockScenarioRunsList).not.toHaveBeenCalled(); - expect(result.scenarioRuns).toHaveLength(1); - expect(result.totalCount).toBe(1); - }); - - it("without benchmarkRunId uses scenarios.runs.list endpoint", async () => { - mockScenarioRunsList.mockResolvedValue({ - runs: [{ id: "sr_2" }], - has_more: true, - total_count: 50, - }); - - const result = await listScenarioRuns({ limit: 10 }); - - expect(mockScenarioRunsList).toHaveBeenCalledWith({ - limit: 10, - include_total_count: false, - }); - expect(mockBenchmarkRunsListScenarioRuns).not.toHaveBeenCalled(); - expect(result.scenarioRuns).toHaveLength(1); - expect(result.hasMore).toBe(true); - }); - - it("passes startingAfter and includeTotalCount", async () => { - mockScenarioRunsList.mockResolvedValue({ - runs: [], - has_more: false, - }); - - await listScenarioRuns({ - limit: 10, - startingAfter: "sr_cursor", - includeTotalCount: true, - }); - - expect(mockScenarioRunsList).toHaveBeenCalledWith({ - limit: 10, - starting_after: "sr_cursor", - include_total_count: true, - }); - }); - - it("passes startingAfter with benchmarkRunId path", async () => { - mockBenchmarkRunsListScenarioRuns.mockResolvedValue({ - runs: [], - has_more: false, - }); - - await listScenarioRuns({ - limit: 10, - benchmarkRunId: "br_1", - startingAfter: "sr_cursor", - includeTotalCount: true, - }); - - expect(mockBenchmarkRunsListScenarioRuns).toHaveBeenCalledWith("br_1", { - limit: 10, - starting_after: "sr_cursor", - include_total_count: true, - }); - }); -}); - -describe("listPublicBenchmarks", () => { - beforeEach(() => { - jest.clearAllMocks(); - }); - - it("calls benchmarks.listPublic", async () => { - mockBenchmarksListPublic.mockResolvedValue({ - benchmarks: [{ id: "bm_pub" }], - has_more: false, - total_count: 1, - }); - - const result = await listPublicBenchmarks({ limit: 10 }); - expect(mockBenchmarksListPublic).toHaveBeenCalled(); - expect(result.benchmarks).toHaveLength(1); - }); - - it("passes search param", async () => { - mockBenchmarksListPublic.mockResolvedValue({ - benchmarks: [], - has_more: false, - }); - - await listPublicBenchmarks({ limit: 10, search: "code-review" }); - - expect(mockBenchmarksListPublic).toHaveBeenCalledWith( - expect.objectContaining({ search: "code-review" }), - ); - }); - - it("passes startingAfter for pagination", async () => { - mockBenchmarksListPublic.mockResolvedValue({ - benchmarks: [], - has_more: false, - }); - - await listPublicBenchmarks({ - limit: 10, - startingAfter: "bm_cursor", - includeTotalCount: true, - }); - - expect(mockBenchmarksListPublic).toHaveBeenCalledWith( - expect.objectContaining({ - starting_after: "bm_cursor", - include_total_count: true, - }), - ); - }); -}); - -describe("createBenchmarkRun", () => { - beforeEach(() => { - jest.clearAllMocks(); - }); - - it("sends benchmark_ids array", async () => { - const mockRun = { id: "br_new" }; - mockBenchmarkRunsCreate.mockResolvedValue(mockRun); - - const result = await createBenchmarkRun(["bm_1", "bm_2"]); - expect(result).toEqual(mockRun); - expect(mockBenchmarkRunsCreate).toHaveBeenCalledWith({ - benchmark_ids: ["bm_1", "bm_2"], - }); - }); - - it("includes optional name and metadata", async () => { - mockBenchmarkRunsCreate.mockResolvedValue({ id: "br_new" }); - - await createBenchmarkRun(["bm_1"], { - name: "my-run", - metadata: { env: "staging" }, - }); - - expect(mockBenchmarkRunsCreate).toHaveBeenCalledWith({ - benchmark_ids: ["bm_1"], - name: "my-run", - metadata: { env: "staging" }, - }); - }); - - it("omits name and metadata when not provided", async () => { - mockBenchmarkRunsCreate.mockResolvedValue({ id: "br_new" }); - - await createBenchmarkRun(["bm_1"]); - - const callArgs = mockBenchmarkRunsCreate.mock.calls[0][0]; - expect(callArgs).not.toHaveProperty("name"); - expect(callArgs).not.toHaveProperty("metadata"); - }); -}); - -describe("listBenchmarkRuns", () => { - beforeEach(() => { - jest.clearAllMocks(); - }); - - it("passes pagination params", async () => { - mockBenchmarkRunsList.mockResolvedValue({ - runs: [], - has_more: false, - }); - - await listBenchmarkRuns({ - limit: 10, - startingAfter: "br_cursor", - includeTotalCount: true, - }); - - expect(mockBenchmarkRunsList).toHaveBeenCalledWith({ - limit: 10, - starting_after: "br_cursor", - include_total_count: true, - }); - }); - - it("returns benchmarkRuns, totalCount, hasMore", async () => { - mockBenchmarkRunsList.mockResolvedValue({ - runs: [{ id: "br_1" }], - has_more: true, - total_count: 30, - }); - - const result = await listBenchmarkRuns({ limit: 10 }); - expect(result.benchmarkRuns).toHaveLength(1); - expect(result.hasMore).toBe(true); - expect(result.totalCount).toBe(30); - }); -}); - -describe("getBenchmarkRun", () => { - it("retrieves by id", async () => { - const mockRun = { id: "br_1" }; - mockBenchmarkRunsRetrieve.mockResolvedValue(mockRun); - - const result = await getBenchmarkRun("br_1"); - expect(result).toEqual(mockRun); - expect(mockBenchmarkRunsRetrieve).toHaveBeenCalledWith("br_1"); - }); -}); - -describe("getScenarioRun", () => { - it("retrieves by id", async () => { - const mockRun = { id: "sr_1" }; - mockScenarioRunsRetrieve.mockResolvedValue(mockRun); - - const result = await getScenarioRun("sr_1"); - expect(result).toEqual(mockRun); - expect(mockScenarioRunsRetrieve).toHaveBeenCalledWith("sr_1"); - }); -}); - -describe("listBenchmarks", () => { - beforeEach(() => { - jest.clearAllMocks(); - }); - - it("passes search and pagination params", async () => { - mockBenchmarksList.mockResolvedValue({ - benchmarks: [], - has_more: false, - }); - - await listBenchmarks({ - limit: 10, - search: "test", - startingAfter: "bm_cursor", - includeTotalCount: true, - }); - - expect(mockBenchmarksList).toHaveBeenCalledWith({ - limit: 10, - search: "test", - starting_after: "bm_cursor", - include_total_count: true, - }); - }); -}); - -describe("getBenchmark", () => { - it("retrieves by id", async () => { - const mockBenchmark = { id: "bm_1" }; - mockBenchmarksRetrieve.mockResolvedValue(mockBenchmark); - - const result = await getBenchmark("bm_1"); - expect(result).toEqual(mockBenchmark); - }); -}); diff --git a/tests/__tests__/utils/commands.test.ts b/tests/__tests__/utils/commands.test.ts new file mode 100644 index 00000000..da5615ce --- /dev/null +++ b/tests/__tests__/utils/commands.test.ts @@ -0,0 +1,22 @@ +import { createProgram } from "../../../src/utils/commands.js"; + +describe("command registration", () => { + it("exposes only supported resource commands", () => { + const program = createProgram(); + + expect(program.commands.map((command) => command.name()).sort()).toEqual([ + "agent", + "axon", + "blueprint", + "devbox", + "gateway-config", + "mcp", + "mcp-config", + "mcp-server", + "network-policy", + "object", + "secret", + "snapshot", + ]); + }); +}); diff --git a/tests/fixtures/mocks.ts b/tests/fixtures/mocks.ts index 4e6ccb40..9aeec0e2 100644 --- a/tests/fixtures/mocks.ts +++ b/tests/fixtures/mocks.ts @@ -1,62 +1,70 @@ -import { jest } from '@jest/globals'; +import { jest } from "@jest/globals"; export const mockDevbox = (overrides = {}) => ({ - id: 'test-id', - status: 'running', - created_at: '2024-01-01T00:00:00Z', + id: "test-id", + status: "running", + created_at: "2024-01-01T00:00:00Z", launch_parameters: { user_parameters: { - username: 'test-user' - } + username: "test-user", + }, }, - model_dump_json: jest.fn().mockReturnValue(JSON.stringify({ - id: 'test-id', - status: 'running', - created_at: '2024-01-01T00:00:00Z' - })), - ...overrides + model_dump_json: jest.fn().mockReturnValue( + JSON.stringify({ + id: "test-id", + status: "running", + created_at: "2024-01-01T00:00:00Z", + }), + ), + ...overrides, }); export const mockBlueprint = (overrides = {}) => ({ - id: 'bp-test-id', - name: 'test-blueprint', - status: 'ready', - created_at: '2024-01-01T00:00:00Z', - model_dump_json: jest.fn().mockReturnValue(JSON.stringify({ - id: 'bp-test-id', - name: 'test-blueprint', - status: 'ready' - })), - ...overrides + id: "bp-test-id", + name: "test-blueprint", + status: "ready", + created_at: "2024-01-01T00:00:00Z", + model_dump_json: jest.fn().mockReturnValue( + JSON.stringify({ + id: "bp-test-id", + name: "test-blueprint", + status: "ready", + }), + ), + ...overrides, }); export const mockObject = (overrides = {}) => ({ - id: 'obj-test-id', - name: 'test-object', - content_type: 'text', - state: 'READ_ONLY', + id: "obj-test-id", + name: "test-object", + content_type: "text", + state: "READ_ONLY", size_bytes: 1024, - created_at: '2024-01-01T00:00:00Z', - model_dump_json: jest.fn().mockReturnValue(JSON.stringify({ - id: 'obj-test-id', - name: 'test-object', - content_type: 'text', - state: 'READ_ONLY' - })), - ...overrides + created_at: "2024-01-01T00:00:00Z", + model_dump_json: jest.fn().mockReturnValue( + JSON.stringify({ + id: "obj-test-id", + name: "test-object", + content_type: "text", + state: "READ_ONLY", + }), + ), + ...overrides, }); export const mockSnapshot = (overrides = {}) => ({ - id: 'snap-test-id', - devbox_id: 'test-id', - status: 'completed', - created_at: '2024-01-01T00:00:00Z', - model_dump_json: jest.fn().mockReturnValue(JSON.stringify({ - id: 'snap-test-id', - devbox_id: 'test-id', - status: 'completed' - })), - ...overrides + id: "snap-test-id", + devbox_id: "test-id", + status: "completed", + created_at: "2024-01-01T00:00:00Z", + model_dump_json: jest.fn().mockReturnValue( + JSON.stringify({ + id: "snap-test-id", + devbox_id: "test-id", + status: "completed", + }), + ), + ...overrides, }); export const mockAPIClient = () => ({ @@ -70,10 +78,10 @@ export const mockAPIClient = () => ({ execute: jest.fn(), executeAsync: jest.fn(), executions: { - retrieve: jest.fn() + retrieve: jest.fn(), }, logs: { - list: jest.fn() + list: jest.fn(), }, readFileContents: jest.fn(), writeFileContents: jest.fn(), @@ -83,15 +91,15 @@ export const mockAPIClient = () => ({ snapshotDiskAsync: jest.fn(), diskSnapshots: { queryStatus: jest.fn(), - list: jest.fn() - } + list: jest.fn(), + }, }, blueprints: { create: jest.fn(), list: jest.fn(), retrieve: jest.fn(), preview: jest.fn(), - logs: jest.fn() + logs: jest.fn(), }, objects: { create: jest.fn(), @@ -101,76 +109,54 @@ export const mockAPIClient = () => ({ download: jest.fn(), upload: jest.fn(), delete: jest.fn(), - complete: jest.fn() - } + complete: jest.fn(), + }, }); export const mockSSHKey = () => ({ - ssh_private_key: '-----BEGIN PRIVATE KEY-----\ntest-key-content\n-----END PRIVATE KEY-----', - url: 'test-host.example.com' + ssh_private_key: + "-----BEGIN PRIVATE KEY-----\ntest-key-content\n-----END PRIVATE KEY-----", + url: "test-host.example.com", }); export const mockLogEntry = (overrides = {}) => ({ timestamp_ms: 1710000000000, - source: 'entrypoint', - cmd: 'echo test', - message: 'test message', + source: "entrypoint", + cmd: "echo test", + message: "test message", exit_code: 0, - ...overrides + ...overrides, }); export const mockAxon = (overrides = {}) => ({ - id: 'axn_test_id', - name: 'test-axon', - status: 'active', - created_at: '2024-01-01T00:00:00Z', + id: "axn_test_id", + name: "test-axon", + status: "active", + created_at: "2024-01-01T00:00:00Z", ...overrides, }); export const mockAxonEvent = (overrides = {}) => ({ sequence: 1, timestamp_ms: 1700000000000, - origin: 'test-origin', - source: 'test-source', - event_type: 'test-event', + origin: "test-origin", + source: "test-source", + event_type: "test-event", payload: '{"key":"value"}', ...overrides, }); -export const mockScenarioRun = (overrides = {}) => ({ - id: 'sr_test_id', - name: 'test-scenario-run', - state: 'completed', - start_time_ms: 1700000000000, - scoring_contract_result: { score: 0.85 }, - ...overrides, -}); - -export const mockBenchmarkJob = (overrides = {}) => ({ - id: 'bj_test_id', - name: 'test-benchmark-job', - status: 'completed', - job_spec: { - benchmark_id: 'bm_test', - agent_configs: [], - orchestrator_config: null, - }, - job_source: null, - created_at: '2024-01-01T00:00:00Z', - ...overrides, -}); - export const mockExecution = (overrides = {}) => ({ - id: 'exec-test-id', - status: 'completed', - command: 'echo hello', - created_at: '2024-01-01T00:00:00Z', - model_dump_json: jest.fn().mockReturnValue(JSON.stringify({ - id: 'exec-test-id', - status: 'completed', - command: 'echo hello' - })), - ...overrides + id: "exec-test-id", + status: "completed", + command: "echo hello", + created_at: "2024-01-01T00:00:00Z", + model_dump_json: jest.fn().mockReturnValue( + JSON.stringify({ + id: "exec-test-id", + status: "completed", + command: "echo hello", + }), + ), + ...overrides, }); - - diff --git a/tests/setup-router.ts b/tests/setup-router.ts index 954eaf70..af46c09b 100644 --- a/tests/setup-router.ts +++ b/tests/setup-router.ts @@ -250,24 +250,6 @@ jest.mock("../src/store/objectStore.ts", () => ({ ), })); -jest.mock("../src/store/benchmarkStore.ts", () => ({ - useBenchmarkStore: Object.assign( - jest.fn(() => ({})), - { - getState: () => ({ clearAll: jest.fn() }), - }, - ), -})); - -jest.mock("../src/store/benchmarkJobStore.ts", () => ({ - useBenchmarkJobStore: Object.assign( - jest.fn(() => ({})), - { - getState: () => ({ clearAll: jest.fn() }), - }, - ), -})); - const mockViewportDimensionsRouter = { viewportHeight: 20, terminalHeight: 24, From 49facdefe18fb80266ecfff7954c80141cb2dfca Mon Sep 17 00:00:00 2001 From: Jonathan Wall Date: Tue, 15 Sep 2026 14:42:49 +0000 Subject: [PATCH 2/2] docs: format generated MCP bundle guidance --- src/mcp/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/mcp/README.md b/src/mcp/README.md index b8ab1e6b..d883ed9b 100644 --- a/src/mcp/README.md +++ b/src/mcp/README.md @@ -11,6 +11,7 @@ pnpm run build:mcp ``` This will: + 1. Compile TypeScript files to `dist/mcp/` 2. Bundle `dist/mcp/server.js` with all dependencies into `src/mcp/index.js` 3. Create `runloop-mcp-server.mcpb` in the project root @@ -18,6 +19,7 @@ This will: The bundle and archive are generated artifacts, not checked-in source. Run this build before packaging or installing the extension; do not reuse a stale bundle. The resulting `.mcpb` file is a zip archive containing: + - `index.js` - Bundled server code with all dependencies (~850KB minified) - `manifest.json` - MCP extension metadata @@ -33,6 +35,7 @@ The resulting `.mcpb` file is a zip archive containing: ## Build Process The build process is defined in `scripts/build-mcp.js`: + 1. Uses esbuild to bundle all dependencies into a single minified file in `src/mcp/` 2. Copies manifest.json to the bundle 3. Creates a compressed .mcpb archive with only required files