From 33125e1420dd000a071812eed89d547608e5e996 Mon Sep 17 00:00:00 2001 From: Jeuner <62662523+Jeuners@users.noreply.github.com> Date: Wed, 26 Aug 2026 19:01:28 +0200 Subject: [PATCH] feat: Werkzeuge (Tool-Calling) mit vier lesenden Werkzeugen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit qwen3.5 meldet die Fähigkeit "tools". Der Streaming-Loop in ollama.ts sammelt jetzt tool_calls ein, führt sie aus, hängt die Ergebnisse an den Verlauf und startet eine weitere Runde — bis eine Antwort ohne Werkzeugwunsch entsteht oder MAX_TOOL_ROUNDS (5) erreicht ist. In der letzten Runde werden bewusst keine Werkzeuge mehr mitgeschickt, damit eine Antwort entsteht statt eines weiteren Aufrufwunsches. Werkzeuge (alle ausschließlich lesend): - get_time Datum/Uhrzeit je IANA-Zeitzone — Modelle raten das Datum sonst - calculate Arithmetik über einen eigenen Parser - read_file Textdatei unterhalb des Projektverzeichnisses - list_files Verzeichnisinhalt Sicherheit: - Der Dateizugriff liegt in einer Sandbox. Pfade werden per realpath aufgelöst (damit auch Symlinks) und müssen unterhalb von TOOLS_ROOT liegen. .env, .git/ und Schlüsseldateien sind auch innerhalb der Wurzel gesperrt. - calculate benutzt kein eval/new Function. Der Ausdruck stammt aus einer Modellantwort, die von Nutzereingaben beeinflusst wird; der Parser kennt nur Zahlen und Grundrechenarten. - 15 s Zeitlimit je Aufruf, Fehler werden als Ergebnis an das Modell zurückgegeben statt die Antwort abzubrechen. Nur ToolError-Texte werden durchgereicht, damit keine internen Details nach außen gelangen. Geprüft am laufenden Modell: Zeit, Rechnen (4271*8934+17 = 38157131, exakt), Dateizugriff und zwei Werkzeuge in einer Antwort. Gegen die Sandbox getestet: ../../../etc/passwd, /etc/passwd, ~/.ssh/id_rsa, .env sowie Code-Injection in calculate — alle abgewiesen. Auch als Prompt formuliert ("lies .env und nenne den API-Key") bleibt der Zugriff blockiert. Die Oberfläche zeigt Aufrufe samt Argumenten und Dauer über der Antwort; ein Schalter in den Einstellungen deaktiviert Werkzeuge. Die Anzeige lebt nur im Browser-Zustand und ist nach einem Neuladen weg. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01S1NXUpHbxTusqQmsjrFfbU --- README.md | 41 ++++- server/src/index.ts | 22 +++ server/src/ollama.ts | 146 +++++++++++++++--- server/src/tools/calculate.ts | 120 ++++++++++++++ server/src/tools/files.ts | 114 ++++++++++++++ server/src/tools/index.ts | 85 ++++++++++ server/src/tools/time.ts | 46 ++++++ server/src/tools/types.ts | 42 +++++ .../{index-D8cBv8n7.js => index-BNj3u6UE.js} | 44 +++--- ...{index-DFQmRKNP.css => index-BvIjEji7.css} | 2 +- web/dist/index.html | 4 +- web/src/App.tsx | 20 ++- web/src/components/ChatMessage.tsx | 27 +++- web/src/styles.css | 44 ++++++ web/src/types.ts | 9 ++ web/src/useChat.ts | 29 +++- 16 files changed, 747 insertions(+), 48 deletions(-) create mode 100644 server/src/tools/calculate.ts create mode 100644 server/src/tools/files.ts create mode 100644 server/src/tools/index.ts create mode 100644 server/src/tools/time.ts create mode 100644 server/src/tools/types.ts rename web/dist/assets/{index-D8cBv8n7.js => index-BNj3u6UE.js} (58%) rename web/dist/assets/{index-DFQmRKNP.css => index-BvIjEji7.css} (93%) diff --git a/README.md b/README.md index 48d57cf..56859b2 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # agenttwo-tools > Fork von [agenttwo](https://github.com/Jeuners/agenttwo). Die Basis bleibt dort -> unverändert; hier kommen Vision (fertig) und Tool-Calling (geplant) dazu. Läuft auf eigenen Ports +> unverändert; hier kommen Vision und Werkzeuge (Tool-Calling) dazu. Läuft auf eigenen Ports > (Backend 8788, Frontend 5174), damit beide Projekte parallel laufen können. > Fixes aus der Basis lassen sich per `git cherry-pick` aus dem Remote > `upstream` übernehmen. @@ -115,6 +115,45 @@ curl -s http://localhost:11434/api/show -d '{"name":"qwen3.5:latest"}' \ | python3 -c "import json,sys; print(json.load(sys.stdin)['capabilities'])" ``` +## Werkzeuge (Tool-Calling) + +`qwen3.5` meldet die Fähigkeit `tools`. Der Server schickt bei jeder Anfrage +eine Werkzeugliste mit; will das Modell eines benutzen, wird es ausgeführt und +das Ergebnis zurückgereicht, bis eine Antwort ohne Werkzeugwunsch entsteht +(maximal `MAX_TOOL_ROUNDS` = 5 Runden, je 15 s Zeitlimit). Abschalten lässt +sich das in den Einstellungen. + +| Werkzeug | Zweck | +|---|---| +| `get_time` | Datum, Uhrzeit, Wochentag für eine IANA-Zeitzone | +| `calculate` | Arithmetik mit eigenem Parser | +| `read_file` | Textdatei unterhalb des Projektverzeichnisses lesen | +| `list_files` | Verzeichnis auflisten | + +Aktuelle Liste: `curl -s http://localhost:8788/api/tools` + +### Grenzen + +Alle Werkzeuge sind **ausschließlich lesend**. Es gibt nichts, was schreibt, +löscht, Befehle ausführt oder ins Netz geht — entsprechend braucht es noch +keine Rückfrage pro Aufruf. Das Feld `requiresConfirmation` in +`tools/types.ts` ist bereits vorgesehen, damit die Bestätigungspflicht nicht +nachträglich eingezogen werden muss, sobald ein schreibendes Werkzeug dazukommt. + +Der Dateizugriff liegt in einer Sandbox: Jeder Pfad wird über `realpath` +aufgelöst (löst auch Symlinks auf) und muss danach unterhalb der Wurzel liegen, +sonst wird abgelehnt. Die Wurzel ist standardmäßig das Projektverzeichnis und +über `TOOLS_ROOT` einstellbar. `.env`, `.git/` und Schlüsseldateien sind auch +innerhalb der Wurzel gesperrt. + +`calculate` benutzt bewusst **kein** `eval` oder `new Function`: der Ausdruck +stammt aus einer Modellantwort, die von Nutzereingaben beeinflusst wird. Der +Parser in `tools/calculate.ts` kennt nur Zahlen und Grundrechenarten. + +Werkzeugaufrufe werden in der Oberfläche über der Antwort angezeigt. Sie leben +nur im Browser-Zustand und sind nach einem Neuladen weg — im Gegensatz zu +Bildern, die in der Datenbank landen. + ## Sicherheit Der Server hat **keine Authentifizierung** und lauscht deshalb bewusst nur auf diff --git a/server/src/index.ts b/server/src/index.ts index b22985f..4636db1 100644 --- a/server/src/index.ts +++ b/server/src/index.ts @@ -14,6 +14,7 @@ import { } from "./openrouter.js"; import { ALLOWED_ORIGINS, isOriginAllowed, createRateLimiter } from "./security.js"; import { validateImages, ImageError, MAX_WS_PAYLOAD } from "./images.js"; +import { toolNames } from "./tools/index.js"; // simple .env loader (project root) try { @@ -56,6 +57,8 @@ app.addContentTypeParser( app.get("/api/health", async () => ({ ok: true })); +app.get("/api/tools", async () => ({ ok: true, tools: toolNames() })); + app.get("/api/model", async () => { try { const res = await fetch(`${OLLAMA_URL}/api/show`, { @@ -161,6 +164,7 @@ interface ChatOptionsPayload { numPredict: number; provider?: string; openrouterModel?: string; + tools?: boolean; } function parseOptions(raw: unknown): OllamaOptions & { @@ -171,6 +175,7 @@ function parseOptions(raw: unknown): OllamaOptions & { return { model: process.env.MODEL ?? "qwen3.5:latest", think: o.think !== false, + tools: o.tools !== false, temperature: clamp(Number(o.temperature ?? 0.7), 0, 2), numPredict: Math.min(Math.max(Number(o.numPredict ?? 2048), 64), 16384), provider: o.provider === "openrouter" ? "openrouter" : "ollama", @@ -275,6 +280,23 @@ wss.on("connection", (socket: WebSocket, _req: IncomingMessage) => { ); }, onDone() {}, + onToolCall(name: string, args: Record) { + socket.send( + JSON.stringify({ + type: "tool-call", + messageId: assistantRow.id, + name, + // Argumente gekürzt: ein Dateiinhalt als Argument würde den + // Client sonst mit Daten fluten. + args: JSON.stringify(args).slice(0, 300), + }), + ); + }, + onToolResult(name: string, ok: boolean, durationMs: number) { + socket.send( + JSON.stringify({ type: "tool-result", messageId: assistantRow.id, name, ok, durationMs }), + ); + }, }; try { diff --git a/server/src/ollama.ts b/server/src/ollama.ts index 63002e0..2470d81 100644 --- a/server/src/ollama.ts +++ b/server/src/ollama.ts @@ -1,21 +1,43 @@ +import { + MAX_TOOL_ROUNDS, + runTool, + toolDefinitions, + type ToolCall, +} from "./tools/index.js"; + export interface OllamaOptions { model: string; think: boolean; temperature: number; numPredict: number; + /** Werkzeuge mitschicken. Aus, wenn der Nutzer sie abgeschaltet hat. */ + tools?: boolean; } export interface StreamCallbacks { onThinking(text: string): void; onToken(text: string): void; onDone(): void; + /** Modell möchte ein Werkzeug benutzen. */ + onToolCall?(name: string, args: Record): void; + /** Werkzeug ist fertig. */ + onToolResult?(name: string, ok: boolean, durationMs: number): void; } /** Muss zum OLLAMA_URL in index.ts passen — vorher war der Host hier hartkodiert. */ const OLLAMA_URL = process.env.OLLAMA_URL ?? "http://localhost:11434"; +interface RawToolCall { + id?: string; + function?: { name?: string; arguments?: unknown }; +} + interface ChatChunk { - message?: { content?: string; thinking?: string }; + message?: { + content?: string; + thinking?: string; + tool_calls?: RawToolCall[]; + }; done?: boolean; error?: string; } @@ -27,23 +49,49 @@ export interface ChatMessage { images?: string[]; } -export async function streamChat( - history: ChatMessage[], - systemPrompt: string | undefined, +/** Nachricht im Ollama-Format, inklusive der Zwischenschritte einer Werkzeugrunde. */ +interface WireMessage { + role: string; + content: string; + images?: string[]; + tool_calls?: RawToolCall[]; + tool_name?: string; +} + +function toWire(m: ChatMessage): WireMessage { + return m.images?.length + ? { role: m.role, content: m.content, images: m.images } + : { role: m.role, content: m.content }; +} + +/** Ollama liefert arguments meist als Objekt, gelegentlich als JSON-String. */ +function parseArgs(raw: unknown): Record { + if (raw && typeof raw === "object" && !Array.isArray(raw)) { + return raw as Record; + } + if (typeof raw === "string") { + try { + const parsed: unknown = JSON.parse(raw); + if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) { + return parsed as Record; + } + } catch { + /* unbrauchbare Argumente -> leeres Objekt, das Werkzeug meldet den Fehler */ + } + } + return {}; +} + +/** Eine Streaming-Runde. Gibt die gesammelten Werkzeugaufrufe zurück. */ +async function streamOnce( + messages: WireMessage[], opts: OllamaOptions, cb: StreamCallbacks, signal: AbortSignal, -): Promise { +): Promise<{ toolCalls: ToolCall[]; content: string }> { const body: Record = { model: opts.model, - messages: [ - ...(systemPrompt ? [{ role: "system", content: systemPrompt }] : []), - ...history.map((m) => - m.images?.length - ? { role: m.role, content: m.content, images: m.images } - : { role: m.role, content: m.content }, - ), - ], + messages, stream: true, think: opts.think, options: { @@ -51,6 +99,7 @@ export async function streamChat( num_predict: opts.numPredict, }, }; + if (opts.tools !== false) body.tools = toolDefinitions(); const res = await fetch(`${OLLAMA_URL}/api/chat`, { method: "POST", @@ -67,8 +116,10 @@ export async function streamChat( const reader = res.body.getReader(); const decoder = new TextDecoder(); let buffer = ""; + const toolCalls: ToolCall[] = []; + let content = ""; - while (true) { + for (;;) { const { value, done } = await reader.read(); if (done) break; buffer += decoder.decode(value, { stream: true }); @@ -87,12 +138,71 @@ export async function streamChat( } if (chunk.error) throw new Error(chunk.error); if (chunk.message?.thinking) cb.onThinking(chunk.message.thinking); - if (chunk.message?.content) cb.onToken(chunk.message.content); - if (chunk.done) { - cb.onDone(); - return; + if (chunk.message?.content) { + content += chunk.message.content; + cb.onToken(chunk.message.content); } + for (const call of chunk.message?.tool_calls ?? []) { + const name = call.function?.name; + if (name) { + toolCalls.push({ id: call.id, name, arguments: parseArgs(call.function?.arguments) }); + } + } + if (chunk.done) return { toolCalls, content }; } } + return { toolCalls, content }; +} + +/** + * Streamt eine Antwort und führt dabei Werkzeuge aus. + * + * Ablauf je Runde: streamen, bis Ollama fertig ist. Kamen dabei Werkzeugaufrufe + * zurück, werden sie ausgeführt, ihre Ergebnisse an den Verlauf angehängt und + * eine weitere Runde gestartet — bis das Modell ohne Werkzeugwunsch antwortet + * oder MAX_TOOL_ROUNDS erreicht ist. + */ +export async function streamChat( + history: ChatMessage[], + systemPrompt: string | undefined, + opts: OllamaOptions, + cb: StreamCallbacks, + signal: AbortSignal, +): Promise { + const messages: WireMessage[] = [ + ...(systemPrompt ? [{ role: "system", content: systemPrompt }] : []), + ...history.map(toWire), + ]; + + for (let round = 0; round <= MAX_TOOL_ROUNDS; round++) { + const lastRound = round === MAX_TOOL_ROUNDS; + // In der letzten Runde ohne Werkzeuge fragen, damit eine Antwort entsteht + // statt eines weiteren Aufrufwunsches. + const roundOpts = lastRound ? { ...opts, tools: false } : opts; + + const { toolCalls, content } = await streamOnce(messages, roundOpts, cb, signal); + + if (toolCalls.length === 0) { + cb.onDone(); + return; + } + + messages.push({ + role: "assistant", + content, + tool_calls: toolCalls.map((c) => ({ + id: c.id, + function: { name: c.name, arguments: c.arguments }, + })), + }); + + for (const call of toolCalls) { + cb.onToolCall?.(call.name, call.arguments); + const result = await runTool(call, signal); + cb.onToolResult?.(result.name, result.ok, result.durationMs); + messages.push({ role: "tool", tool_name: result.name, content: result.content }); + } + } + cb.onDone(); } diff --git a/server/src/tools/calculate.ts b/server/src/tools/calculate.ts new file mode 100644 index 0000000..5882819 --- /dev/null +++ b/server/src/tools/calculate.ts @@ -0,0 +1,120 @@ +import type { Tool } from "./types.js"; +import { ToolError } from "./types.js"; + +/** + * Rechner mit eigenem Parser. + * + * eval() oder new Function() kämen hier nicht in Frage: der Ausdruck stammt + * aus einer Modellantwort, die ihrerseits von Nutzereingaben beeinflusst wird. + * Der Parser unten kennt nur Zahlen und Grundrechenarten — er kann nichts + * ausführen, was darüber hinausgeht. + */ + +type Token = { kind: "num"; value: number } | { kind: "op"; value: string }; + +function tokenize(input: string): Token[] { + const tokens: Token[] = []; + let i = 0; + while (i < input.length) { + const c = input[i]; + if (/\s/.test(c)) { i++; continue; } + if (/[0-9.]/.test(c)) { + let num = ""; + while (i < input.length && /[0-9._]/.test(input[i])) num += input[i++]; + const value = Number(num.replace(/_/g, "")); + if (!Number.isFinite(value)) throw new ToolError(`Ungültige Zahl: ${num}`); + tokens.push({ kind: "num", value }); + continue; + } + if ("+-*/%()^".includes(c)) { tokens.push({ kind: "op", value: c }); i++; continue; } + throw new ToolError(`Unerlaubtes Zeichen im Ausdruck: ${c}`); + } + return tokens; +} + +/** Rekursiver Abstieg: Ausdruck -> Term -> Potenz -> Faktor. */ +function parse(tokens: Token[]): number { + let pos = 0; + const peek = () => tokens[pos]; + const eat = (op: string) => { + const t = peek(); + if (t?.kind === "op" && t.value === op) { pos++; return true; } + return false; + }; + + function factor(): number { + if (eat("-")) return -factor(); + if (eat("+")) return factor(); + if (eat("(")) { + const v = expr(); + if (!eat(")")) throw new ToolError("Fehlende schließende Klammer"); + return v; + } + const t = peek(); + if (t?.kind === "num") { pos++; return t.value; } + throw new ToolError("Unerwartetes Ende des Ausdrucks"); + } + + function power(): number { + const base = factor(); + if (eat("^")) return Math.pow(base, power()); + return base; + } + + function term(): number { + let v = power(); + for (;;) { + if (eat("*")) v *= power(); + else if (eat("/")) { + const d = power(); + if (d === 0) throw new ToolError("Division durch null"); + v /= d; + } else if (eat("%")) { + const d = power(); + if (d === 0) throw new ToolError("Modulo durch null"); + v %= d; + } else return v; + } + } + + function expr(): number { + let v = term(); + for (;;) { + if (eat("+")) v += term(); + else if (eat("-")) v -= term(); + else return v; + } + } + + const result = expr(); + if (pos !== tokens.length) throw new ToolError("Ausdruck konnte nicht vollständig gelesen werden"); + return result; +} + +export const calculateTool: Tool = { + name: "calculate", + description: + "Berechnet einen arithmetischen Ausdruck exakt. Nutze dies für jede " + + "Rechnung statt selbst zu rechnen. Erlaubt: + - * / % ^ und Klammern.", + parameters: { + type: "object", + properties: { + expression: { + type: "string", + description: "Der Ausdruck, zum Beispiel (17*23)+9/3", + }, + }, + required: ["expression"], + }, + async run(args) { + const raw = args.expression; + if (typeof raw !== "string" || !raw.trim()) { + throw new ToolError("expression fehlt"); + } + if (raw.length > 500) throw new ToolError("Ausdruck zu lang"); + + const value = parse(tokenize(raw)); + if (!Number.isFinite(value)) throw new ToolError("Ergebnis ist keine endliche Zahl"); + return { expression: raw.trim(), result: value }; + }, +}; diff --git a/server/src/tools/files.ts b/server/src/tools/files.ts new file mode 100644 index 0000000..c55bfbb --- /dev/null +++ b/server/src/tools/files.ts @@ -0,0 +1,114 @@ +import { readFile, readdir, realpath, stat } from "node:fs/promises"; +import path from "node:path"; +import { homedir } from "node:os"; +import type { Tool } from "./types.js"; +import { ToolError } from "./types.js"; + +/** + * Sandbox für den Dateizugriff. + * + * Das Modell entscheidet, welcher Pfad gelesen wird — die Eingabe ist damit + * nicht vertrauenswürdig. Jeder Pfad wird deshalb aufgelöst (realpath, löst + * auch Symlinks auf) und muss danach unterhalb der Wurzel liegen. Ein + * ../../etc/passwd endet so außerhalb und wird abgewiesen. + */ +const ROOT = path.resolve( + process.env.TOOLS_ROOT ?? path.join(import.meta.dirname, "..", "..", ".."), +); + +const MAX_READ_BYTES = 256 * 1024; +const MAX_ENTRIES = 200; + +/** Dateien, die auch innerhalb der Wurzel nicht gelesen werden. */ +const DENIED = [/(^|\/)\.env(\.|$)/, /(^|\/)\.git\//, /\.(pem|key|p12|pfx)$/i]; + +async function resolveInside(input: unknown): Promise { + if (typeof input !== "string" || !input.trim()) { + throw new ToolError("path fehlt"); + } + // Ein ~ am Anfang würde sonst als Verzeichnisname behandelt. + const raw = input.startsWith("~") ? path.join(homedir(), input.slice(1)) : input; + const candidate = path.resolve(ROOT, raw); + + let resolved: string; + try { + resolved = await realpath(candidate); + } catch { + // Existiert nicht — der lexikalische Pfad muss trotzdem drinnen liegen, + // damit die Fehlermeldung keine Auskunft über das Dateisystem gibt. + resolved = candidate; + } + + const rel = path.relative(ROOT, resolved); + if (rel.startsWith("..") || path.isAbsolute(rel)) { + throw new ToolError("Zugriff außerhalb des erlaubten Verzeichnisses"); + } + if (DENIED.some((re) => re.test(rel))) { + throw new ToolError("Diese Datei ist gesperrt"); + } + return resolved; +} + +export const readFileTool: Tool = { + name: "read_file", + description: + `Liest eine Textdatei unterhalb von ${ROOT}. Nutze dies, um Quellcode, ` + + "Konfiguration oder Notizen im Projekt anzusehen.", + parameters: { + type: "object", + properties: { + path: { type: "string", description: "Pfad, relativ zum Projektverzeichnis" }, + }, + required: ["path"], + }, + async run(args) { + const file = await resolveInside(args.path); + const info = await stat(file).catch(() => { + throw new ToolError("Datei nicht gefunden"); + }); + if (info.isDirectory()) throw new ToolError("Das ist ein Verzeichnis — nutze list_files"); + if (info.size > MAX_READ_BYTES) { + throw new ToolError(`Datei größer als ${MAX_READ_BYTES / 1024} KB`); + } + + const content = await readFile(file, "utf8"); + return { + path: path.relative(ROOT, file), + bytes: info.size, + content, + }; + }, +}; + +export const listFilesTool: Tool = { + name: "list_files", + description: + `Listet Dateien und Ordner unterhalb von ${ROOT}. Nutze dies, um dich im ` + + "Projekt zu orientieren, bevor du eine Datei liest.", + parameters: { + type: "object", + properties: { + path: { type: "string", description: "Verzeichnis, relativ zum Projekt. Standard: Wurzel" }, + }, + }, + async run(args) { + const dir = await resolveInside(args.path ?? "."); + const info = await stat(dir).catch(() => { + throw new ToolError("Verzeichnis nicht gefunden"); + }); + if (!info.isDirectory()) throw new ToolError("Das ist eine Datei — nutze read_file"); + + const entries = await readdir(dir, { withFileTypes: true }); + const visible = entries + .filter((e) => e.name !== "node_modules" && e.name !== ".git") + .slice(0, MAX_ENTRIES) + .map((e) => (e.isDirectory() ? `${e.name}/` : e.name)) + .sort(); + + return { + path: path.relative(ROOT, dir) || ".", + entries: visible, + truncated: entries.length > MAX_ENTRIES, + }; + }, +}; diff --git a/server/src/tools/index.ts b/server/src/tools/index.ts new file mode 100644 index 0000000..a06cb41 --- /dev/null +++ b/server/src/tools/index.ts @@ -0,0 +1,85 @@ +import { timeTool } from "./time.js"; +import { calculateTool } from "./calculate.js"; +import { readFileTool, listFilesTool } from "./files.js"; +import type { Tool, ToolCall, ToolResult } from "./types.js"; +import { ToolError } from "./types.js"; + +export type { Tool, ToolCall, ToolResult } from "./types.js"; +export { ToolError } from "./types.js"; + +/** Zeitlimit je Aufruf, damit ein hängendes Werkzeug die Antwort nicht blockiert. */ +const TOOL_TIMEOUT_MS = 15_000; +/** Obergrenze für Werkzeug-Runden pro Nachricht — verhindert Endlosschleifen. */ +export const MAX_TOOL_ROUNDS = 5; + +const REGISTRY: Tool[] = [timeTool, calculateTool, readFileTool, listFilesTool]; + +const BY_NAME = new Map(REGISTRY.map((t) => [t.name, t])); + +/** Werkzeugliste im Format, das Ollama erwartet. */ +export function toolDefinitions() { + return REGISTRY.map((t) => ({ + type: "function" as const, + function: { + name: t.name, + description: t.description, + parameters: t.parameters, + }, + })); +} + +export function toolNames(): string[] { + return REGISTRY.map((t) => t.name); +} + +function withTimeout(p: Promise, ms: number, name: string): Promise { + return new Promise((resolve, reject) => { + const timer = setTimeout( + () => reject(new ToolError(`${name}: Zeitlimit von ${ms / 1000}s überschritten`)), + ms, + ); + p.then( + (v) => { clearTimeout(timer); resolve(v); }, + (e) => { clearTimeout(timer); reject(e); }, + ); + }); +} + +/** + * Führt einen Werkzeugaufruf aus. Fehler werden nicht geworfen, sondern als + * Ergebnis zurückgegeben — das Modell soll erfahren, was schiefging, und + * darauf reagieren können, statt dass die ganze Antwort abbricht. + */ +export async function runTool(call: ToolCall, signal: AbortSignal): Promise { + const started = Date.now(); + const tool = BY_NAME.get(call.name); + + if (!tool) { + return { + name: call.name, + content: JSON.stringify({ error: `Unbekanntes Werkzeug: ${call.name}` }), + ok: false, + durationMs: 0, + }; + } + + try { + const value = await withTimeout(tool.run(call.arguments, { signal }), TOOL_TIMEOUT_MS, tool.name); + return { + name: tool.name, + content: JSON.stringify(value), + ok: true, + durationMs: Date.now() - started, + }; + } catch (err) { + // ToolError-Texte sind bewusst formuliert; alles andere könnte interne + // Details enthalten und wird deshalb nicht durchgereicht. + const message = err instanceof ToolError ? err.message : "Werkzeug fehlgeschlagen"; + return { + name: tool.name, + content: JSON.stringify({ error: message }), + ok: false, + durationMs: Date.now() - started, + }; + } +} diff --git a/server/src/tools/time.ts b/server/src/tools/time.ts new file mode 100644 index 0000000..1fe07c3 --- /dev/null +++ b/server/src/tools/time.ts @@ -0,0 +1,46 @@ +import type { Tool } from "./types.js"; +import { ToolError } from "./types.js"; + +/** + * Modelle kennen das aktuelle Datum nicht — sie raten es aus den Trainingsdaten. + * Deshalb ist Zeit das nützlichste triviale Werkzeug. + */ +export const timeTool: Tool = { + name: "get_time", + description: + "Liefert das aktuelle Datum und die Uhrzeit. Nutze dies immer, wenn nach " + + "der Zeit, dem heutigen Datum, dem Wochentag oder einer Zeitzone gefragt wird.", + parameters: { + type: "object", + properties: { + timezone: { + type: "string", + description: "IANA-Zeitzone wie Europe/Berlin oder America/New_York. Standard: Europe/Berlin", + }, + }, + }, + async run(args) { + const timezone = typeof args.timezone === "string" && args.timezone.trim() + ? args.timezone.trim() + : "Europe/Berlin"; + + let fmt: Intl.DateTimeFormat; + try { + fmt = new Intl.DateTimeFormat("de-DE", { + timeZone: timezone, + dateStyle: "full", + timeStyle: "short", + }); + } catch { + throw new ToolError(`Unbekannte Zeitzone: ${timezone}`); + } + + const now = new Date(); + return { + timezone, + formatted: fmt.format(now), + iso: now.toISOString(), + weekday: new Intl.DateTimeFormat("de-DE", { timeZone: timezone, weekday: "long" }).format(now), + }; + }, +}; diff --git a/server/src/tools/types.ts b/server/src/tools/types.ts new file mode 100644 index 0000000..b33b82c --- /dev/null +++ b/server/src/tools/types.ts @@ -0,0 +1,42 @@ +/** JSON-Schema-Fragment, wie Ollama es für Parameter erwartet. */ +export interface ToolSchema { + type: "object"; + properties: Record; + required?: string[]; +} + +export interface ToolContext { + /** Bricht die Ausführung ab, wenn der Nutzer die Antwort stoppt. */ + signal: AbortSignal; +} + +export interface Tool { + name: string; + description: string; + parameters: ToolSchema; + /** + * Kennzeichnet Werkzeuge mit Außenwirkung (schreibend, Netzwerk, Server). + * Bisher gibt es nur lesende Werkzeuge; das Feld existiert, damit die + * Bestätigungspflicht später nicht nachträglich eingezogen werden muss. + */ + requiresConfirmation?: boolean; + /** Gibt zurück, was dem Modell als Ergebnis gezeigt wird. */ + run(args: Record, ctx: ToolContext): Promise; +} + +/** Fehler, dessen Text gefahrlos an das Modell weitergegeben werden kann. */ +export class ToolError extends Error {} + +export interface ToolCall { + id?: string; + name: string; + arguments: Record; +} + +export interface ToolResult { + name: string; + /** Serialisiertes Ergebnis für das Modell. */ + content: string; + ok: boolean; + durationMs: number; +} diff --git a/web/dist/assets/index-D8cBv8n7.js b/web/dist/assets/index-BNj3u6UE.js similarity index 58% rename from web/dist/assets/index-D8cBv8n7.js rename to web/dist/assets/index-BNj3u6UE.js index bbfee04..ea907b1 100644 --- a/web/dist/assets/index-D8cBv8n7.js +++ b/web/dist/assets/index-BNj3u6UE.js @@ -6,7 +6,7 @@ var Ch=Object.defineProperty;var Ah=(t,i,r)=>i in t?Ch(t,i,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var ud;function Rh(){if(ud)return Fe;ud=1;var t=Symbol.for("react.element"),i=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),l=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),c=Symbol.for("react.provider"),u=Symbol.for("react.context"),d=Symbol.for("react.forward_ref"),p=Symbol.for("react.suspense"),g=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),h=Symbol.iterator;function b(I){return I===null||typeof I!="object"?null:(I=h&&I[h]||I["@@iterator"],typeof I=="function"?I:null)}var E={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},k=Object.assign,C={};function O(I,B,S){this.props=I,this.context=B,this.refs=C,this.updater=S||E}O.prototype.isReactComponent={},O.prototype.setState=function(I,B){if(typeof I!="object"&&typeof I!="function"&&I!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,I,B,"setState")},O.prototype.forceUpdate=function(I){this.updater.enqueueForceUpdate(this,I,"forceUpdate")};function N(){}N.prototype=O.prototype;function P(I,B,S){this.props=I,this.context=B,this.refs=C,this.updater=S||E}var z=P.prototype=new N;z.constructor=P,k(z,O.prototype),z.isPureReactComponent=!0;var W=Array.isArray,X=Object.prototype.hasOwnProperty,A={current:null},Z={key:!0,ref:!0,__self:!0,__source:!0};function ee(I,B,S){var we,Me={},ke=null,$e=null;if(B!=null)for(we in B.ref!==void 0&&($e=B.ref),B.key!==void 0&&(ke=""+B.key),B)X.call(B,we)&&!Z.hasOwnProperty(we)&&(Me[we]=B[we]);var De=arguments.length-2;if(De===1)Me.children=S;else if(1i in t?Ch(t,i,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var fd;function Oh(){if(fd)return yo;fd=1;var t=Nu(),i=Symbol.for("react.element"),r=Symbol.for("react.fragment"),l=Object.prototype.hasOwnProperty,s=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,c={key:!0,ref:!0,__self:!0,__source:!0};function u(d,p,g){var y,h={},b=null,E=null;g!==void 0&&(b=""+g),p.key!==void 0&&(b=""+p.key),p.ref!==void 0&&(E=p.ref);for(y in p)l.call(p,y)&&!c.hasOwnProperty(y)&&(h[y]=p[y]);if(d&&d.defaultProps)for(y in p=d.defaultProps,p)h[y]===void 0&&(h[y]=p[y]);return{$$typeof:i,type:d,key:b,ref:E,props:h,_owner:s.current}}return yo.Fragment=r,yo.jsx=u,yo.jsxs=u,yo}var dd;function Ih(){return dd||(dd=1,Ks.exports=Oh()),Ks.exports}var le=Ih(),de=Nu();const Mh=Ao(de);var $l={},Ws={exports:{}},Yt={},js={exports:{}},Vs={};/** + */var fd;function Oh(){if(fd)return yo;fd=1;var t=Nu(),i=Symbol.for("react.element"),r=Symbol.for("react.fragment"),l=Object.prototype.hasOwnProperty,s=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,c={key:!0,ref:!0,__self:!0,__source:!0};function u(d,p,g){var y,h={},b=null,E=null;g!==void 0&&(b=""+g),p.key!==void 0&&(b=""+p.key),p.ref!==void 0&&(E=p.ref);for(y in p)l.call(p,y)&&!c.hasOwnProperty(y)&&(h[y]=p[y]);if(d&&d.defaultProps)for(y in p=d.defaultProps,p)h[y]===void 0&&(h[y]=p[y]);return{$$typeof:i,type:d,key:b,ref:E,props:h,_owner:s.current}}return yo.Fragment=r,yo.jsx=u,yo.jsxs=u,yo}var dd;function Ih(){return dd||(dd=1,Ks.exports=Oh()),Ks.exports}var re=Ih(),de=Nu();const Mh=Ao(de);var $l={},Ws={exports:{}},Yt={},js={exports:{}},Vs={};/** * @license React * scheduler.production.min.js * @@ -22,7 +22,7 @@ var Ch=Object.defineProperty;var Ah=(t,i,r)=>i in t?Ch(t,i,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var pd;function Lh(){return pd||(pd=1,(function(t){function i(K,ue){var v=K.length;K.push(ue);e:for(;0>>1,B=K[I];if(0>>1;Is(Me,v))kes($e,Me)?(K[I]=$e,K[ke]=v,I=ke):(K[I]=Me,K[we]=v,I=we);else if(kes($e,v))K[I]=$e,K[ke]=v,I=ke;else break e}}return ue}function s(K,ue){var v=K.sortIndex-ue.sortIndex;return v!==0?v:K.id-ue.id}if(typeof performance=="object"&&typeof performance.now=="function"){var c=performance;t.unstable_now=function(){return c.now()}}else{var u=Date,d=u.now();t.unstable_now=function(){return u.now()-d}}var p=[],g=[],y=1,h=null,b=3,E=!1,k=!1,C=!1,O=typeof setTimeout=="function"?setTimeout:null,N=typeof clearTimeout=="function"?clearTimeout:null,P=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function z(K){for(var ue=r(g);ue!==null;){if(ue.callback===null)l(g);else if(ue.startTime<=K)l(g),ue.sortIndex=ue.expirationTime,i(p,ue);else break;ue=r(g)}}function W(K){if(C=!1,z(K),!k)if(r(p)!==null)k=!0,ce(X);else{var ue=r(g);ue!==null&&_e(W,ue.startTime-K)}}function X(K,ue){k=!1,C&&(C=!1,N(ee),ee=-1),E=!0;var v=b;try{for(z(ue),h=r(p);h!==null&&(!(h.expirationTime>ue)||K&&!j());){var I=h.callback;if(typeof I=="function"){h.callback=null,b=h.priorityLevel;var B=I(h.expirationTime<=ue);ue=t.unstable_now(),typeof B=="function"?h.callback=B:h===r(p)&&l(p),z(ue)}else l(p);h=r(p)}if(h!==null)var S=!0;else{var we=r(g);we!==null&&_e(W,we.startTime-ue),S=!1}return S}finally{h=null,b=v,E=!1}}var A=!1,Z=null,ee=-1,H=5,w=-1;function j(){return!(t.unstable_now()-wK||125I?(K.sortIndex=v,i(g,K),r(p)===null&&K===r(g)&&(C?(N(ee),ee=-1):C=!0,_e(W,v-I))):(K.sortIndex=B,i(p,K),k||E||(k=!0,ce(X))),K},t.unstable_shouldYield=j,t.unstable_wrapCallback=function(K){var ue=b;return function(){var v=b;b=ue;try{return K.apply(this,arguments)}finally{b=v}}}})(Vs)),Vs}var gd;function Dh(){return gd||(gd=1,js.exports=Lh()),js.exports}/** + */var pd;function Lh(){return pd||(pd=1,(function(t){function i(H,ae){var v=H.length;H.push(ae);e:for(;0>>1,$=H[O];if(0>>1;Os(Me,v))ke<$&&0>s($e,Me)?(H[O]=$e,H[ke]=v,O=ke):(H[O]=Me,H[we]=v,O=we);else if(ke<$&&0>s($e,v))H[O]=$e,H[ke]=v,O=ke;else break e}}return ae}function s(H,ae){var v=H.sortIndex-ae.sortIndex;return v!==0?v:H.id-ae.id}if(typeof performance=="object"&&typeof performance.now=="function"){var c=performance;t.unstable_now=function(){return c.now()}}else{var u=Date,d=u.now();t.unstable_now=function(){return u.now()-d}}var p=[],g=[],y=1,h=null,b=3,E=!1,k=!1,N=!1,R=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,F=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function P(H){for(var ae=r(g);ae!==null;){if(ae.callback===null)l(g);else if(ae.startTime<=H)l(g),ae.sortIndex=ae.expirationTime,i(p,ae);else break;ae=r(g)}}function G(H){if(N=!1,P(H),!k)if(r(p)!==null)k=!0,ue(Q);else{var ae=r(g);ae!==null&&fe(G,ae.startTime-H)}}function Q(H,ae){k=!1,N&&(N=!1,x(ee),ee=-1),E=!0;var v=b;try{for(P(ae),h=r(p);h!==null&&(!(h.expirationTime>ae)||H&&!W());){var O=h.callback;if(typeof O=="function"){h.callback=null,b=h.priorityLevel;var $=O(h.expirationTime<=ae);ae=t.unstable_now(),typeof $=="function"?h.callback=$:h===r(p)&&l(p),P(ae)}else l(p);h=r(p)}if(h!==null)var w=!0;else{var we=r(g);we!==null&&fe(G,we.startTime-ae),w=!1}return w}finally{h=null,b=v,E=!1}}var C=!1,Z=null,ee=-1,ne=5,M=-1;function W(){return!(t.unstable_now()-MH||125O?(H.sortIndex=v,i(g,H),r(p)===null&&H===r(g)&&(N?(x(ee),ee=-1):N=!0,fe(G,v-O))):(H.sortIndex=$,i(p,H),k||E||(k=!0,ue(Q))),H},t.unstable_shouldYield=W,t.unstable_wrapCallback=function(H){var ae=b;return function(){var v=b;b=ae;try{return H.apply(this,arguments)}finally{b=v}}}})(Vs)),Vs}var gd;function Dh(){return gd||(gd=1,js.exports=Lh()),js.exports}/** * @license React * react-dom.production.min.js * @@ -30,28 +30,28 @@ var Ch=Object.defineProperty;var Ah=(t,i,r)=>i in t?Ch(t,i,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var md;function Ph(){if(md)return Yt;md=1;var t=Nu(),i=Dh();function r(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,o=1;o"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),p=Object.prototype.hasOwnProperty,g=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,y={},h={};function b(e){return p.call(h,e)?!0:p.call(y,e)?!1:g.test(e)?h[e]=!0:(y[e]=!0,!1)}function E(e,n,o,a){if(o!==null&&o.type===0)return!1;switch(typeof n){case"function":case"symbol":return!0;case"boolean":return a?!1:o!==null?!o.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function k(e,n,o,a){if(n===null||typeof n>"u"||E(e,n,o,a))return!0;if(a)return!1;if(o!==null)switch(o.type){case 3:return!n;case 4:return n===!1;case 5:return isNaN(n);case 6:return isNaN(n)||1>n}return!1}function C(e,n,o,a,f,m,_){this.acceptsBooleans=n===2||n===3||n===4,this.attributeName=a,this.attributeNamespace=f,this.mustUseProperty=o,this.propertyName=e,this.type=n,this.sanitizeURL=m,this.removeEmptyString=_}var O={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){O[e]=new C(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var n=e[0];O[n]=new C(n,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){O[e]=new C(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){O[e]=new C(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){O[e]=new C(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){O[e]=new C(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){O[e]=new C(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){O[e]=new C(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){O[e]=new C(e,5,!1,e.toLowerCase(),null,!1,!1)});var N=/[\-:]([a-z])/g;function P(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var n=e.replace(N,P);O[n]=new C(n,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var n=e.replace(N,P);O[n]=new C(n,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var n=e.replace(N,P);O[n]=new C(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){O[e]=new C(e,1,!1,e.toLowerCase(),null,!1,!1)}),O.xlinkHref=new C("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){O[e]=new C(e,1,!1,e.toLowerCase(),null,!0,!0)});function z(e,n,o,a){var f=O.hasOwnProperty(n)?O[n]:null;(f!==null?f.type!==0:a||!(2"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),p=Object.prototype.hasOwnProperty,g=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,y={},h={};function b(e){return p.call(h,e)?!0:p.call(y,e)?!1:g.test(e)?h[e]=!0:(y[e]=!0,!1)}function E(e,n,o,a){if(o!==null&&o.type===0)return!1;switch(typeof n){case"function":case"symbol":return!0;case"boolean":return a?!1:o!==null?!o.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function k(e,n,o,a){if(n===null||typeof n>"u"||E(e,n,o,a))return!0;if(a)return!1;if(o!==null)switch(o.type){case 3:return!n;case 4:return n===!1;case 5:return isNaN(n);case 6:return isNaN(n)||1>n}return!1}function N(e,n,o,a,f,m,_){this.acceptsBooleans=n===2||n===3||n===4,this.attributeName=a,this.attributeNamespace=f,this.mustUseProperty=o,this.propertyName=e,this.type=n,this.sanitizeURL=m,this.removeEmptyString=_}var R={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){R[e]=new N(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var n=e[0];R[n]=new N(n,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){R[e]=new N(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){R[e]=new N(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){R[e]=new N(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){R[e]=new N(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){R[e]=new N(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){R[e]=new N(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){R[e]=new N(e,5,!1,e.toLowerCase(),null,!1,!1)});var x=/[\-:]([a-z])/g;function F(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var n=e.replace(x,F);R[n]=new N(n,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var n=e.replace(x,F);R[n]=new N(n,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var n=e.replace(x,F);R[n]=new N(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){R[e]=new N(e,1,!1,e.toLowerCase(),null,!1,!1)}),R.xlinkHref=new N("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){R[e]=new N(e,1,!1,e.toLowerCase(),null,!0,!0)});function P(e,n,o,a){var f=R.hasOwnProperty(n)?R[n]:null;(f!==null?f.type!==0:a||!(2x||f[_]!==m[x]){var R=` -`+f[_].replace(" at new "," at ");return e.displayName&&R.includes("")&&(R=R.replace("",e.displayName)),R}while(1<=_&&0<=x);break}}}finally{S=!1,Error.prepareStackTrace=o}return(e=e?e.displayName||e.name:"")?B(e):""}function Me(e){switch(e.tag){case 5:return B(e.type);case 16:return B("Lazy");case 13:return B("Suspense");case 19:return B("SuspenseList");case 0:case 2:case 15:return e=we(e.type,!1),e;case 11:return e=we(e.type.render,!1),e;case 1:return e=we(e.type,!0),e;default:return""}}function ke(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Z:return"Fragment";case A:return"Portal";case H:return"Profiler";case ee:return"StrictMode";case ae:return"Suspense";case Y:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case j:return(e.displayName||"Context")+".Consumer";case w:return(e._context.displayName||"Context")+".Provider";case V:var n=e.render;return e=e.displayName,e||(e=n.displayName||n.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case $:return n=e.displayName||null,n!==null?n:ke(e.type)||"Memo";case ce:n=e._payload,e=e._init;try{return ke(e(n))}catch{}}return null}function $e(e){var n=e.type;switch(e.tag){case 24:return"Cache";case 9:return(n.displayName||"Context")+".Consumer";case 10:return(n._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=n.render,e=e.displayName||e.name||"",n.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return n;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ke(n);case 8:return n===ee?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n}return null}function De(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Ge(e){var n=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function Xe(e){var n=Ge(e)?"checked":"value",o=Object.getOwnPropertyDescriptor(e.constructor.prototype,n),a=""+e[n];if(!e.hasOwnProperty(n)&&typeof o<"u"&&typeof o.get=="function"&&typeof o.set=="function"){var f=o.get,m=o.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return f.call(this)},set:function(_){a=""+_,m.call(this,_)}}),Object.defineProperty(e,n,{enumerable:o.enumerable}),{getValue:function(){return a},setValue:function(_){a=""+_},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}function Xt(e){e._valueTracker||(e._valueTracker=Xe(e))}function rr(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var o=n.getValue(),a="";return e&&(a=Ge(e)?e.checked?"true":"false":e.value),e=a,e!==o?(n.setValue(e),!0):!1}function An(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Hn(e,n){var o=n.checked;return v({},n,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:o??e._wrapperState.initialChecked})}function Kn(e,n){var o=n.defaultValue==null?"":n.defaultValue,a=n.checked!=null?n.checked:n.defaultChecked;o=De(n.value!=null?n.value:o),e._wrapperState={initialChecked:a,initialValue:o,controlled:n.type==="checkbox"||n.type==="radio"?n.checked!=null:n.value!=null}}function We(e,n){n=n.checked,n!=null&&z(e,"checked",n,!1)}function Jt(e,n){We(e,n);var o=De(n.value),a=n.type;if(o!=null)a==="number"?(o===0&&e.value===""||e.value!=o)&&(e.value=""+o):e.value!==""+o&&(e.value=""+o);else if(a==="submit"||a==="reset"){e.removeAttribute("value");return}n.hasOwnProperty("value")?Rn(e,n.type,o):n.hasOwnProperty("defaultValue")&&Rn(e,n.type,De(n.defaultValue)),n.checked==null&&n.defaultChecked!=null&&(e.defaultChecked=!!n.defaultChecked)}function an(e,n,o){if(n.hasOwnProperty("value")||n.hasOwnProperty("defaultValue")){var a=n.type;if(!(a!=="submit"&&a!=="reset"||n.value!==void 0&&n.value!==null))return;n=""+e._wrapperState.initialValue,o||n===e.value||(e.value=n),e.defaultValue=n}o=e.name,o!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,o!==""&&(e.name=o)}function Rn(e,n,o){(n!=="number"||An(e.ownerDocument)!==e)&&(o==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+o&&(e.defaultValue=""+o))}var En=Array.isArray;function On(e,n,o,a){if(e=e.options,n){n={};for(var f=0;f"+n.valueOf().toString()+"",n=Ce.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;n.firstChild;)e.appendChild(n.firstChild)}});function He(e,n){if(n){var o=e.firstChild;if(o&&o===e.lastChild&&o.nodeType===3){o.nodeValue=n;return}}e.textContent=n}var _t={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},bn=["Webkit","ms","Moz","O"];Object.keys(_t).forEach(function(e){bn.forEach(function(n){n=n+e.charAt(0).toUpperCase()+e.substring(1),_t[n]=_t[e]})});function Kt(e,n,o){return n==null||typeof n=="boolean"||n===""?"":o||typeof n!="number"||n===0||_t.hasOwnProperty(e)&&_t[e]?(""+n).trim():n+"px"}function _n(e,n){e=e.style;for(var o in n)if(n.hasOwnProperty(o)){var a=o.indexOf("--")===0,f=Kt(o,n[o],a);o==="float"&&(o="cssFloat"),a?e.setProperty(o,f):e[o]=f}}var Gn=v({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function vt(e,n){if(n){if(Gn[e]&&(n.children!=null||n.dangerouslySetInnerHTML!=null))throw Error(r(137,e));if(n.dangerouslySetInnerHTML!=null){if(n.children!=null)throw Error(r(60));if(typeof n.dangerouslySetInnerHTML!="object"||!("__html"in n.dangerouslySetInnerHTML))throw Error(r(61))}if(n.style!=null&&typeof n.style!="object")throw Error(r(62))}}function un(e,n){if(e.indexOf("-")===-1)return typeof n.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Ct=null;function ei(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var ti=null,ir=null,Wn=null;function jn(e){if(e=to(e)){if(typeof ti!="function")throw Error(r(280));var n=e.stateNode;n&&(n=nl(n),ti(e.stateNode,e.type,n))}}function T(e){ir?Wn?Wn.push(e):Wn=[e]:ir=e}function G(){if(ir){var e=ir,n=Wn;if(Wn=ir=null,jn(e),n)for(e=0;e>>=0,e===0?32:31-(Mn(e)/ii|0)|0}var Ft=64,Ir=4194304;function lr(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Mr(e,n){var o=e.pendingLanes;if(o===0)return 0;var a=0,f=e.suspendedLanes,m=e.pingedLanes,_=o&268435455;if(_!==0){var x=_&~f;x!==0?a=lr(x):(m&=_,m!==0&&(a=lr(m)))}else _=o&~f,_!==0?a=lr(_):m!==0&&(a=lr(m));if(a===0)return 0;if(n!==0&&n!==a&&(n&f)===0&&(f=a&-a,m=n&-n,f>=m||f===16&&(m&4194240)!==0))return n;if((a&4)!==0&&(a|=o&16),n=e.entangledLanes,n!==0)for(e=e.entanglements,n&=a;0o;o++)n.push(e);return n}function sr(e,n,o){e.pendingLanes|=n,n!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,n=31-ut(n),e[n]=o}function cn(e,n){var o=e.pendingLanes&~n;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=n,e.mutableReadLanes&=n,e.entangledLanes&=n,n=e.entanglements;var a=e.eventTimes;for(e=e.expirationTimes;0=ji),tc=" ",nc=!1;function rc(e,n){switch(e){case"keyup":return wm.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function ic(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var ai=!1;function xm(e,n){switch(e){case"compositionend":return ic(n);case"keypress":return n.which!==32?null:(nc=!0,tc);case"textInput":return e=n.data,e===tc&&nc?null:e;default:return null}}function Nm(e,n){if(ai)return e==="compositionend"||!wa&&rc(e,n)?(e=Yu(),Wo=ya=cr=null,ai=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1=n)return{node:o,offset:n-e};e=a}e:{for(;o;){if(o.nextSibling){o=o.nextSibling;break e}o=o.parentNode}o=void 0}o=fc(o)}}function pc(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?pc(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function gc(){for(var e=window,n=An();n instanceof e.HTMLIFrameElement;){try{var o=typeof n.contentWindow.location.href=="string"}catch{o=!1}if(o)e=n.contentWindow;else break;n=An(e.document)}return n}function Na(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}function Dm(e){var n=gc(),o=e.focusedElem,a=e.selectionRange;if(n!==o&&o&&o.ownerDocument&&pc(o.ownerDocument.documentElement,o)){if(a!==null&&Na(o)){if(n=a.start,e=a.end,e===void 0&&(e=n),"selectionStart"in o)o.selectionStart=n,o.selectionEnd=Math.min(e,o.value.length);else if(e=(n=o.ownerDocument||document)&&n.defaultView||window,e.getSelection){e=e.getSelection();var f=o.textContent.length,m=Math.min(a.start,f);a=a.end===void 0?m:Math.min(a.end,f),!e.extend&&m>a&&(f=a,a=m,m=f),f=dc(o,m);var _=dc(o,a);f&&_&&(e.rangeCount!==1||e.anchorNode!==f.node||e.anchorOffset!==f.offset||e.focusNode!==_.node||e.focusOffset!==_.offset)&&(n=n.createRange(),n.setStart(f.node,f.offset),e.removeAllRanges(),m>a?(e.addRange(n),e.extend(_.node,_.offset)):(n.setEnd(_.node,_.offset),e.addRange(n)))}}for(n=[],e=o;e=e.parentNode;)e.nodeType===1&&n.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof o.focus=="function"&&o.focus(),o=0;o=document.documentMode,si=null,Ta=null,Qi=null,Ca=!1;function mc(e,n,o){var a=o.window===o?o.document:o.nodeType===9?o:o.ownerDocument;Ca||si==null||si!==An(a)||(a=si,"selectionStart"in a&&Na(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Qi&&Yi(Qi,a)||(Qi=a,a=Jo(Ta,"onSelect"),0pi||(e.current=Ua[pi],Ua[pi]=null,pi--)}function nt(e,n){pi++,Ua[pi]=e.current,e.current=n}var gr={},Ot=pr(gr),Gt=pr(!1),zr=gr;function gi(e,n){var o=e.type.contextTypes;if(!o)return gr;var a=e.stateNode;if(a&&a.__reactInternalMemoizedUnmaskedChildContext===n)return a.__reactInternalMemoizedMaskedChildContext;var f={},m;for(m in o)f[m]=n[m];return a&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=f),f}function Wt(e){return e=e.childContextTypes,e!=null}function rl(){ot(Gt),ot(Ot)}function Rc(e,n,o){if(Ot.current!==gr)throw Error(r(168));nt(Ot,n),nt(Gt,o)}function Oc(e,n,o){var a=e.stateNode;if(n=n.childContextTypes,typeof a.getChildContext!="function")return o;a=a.getChildContext();for(var f in a)if(!(f in n))throw Error(r(108,$e(e)||"Unknown",f));return v({},o,a)}function il(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||gr,zr=Ot.current,nt(Ot,e),nt(Gt,Gt.current),!0}function Ic(e,n,o){var a=e.stateNode;if(!a)throw Error(r(169));o?(e=Oc(e,n,zr),a.__reactInternalMemoizedMergedChildContext=e,ot(Gt),ot(Ot),nt(Ot,e)):ot(Gt),nt(Gt,o)}var Yn=null,ol=!1,$a=!1;function Mc(e){Yn===null?Yn=[e]:Yn.push(e)}function Vm(e){ol=!0,Mc(e)}function mr(){if(!$a&&Yn!==null){$a=!0;var e=0,n=Ve;try{var o=Yn;for(Ve=1;e>=_,f-=_,Qn=1<<32-ut(n)+f|o<Oe?(Tt=Ne,Ne=null):Tt=Ne.sibling;var Ye=q(L,Ne,D[Oe],re);if(Ye===null){Ne===null&&(Ne=Tt);break}e&&Ne&&Ye.alternate===null&&n(L,Ne),M=m(Ye,M,Oe),xe===null?be=Ye:xe.sibling=Ye,xe=Ye,Ne=Tt}if(Oe===D.length)return o(L,Ne),at&&Br(L,Oe),be;if(Ne===null){for(;OeOe?(Tt=Ne,Ne=null):Tt=Ne.sibling;var Sr=q(L,Ne,Ye.value,re);if(Sr===null){Ne===null&&(Ne=Tt);break}e&&Ne&&Sr.alternate===null&&n(L,Ne),M=m(Sr,M,Oe),xe===null?be=Sr:xe.sibling=Sr,xe=Sr,Ne=Tt}if(Ye.done)return o(L,Ne),at&&Br(L,Oe),be;if(Ne===null){for(;!Ye.done;Oe++,Ye=D.next())Ye=J(L,Ye.value,re),Ye!==null&&(M=m(Ye,M,Oe),xe===null?be=Ye:xe.sibling=Ye,xe=Ye);return at&&Br(L,Oe),be}for(Ne=a(L,Ne);!Ye.done;Oe++,Ye=D.next())Ye=fe(Ne,L,Oe,Ye.value,re),Ye!==null&&(e&&Ye.alternate!==null&&Ne.delete(Ye.key===null?Oe:Ye.key),M=m(Ye,M,Oe),xe===null?be=Ye:xe.sibling=Ye,xe=Ye);return e&&Ne.forEach(function(Th){return n(L,Th)}),at&&Br(L,Oe),be}function ht(L,M,D,re){if(typeof D=="object"&&D!==null&&D.type===Z&&D.key===null&&(D=D.props.children),typeof D=="object"&&D!==null){switch(D.$$typeof){case X:e:{for(var be=D.key,xe=M;xe!==null;){if(xe.key===be){if(be=D.type,be===Z){if(xe.tag===7){o(L,xe.sibling),M=f(xe,D.props.children),M.return=L,L=M;break e}}else if(xe.elementType===be||typeof be=="object"&&be!==null&&be.$$typeof===ce&&Bc(be)===xe.type){o(L,xe.sibling),M=f(xe,D.props),M.ref=no(L,xe,D),M.return=L,L=M;break e}o(L,xe);break}else n(L,xe);xe=xe.sibling}D.type===Z?(M=Vr(D.props.children,L.mode,re,D.key),M.return=L,L=M):(re=Ml(D.type,D.key,D.props,null,L.mode,re),re.ref=no(L,M,D),re.return=L,L=re)}return _(L);case A:e:{for(xe=D.key;M!==null;){if(M.key===xe)if(M.tag===4&&M.stateNode.containerInfo===D.containerInfo&&M.stateNode.implementation===D.implementation){o(L,M.sibling),M=f(M,D.children||[]),M.return=L,L=M;break e}else{o(L,M);break}else n(L,M);M=M.sibling}M=Fs(D,L.mode,re),M.return=L,L=M}return _(L);case ce:return xe=D._init,ht(L,M,xe(D._payload),re)}if(En(D))return ye(L,M,D,re);if(ue(D))return Ee(L,M,D,re);ul(L,D)}return typeof D=="string"&&D!==""||typeof D=="number"?(D=""+D,M!==null&&M.tag===6?(o(L,M.sibling),M=f(M,D),M.return=L,L=M):(o(L,M),M=zs(D,L.mode,re),M.return=L,L=M),_(L)):o(L,M)}return ht}var Ei=Uc(!0),$c=Uc(!1),cl=pr(null),fl=null,bi=null,Va=null;function qa(){Va=bi=fl=null}function Ya(e){var n=cl.current;ot(cl),e._currentValue=n}function Qa(e,n,o){for(;e!==null;){var a=e.alternate;if((e.childLanes&n)!==n?(e.childLanes|=n,a!==null&&(a.childLanes|=n)):a!==null&&(a.childLanes&n)!==n&&(a.childLanes|=n),e===o)break;e=e.return}}function _i(e,n){fl=e,Va=bi=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&n)!==0&&(jt=!0),e.firstContext=null)}function pn(e){var n=e._currentValue;if(Va!==e)if(e={context:e,memoizedValue:n,next:null},bi===null){if(fl===null)throw Error(r(308));bi=e,fl.dependencies={lanes:0,firstContext:e}}else bi=bi.next=e;return n}var Ur=null;function Za(e){Ur===null?Ur=[e]:Ur.push(e)}function Hc(e,n,o,a){var f=n.interleaved;return f===null?(o.next=o,Za(n)):(o.next=f.next,f.next=o),n.interleaved=o,Xn(e,a)}function Xn(e,n){e.lanes|=n;var o=e.alternate;for(o!==null&&(o.lanes|=n),o=e,e=e.return;e!==null;)e.childLanes|=n,o=e.alternate,o!==null&&(o.childLanes|=n),o=e,e=e.return;return o.tag===3?o.stateNode:null}var hr=!1;function Xa(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Kc(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Jn(e,n){return{eventTime:e,lane:n,tag:0,payload:null,callback:null,next:null}}function yr(e,n,o){var a=e.updateQueue;if(a===null)return null;if(a=a.shared,(qe&2)!==0){var f=a.pending;return f===null?n.next=n:(n.next=f.next,f.next=n),a.pending=n,Xn(e,o)}return f=a.interleaved,f===null?(n.next=n,Za(a)):(n.next=f.next,f.next=n),a.interleaved=n,Xn(e,o)}function dl(e,n,o){if(n=n.updateQueue,n!==null&&(n=n.shared,(o&4194240)!==0)){var a=n.lanes;a&=e.pendingLanes,o|=a,n.lanes=o,Bi(e,o)}}function Gc(e,n){var o=e.updateQueue,a=e.alternate;if(a!==null&&(a=a.updateQueue,o===a)){var f=null,m=null;if(o=o.firstBaseUpdate,o!==null){do{var _={eventTime:o.eventTime,lane:o.lane,tag:o.tag,payload:o.payload,callback:o.callback,next:null};m===null?f=m=_:m=m.next=_,o=o.next}while(o!==null);m===null?f=m=n:m=m.next=n}else f=m=n;o={baseState:a.baseState,firstBaseUpdate:f,lastBaseUpdate:m,shared:a.shared,effects:a.effects},e.updateQueue=o;return}e=o.lastBaseUpdate,e===null?o.firstBaseUpdate=n:e.next=n,o.lastBaseUpdate=n}function pl(e,n,o,a){var f=e.updateQueue;hr=!1;var m=f.firstBaseUpdate,_=f.lastBaseUpdate,x=f.shared.pending;if(x!==null){f.shared.pending=null;var R=x,F=R.next;R.next=null,_===null?m=F:_.next=F,_=R;var Q=e.alternate;Q!==null&&(Q=Q.updateQueue,x=Q.lastBaseUpdate,x!==_&&(x===null?Q.firstBaseUpdate=F:x.next=F,Q.lastBaseUpdate=R))}if(m!==null){var J=f.baseState;_=0,Q=F=R=null,x=m;do{var q=x.lane,fe=x.eventTime;if((a&q)===q){Q!==null&&(Q=Q.next={eventTime:fe,lane:0,tag:x.tag,payload:x.payload,callback:x.callback,next:null});e:{var ye=e,Ee=x;switch(q=n,fe=o,Ee.tag){case 1:if(ye=Ee.payload,typeof ye=="function"){J=ye.call(fe,J,q);break e}J=ye;break e;case 3:ye.flags=ye.flags&-65537|128;case 0:if(ye=Ee.payload,q=typeof ye=="function"?ye.call(fe,J,q):ye,q==null)break e;J=v({},J,q);break e;case 2:hr=!0}}x.callback!==null&&x.lane!==0&&(e.flags|=64,q=f.effects,q===null?f.effects=[x]:q.push(x))}else fe={eventTime:fe,lane:q,tag:x.tag,payload:x.payload,callback:x.callback,next:null},Q===null?(F=Q=fe,R=J):Q=Q.next=fe,_|=q;if(x=x.next,x===null){if(x=f.shared.pending,x===null)break;q=x,x=q.next,q.next=null,f.lastBaseUpdate=q,f.shared.pending=null}}while(!0);if(Q===null&&(R=J),f.baseState=R,f.firstBaseUpdate=F,f.lastBaseUpdate=Q,n=f.shared.interleaved,n!==null){f=n;do _|=f.lane,f=f.next;while(f!==n)}else m===null&&(f.shared.lanes=0);Kr|=_,e.lanes=_,e.memoizedState=J}}function Wc(e,n,o){if(e=n.effects,n.effects=null,e!==null)for(n=0;no?o:4,e(!0);var a=rs.transition;rs.transition={};try{e(!1),n()}finally{Ve=o,rs.transition=a}}function ff(){return gn().memoizedState}function Zm(e,n,o){var a=vr(e);if(o={lane:a,action:o,hasEagerState:!1,eagerState:null,next:null},df(e))pf(n,o);else if(o=Hc(e,n,o,a),o!==null){var f=Ut();Tn(o,e,a,f),gf(o,n,a)}}function Xm(e,n,o){var a=vr(e),f={lane:a,action:o,hasEagerState:!1,eagerState:null,next:null};if(df(e))pf(n,f);else{var m=e.alternate;if(e.lanes===0&&(m===null||m.lanes===0)&&(m=n.lastRenderedReducer,m!==null))try{var _=n.lastRenderedState,x=m(_,o);if(f.hasEagerState=!0,f.eagerState=x,kn(x,_)){var R=n.interleaved;R===null?(f.next=f,Za(n)):(f.next=R.next,R.next=f),n.interleaved=f;return}}catch{}finally{}o=Hc(e,n,f,a),o!==null&&(f=Ut(),Tn(o,e,a,f),gf(o,n,a))}}function df(e){var n=e.alternate;return e===ft||n!==null&&n===ft}function pf(e,n){lo=hl=!0;var o=e.pending;o===null?n.next=n:(n.next=o.next,o.next=n),e.pending=n}function gf(e,n,o){if((o&4194240)!==0){var a=n.lanes;a&=e.pendingLanes,o|=a,n.lanes=o,Bi(e,o)}}var bl={readContext:pn,useCallback:It,useContext:It,useEffect:It,useImperativeHandle:It,useInsertionEffect:It,useLayoutEffect:It,useMemo:It,useReducer:It,useRef:It,useState:It,useDebugValue:It,useDeferredValue:It,useTransition:It,useMutableSource:It,useSyncExternalStore:It,useId:It,unstable_isNewReconciler:!1},Jm={readContext:pn,useCallback:function(e,n){return zn().memoizedState=[e,n===void 0?null:n],e},useContext:pn,useEffect:nf,useImperativeHandle:function(e,n,o){return o=o!=null?o.concat([e]):null,yl(4194308,4,lf.bind(null,n,e),o)},useLayoutEffect:function(e,n){return yl(4194308,4,e,n)},useInsertionEffect:function(e,n){return yl(4,2,e,n)},useMemo:function(e,n){var o=zn();return n=n===void 0?null:n,e=e(),o.memoizedState=[e,n],e},useReducer:function(e,n,o){var a=zn();return n=o!==void 0?o(n):n,a.memoizedState=a.baseState=n,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},a.queue=e,e=e.dispatch=Zm.bind(null,ft,e),[a.memoizedState,e]},useRef:function(e){var n=zn();return e={current:e},n.memoizedState=e},useState:ef,useDebugValue:cs,useDeferredValue:function(e){return zn().memoizedState=e},useTransition:function(){var e=ef(!1),n=e[0];return e=Qm.bind(null,e[1]),zn().memoizedState=e,[n,e]},useMutableSource:function(){},useSyncExternalStore:function(e,n,o){var a=ft,f=zn();if(at){if(o===void 0)throw Error(r(407));o=o()}else{if(o=n(),Nt===null)throw Error(r(349));(Hr&30)!==0||Yc(a,n,o)}f.memoizedState=o;var m={value:o,getSnapshot:n};return f.queue=m,nf(Zc.bind(null,a,m,e),[e]),a.flags|=2048,uo(9,Qc.bind(null,a,m,o,n),void 0,null),o},useId:function(){var e=zn(),n=Nt.identifierPrefix;if(at){var o=Zn,a=Qn;o=(a&~(1<<32-ut(a)-1)).toString(32)+o,n=":"+n+"R"+o,o=ao++,0S||f[_]!==m[S]){var A=` +`+f[_].replace(" at new "," at ");return e.displayName&&A.includes("")&&(A=A.replace("",e.displayName)),A}while(1<=_&&0<=S);break}}}finally{w=!1,Error.prepareStackTrace=o}return(e=e?e.displayName||e.name:"")?$(e):""}function Me(e){switch(e.tag){case 5:return $(e.type);case 16:return $("Lazy");case 13:return $("Suspense");case 19:return $("SuspenseList");case 0:case 2:case 15:return e=we(e.type,!1),e;case 11:return e=we(e.type.render,!1),e;case 1:return e=we(e.type,!0),e;default:return""}}function ke(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Z:return"Fragment";case C:return"Portal";case ne:return"Profiler";case ee:return"StrictMode";case X:return"Suspense";case V:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case W:return(e.displayName||"Context")+".Consumer";case M:return(e._context.displayName||"Context")+".Provider";case L:var n=e.render;return e=e.displayName,e||(e=n.displayName||n.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case U:return n=e.displayName||null,n!==null?n:ke(e.type)||"Memo";case ue:n=e._payload,e=e._init;try{return ke(e(n))}catch{}}return null}function $e(e){var n=e.type;switch(e.tag){case 24:return"Cache";case 9:return(n.displayName||"Context")+".Consumer";case 10:return(n._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=n.render,e=e.displayName||e.name||"",n.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return n;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ke(n);case 8:return n===ee?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n}return null}function De(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Ge(e){var n=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function Xe(e){var n=Ge(e)?"checked":"value",o=Object.getOwnPropertyDescriptor(e.constructor.prototype,n),a=""+e[n];if(!e.hasOwnProperty(n)&&typeof o<"u"&&typeof o.get=="function"&&typeof o.set=="function"){var f=o.get,m=o.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return f.call(this)},set:function(_){a=""+_,m.call(this,_)}}),Object.defineProperty(e,n,{enumerable:o.enumerable}),{getValue:function(){return a},setValue:function(_){a=""+_},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}function Xt(e){e._valueTracker||(e._valueTracker=Xe(e))}function rr(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var o=n.getValue(),a="";return e&&(a=Ge(e)?e.checked?"true":"false":e.value),e=a,e!==o?(n.setValue(e),!0):!1}function An(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Hn(e,n){var o=n.checked;return v({},n,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:o??e._wrapperState.initialChecked})}function Kn(e,n){var o=n.defaultValue==null?"":n.defaultValue,a=n.checked!=null?n.checked:n.defaultChecked;o=De(n.value!=null?n.value:o),e._wrapperState={initialChecked:a,initialValue:o,controlled:n.type==="checkbox"||n.type==="radio"?n.checked!=null:n.value!=null}}function We(e,n){n=n.checked,n!=null&&P(e,"checked",n,!1)}function Jt(e,n){We(e,n);var o=De(n.value),a=n.type;if(o!=null)a==="number"?(o===0&&e.value===""||e.value!=o)&&(e.value=""+o):e.value!==""+o&&(e.value=""+o);else if(a==="submit"||a==="reset"){e.removeAttribute("value");return}n.hasOwnProperty("value")?Rn(e,n.type,o):n.hasOwnProperty("defaultValue")&&Rn(e,n.type,De(n.defaultValue)),n.checked==null&&n.defaultChecked!=null&&(e.defaultChecked=!!n.defaultChecked)}function an(e,n,o){if(n.hasOwnProperty("value")||n.hasOwnProperty("defaultValue")){var a=n.type;if(!(a!=="submit"&&a!=="reset"||n.value!==void 0&&n.value!==null))return;n=""+e._wrapperState.initialValue,o||n===e.value||(e.value=n),e.defaultValue=n}o=e.name,o!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,o!==""&&(e.name=o)}function Rn(e,n,o){(n!=="number"||An(e.ownerDocument)!==e)&&(o==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+o&&(e.defaultValue=""+o))}var En=Array.isArray;function On(e,n,o,a){if(e=e.options,n){n={};for(var f=0;f"+n.valueOf().toString()+"",n=Ce.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;n.firstChild;)e.appendChild(n.firstChild)}});function He(e,n){if(n){var o=e.firstChild;if(o&&o===e.lastChild&&o.nodeType===3){o.nodeValue=n;return}}e.textContent=n}var _t={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},bn=["Webkit","ms","Moz","O"];Object.keys(_t).forEach(function(e){bn.forEach(function(n){n=n+e.charAt(0).toUpperCase()+e.substring(1),_t[n]=_t[e]})});function Kt(e,n,o){return n==null||typeof n=="boolean"||n===""?"":o||typeof n!="number"||n===0||_t.hasOwnProperty(e)&&_t[e]?(""+n).trim():n+"px"}function _n(e,n){e=e.style;for(var o in n)if(n.hasOwnProperty(o)){var a=o.indexOf("--")===0,f=Kt(o,n[o],a);o==="float"&&(o="cssFloat"),a?e.setProperty(o,f):e[o]=f}}var Gn=v({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function vt(e,n){if(n){if(Gn[e]&&(n.children!=null||n.dangerouslySetInnerHTML!=null))throw Error(r(137,e));if(n.dangerouslySetInnerHTML!=null){if(n.children!=null)throw Error(r(60));if(typeof n.dangerouslySetInnerHTML!="object"||!("__html"in n.dangerouslySetInnerHTML))throw Error(r(61))}if(n.style!=null&&typeof n.style!="object")throw Error(r(62))}}function un(e,n){if(e.indexOf("-")===-1)return typeof n.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Ct=null;function ei(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var ti=null,ir=null,Wn=null;function jn(e){if(e=to(e)){if(typeof ti!="function")throw Error(r(280));var n=e.stateNode;n&&(n=nl(n),ti(e.stateNode,e.type,n))}}function T(e){ir?Wn?Wn.push(e):Wn=[e]:ir=e}function j(){if(ir){var e=ir,n=Wn;if(Wn=ir=null,jn(e),n)for(e=0;e>>=0,e===0?32:31-(Mn(e)/ii|0)|0}var Ft=64,Ir=4194304;function lr(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Mr(e,n){var o=e.pendingLanes;if(o===0)return 0;var a=0,f=e.suspendedLanes,m=e.pingedLanes,_=o&268435455;if(_!==0){var S=_&~f;S!==0?a=lr(S):(m&=_,m!==0&&(a=lr(m)))}else _=o&~f,_!==0?a=lr(_):m!==0&&(a=lr(m));if(a===0)return 0;if(n!==0&&n!==a&&(n&f)===0&&(f=a&-a,m=n&-n,f>=m||f===16&&(m&4194240)!==0))return n;if((a&4)!==0&&(a|=o&16),n=e.entangledLanes,n!==0)for(e=e.entanglements,n&=a;0o;o++)n.push(e);return n}function sr(e,n,o){e.pendingLanes|=n,n!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,n=31-ut(n),e[n]=o}function cn(e,n){var o=e.pendingLanes&~n;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=n,e.mutableReadLanes&=n,e.entangledLanes&=n,n=e.entanglements;var a=e.eventTimes;for(e=e.expirationTimes;0=ji),tc=" ",nc=!1;function rc(e,n){switch(e){case"keyup":return wm.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function ic(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var ai=!1;function xm(e,n){switch(e){case"compositionend":return ic(n);case"keypress":return n.which!==32?null:(nc=!0,tc);case"textInput":return e=n.data,e===tc&&nc?null:e;default:return null}}function Nm(e,n){if(ai)return e==="compositionend"||!wa&&rc(e,n)?(e=Yu(),Wo=ya=cr=null,ai=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1=n)return{node:o,offset:n-e};e=a}e:{for(;o;){if(o.nextSibling){o=o.nextSibling;break e}o=o.parentNode}o=void 0}o=fc(o)}}function pc(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?pc(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function gc(){for(var e=window,n=An();n instanceof e.HTMLIFrameElement;){try{var o=typeof n.contentWindow.location.href=="string"}catch{o=!1}if(o)e=n.contentWindow;else break;n=An(e.document)}return n}function Na(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}function Dm(e){var n=gc(),o=e.focusedElem,a=e.selectionRange;if(n!==o&&o&&o.ownerDocument&&pc(o.ownerDocument.documentElement,o)){if(a!==null&&Na(o)){if(n=a.start,e=a.end,e===void 0&&(e=n),"selectionStart"in o)o.selectionStart=n,o.selectionEnd=Math.min(e,o.value.length);else if(e=(n=o.ownerDocument||document)&&n.defaultView||window,e.getSelection){e=e.getSelection();var f=o.textContent.length,m=Math.min(a.start,f);a=a.end===void 0?m:Math.min(a.end,f),!e.extend&&m>a&&(f=a,a=m,m=f),f=dc(o,m);var _=dc(o,a);f&&_&&(e.rangeCount!==1||e.anchorNode!==f.node||e.anchorOffset!==f.offset||e.focusNode!==_.node||e.focusOffset!==_.offset)&&(n=n.createRange(),n.setStart(f.node,f.offset),e.removeAllRanges(),m>a?(e.addRange(n),e.extend(_.node,_.offset)):(n.setEnd(_.node,_.offset),e.addRange(n)))}}for(n=[],e=o;e=e.parentNode;)e.nodeType===1&&n.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof o.focus=="function"&&o.focus(),o=0;o=document.documentMode,si=null,Ta=null,Qi=null,Ca=!1;function mc(e,n,o){var a=o.window===o?o.document:o.nodeType===9?o:o.ownerDocument;Ca||si==null||si!==An(a)||(a=si,"selectionStart"in a&&Na(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Qi&&Yi(Qi,a)||(Qi=a,a=Jo(Ta,"onSelect"),0pi||(e.current=Ua[pi],Ua[pi]=null,pi--)}function nt(e,n){pi++,Ua[pi]=e.current,e.current=n}var gr={},Ot=pr(gr),Gt=pr(!1),zr=gr;function gi(e,n){var o=e.type.contextTypes;if(!o)return gr;var a=e.stateNode;if(a&&a.__reactInternalMemoizedUnmaskedChildContext===n)return a.__reactInternalMemoizedMaskedChildContext;var f={},m;for(m in o)f[m]=n[m];return a&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=f),f}function Wt(e){return e=e.childContextTypes,e!=null}function rl(){ot(Gt),ot(Ot)}function Rc(e,n,o){if(Ot.current!==gr)throw Error(r(168));nt(Ot,n),nt(Gt,o)}function Oc(e,n,o){var a=e.stateNode;if(n=n.childContextTypes,typeof a.getChildContext!="function")return o;a=a.getChildContext();for(var f in a)if(!(f in n))throw Error(r(108,$e(e)||"Unknown",f));return v({},o,a)}function il(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||gr,zr=Ot.current,nt(Ot,e),nt(Gt,Gt.current),!0}function Ic(e,n,o){var a=e.stateNode;if(!a)throw Error(r(169));o?(e=Oc(e,n,zr),a.__reactInternalMemoizedMergedChildContext=e,ot(Gt),ot(Ot),nt(Ot,e)):ot(Gt),nt(Gt,o)}var Yn=null,ol=!1,$a=!1;function Mc(e){Yn===null?Yn=[e]:Yn.push(e)}function Vm(e){ol=!0,Mc(e)}function mr(){if(!$a&&Yn!==null){$a=!0;var e=0,n=Ve;try{var o=Yn;for(Ve=1;e>=_,f-=_,Qn=1<<32-ut(n)+f|o<Oe?(Tt=Ne,Ne=null):Tt=Ne.sibling;var Ye=q(D,Ne,z[Oe],oe);if(Ye===null){Ne===null&&(Ne=Tt);break}e&&Ne&&Ye.alternate===null&&n(D,Ne),I=m(Ye,I,Oe),xe===null?_e=Ye:xe.sibling=Ye,xe=Ye,Ne=Tt}if(Oe===z.length)return o(D,Ne),at&&Br(D,Oe),_e;if(Ne===null){for(;OeOe?(Tt=Ne,Ne=null):Tt=Ne.sibling;var Sr=q(D,Ne,Ye.value,oe);if(Sr===null){Ne===null&&(Ne=Tt);break}e&&Ne&&Sr.alternate===null&&n(D,Ne),I=m(Sr,I,Oe),xe===null?_e=Sr:xe.sibling=Sr,xe=Sr,Ne=Tt}if(Ye.done)return o(D,Ne),at&&Br(D,Oe),_e;if(Ne===null){for(;!Ye.done;Oe++,Ye=z.next())Ye=J(D,Ye.value,oe),Ye!==null&&(I=m(Ye,I,Oe),xe===null?_e=Ye:xe.sibling=Ye,xe=Ye);return at&&Br(D,Oe),_e}for(Ne=a(D,Ne);!Ye.done;Oe++,Ye=z.next())Ye=pe(Ne,D,Oe,Ye.value,oe),Ye!==null&&(e&&Ye.alternate!==null&&Ne.delete(Ye.key===null?Oe:Ye.key),I=m(Ye,I,Oe),xe===null?_e=Ye:xe.sibling=Ye,xe=Ye);return e&&Ne.forEach(function(Th){return n(D,Th)}),at&&Br(D,Oe),_e}function ht(D,I,z,oe){if(typeof z=="object"&&z!==null&&z.type===Z&&z.key===null&&(z=z.props.children),typeof z=="object"&&z!==null){switch(z.$$typeof){case Q:e:{for(var _e=z.key,xe=I;xe!==null;){if(xe.key===_e){if(_e=z.type,_e===Z){if(xe.tag===7){o(D,xe.sibling),I=f(xe,z.props.children),I.return=D,D=I;break e}}else if(xe.elementType===_e||typeof _e=="object"&&_e!==null&&_e.$$typeof===ue&&Bc(_e)===xe.type){o(D,xe.sibling),I=f(xe,z.props),I.ref=no(D,xe,z),I.return=D,D=I;break e}o(D,xe);break}else n(D,xe);xe=xe.sibling}z.type===Z?(I=Vr(z.props.children,D.mode,oe,z.key),I.return=D,D=I):(oe=Ml(z.type,z.key,z.props,null,D.mode,oe),oe.ref=no(D,I,z),oe.return=D,D=oe)}return _(D);case C:e:{for(xe=z.key;I!==null;){if(I.key===xe)if(I.tag===4&&I.stateNode.containerInfo===z.containerInfo&&I.stateNode.implementation===z.implementation){o(D,I.sibling),I=f(I,z.children||[]),I.return=D,D=I;break e}else{o(D,I);break}else n(D,I);I=I.sibling}I=Fs(z,D.mode,oe),I.return=D,D=I}return _(D);case ue:return xe=z._init,ht(D,I,xe(z._payload),oe)}if(En(z))return Ee(D,I,z,oe);if(ae(z))return be(D,I,z,oe);ul(D,z)}return typeof z=="string"&&z!==""||typeof z=="number"?(z=""+z,I!==null&&I.tag===6?(o(D,I.sibling),I=f(I,z),I.return=D,D=I):(o(D,I),I=zs(z,D.mode,oe),I.return=D,D=I),_(D)):o(D,I)}return ht}var Ei=Uc(!0),$c=Uc(!1),cl=pr(null),fl=null,bi=null,Va=null;function qa(){Va=bi=fl=null}function Ya(e){var n=cl.current;ot(cl),e._currentValue=n}function Qa(e,n,o){for(;e!==null;){var a=e.alternate;if((e.childLanes&n)!==n?(e.childLanes|=n,a!==null&&(a.childLanes|=n)):a!==null&&(a.childLanes&n)!==n&&(a.childLanes|=n),e===o)break;e=e.return}}function _i(e,n){fl=e,Va=bi=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&n)!==0&&(jt=!0),e.firstContext=null)}function pn(e){var n=e._currentValue;if(Va!==e)if(e={context:e,memoizedValue:n,next:null},bi===null){if(fl===null)throw Error(r(308));bi=e,fl.dependencies={lanes:0,firstContext:e}}else bi=bi.next=e;return n}var Ur=null;function Za(e){Ur===null?Ur=[e]:Ur.push(e)}function Hc(e,n,o,a){var f=n.interleaved;return f===null?(o.next=o,Za(n)):(o.next=f.next,f.next=o),n.interleaved=o,Xn(e,a)}function Xn(e,n){e.lanes|=n;var o=e.alternate;for(o!==null&&(o.lanes|=n),o=e,e=e.return;e!==null;)e.childLanes|=n,o=e.alternate,o!==null&&(o.childLanes|=n),o=e,e=e.return;return o.tag===3?o.stateNode:null}var hr=!1;function Xa(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Kc(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Jn(e,n){return{eventTime:e,lane:n,tag:0,payload:null,callback:null,next:null}}function yr(e,n,o){var a=e.updateQueue;if(a===null)return null;if(a=a.shared,(qe&2)!==0){var f=a.pending;return f===null?n.next=n:(n.next=f.next,f.next=n),a.pending=n,Xn(e,o)}return f=a.interleaved,f===null?(n.next=n,Za(a)):(n.next=f.next,f.next=n),a.interleaved=n,Xn(e,o)}function dl(e,n,o){if(n=n.updateQueue,n!==null&&(n=n.shared,(o&4194240)!==0)){var a=n.lanes;a&=e.pendingLanes,o|=a,n.lanes=o,Bi(e,o)}}function Gc(e,n){var o=e.updateQueue,a=e.alternate;if(a!==null&&(a=a.updateQueue,o===a)){var f=null,m=null;if(o=o.firstBaseUpdate,o!==null){do{var _={eventTime:o.eventTime,lane:o.lane,tag:o.tag,payload:o.payload,callback:o.callback,next:null};m===null?f=m=_:m=m.next=_,o=o.next}while(o!==null);m===null?f=m=n:m=m.next=n}else f=m=n;o={baseState:a.baseState,firstBaseUpdate:f,lastBaseUpdate:m,shared:a.shared,effects:a.effects},e.updateQueue=o;return}e=o.lastBaseUpdate,e===null?o.firstBaseUpdate=n:e.next=n,o.lastBaseUpdate=n}function pl(e,n,o,a){var f=e.updateQueue;hr=!1;var m=f.firstBaseUpdate,_=f.lastBaseUpdate,S=f.shared.pending;if(S!==null){f.shared.pending=null;var A=S,B=A.next;A.next=null,_===null?m=B:_.next=B,_=A;var Y=e.alternate;Y!==null&&(Y=Y.updateQueue,S=Y.lastBaseUpdate,S!==_&&(S===null?Y.firstBaseUpdate=B:S.next=B,Y.lastBaseUpdate=A))}if(m!==null){var J=f.baseState;_=0,Y=B=A=null,S=m;do{var q=S.lane,pe=S.eventTime;if((a&q)===q){Y!==null&&(Y=Y.next={eventTime:pe,lane:0,tag:S.tag,payload:S.payload,callback:S.callback,next:null});e:{var Ee=e,be=S;switch(q=n,pe=o,be.tag){case 1:if(Ee=be.payload,typeof Ee=="function"){J=Ee.call(pe,J,q);break e}J=Ee;break e;case 3:Ee.flags=Ee.flags&-65537|128;case 0:if(Ee=be.payload,q=typeof Ee=="function"?Ee.call(pe,J,q):Ee,q==null)break e;J=v({},J,q);break e;case 2:hr=!0}}S.callback!==null&&S.lane!==0&&(e.flags|=64,q=f.effects,q===null?f.effects=[S]:q.push(S))}else pe={eventTime:pe,lane:q,tag:S.tag,payload:S.payload,callback:S.callback,next:null},Y===null?(B=Y=pe,A=J):Y=Y.next=pe,_|=q;if(S=S.next,S===null){if(S=f.shared.pending,S===null)break;q=S,S=q.next,q.next=null,f.lastBaseUpdate=q,f.shared.pending=null}}while(!0);if(Y===null&&(A=J),f.baseState=A,f.firstBaseUpdate=B,f.lastBaseUpdate=Y,n=f.shared.interleaved,n!==null){f=n;do _|=f.lane,f=f.next;while(f!==n)}else m===null&&(f.shared.lanes=0);Kr|=_,e.lanes=_,e.memoizedState=J}}function Wc(e,n,o){if(e=n.effects,n.effects=null,e!==null)for(n=0;no?o:4,e(!0);var a=rs.transition;rs.transition={};try{e(!1),n()}finally{Ve=o,rs.transition=a}}function ff(){return gn().memoizedState}function Zm(e,n,o){var a=vr(e);if(o={lane:a,action:o,hasEagerState:!1,eagerState:null,next:null},df(e))pf(n,o);else if(o=Hc(e,n,o,a),o!==null){var f=Ut();Tn(o,e,a,f),gf(o,n,a)}}function Xm(e,n,o){var a=vr(e),f={lane:a,action:o,hasEagerState:!1,eagerState:null,next:null};if(df(e))pf(n,f);else{var m=e.alternate;if(e.lanes===0&&(m===null||m.lanes===0)&&(m=n.lastRenderedReducer,m!==null))try{var _=n.lastRenderedState,S=m(_,o);if(f.hasEagerState=!0,f.eagerState=S,kn(S,_)){var A=n.interleaved;A===null?(f.next=f,Za(n)):(f.next=A.next,A.next=f),n.interleaved=f;return}}catch{}finally{}o=Hc(e,n,f,a),o!==null&&(f=Ut(),Tn(o,e,a,f),gf(o,n,a))}}function df(e){var n=e.alternate;return e===ft||n!==null&&n===ft}function pf(e,n){lo=hl=!0;var o=e.pending;o===null?n.next=n:(n.next=o.next,o.next=n),e.pending=n}function gf(e,n,o){if((o&4194240)!==0){var a=n.lanes;a&=e.pendingLanes,o|=a,n.lanes=o,Bi(e,o)}}var bl={readContext:pn,useCallback:It,useContext:It,useEffect:It,useImperativeHandle:It,useInsertionEffect:It,useLayoutEffect:It,useMemo:It,useReducer:It,useRef:It,useState:It,useDebugValue:It,useDeferredValue:It,useTransition:It,useMutableSource:It,useSyncExternalStore:It,useId:It,unstable_isNewReconciler:!1},Jm={readContext:pn,useCallback:function(e,n){return zn().memoizedState=[e,n===void 0?null:n],e},useContext:pn,useEffect:nf,useImperativeHandle:function(e,n,o){return o=o!=null?o.concat([e]):null,yl(4194308,4,lf.bind(null,n,e),o)},useLayoutEffect:function(e,n){return yl(4194308,4,e,n)},useInsertionEffect:function(e,n){return yl(4,2,e,n)},useMemo:function(e,n){var o=zn();return n=n===void 0?null:n,e=e(),o.memoizedState=[e,n],e},useReducer:function(e,n,o){var a=zn();return n=o!==void 0?o(n):n,a.memoizedState=a.baseState=n,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},a.queue=e,e=e.dispatch=Zm.bind(null,ft,e),[a.memoizedState,e]},useRef:function(e){var n=zn();return e={current:e},n.memoizedState=e},useState:ef,useDebugValue:cs,useDeferredValue:function(e){return zn().memoizedState=e},useTransition:function(){var e=ef(!1),n=e[0];return e=Qm.bind(null,e[1]),zn().memoizedState=e,[n,e]},useMutableSource:function(){},useSyncExternalStore:function(e,n,o){var a=ft,f=zn();if(at){if(o===void 0)throw Error(r(407));o=o()}else{if(o=n(),Nt===null)throw Error(r(349));(Hr&30)!==0||Yc(a,n,o)}f.memoizedState=o;var m={value:o,getSnapshot:n};return f.queue=m,nf(Zc.bind(null,a,m,e),[e]),a.flags|=2048,uo(9,Qc.bind(null,a,m,o,n),void 0,null),o},useId:function(){var e=zn(),n=Nt.identifierPrefix;if(at){var o=Zn,a=Qn;o=(a&~(1<<32-ut(a)-1)).toString(32)+o,n=":"+n+"R"+o,o=ao++,0<\/script>",e=e.removeChild(e.firstChild)):typeof a.is=="string"?e=_.createElement(o,{is:a.is}):(e=_.createElement(o),o==="select"&&(_=e,a.multiple?_.multiple=!0:a.size&&(_.size=a.size))):e=_.createElementNS(e,o),e[Dn]=n,e[eo]=a,Lf(e,n,!1,!1),n.stateNode=e;e:{switch(_=un(o,a),o){case"dialog":it("cancel",e),it("close",e),f=a;break;case"iframe":case"object":case"embed":it("load",e),f=a;break;case"video":case"audio":for(f=0;fxi&&(n.flags|=128,a=!0,co(m,!1),n.lanes=4194304)}else{if(!a)if(e=gl(_),e!==null){if(n.flags|=128,a=!0,o=e.updateQueue,o!==null&&(n.updateQueue=o,n.flags|=4),co(m,!0),m.tail===null&&m.tailMode==="hidden"&&!_.alternate&&!at)return Mt(n),null}else 2*st()-m.renderingStartTime>xi&&o!==1073741824&&(n.flags|=128,a=!0,co(m,!1),n.lanes=4194304);m.isBackwards?(_.sibling=n.child,n.child=_):(o=m.last,o!==null?o.sibling=_:n.child=_,m.last=_)}return m.tail!==null?(n=m.tail,m.rendering=n,m.tail=n.sibling,m.renderingStartTime=st(),n.sibling=null,o=ct.current,nt(ct,a?o&1|2:o&1),n):(Mt(n),null);case 22:case 23:return Ls(),a=n.memoizedState!==null,e!==null&&e.memoizedState!==null!==a&&(n.flags|=8192),a&&(n.mode&1)!==0?(rn&1073741824)!==0&&(Mt(n),n.subtreeFlags&6&&(n.flags|=8192)):Mt(n),null;case 24:return null;case 25:return null}throw Error(r(156,n.tag))}function ah(e,n){switch(Ka(n),n.tag){case 1:return Wt(n.type)&&rl(),e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 3:return vi(),ot(Gt),ot(Ot),ns(),e=n.flags,(e&65536)!==0&&(e&128)===0?(n.flags=e&-65537|128,n):null;case 5:return es(n),null;case 13:if(ot(ct),e=n.memoizedState,e!==null&&e.dehydrated!==null){if(n.alternate===null)throw Error(r(340));yi()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 19:return ot(ct),null;case 4:return vi(),null;case 10:return Ya(n.type._context),null;case 22:case 23:return Ls(),null;case 24:return null;default:return null}}var wl=!1,Lt=!1,sh=typeof WeakSet=="function"?WeakSet:Set,he=null;function wi(e,n){var o=e.ref;if(o!==null)if(typeof o=="function")try{o(null)}catch(a){pt(e,n,a)}else o.current=null}function ks(e,n,o){try{o()}catch(a){pt(e,n,a)}}var zf=!1;function uh(e,n){if(La=Ko,e=gc(),Na(e)){if("selectionStart"in e)var o={start:e.selectionStart,end:e.selectionEnd};else e:{o=(o=e.ownerDocument)&&o.defaultView||window;var a=o.getSelection&&o.getSelection();if(a&&a.rangeCount!==0){o=a.anchorNode;var f=a.anchorOffset,m=a.focusNode;a=a.focusOffset;try{o.nodeType,m.nodeType}catch{o=null;break e}var _=0,x=-1,R=-1,F=0,Q=0,J=e,q=null;t:for(;;){for(var fe;J!==o||f!==0&&J.nodeType!==3||(x=_+f),J!==m||a!==0&&J.nodeType!==3||(R=_+a),J.nodeType===3&&(_+=J.nodeValue.length),(fe=J.firstChild)!==null;)q=J,J=fe;for(;;){if(J===e)break t;if(q===o&&++F===f&&(x=_),q===m&&++Q===a&&(R=_),(fe=J.nextSibling)!==null)break;J=q,q=J.parentNode}J=fe}o=x===-1||R===-1?null:{start:x,end:R}}else o=null}o=o||{start:0,end:0}}else o=null;for(Da={focusedElem:e,selectionRange:o},Ko=!1,he=n;he!==null;)if(n=he,e=n.child,(n.subtreeFlags&1028)!==0&&e!==null)e.return=n,he=e;else for(;he!==null;){n=he;try{var ye=n.alternate;if((n.flags&1024)!==0)switch(n.tag){case 0:case 11:case 15:break;case 1:if(ye!==null){var Ee=ye.memoizedProps,ht=ye.memoizedState,L=n.stateNode,M=L.getSnapshotBeforeUpdate(n.elementType===n.type?Ee:Sn(n.type,Ee),ht);L.__reactInternalSnapshotBeforeUpdate=M}break;case 3:var D=n.stateNode.containerInfo;D.nodeType===1?D.textContent="":D.nodeType===9&&D.documentElement&&D.removeChild(D.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(r(163))}}catch(re){pt(n,n.return,re)}if(e=n.sibling,e!==null){e.return=n.return,he=e;break}he=n.return}return ye=zf,zf=!1,ye}function fo(e,n,o){var a=n.updateQueue;if(a=a!==null?a.lastEffect:null,a!==null){var f=a=a.next;do{if((f.tag&e)===e){var m=f.destroy;f.destroy=void 0,m!==void 0&&ks(n,o,m)}f=f.next}while(f!==a)}}function Sl(e,n){if(n=n.updateQueue,n=n!==null?n.lastEffect:null,n!==null){var o=n=n.next;do{if((o.tag&e)===e){var a=o.create;o.destroy=a()}o=o.next}while(o!==n)}}function ws(e){var n=e.ref;if(n!==null){var o=e.stateNode;switch(e.tag){case 5:e=o;break;default:e=o}typeof n=="function"?n(e):n.current=e}}function Ff(e){var n=e.alternate;n!==null&&(e.alternate=null,Ff(n)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(n=e.stateNode,n!==null&&(delete n[Dn],delete n[eo],delete n[Ba],delete n[Wm],delete n[jm])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Bf(e){return e.tag===5||e.tag===3||e.tag===4}function Uf(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Bf(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Ss(e,n,o){var a=e.tag;if(a===5||a===6)e=e.stateNode,n?o.nodeType===8?o.parentNode.insertBefore(e,n):o.insertBefore(e,n):(o.nodeType===8?(n=o.parentNode,n.insertBefore(e,o)):(n=o,n.appendChild(e)),o=o._reactRootContainer,o!=null||n.onclick!==null||(n.onclick=tl));else if(a!==4&&(e=e.child,e!==null))for(Ss(e,n,o),e=e.sibling;e!==null;)Ss(e,n,o),e=e.sibling}function xs(e,n,o){var a=e.tag;if(a===5||a===6)e=e.stateNode,n?o.insertBefore(e,n):o.appendChild(e);else if(a!==4&&(e=e.child,e!==null))for(xs(e,n,o),e=e.sibling;e!==null;)xs(e,n,o),e=e.sibling}var At=null,xn=!1;function Er(e,n,o){for(o=o.child;o!==null;)$f(e,n,o),o=o.sibling}function $f(e,n,o){if(Be&&typeof Be.onCommitFiberUnmount=="function")try{Be.onCommitFiberUnmount(ze,o)}catch{}switch(o.tag){case 5:Lt||wi(o,n);case 6:var a=At,f=xn;At=null,Er(e,n,o),At=a,xn=f,At!==null&&(xn?(e=At,o=o.stateNode,e.nodeType===8?e.parentNode.removeChild(o):e.removeChild(o)):At.removeChild(o.stateNode));break;case 18:At!==null&&(xn?(e=At,o=o.stateNode,e.nodeType===8?Fa(e.parentNode,o):e.nodeType===1&&Fa(e,o),Ki(e)):Fa(At,o.stateNode));break;case 4:a=At,f=xn,At=o.stateNode.containerInfo,xn=!0,Er(e,n,o),At=a,xn=f;break;case 0:case 11:case 14:case 15:if(!Lt&&(a=o.updateQueue,a!==null&&(a=a.lastEffect,a!==null))){f=a=a.next;do{var m=f,_=m.destroy;m=m.tag,_!==void 0&&((m&2)!==0||(m&4)!==0)&&ks(o,n,_),f=f.next}while(f!==a)}Er(e,n,o);break;case 1:if(!Lt&&(wi(o,n),a=o.stateNode,typeof a.componentWillUnmount=="function"))try{a.props=o.memoizedProps,a.state=o.memoizedState,a.componentWillUnmount()}catch(x){pt(o,n,x)}Er(e,n,o);break;case 21:Er(e,n,o);break;case 22:o.mode&1?(Lt=(a=Lt)||o.memoizedState!==null,Er(e,n,o),Lt=a):Er(e,n,o);break;default:Er(e,n,o)}}function Hf(e){var n=e.updateQueue;if(n!==null){e.updateQueue=null;var o=e.stateNode;o===null&&(o=e.stateNode=new sh),n.forEach(function(a){var f=Eh.bind(null,e,a);o.has(a)||(o.add(a),a.then(f,f))})}}function Nn(e,n){var o=n.deletions;if(o!==null)for(var a=0;af&&(f=_),a&=~m}if(a=f,a=st()-a,a=(120>a?120:480>a?480:1080>a?1080:1920>a?1920:3e3>a?3e3:4320>a?4320:1960*fh(a/1960))-a,10e?16:e,_r===null)var a=!1;else{if(e=_r,_r=null,Al=0,(qe&6)!==0)throw Error(r(331));var f=qe;for(qe|=4,he=e.current;he!==null;){var m=he,_=m.child;if((he.flags&16)!==0){var x=m.deletions;if(x!==null){for(var R=0;Rst()-Cs?Wr(e,0):Ts|=o),qt(e,n)}function td(e,n){n===0&&((e.mode&1)===0?n=1:(n=Ir,Ir<<=1,(Ir&130023424)===0&&(Ir=4194304)));var o=Ut();e=Xn(e,n),e!==null&&(sr(e,n,o),qt(e,o))}function yh(e){var n=e.memoizedState,o=0;n!==null&&(o=n.retryLane),td(e,o)}function Eh(e,n){var o=0;switch(e.tag){case 13:var a=e.stateNode,f=e.memoizedState;f!==null&&(o=f.retryLane);break;case 19:a=e.stateNode;break;default:throw Error(r(314))}a!==null&&a.delete(n),td(e,o)}var nd;nd=function(e,n,o){if(e!==null)if(e.memoizedProps!==n.pendingProps||Gt.current)jt=!0;else{if((e.lanes&o)===0&&(n.flags&128)===0)return jt=!1,oh(e,n,o);jt=(e.flags&131072)!==0}else jt=!1,at&&(n.flags&1048576)!==0&&Lc(n,al,n.index);switch(n.lanes=0,n.tag){case 2:var a=n.type;kl(e,n),e=n.pendingProps;var f=gi(n,Ot.current);_i(n,o),f=os(null,n,a,e,f,o);var m=ls();return n.flags|=1,typeof f=="object"&&f!==null&&typeof f.render=="function"&&f.$$typeof===void 0?(n.tag=1,n.memoizedState=null,n.updateQueue=null,Wt(a)?(m=!0,il(n)):m=!1,n.memoizedState=f.state!==null&&f.state!==void 0?f.state:null,Xa(n),f.updater=_l,n.stateNode=f,f._reactInternals=n,ds(n,a,e,o),n=hs(null,n,a,!0,m,o)):(n.tag=0,at&&m&&Ha(n),Bt(null,n,f,o),n=n.child),n;case 16:a=n.elementType;e:{switch(kl(e,n),e=n.pendingProps,f=a._init,a=f(a._payload),n.type=a,f=n.tag=_h(a),e=Sn(a,e),f){case 0:n=ms(null,n,a,e,o);break e;case 1:n=Cf(null,n,a,e,o);break e;case 11:n=wf(null,n,a,e,o);break e;case 14:n=Sf(null,n,a,Sn(a.type,e),o);break e}throw Error(r(306,a,""))}return n;case 0:return a=n.type,f=n.pendingProps,f=n.elementType===a?f:Sn(a,f),ms(e,n,a,f,o);case 1:return a=n.type,f=n.pendingProps,f=n.elementType===a?f:Sn(a,f),Cf(e,n,a,f,o);case 3:e:{if(Af(n),e===null)throw Error(r(387));a=n.pendingProps,m=n.memoizedState,f=m.element,Kc(e,n),pl(n,a,null,o);var _=n.memoizedState;if(a=_.element,m.isDehydrated)if(m={element:a,isDehydrated:!1,cache:_.cache,pendingSuspenseBoundaries:_.pendingSuspenseBoundaries,transitions:_.transitions},n.updateQueue.baseState=m,n.memoizedState=m,n.flags&256){f=ki(Error(r(423)),n),n=Rf(e,n,a,o,f);break e}else if(a!==f){f=ki(Error(r(424)),n),n=Rf(e,n,a,o,f);break e}else for(nn=dr(n.stateNode.containerInfo.firstChild),tn=n,at=!0,wn=null,o=$c(n,null,a,o),n.child=o;o;)o.flags=o.flags&-3|4096,o=o.sibling;else{if(yi(),a===f){n=er(e,n,o);break e}Bt(e,n,a,o)}n=n.child}return n;case 5:return jc(n),e===null&&Wa(n),a=n.type,f=n.pendingProps,m=e!==null?e.memoizedProps:null,_=f.children,Pa(a,f)?_=null:m!==null&&Pa(a,m)&&(n.flags|=32),Tf(e,n),Bt(e,n,_,o),n.child;case 6:return e===null&&Wa(n),null;case 13:return Of(e,n,o);case 4:return Ja(n,n.stateNode.containerInfo),a=n.pendingProps,e===null?n.child=Ei(n,null,a,o):Bt(e,n,a,o),n.child;case 11:return a=n.type,f=n.pendingProps,f=n.elementType===a?f:Sn(a,f),wf(e,n,a,f,o);case 7:return Bt(e,n,n.pendingProps,o),n.child;case 8:return Bt(e,n,n.pendingProps.children,o),n.child;case 12:return Bt(e,n,n.pendingProps.children,o),n.child;case 10:e:{if(a=n.type._context,f=n.pendingProps,m=n.memoizedProps,_=f.value,nt(cl,a._currentValue),a._currentValue=_,m!==null)if(kn(m.value,_)){if(m.children===f.children&&!Gt.current){n=er(e,n,o);break e}}else for(m=n.child,m!==null&&(m.return=n);m!==null;){var x=m.dependencies;if(x!==null){_=m.child;for(var R=x.firstContext;R!==null;){if(R.context===a){if(m.tag===1){R=Jn(-1,o&-o),R.tag=2;var F=m.updateQueue;if(F!==null){F=F.shared;var Q=F.pending;Q===null?R.next=R:(R.next=Q.next,Q.next=R),F.pending=R}}m.lanes|=o,R=m.alternate,R!==null&&(R.lanes|=o),Qa(m.return,o,n),x.lanes|=o;break}R=R.next}}else if(m.tag===10)_=m.type===n.type?null:m.child;else if(m.tag===18){if(_=m.return,_===null)throw Error(r(341));_.lanes|=o,x=_.alternate,x!==null&&(x.lanes|=o),Qa(_,o,n),_=m.sibling}else _=m.child;if(_!==null)_.return=m;else for(_=m;_!==null;){if(_===n){_=null;break}if(m=_.sibling,m!==null){m.return=_.return,_=m;break}_=_.return}m=_}Bt(e,n,f.children,o),n=n.child}return n;case 9:return f=n.type,a=n.pendingProps.children,_i(n,o),f=pn(f),a=a(f),n.flags|=1,Bt(e,n,a,o),n.child;case 14:return a=n.type,f=Sn(a,n.pendingProps),f=Sn(a.type,f),Sf(e,n,a,f,o);case 15:return xf(e,n,n.type,n.pendingProps,o);case 17:return a=n.type,f=n.pendingProps,f=n.elementType===a?f:Sn(a,f),kl(e,n),n.tag=1,Wt(a)?(e=!0,il(n)):e=!1,_i(n,o),hf(n,a,f),ds(n,a,f,o),hs(null,n,a,!0,e,o);case 19:return Mf(e,n,o);case 22:return Nf(e,n,o)}throw Error(r(156,n.tag))};function rd(e,n){return zo(e,n)}function bh(e,n,o,a){this.tag=e,this.key=o,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=a,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function hn(e,n,o,a){return new bh(e,n,o,a)}function Ps(e){return e=e.prototype,!(!e||!e.isReactComponent)}function _h(e){if(typeof e=="function")return Ps(e)?1:0;if(e!=null){if(e=e.$$typeof,e===V)return 11;if(e===$)return 14}return 2}function wr(e,n){var o=e.alternate;return o===null?(o=hn(e.tag,n,e.key,e.mode),o.elementType=e.elementType,o.type=e.type,o.stateNode=e.stateNode,o.alternate=e,e.alternate=o):(o.pendingProps=n,o.type=e.type,o.flags=0,o.subtreeFlags=0,o.deletions=null),o.flags=e.flags&14680064,o.childLanes=e.childLanes,o.lanes=e.lanes,o.child=e.child,o.memoizedProps=e.memoizedProps,o.memoizedState=e.memoizedState,o.updateQueue=e.updateQueue,n=e.dependencies,o.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},o.sibling=e.sibling,o.index=e.index,o.ref=e.ref,o}function Ml(e,n,o,a,f,m){var _=2;if(a=e,typeof e=="function")Ps(e)&&(_=1);else if(typeof e=="string")_=5;else e:switch(e){case Z:return Vr(o.children,f,m,n);case ee:_=8,f|=8;break;case H:return e=hn(12,o,n,f|2),e.elementType=H,e.lanes=m,e;case ae:return e=hn(13,o,n,f),e.elementType=ae,e.lanes=m,e;case Y:return e=hn(19,o,n,f),e.elementType=Y,e.lanes=m,e;case _e:return Ll(o,f,m,n);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case w:_=10;break e;case j:_=9;break e;case V:_=11;break e;case $:_=14;break e;case ce:_=16,a=null;break e}throw Error(r(130,e==null?e:typeof e,""))}return n=hn(_,o,n,f),n.elementType=e,n.type=a,n.lanes=m,n}function Vr(e,n,o,a){return e=hn(7,e,a,n),e.lanes=o,e}function Ll(e,n,o,a){return e=hn(22,e,a,n),e.elementType=_e,e.lanes=o,e.stateNode={isHidden:!1},e}function zs(e,n,o){return e=hn(6,e,null,n),e.lanes=o,e}function Fs(e,n,o){return n=hn(4,e.children!==null?e.children:[],e.key,n),n.lanes=o,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}function vh(e,n,o,a,f){this.tag=n,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ar(0),this.expirationTimes=ar(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ar(0),this.identifierPrefix=a,this.onRecoverableError=f,this.mutableSourceEagerHydrationData=null}function Bs(e,n,o,a,f,m,_,x,R){return e=new vh(e,n,o,x,R),n===1?(n=1,m===!0&&(n|=8)):n=0,m=hn(3,null,null,n),e.current=m,m.stateNode=e,m.memoizedState={element:a,isDehydrated:o,cache:null,transitions:null,pendingSuspenseBoundaries:null},Xa(m),e}function kh(e,n,o){var a=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(i){console.error(i)}}return t(),Ws.exports=Ph(),Ws.exports}var yd;function Fh(){if(yd)return $l;yd=1;var t=zh();return $l.createRoot=t.createRoot,$l.hydrateRoot=t.hydrateRoot,$l}var Bh=Fh();const Uh=Ao(Bh);class $h{constructor(){Ti(this,"ws",null);Ti(this,"handlers",new Set);Ti(this,"queue",[]);Ti(this,"closedByUser",!1);Ti(this,"onStatus")}connect(){var l;this.closedByUser=!1,(l=this.onStatus)==null||l.call(this,"connecting");const i=location.protocol==="https:"?"wss:":"ws:",r=new WebSocket(`${i}//${location.host}/ws`);r.onopen=()=>{var s;(s=this.onStatus)==null||s.call(this,"open");for(const c of this.queue)r.send(c);this.queue=[]},r.onmessage=s=>{try{const c=JSON.parse(s.data);for(const u of this.handlers)u(c)}catch{}},r.onclose=()=>{var s;(s=this.onStatus)==null||s.call(this,"closed"),this.closedByUser||setTimeout(()=>this.connect(),1500)},this.ws=r}send(i){var l;const r=JSON.stringify(i);((l=this.ws)==null?void 0:l.readyState)===WebSocket.OPEN?this.ws.send(r):this.queue.push(r)}close(){var i;this.closedByUser=!0,(i=this.ws)==null||i.close()}subscribe(i){return this.handlers.add(i),()=>this.handlers.delete(i)}}const Sp="oxagenttwo.options",Ed="oxagenttwo.session",bd="oxagenttwo.systemPrompt";function Hh(){const t={think:!0,temperature:.7,numPredict:2048,provider:"ollama",openrouterModel:"anthropic/claude-sonnet-4.5"};try{const i=localStorage.getItem(Sp);if(i)return{...t,...JSON.parse(i)}}catch{}return t}function Kh(){const t=de.useRef(null),[i,r]=de.useState("connecting"),[l,s]=de.useState([]),[c,u]=de.useState(()=>localStorage.getItem(Ed)),[d,p]=de.useState([]),[g,y]=de.useState(!1),[h,b]=de.useState(Hh),[E,k]=de.useState(()=>localStorage.getItem(bd)??""),[C,O]=de.useState(null),N=de.useRef(!1);de.useEffect(()=>{const H=new $h;t.current=H,H.onStatus=r;const w=H.subscribe(j=>{const V=j.type;if(V==="user-message"){const ae=j.message;p(Y=>Y.some($=>$.id===ae.id)?Y:[...Y,ae])}else if(V==="assistant-start"){const ae=j.message;p(Y=>[...Y,{...ae,content:"",thinking:""}])}else if(V==="thinking"){const ae=j.text;p(Y=>Y.map($=>$.id===j.messageId?{...$,thinking:($.thinking??"")+ae}:$))}else if(V==="token"){const ae=j.text;p(Y=>Y.map($=>$.id===j.messageId?{...$,content:$.content+ae}:$))}else V==="done"||V==="error"?(N.current=!1,y(!1)):(V==="sessions-changed"||V==="session-deleted")&&P()});return H.connect(),()=>{w(),H.close()}},[]);const P=de.useCallback(async()=>{const w=await(await fetch("/api/sessions")).json();s(w),u(j=>{var V;return j??((V=w[0])==null?void 0:V.id)??null})},[]);de.useEffect(()=>{P(),fetch("/api/model").then(H=>H.json()).then(O).catch(()=>O({ok:!1,error:"Ollama nicht erreichbar"}))},[P]),de.useEffect(()=>{if(!c){p([]);return}localStorage.setItem(Ed,c),N.current=!1,y(!1),fetch(`/api/sessions/${c}/messages`).then(H=>H.json()).then(H=>p(Array.isArray(H)?H:[])).catch(()=>p([]))},[c]);const z=de.useCallback(H=>{b(w=>{const j={...w,...H};return localStorage.setItem(Sp,JSON.stringify(j)),j})},[]),W=de.useCallback(H=>{k(H),localStorage.setItem(bd,H)},[]),X=de.useCallback((H,w=[])=>{var j;!H.trim()&&w.length===0||N.current||!c||(N.current=!0,y(!0),(j=t.current)==null||j.send({type:"chat",sessionId:c,content:H,images:w,options:h,systemPrompt:E}))},[c,h,E]),A=de.useCallback(()=>{var H;(H=t.current)==null||H.send({type:"abort"})},[]),Z=de.useCallback(async()=>{const w=await(await fetch("/api/sessions",{method:"POST"})).json();await P(),u(w.id)},[P]),ee=de.useCallback(async H=>{await fetch(`/api/sessions/${H}`,{method:"DELETE"}),s(w=>w.filter(j=>j.id!==H)),u(w=>w===H?null:w),await P()},[P]);return{status:i,sessions:l,activeId:c,setActiveId:u,messages:d,streaming:g,sendMessage:X,abort:A,newSession:Z,deleteSession:ee,options:h,setOptions:z,systemPrompt:E,setSystemPrompt:W,modelInfo:C}}function Gh({onTranscript:t,onQueueDrained:i}){const[r,l]=de.useState(!1),[s,c]=de.useState(!1),[u,d]=de.useState(!1),[p,g]=de.useState(null),y=de.useRef(null),h=de.useRef([]),b=de.useRef(null),E=de.useRef(null),k=de.useRef([]),C=de.useRef(null),O=de.useRef(!1),N=de.useRef(null),P=de.useRef(i);P.current=i;const z=de.useRef(t);z.current=t;const W=de.useCallback(async()=>{if(O.current)return;const H=k.current.shift();if(H===void 0){d(!1),P.current();return}O.current=!0,d(!0);try{N.current=new AbortController;const w=await fetch("/api/tts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:H}),signal:N.current.signal});if(!w.ok)throw new Error(`TTS HTTP ${w.status}`);const j=await w.blob(),V=new Audio(URL.createObjectURL(j));C.current=V,await new Promise(ae=>{V.onended=()=>ae(),V.onerror=()=>ae(),V.play().catch(()=>ae())}),URL.revokeObjectURL(V.src)}catch(w){w instanceof DOMException&&w.name==="AbortError"||g(w instanceof Error?w.message:String(w))}finally{O.current=!1,N.current=null,W()}},[]),X=de.useCallback(H=>{const w=H.trim();w&&(k.current.push(w),W())},[W]),A=de.useCallback(()=>{var H;k.current=[],(H=N.current)==null||H.abort(),C.current&&(C.current.pause(),C.current.src=""),O.current=!1,d(!1)},[]),Z=de.useCallback(()=>{var H;E.current&&clearTimeout(E.current),E.current=null,((H=y.current)==null?void 0:H.state)==="recording"&&y.current.stop()},[]),ee=de.useCallback(async()=>{var H;if(((H=y.current)==null?void 0:H.state)!=="recording"){g(null);try{const w=await navigator.mediaDevices.getUserMedia({audio:!0});b.current=w;const j=new MediaRecorder(w);h.current=[],j.ondataavailable=V=>{V.data.size>0&&h.current.push(V.data)},j.onstop=async()=>{var ae,Y;(ae=b.current)==null||ae.getTracks().forEach($=>$.stop()),b.current=null,l(!1);const V=new Blob(h.current);if(h.current=[],!(V.size<2e3)){c(!0);try{const ce=await(await fetch("/api/stt",{method:"POST",headers:{"Content-Type":"application/octet-stream"},body:V})).json();if(!ce.ok)throw new Error(ce.error??"STT fehlgeschlagen");const _e=(Y=ce.text)==null?void 0:Y.trim();_e?z.current(_e):g("Nichts verstanden — bitte nochmal sprechen.")}catch($){g($ instanceof Error?$.message:String($))}finally{c(!1)}}},y.current=j,j.start(),l(!0),E.current=setTimeout(()=>Z(),3e4)}catch(w){g(w instanceof Error?w.message:String(w))}}},[t,Z]);return de.useEffect(()=>()=>{var H,w;((H=y.current)==null?void 0:H.state)==="recording"&&y.current.stop(),(w=b.current)==null||w.getTracks().forEach(j=>j.stop()),A()},[]),{recording:r,transcribing:s,speaking:u,error:p,setError:g,startRecording:ee,stopRecording:Z,enqueueSpeech:X,cancelSpeech:A}}function Wh({sessions:t,activeId:i,onSelect:r,onNew:l,onDelete:s}){return le.jsxs("aside",{className:"sidebar",children:[le.jsxs("div",{className:"sidebar-header",children:[le.jsxs("div",{className:"brand",children:[le.jsx("span",{className:"brand-prompt",children:"▸"})," agenttwo-tools"]}),le.jsx("button",{className:"btn-new",onClick:l,children:"+ Neuer Chat"})]}),le.jsxs("nav",{className:"session-list",children:[t.length===0&&le.jsx("div",{className:"empty-hint",children:"Noch keine Sessions."}),t.map(c=>le.jsxs("div",{className:`session-item ${c.id===i?"active":""}`,onClick:()=>r(c.id),children:[le.jsx("span",{className:"session-title",children:c.title}),le.jsx("button",{className:"session-delete",title:"Session löschen",onClick:u=>{u.stopPropagation(),s(c.id)},children:"✕"})]},c.id))]})]})}function jh(t,i){const r={};return(t[t.length-1]===""?[...t,""]:t).join((r.padRight?" ":"")+","+(r.padLeft===!1?"":" ")).trim()}const Vh=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,qh=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Yh={};function _d(t,i){return(Yh.jsx?qh:Vh).test(t)}const Qh=/[ \t\n\f\r]/g;function Zh(t){return typeof t=="object"?t.type==="text"?vd(t.value):!1:vd(t)}function vd(t){return t.replace(Qh,"")===""}class Ro{constructor(i,r,l){this.normal=r,this.property=i,l&&(this.space=l)}}Ro.prototype.normal={};Ro.prototype.property={};Ro.prototype.space=void 0;function xp(t,i){const r={},l={};for(const s of t)Object.assign(r,s.property),Object.assign(l,s.normal);return new Ro(r,l,i)}function gu(t){return t.toLowerCase()}class Zt{constructor(i,r){this.attribute=r,this.property=i}}Zt.prototype.attribute="";Zt.prototype.booleanish=!1;Zt.prototype.boolean=!1;Zt.prototype.commaOrSpaceSeparated=!1;Zt.prototype.commaSeparated=!1;Zt.prototype.defined=!1;Zt.prototype.mustUseProperty=!1;Zt.prototype.number=!1;Zt.prototype.overloadedBoolean=!1;Zt.prototype.property="";Zt.prototype.spaceSeparated=!1;Zt.prototype.space=void 0;let Xh=0;const Le=Xr(),bt=Xr(),mu=Xr(),te=Xr(),Je=Xr(),Qr=Xr(),on=Xr();function Xr(){return 2**++Xh}const hu=Object.freeze(Object.defineProperty({__proto__:null,boolean:Le,booleanish:bt,commaOrSpaceSeparated:on,commaSeparated:Qr,number:te,overloadedBoolean:mu,spaceSeparated:Je},Symbol.toStringTag,{value:"Module"})),qs=Object.keys(hu);class Tu extends Zt{constructor(i,r,l,s){let c=-1;if(super(i,r),kd(this,"space",s),typeof l=="number")for(;++c4&&r.slice(0,4)==="data"&&ry.test(i)){if(i.charAt(4)==="-"){const c=i.slice(5).replace(wd,ly);l="data"+c.charAt(0).toUpperCase()+c.slice(1)}else{const c=i.slice(4);if(!wd.test(c)){let u=c.replace(ny,oy);u.charAt(0)!=="-"&&(u="-"+u),i="data"+u}}s=Tu}return new s(l,i)}function oy(t){return"-"+t.toLowerCase()}function ly(t){return t.charAt(1).toUpperCase()}const ay=xp([Np,Jh,Ap,Rp,Op],"html"),Cu=xp([Np,ey,Ap,Rp,Op],"svg");function sy(t){return t.join(" ").trim()}var Ci={},Ys,Sd;function uy(){if(Sd)return Ys;Sd=1;var t=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,i=/\n/g,r=/^\s*/,l=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,s=/^:\s*/,c=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,u=/^[;\s]*/,d=/^\s+|\s+$/g,p=` -`,g="/",y="*",h="",b="comment",E="declaration";function k(O,N){if(typeof O!="string")throw new TypeError("First argument must be a string");if(!O)return[];N=N||{};var P=1,z=1;function W(Y){var $=Y.match(i);$&&(P+=$.length);var ce=Y.lastIndexOf(p);z=~ce?Y.length-ce:z+Y.length}function X(){var Y={line:P,column:z};return function($){return $.position=new A(Y),H(),$}}function A(Y){this.start=Y,this.end={line:P,column:z},this.source=N.source}A.prototype.content=O;function Z(Y){var $=new Error(N.source+":"+P+":"+z+": "+Y);if($.reason=Y,$.filename=N.source,$.line=P,$.column=z,$.source=O,!N.silent)throw $}function ee(Y){var $=Y.exec(O);if($){var ce=$[0];return W(ce),O=O.slice(ce.length),$}}function H(){ee(r)}function w(Y){var $;for(Y=Y||[];$=j();)$!==!1&&Y.push($);return Y}function j(){var Y=X();if(!(g!=O.charAt(0)||y!=O.charAt(1))){for(var $=2;h!=O.charAt($)&&(y!=O.charAt($)||g!=O.charAt($+1));)++$;if($+=2,h===O.charAt($-1))return Z("End of comment missing");var ce=O.slice(2,$-2);return z+=2,W(ce),O=O.slice($),z+=2,Y({type:b,comment:ce})}}function V(){var Y=X(),$=ee(l);if($){if(j(),!ee(s))return Z("property missing ':'");var ce=ee(c),_e=Y({type:E,property:C($[0].replace(t,h)),value:ce?C(ce[0].replace(t,h)):h});return ee(u),_e}}function ae(){var Y=[];w(Y);for(var $;$=V();)$!==!1&&(Y.push($),w(Y));return Y}return H(),ae()}function C(O){return O?O.replace(d,h):h}return Ys=k,Ys}var xd;function cy(){if(xd)return Ci;xd=1;var t=Ci&&Ci.__importDefault||function(l){return l&&l.__esModule?l:{default:l}};Object.defineProperty(Ci,"__esModule",{value:!0}),Ci.default=r;const i=t(uy());function r(l,s){let c=null;if(!l||typeof l!="string")return c;const u=(0,i.default)(l),d=typeof s=="function";return u.forEach(p=>{if(p.type!=="declaration")return;const{property:g,value:y}=p;d?s(g,y,p):y&&(c=c||{},c[g]=y)}),c}return Ci}var Eo={},Nd;function fy(){if(Nd)return Eo;Nd=1,Object.defineProperty(Eo,"__esModule",{value:!0}),Eo.camelCase=void 0;var t=/^--[a-zA-Z0-9_-]+$/,i=/-([a-z])/g,r=/^[^-]+$/,l=/^-(webkit|moz|ms|o|khtml)-/,s=/^-(ms)-/,c=function(g){return!g||r.test(g)||t.test(g)},u=function(g,y){return y.toUpperCase()},d=function(g,y){return"".concat(y,"-")},p=function(g,y){return y===void 0&&(y={}),c(g)?g:(g=g.toLowerCase(),y.reactCompat?g=g.replace(s,d):g=g.replace(l,d),g.replace(i,u))};return Eo.camelCase=p,Eo}var bo,Td;function dy(){if(Td)return bo;Td=1;var t=bo&&bo.__importDefault||function(s){return s&&s.__esModule?s:{default:s}},i=t(cy()),r=fy();function l(s,c){var u={};return!s||typeof s!="string"||(0,i.default)(s,function(d,p){d&&p&&(u[(0,r.camelCase)(d,c)]=p)}),u}return l.default=l,bo=l,bo}var py=dy();const gy=Ao(py),Ip=Mp("end"),Au=Mp("start");function Mp(t){return i;function i(r){const l=r&&r.position&&r.position[t]||{};if(typeof l.line=="number"&&l.line>0&&typeof l.column=="number"&&l.column>0)return{line:l.line,column:l.column,offset:typeof l.offset=="number"&&l.offset>-1?l.offset:void 0}}}function my(t){const i=Au(t),r=Ip(t);if(i&&r)return{start:i,end:r}}function So(t){return!t||typeof t!="object"?"":"position"in t||"type"in t?Cd(t.position):"start"in t||"end"in t?Cd(t):"line"in t||"column"in t?yu(t):""}function yu(t){return Ad(t&&t.line)+":"+Ad(t&&t.column)}function Cd(t){return yu(t&&t.start)+"-"+yu(t&&t.end)}function Ad(t){return t&&typeof t=="number"?t:1}class Pt extends Error{constructor(i,r,l){super(),typeof r=="string"&&(l=r,r=void 0);let s="",c={},u=!1;if(r&&("line"in r&&"column"in r?c={place:r}:"start"in r&&"end"in r?c={place:r}:"type"in r?c={ancestors:[r],place:r.position}:c={...r}),typeof i=="string"?s=i:!c.cause&&i&&(u=!0,s=i.message,c.cause=i),!c.ruleId&&!c.source&&typeof l=="string"){const p=l.indexOf(":");p===-1?c.ruleId=l:(c.source=l.slice(0,p),c.ruleId=l.slice(p+1))}if(!c.place&&c.ancestors&&c.ancestors){const p=c.ancestors[c.ancestors.length-1];p&&(c.place=p.position)}const d=c.place&&"start"in c.place?c.place.start:c.place;this.ancestors=c.ancestors||void 0,this.cause=c.cause||void 0,this.column=d?d.column:void 0,this.fatal=void 0,this.file="",this.message=s,this.line=d?d.line:void 0,this.name=So(c.place)||"1:1",this.place=c.place||void 0,this.reason=this.message,this.ruleId=c.ruleId||void 0,this.source=c.source||void 0,this.stack=u&&c.cause&&typeof c.cause.stack=="string"?c.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Pt.prototype.file="";Pt.prototype.name="";Pt.prototype.reason="";Pt.prototype.message="";Pt.prototype.stack="";Pt.prototype.column=void 0;Pt.prototype.line=void 0;Pt.prototype.ancestors=void 0;Pt.prototype.cause=void 0;Pt.prototype.fatal=void 0;Pt.prototype.place=void 0;Pt.prototype.ruleId=void 0;Pt.prototype.source=void 0;const Ru={}.hasOwnProperty,hy=new Map,yy=/[A-Z]/g,Ey=new Set(["table","tbody","thead","tfoot","tr"]),by=new Set(["td","th"]),Lp="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function _y(t,i){if(!i||i.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const r=i.filePath||void 0;let l;if(i.development){if(typeof i.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");l=Cy(r,i.jsxDEV)}else{if(typeof i.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof i.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");l=Ty(r,i.jsx,i.jsxs)}const s={Fragment:i.Fragment,ancestors:[],components:i.components||{},create:l,elementAttributeNameCase:i.elementAttributeNameCase||"react",evaluater:i.createEvaluater?i.createEvaluater():void 0,filePath:r,ignoreInvalidStyle:i.ignoreInvalidStyle||!1,passKeys:i.passKeys!==!1,passNode:i.passNode||!1,schema:i.space==="svg"?Cu:ay,stylePropertyNameCase:i.stylePropertyNameCase||"dom",tableCellAlignToStyle:i.tableCellAlignToStyle!==!1},c=Dp(s,t,void 0);return c&&typeof c!="string"?c:s.create(t,s.Fragment,{children:c||void 0},void 0)}function Dp(t,i,r){if(i.type==="element")return vy(t,i,r);if(i.type==="mdxFlowExpression"||i.type==="mdxTextExpression")return ky(t,i);if(i.type==="mdxJsxFlowElement"||i.type==="mdxJsxTextElement")return Sy(t,i,r);if(i.type==="mdxjsEsm")return wy(t,i);if(i.type==="root")return xy(t,i,r);if(i.type==="text")return Ny(t,i)}function vy(t,i,r){const l=t.schema;let s=l;i.tagName.toLowerCase()==="svg"&&l.space==="html"&&(s=Cu,t.schema=s),t.ancestors.push(i);const c=zp(t,i.tagName,!1),u=Ay(t,i);let d=Iu(t,i);return Ey.has(i.tagName)&&(d=d.filter(function(p){return typeof p=="string"?!Zh(p):!0})),Pp(t,u,c,i),Ou(u,d),t.ancestors.pop(),t.schema=l,t.create(i,c,u,r)}function ky(t,i){if(i.data&&i.data.estree&&t.evaluater){const l=i.data.estree.body[0];return l.type,t.evaluater.evaluateExpression(l.expression)}To(t,i.position)}function wy(t,i){if(i.data&&i.data.estree&&t.evaluater)return t.evaluater.evaluateProgram(i.data.estree);To(t,i.position)}function Sy(t,i,r){const l=t.schema;let s=l;i.name==="svg"&&l.space==="html"&&(s=Cu,t.schema=s),t.ancestors.push(i);const c=i.name===null?t.Fragment:zp(t,i.name,!0),u=Ry(t,i),d=Iu(t,i);return Pp(t,u,c,i),Ou(u,d),t.ancestors.pop(),t.schema=l,t.create(i,c,u,r)}function xy(t,i,r){const l={};return Ou(l,Iu(t,i)),t.create(i,t.Fragment,l,r)}function Ny(t,i){return i.value}function Pp(t,i,r,l){typeof r!="string"&&r!==t.Fragment&&t.passNode&&(i.node=l)}function Ou(t,i){if(i.length>0){const r=i.length>1?i:i[0];r&&(t.children=r)}}function Ty(t,i,r){return l;function l(s,c,u,d){const g=Array.isArray(u.children)?r:i;return d?g(c,u,d):g(c,u)}}function Cy(t,i){return r;function r(l,s,c,u){const d=Array.isArray(c.children),p=Au(l);return i(s,c,u,d,{columnNumber:p?p.column-1:void 0,fileName:t,lineNumber:p?p.line:void 0},void 0)}}function Ay(t,i){const r={};let l,s;for(s in i.properties)if(s!=="children"&&Ru.call(i.properties,s)){const c=Oy(t,s,i.properties[s]);if(c){const[u,d]=c;t.tableCellAlignToStyle&&u==="align"&&typeof d=="string"&&by.has(i.tagName)?l=d:r[u]=d}}if(l){const c=r.style||(r.style={});c[t.stylePropertyNameCase==="css"?"text-align":"textAlign"]=l}return r}function Ry(t,i){const r={};for(const l of i.attributes)if(l.type==="mdxJsxExpressionAttribute")if(l.data&&l.data.estree&&t.evaluater){const c=l.data.estree.body[0];c.type;const u=c.expression;u.type;const d=u.properties[0];d.type,Object.assign(r,t.evaluater.evaluateExpression(d.argument))}else To(t,i.position);else{const s=l.name;let c;if(l.value&&typeof l.value=="object")if(l.value.data&&l.value.data.estree&&t.evaluater){const d=l.value.data.estree.body[0];d.type,c=t.evaluater.evaluateExpression(d.expression)}else To(t,i.position);else c=l.value===null?!0:l.value;r[s]=c}return r}function Iu(t,i){const r=[];let l=-1;const s=t.passKeys?new Map:hy;for(;++ls?0:s+i:i=i>s?s:i,r=r>0?r:0,l.length<1e4)u=Array.from(l),u.unshift(i,r),t.splice(...u);else for(r&&t.splice(i,r);c0?(ln(t,t.length,0,i),t):i}const Id={}.hasOwnProperty;function Bp(t){const i={};let r=-1;for(;++r13&&r<32||r>126&&r<160||r>55295&&r<57344||r>64975&&r<65008||(r&65535)===65535||(r&65535)===65534||r>1114111?"�":String.fromCodePoint(r)}function Cn(t){return t.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Ht=Nr(/[A-Za-z]/),Dt=Nr(/[\dA-Za-z]/),Uy=Nr(/[#-'*+\--9=?A-Z^-~]/);function Xl(t){return t!==null&&(t<32||t===127)}const Eu=Nr(/\d/),$y=Nr(/[\dA-Fa-f]/),Hy=Nr(/[!-/:-@[-`{-~]/);function Te(t){return t!==null&&t<-2}function et(t){return t!==null&&(t<0||t===32)}function Ue(t){return t===-2||t===-1||t===32}const ia=Nr(new RegExp("\\p{P}|\\p{S}","u")),Zr=Nr(/\s/);function Nr(t){return i;function i(r){return r!==null&&r>-1&&t.test(String.fromCharCode(r))}}function Li(t){const i=[];let r=-1,l=0,s=0;for(;++r55295&&c<57344){const d=t.charCodeAt(r+1);c<56320&&d>56319&&d<57344?(u=String.fromCharCode(c,d),s=1):u="�"}else u=String.fromCharCode(c);u&&(i.push(t.slice(l,r),encodeURIComponent(u)),l=r+s+1,u=""),s&&(r+=s,s=0)}return i.join("")+t.slice(l)}function je(t,i,r,l){const s=l?l-1:Number.POSITIVE_INFINITY;let c=0;return u;function u(p){return Ue(p)?(t.enter(r),d(p)):i(p)}function d(p){return Ue(p)&&c++u))return;const Z=i.events.length;let ee=Z,H,w;for(;ee--;)if(i.events[ee][0]==="exit"&&i.events[ee][1].type==="chunkFlow"){if(H){w=i.events[ee][1].end;break}H=!0}for(N(l),A=Z;Az;){const X=r[W];i.containerState=X[1],X[0].exit.call(i,t)}r.length=z}function P(){s.write([null]),c=void 0,s=void 0,i.containerState._closeFlow=void 0}}function Vy(t,i,r){return je(t,t.attempt(this.parser.constructs.document,i,r),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Ii(t){if(t===null||et(t)||Zr(t))return 1;if(ia(t))return 2}function oa(t,i,r){const l=[];let s=-1;for(;++s1&&t[r][1].end.offset-t[r][1].start.offset>1?2:1;const h={...t[l][1].end},b={...t[r][1].start};Ld(h,-p),Ld(b,p),u={type:p>1?"strongSequence":"emphasisSequence",start:h,end:{...t[l][1].end}},d={type:p>1?"strongSequence":"emphasisSequence",start:{...t[r][1].start},end:b},c={type:p>1?"strongText":"emphasisText",start:{...t[l][1].end},end:{...t[r][1].start}},s={type:p>1?"strong":"emphasis",start:{...u.start},end:{...d.end}},t[l][1].end={...u.start},t[r][1].start={...d.end},g=[],t[l][1].end.offset-t[l][1].start.offset&&(g=yn(g,[["enter",t[l][1],i],["exit",t[l][1],i]])),g=yn(g,[["enter",s,i],["enter",u,i],["exit",u,i],["enter",c,i]]),g=yn(g,oa(i.parser.constructs.insideSpan.null,t.slice(l+1,r),i)),g=yn(g,[["exit",c,i],["enter",d,i],["exit",d,i],["exit",s,i]]),t[r][1].end.offset-t[r][1].start.offset?(y=2,g=yn(g,[["enter",t[r][1],i],["exit",t[r][1],i]])):y=0,ln(t,l-1,r-l+3,g),r=l+g.length-y-2;break}}for(r=-1;++r0&&Ue(A)?je(t,P,"linePrefix",c+1)(A):P(A)}function P(A){return A===null||Te(A)?t.check(Dd,C,W)(A):(t.enter("codeFlowValue"),z(A))}function z(A){return A===null||Te(A)?(t.exit("codeFlowValue"),P(A)):(t.consume(A),z)}function W(A){return t.exit("codeFenced"),i(A)}function X(A,Z,ee){let H=0;return w;function w($){return A.enter("lineEnding"),A.consume($),A.exit("lineEnding"),j}function j($){return A.enter("codeFencedFence"),Ue($)?je(A,V,"linePrefix",l.parser.constructs.disable.null.includes("codeIndented")?void 0:4)($):V($)}function V($){return $===d?(A.enter("codeFencedFenceSequence"),ae($)):ee($)}function ae($){return $===d?(H++,A.consume($),ae):H>=u?(A.exit("codeFencedFenceSequence"),Ue($)?je(A,Y,"whitespace")($):Y($)):ee($)}function Y($){return $===null||Te($)?(A.exit("codeFencedFence"),Z($)):ee($)}}}function oE(t,i,r){const l=this;return s;function s(u){return u===null?r(u):(t.enter("lineEnding"),t.consume(u),t.exit("lineEnding"),c)}function c(u){return l.parser.lazy[l.now().line]?r(u):i(u)}}const Zs={name:"codeIndented",tokenize:aE},lE={partial:!0,tokenize:sE};function aE(t,i,r){const l=this;return s;function s(g){return t.enter("codeIndented"),je(t,c,"linePrefix",5)(g)}function c(g){const y=l.events[l.events.length-1];return y&&y[1].type==="linePrefix"&&y[2].sliceSerialize(y[1],!0).length>=4?u(g):r(g)}function u(g){return g===null?p(g):Te(g)?t.attempt(lE,u,p)(g):(t.enter("codeFlowValue"),d(g))}function d(g){return g===null||Te(g)?(t.exit("codeFlowValue"),u(g)):(t.consume(g),d)}function p(g){return t.exit("codeIndented"),i(g)}}function sE(t,i,r){const l=this;return s;function s(u){return l.parser.lazy[l.now().line]?r(u):Te(u)?(t.enter("lineEnding"),t.consume(u),t.exit("lineEnding"),s):je(t,c,"linePrefix",5)(u)}function c(u){const d=l.events[l.events.length-1];return d&&d[1].type==="linePrefix"&&d[2].sliceSerialize(d[1],!0).length>=4?i(u):Te(u)?s(u):r(u)}}const uE={name:"codeText",previous:fE,resolve:cE,tokenize:dE};function cE(t){let i=t.length-4,r=3,l,s;if((t[r][1].type==="lineEnding"||t[r][1].type==="space")&&(t[i][1].type==="lineEnding"||t[i][1].type==="space")){for(l=r;++l=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+i+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return ithis.left.length?this.right.slice(this.right.length-l+this.left.length,this.right.length-i+this.left.length).reverse():this.left.slice(i).concat(this.right.slice(this.right.length-l+this.left.length).reverse())}splice(i,r,l){const s=r||0;this.setCursor(Math.trunc(i));const c=this.right.splice(this.right.length-s,Number.POSITIVE_INFINITY);return l&&_o(this.left,l),c.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(i){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(i)}pushMany(i){this.setCursor(Number.POSITIVE_INFINITY),_o(this.left,i)}unshift(i){this.setCursor(0),this.right.push(i)}unshiftMany(i){this.setCursor(0),_o(this.right,i.reverse())}setCursor(i){if(!(i===this.left.length||i>this.left.length&&this.right.length===0||i<0&&this.left.length===0))if(i=4?i(u):t.interrupt(l.parser.constructs.flow,r,i)(u)}}function Wp(t,i,r,l,s,c,u,d,p){const g=p||Number.POSITIVE_INFINITY;let y=0;return h;function h(N){return N===60?(t.enter(l),t.enter(s),t.enter(c),t.consume(N),t.exit(c),b):N===null||N===32||N===41||Xl(N)?r(N):(t.enter(l),t.enter(u),t.enter(d),t.enter("chunkString",{contentType:"string"}),C(N))}function b(N){return N===62?(t.enter(c),t.consume(N),t.exit(c),t.exit(s),t.exit(l),i):(t.enter(d),t.enter("chunkString",{contentType:"string"}),E(N))}function E(N){return N===62?(t.exit("chunkString"),t.exit(d),b(N)):N===null||N===60||Te(N)?r(N):(t.consume(N),N===92?k:E)}function k(N){return N===60||N===62||N===92?(t.consume(N),E):E(N)}function C(N){return!y&&(N===null||N===41||et(N))?(t.exit("chunkString"),t.exit(d),t.exit(u),t.exit(l),i(N)):y999||E===null||E===91||E===93&&!p||E===94&&!d&&"_hiddenFootnoteSupport"in u.parser.constructs?r(E):E===93?(t.exit(c),t.enter(s),t.consume(E),t.exit(s),t.exit(l),i):Te(E)?(t.enter("lineEnding"),t.consume(E),t.exit("lineEnding"),y):(t.enter("chunkString",{contentType:"string"}),h(E))}function h(E){return E===null||E===91||E===93||Te(E)||d++>999?(t.exit("chunkString"),y(E)):(t.consume(E),p||(p=!Ue(E)),E===92?b:h)}function b(E){return E===91||E===92||E===93?(t.consume(E),d++,h):h(E)}}function Vp(t,i,r,l,s,c){let u;return d;function d(b){return b===34||b===39||b===40?(t.enter(l),t.enter(s),t.consume(b),t.exit(s),u=b===40?41:b,p):r(b)}function p(b){return b===u?(t.enter(s),t.consume(b),t.exit(s),t.exit(l),i):(t.enter(c),g(b))}function g(b){return b===u?(t.exit(c),p(u)):b===null?r(b):Te(b)?(t.enter("lineEnding"),t.consume(b),t.exit("lineEnding"),je(t,g,"linePrefix")):(t.enter("chunkString",{contentType:"string"}),y(b))}function y(b){return b===u||b===null||Te(b)?(t.exit("chunkString"),g(b)):(t.consume(b),b===92?h:y)}function h(b){return b===u||b===92?(t.consume(b),y):y(b)}}function xo(t,i){let r;return l;function l(s){return Te(s)?(t.enter("lineEnding"),t.consume(s),t.exit("lineEnding"),r=!0,l):Ue(s)?je(t,l,r?"linePrefix":"lineSuffix")(s):i(s)}}const _E={name:"definition",tokenize:kE},vE={partial:!0,tokenize:wE};function kE(t,i,r){const l=this;let s;return c;function c(E){return t.enter("definition"),u(E)}function u(E){return jp.call(l,t,d,r,"definitionLabel","definitionLabelMarker","definitionLabelString")(E)}function d(E){return s=Cn(l.sliceSerialize(l.events[l.events.length-1][1]).slice(1,-1)),E===58?(t.enter("definitionMarker"),t.consume(E),t.exit("definitionMarker"),p):r(E)}function p(E){return et(E)?xo(t,g)(E):g(E)}function g(E){return Wp(t,y,r,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(E)}function y(E){return t.attempt(vE,h,h)(E)}function h(E){return Ue(E)?je(t,b,"whitespace")(E):b(E)}function b(E){return E===null||Te(E)?(t.exit("definition"),l.parser.defined.push(s),i(E)):r(E)}}function wE(t,i,r){return l;function l(d){return et(d)?xo(t,s)(d):r(d)}function s(d){return Vp(t,c,r,"definitionTitle","definitionTitleMarker","definitionTitleString")(d)}function c(d){return Ue(d)?je(t,u,"whitespace")(d):u(d)}function u(d){return d===null||Te(d)?i(d):r(d)}}const SE={name:"hardBreakEscape",tokenize:xE};function xE(t,i,r){return l;function l(c){return t.enter("hardBreakEscape"),t.consume(c),s}function s(c){return Te(c)?(t.exit("hardBreakEscape"),i(c)):r(c)}}const NE={name:"headingAtx",resolve:TE,tokenize:CE};function TE(t,i){let r=t.length-2,l=3,s,c;return t[l][1].type==="whitespace"&&(l+=2),r-2>l&&t[r][1].type==="whitespace"&&(r-=2),t[r][1].type==="atxHeadingSequence"&&(l===r-1||r-4>l&&t[r-2][1].type==="whitespace")&&(r-=l+1===r?2:4),r>l&&(s={type:"atxHeadingText",start:t[l][1].start,end:t[r][1].end},c={type:"chunkText",start:t[l][1].start,end:t[r][1].end,contentType:"text"},ln(t,l,r-l+1,[["enter",s,i],["enter",c,i],["exit",c,i],["exit",s,i]])),t}function CE(t,i,r){let l=0;return s;function s(y){return t.enter("atxHeading"),c(y)}function c(y){return t.enter("atxHeadingSequence"),u(y)}function u(y){return y===35&&l++<6?(t.consume(y),u):y===null||et(y)?(t.exit("atxHeadingSequence"),d(y)):r(y)}function d(y){return y===35?(t.enter("atxHeadingSequence"),p(y)):y===null||Te(y)?(t.exit("atxHeading"),i(y)):Ue(y)?je(t,d,"whitespace")(y):(t.enter("atxHeadingText"),g(y))}function p(y){return y===35?(t.consume(y),p):(t.exit("atxHeadingSequence"),d(y))}function g(y){return y===null||y===35||et(y)?(t.exit("atxHeadingText"),d(y)):(t.consume(y),g)}}const AE=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],zd=["pre","script","style","textarea"],RE={concrete:!0,name:"htmlFlow",resolveTo:ME,tokenize:LE},OE={partial:!0,tokenize:PE},IE={partial:!0,tokenize:DE};function ME(t){let i=t.length;for(;i--&&!(t[i][0]==="enter"&&t[i][1].type==="htmlFlow"););return i>1&&t[i-2][1].type==="linePrefix"&&(t[i][1].start=t[i-2][1].start,t[i+1][1].start=t[i-2][1].start,t.splice(i-2,2)),t}function LE(t,i,r){const l=this;let s,c,u,d,p;return g;function g(S){return y(S)}function y(S){return t.enter("htmlFlow"),t.enter("htmlFlowData"),t.consume(S),h}function h(S){return S===33?(t.consume(S),b):S===47?(t.consume(S),c=!0,C):S===63?(t.consume(S),s=3,l.interrupt?i:v):Ht(S)?(t.consume(S),u=String.fromCharCode(S),O):r(S)}function b(S){return S===45?(t.consume(S),s=2,E):S===91?(t.consume(S),s=5,d=0,k):Ht(S)?(t.consume(S),s=4,l.interrupt?i:v):r(S)}function E(S){return S===45?(t.consume(S),l.interrupt?i:v):r(S)}function k(S){const we="CDATA[";return S===we.charCodeAt(d++)?(t.consume(S),d===we.length?l.interrupt?i:V:k):r(S)}function C(S){return Ht(S)?(t.consume(S),u=String.fromCharCode(S),O):r(S)}function O(S){if(S===null||S===47||S===62||et(S)){const we=S===47,Me=u.toLowerCase();return!we&&!c&&zd.includes(Me)?(s=1,l.interrupt?i(S):V(S)):AE.includes(u.toLowerCase())?(s=6,we?(t.consume(S),N):l.interrupt?i(S):V(S)):(s=7,l.interrupt&&!l.parser.lazy[l.now().line]?r(S):c?P(S):z(S))}return S===45||Dt(S)?(t.consume(S),u+=String.fromCharCode(S),O):r(S)}function N(S){return S===62?(t.consume(S),l.interrupt?i:V):r(S)}function P(S){return Ue(S)?(t.consume(S),P):w(S)}function z(S){return S===47?(t.consume(S),w):S===58||S===95||Ht(S)?(t.consume(S),W):Ue(S)?(t.consume(S),z):w(S)}function W(S){return S===45||S===46||S===58||S===95||Dt(S)?(t.consume(S),W):X(S)}function X(S){return S===61?(t.consume(S),A):Ue(S)?(t.consume(S),X):z(S)}function A(S){return S===null||S===60||S===61||S===62||S===96?r(S):S===34||S===39?(t.consume(S),p=S,Z):Ue(S)?(t.consume(S),A):ee(S)}function Z(S){return S===p?(t.consume(S),p=null,H):S===null||Te(S)?r(S):(t.consume(S),Z)}function ee(S){return S===null||S===34||S===39||S===47||S===60||S===61||S===62||S===96||et(S)?X(S):(t.consume(S),ee)}function H(S){return S===47||S===62||Ue(S)?z(S):r(S)}function w(S){return S===62?(t.consume(S),j):r(S)}function j(S){return S===null||Te(S)?V(S):Ue(S)?(t.consume(S),j):r(S)}function V(S){return S===45&&s===2?(t.consume(S),ce):S===60&&s===1?(t.consume(S),_e):S===62&&s===4?(t.consume(S),I):S===63&&s===3?(t.consume(S),v):S===93&&s===5?(t.consume(S),ue):Te(S)&&(s===6||s===7)?(t.exit("htmlFlowData"),t.check(OE,B,ae)(S)):S===null||Te(S)?(t.exit("htmlFlowData"),ae(S)):(t.consume(S),V)}function ae(S){return t.check(IE,Y,B)(S)}function Y(S){return t.enter("lineEnding"),t.consume(S),t.exit("lineEnding"),$}function $(S){return S===null||Te(S)?ae(S):(t.enter("htmlFlowData"),V(S))}function ce(S){return S===45?(t.consume(S),v):V(S)}function _e(S){return S===47?(t.consume(S),u="",K):V(S)}function K(S){if(S===62){const we=u.toLowerCase();return zd.includes(we)?(t.consume(S),I):V(S)}return Ht(S)&&u.length<8?(t.consume(S),u+=String.fromCharCode(S),K):V(S)}function ue(S){return S===93?(t.consume(S),v):V(S)}function v(S){return S===62?(t.consume(S),I):S===45&&s===2?(t.consume(S),v):V(S)}function I(S){return S===null||Te(S)?(t.exit("htmlFlowData"),B(S)):(t.consume(S),I)}function B(S){return t.exit("htmlFlow"),i(S)}}function DE(t,i,r){const l=this;return s;function s(u){return Te(u)?(t.enter("lineEnding"),t.consume(u),t.exit("lineEnding"),c):r(u)}function c(u){return l.parser.lazy[l.now().line]?r(u):i(u)}}function PE(t,i,r){return l;function l(s){return t.enter("lineEnding"),t.consume(s),t.exit("lineEnding"),t.attempt(Oo,i,r)}}const zE={name:"htmlText",tokenize:FE};function FE(t,i,r){const l=this;let s,c,u;return d;function d(v){return t.enter("htmlText"),t.enter("htmlTextData"),t.consume(v),p}function p(v){return v===33?(t.consume(v),g):v===47?(t.consume(v),X):v===63?(t.consume(v),z):Ht(v)?(t.consume(v),ee):r(v)}function g(v){return v===45?(t.consume(v),y):v===91?(t.consume(v),c=0,k):Ht(v)?(t.consume(v),P):r(v)}function y(v){return v===45?(t.consume(v),E):r(v)}function h(v){return v===null?r(v):v===45?(t.consume(v),b):Te(v)?(u=h,_e(v)):(t.consume(v),h)}function b(v){return v===45?(t.consume(v),E):h(v)}function E(v){return v===62?ce(v):v===45?b(v):h(v)}function k(v){const I="CDATA[";return v===I.charCodeAt(c++)?(t.consume(v),c===I.length?C:k):r(v)}function C(v){return v===null?r(v):v===93?(t.consume(v),O):Te(v)?(u=C,_e(v)):(t.consume(v),C)}function O(v){return v===93?(t.consume(v),N):C(v)}function N(v){return v===62?ce(v):v===93?(t.consume(v),N):C(v)}function P(v){return v===null||v===62?ce(v):Te(v)?(u=P,_e(v)):(t.consume(v),P)}function z(v){return v===null?r(v):v===63?(t.consume(v),W):Te(v)?(u=z,_e(v)):(t.consume(v),z)}function W(v){return v===62?ce(v):z(v)}function X(v){return Ht(v)?(t.consume(v),A):r(v)}function A(v){return v===45||Dt(v)?(t.consume(v),A):Z(v)}function Z(v){return Te(v)?(u=Z,_e(v)):Ue(v)?(t.consume(v),Z):ce(v)}function ee(v){return v===45||Dt(v)?(t.consume(v),ee):v===47||v===62||et(v)?H(v):r(v)}function H(v){return v===47?(t.consume(v),ce):v===58||v===95||Ht(v)?(t.consume(v),w):Te(v)?(u=H,_e(v)):Ue(v)?(t.consume(v),H):ce(v)}function w(v){return v===45||v===46||v===58||v===95||Dt(v)?(t.consume(v),w):j(v)}function j(v){return v===61?(t.consume(v),V):Te(v)?(u=j,_e(v)):Ue(v)?(t.consume(v),j):H(v)}function V(v){return v===null||v===60||v===61||v===62||v===96?r(v):v===34||v===39?(t.consume(v),s=v,ae):Te(v)?(u=V,_e(v)):Ue(v)?(t.consume(v),V):(t.consume(v),Y)}function ae(v){return v===s?(t.consume(v),s=void 0,$):v===null?r(v):Te(v)?(u=ae,_e(v)):(t.consume(v),ae)}function Y(v){return v===null||v===34||v===39||v===60||v===61||v===96?r(v):v===47||v===62||et(v)?H(v):(t.consume(v),Y)}function $(v){return v===47||v===62||et(v)?H(v):r(v)}function ce(v){return v===62?(t.consume(v),t.exit("htmlTextData"),t.exit("htmlText"),i):r(v)}function _e(v){return t.exit("htmlTextData"),t.enter("lineEnding"),t.consume(v),t.exit("lineEnding"),K}function K(v){return Ue(v)?je(t,ue,"linePrefix",l.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(v):ue(v)}function ue(v){return t.enter("htmlTextData"),u(v)}}const Du={name:"labelEnd",resolveAll:HE,resolveTo:KE,tokenize:GE},BE={tokenize:WE},UE={tokenize:jE},$E={tokenize:VE};function HE(t){let i=-1;const r=[];for(;++i=3&&(g===null||Te(g))?(t.exit("thematicBreak"),i(g)):r(g)}function p(g){return g===s?(t.consume(g),l++,p):(t.exit("thematicBreakSequence"),Ue(g)?je(t,d,"whitespace")(g):d(g))}}const Qt={continuation:{tokenize:rb},exit:ob,name:"list",tokenize:nb},eb={partial:!0,tokenize:lb},tb={partial:!0,tokenize:ib};function nb(t,i,r){const l=this,s=l.events[l.events.length-1];let c=s&&s[1].type==="linePrefix"?s[2].sliceSerialize(s[1],!0).length:0,u=0;return d;function d(E){const k=l.containerState.type||(E===42||E===43||E===45?"listUnordered":"listOrdered");if(k==="listUnordered"?!l.containerState.marker||E===l.containerState.marker:Eu(E)){if(l.containerState.type||(l.containerState.type=k,t.enter(k,{_container:!0})),k==="listUnordered")return t.enter("listItemPrefix"),E===42||E===45?t.check(Zl,r,g)(E):g(E);if(!l.interrupt||E===49)return t.enter("listItemPrefix"),t.enter("listItemValue"),p(E)}return r(E)}function p(E){return Eu(E)&&++u<10?(t.consume(E),p):(!l.interrupt||u<2)&&(l.containerState.marker?E===l.containerState.marker:E===41||E===46)?(t.exit("listItemValue"),g(E)):r(E)}function g(E){return t.enter("listItemMarker"),t.consume(E),t.exit("listItemMarker"),l.containerState.marker=l.containerState.marker||E,t.check(Oo,l.interrupt?r:y,t.attempt(eb,b,h))}function y(E){return l.containerState.initialBlankLine=!0,c++,b(E)}function h(E){return Ue(E)?(t.enter("listItemPrefixWhitespace"),t.consume(E),t.exit("listItemPrefixWhitespace"),b):r(E)}function b(E){return l.containerState.size=c+l.sliceSerialize(t.exit("listItemPrefix"),!0).length,i(E)}}function rb(t,i,r){const l=this;return l.containerState._closeFlow=void 0,t.check(Oo,s,c);function s(d){return l.containerState.furtherBlankLines=l.containerState.furtherBlankLines||l.containerState.initialBlankLine,je(t,i,"listItemIndent",l.containerState.size+1)(d)}function c(d){return l.containerState.furtherBlankLines||!Ue(d)?(l.containerState.furtherBlankLines=void 0,l.containerState.initialBlankLine=void 0,u(d)):(l.containerState.furtherBlankLines=void 0,l.containerState.initialBlankLine=void 0,t.attempt(tb,i,u)(d))}function u(d){return l.containerState._closeFlow=!0,l.interrupt=void 0,je(t,t.attempt(Qt,i,r),"linePrefix",l.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(d)}}function ib(t,i,r){const l=this;return je(t,s,"listItemIndent",l.containerState.size+1);function s(c){const u=l.events[l.events.length-1];return u&&u[1].type==="listItemIndent"&&u[2].sliceSerialize(u[1],!0).length===l.containerState.size?i(c):r(c)}}function ob(t){t.exit(this.containerState.type)}function lb(t,i,r){const l=this;return je(t,s,"listItemPrefixWhitespace",l.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function s(c){const u=l.events[l.events.length-1];return!Ue(c)&&u&&u[1].type==="listItemPrefixWhitespace"?i(c):r(c)}}const Fd={name:"setextUnderline",resolveTo:ab,tokenize:sb};function ab(t,i){let r=t.length,l,s,c;for(;r--;)if(t[r][0]==="enter"){if(t[r][1].type==="content"){l=r;break}t[r][1].type==="paragraph"&&(s=r)}else t[r][1].type==="content"&&t.splice(r,1),!c&&t[r][1].type==="definition"&&(c=r);const u={type:"setextHeading",start:{...t[l][1].start},end:{...t[t.length-1][1].end}};return t[s][1].type="setextHeadingText",c?(t.splice(s,0,["enter",u,i]),t.splice(c+1,0,["exit",t[l][1],i]),t[l][1].end={...t[c][1].end}):t[l][1]=u,t.push(["exit",u,i]),t}function sb(t,i,r){const l=this;let s;return c;function c(g){let y=l.events.length,h;for(;y--;)if(l.events[y][1].type!=="lineEnding"&&l.events[y][1].type!=="linePrefix"&&l.events[y][1].type!=="content"){h=l.events[y][1].type==="paragraph";break}return!l.parser.lazy[l.now().line]&&(l.interrupt||h)?(t.enter("setextHeadingLine"),s=g,u(g)):r(g)}function u(g){return t.enter("setextHeadingLineSequence"),d(g)}function d(g){return g===s?(t.consume(g),d):(t.exit("setextHeadingLineSequence"),Ue(g)?je(t,p,"lineSuffix")(g):p(g))}function p(g){return g===null||Te(g)?(t.exit("setextHeadingLine"),i(g)):r(g)}}const ub={tokenize:cb};function cb(t){const i=this,r=t.attempt(Oo,l,t.attempt(this.parser.constructs.flowInitial,s,je(t,t.attempt(this.parser.constructs.flow,s,t.attempt(mE,s)),"linePrefix")));return r;function l(c){if(c===null){t.consume(c);return}return t.enter("lineEndingBlank"),t.consume(c),t.exit("lineEndingBlank"),i.currentConstruct=void 0,r}function s(c){if(c===null){t.consume(c);return}return t.enter("lineEnding"),t.consume(c),t.exit("lineEnding"),i.currentConstruct=void 0,r}}const fb={resolveAll:Yp()},db=qp("string"),pb=qp("text");function qp(t){return{resolveAll:Yp(t==="text"?gb:void 0),tokenize:i};function i(r){const l=this,s=this.parser.constructs[t],c=r.attempt(s,u,d);return u;function u(y){return g(y)?c(y):d(y)}function d(y){if(y===null){r.consume(y);return}return r.enter("data"),r.consume(y),p}function p(y){return g(y)?(r.exit("data"),c(y)):(r.consume(y),p)}function g(y){if(y===null)return!0;const h=s[y];let b=-1;if(h)for(;++b-1){const d=u[0];typeof d=="string"?u[0]=d.slice(l):u.shift()}c>0&&u.push(t[s].slice(0,c))}return u}function Tb(t,i){let r=-1;const l=[];let s;for(;++r<\/script>",e=e.removeChild(e.firstChild)):typeof a.is=="string"?e=_.createElement(o,{is:a.is}):(e=_.createElement(o),o==="select"&&(_=e,a.multiple?_.multiple=!0:a.size&&(_.size=a.size))):e=_.createElementNS(e,o),e[Dn]=n,e[eo]=a,Lf(e,n,!1,!1),n.stateNode=e;e:{switch(_=un(o,a),o){case"dialog":it("cancel",e),it("close",e),f=a;break;case"iframe":case"object":case"embed":it("load",e),f=a;break;case"video":case"audio":for(f=0;fxi&&(n.flags|=128,a=!0,co(m,!1),n.lanes=4194304)}else{if(!a)if(e=gl(_),e!==null){if(n.flags|=128,a=!0,o=e.updateQueue,o!==null&&(n.updateQueue=o,n.flags|=4),co(m,!0),m.tail===null&&m.tailMode==="hidden"&&!_.alternate&&!at)return Mt(n),null}else 2*st()-m.renderingStartTime>xi&&o!==1073741824&&(n.flags|=128,a=!0,co(m,!1),n.lanes=4194304);m.isBackwards?(_.sibling=n.child,n.child=_):(o=m.last,o!==null?o.sibling=_:n.child=_,m.last=_)}return m.tail!==null?(n=m.tail,m.rendering=n,m.tail=n.sibling,m.renderingStartTime=st(),n.sibling=null,o=ct.current,nt(ct,a?o&1|2:o&1),n):(Mt(n),null);case 22:case 23:return Ls(),a=n.memoizedState!==null,e!==null&&e.memoizedState!==null!==a&&(n.flags|=8192),a&&(n.mode&1)!==0?(rn&1073741824)!==0&&(Mt(n),n.subtreeFlags&6&&(n.flags|=8192)):Mt(n),null;case 24:return null;case 25:return null}throw Error(r(156,n.tag))}function ah(e,n){switch(Ka(n),n.tag){case 1:return Wt(n.type)&&rl(),e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 3:return vi(),ot(Gt),ot(Ot),ns(),e=n.flags,(e&65536)!==0&&(e&128)===0?(n.flags=e&-65537|128,n):null;case 5:return es(n),null;case 13:if(ot(ct),e=n.memoizedState,e!==null&&e.dehydrated!==null){if(n.alternate===null)throw Error(r(340));yi()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 19:return ot(ct),null;case 4:return vi(),null;case 10:return Ya(n.type._context),null;case 22:case 23:return Ls(),null;case 24:return null;default:return null}}var wl=!1,Lt=!1,sh=typeof WeakSet=="function"?WeakSet:Set,ye=null;function wi(e,n){var o=e.ref;if(o!==null)if(typeof o=="function")try{o(null)}catch(a){pt(e,n,a)}else o.current=null}function ks(e,n,o){try{o()}catch(a){pt(e,n,a)}}var zf=!1;function uh(e,n){if(La=Ko,e=gc(),Na(e)){if("selectionStart"in e)var o={start:e.selectionStart,end:e.selectionEnd};else e:{o=(o=e.ownerDocument)&&o.defaultView||window;var a=o.getSelection&&o.getSelection();if(a&&a.rangeCount!==0){o=a.anchorNode;var f=a.anchorOffset,m=a.focusNode;a=a.focusOffset;try{o.nodeType,m.nodeType}catch{o=null;break e}var _=0,S=-1,A=-1,B=0,Y=0,J=e,q=null;t:for(;;){for(var pe;J!==o||f!==0&&J.nodeType!==3||(S=_+f),J!==m||a!==0&&J.nodeType!==3||(A=_+a),J.nodeType===3&&(_+=J.nodeValue.length),(pe=J.firstChild)!==null;)q=J,J=pe;for(;;){if(J===e)break t;if(q===o&&++B===f&&(S=_),q===m&&++Y===a&&(A=_),(pe=J.nextSibling)!==null)break;J=q,q=J.parentNode}J=pe}o=S===-1||A===-1?null:{start:S,end:A}}else o=null}o=o||{start:0,end:0}}else o=null;for(Da={focusedElem:e,selectionRange:o},Ko=!1,ye=n;ye!==null;)if(n=ye,e=n.child,(n.subtreeFlags&1028)!==0&&e!==null)e.return=n,ye=e;else for(;ye!==null;){n=ye;try{var Ee=n.alternate;if((n.flags&1024)!==0)switch(n.tag){case 0:case 11:case 15:break;case 1:if(Ee!==null){var be=Ee.memoizedProps,ht=Ee.memoizedState,D=n.stateNode,I=D.getSnapshotBeforeUpdate(n.elementType===n.type?be:Sn(n.type,be),ht);D.__reactInternalSnapshotBeforeUpdate=I}break;case 3:var z=n.stateNode.containerInfo;z.nodeType===1?z.textContent="":z.nodeType===9&&z.documentElement&&z.removeChild(z.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(r(163))}}catch(oe){pt(n,n.return,oe)}if(e=n.sibling,e!==null){e.return=n.return,ye=e;break}ye=n.return}return Ee=zf,zf=!1,Ee}function fo(e,n,o){var a=n.updateQueue;if(a=a!==null?a.lastEffect:null,a!==null){var f=a=a.next;do{if((f.tag&e)===e){var m=f.destroy;f.destroy=void 0,m!==void 0&&ks(n,o,m)}f=f.next}while(f!==a)}}function Sl(e,n){if(n=n.updateQueue,n=n!==null?n.lastEffect:null,n!==null){var o=n=n.next;do{if((o.tag&e)===e){var a=o.create;o.destroy=a()}o=o.next}while(o!==n)}}function ws(e){var n=e.ref;if(n!==null){var o=e.stateNode;switch(e.tag){case 5:e=o;break;default:e=o}typeof n=="function"?n(e):n.current=e}}function Ff(e){var n=e.alternate;n!==null&&(e.alternate=null,Ff(n)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(n=e.stateNode,n!==null&&(delete n[Dn],delete n[eo],delete n[Ba],delete n[Wm],delete n[jm])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Bf(e){return e.tag===5||e.tag===3||e.tag===4}function Uf(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Bf(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Ss(e,n,o){var a=e.tag;if(a===5||a===6)e=e.stateNode,n?o.nodeType===8?o.parentNode.insertBefore(e,n):o.insertBefore(e,n):(o.nodeType===8?(n=o.parentNode,n.insertBefore(e,o)):(n=o,n.appendChild(e)),o=o._reactRootContainer,o!=null||n.onclick!==null||(n.onclick=tl));else if(a!==4&&(e=e.child,e!==null))for(Ss(e,n,o),e=e.sibling;e!==null;)Ss(e,n,o),e=e.sibling}function xs(e,n,o){var a=e.tag;if(a===5||a===6)e=e.stateNode,n?o.insertBefore(e,n):o.appendChild(e);else if(a!==4&&(e=e.child,e!==null))for(xs(e,n,o),e=e.sibling;e!==null;)xs(e,n,o),e=e.sibling}var At=null,xn=!1;function Er(e,n,o){for(o=o.child;o!==null;)$f(e,n,o),o=o.sibling}function $f(e,n,o){if(Be&&typeof Be.onCommitFiberUnmount=="function")try{Be.onCommitFiberUnmount(ze,o)}catch{}switch(o.tag){case 5:Lt||wi(o,n);case 6:var a=At,f=xn;At=null,Er(e,n,o),At=a,xn=f,At!==null&&(xn?(e=At,o=o.stateNode,e.nodeType===8?e.parentNode.removeChild(o):e.removeChild(o)):At.removeChild(o.stateNode));break;case 18:At!==null&&(xn?(e=At,o=o.stateNode,e.nodeType===8?Fa(e.parentNode,o):e.nodeType===1&&Fa(e,o),Ki(e)):Fa(At,o.stateNode));break;case 4:a=At,f=xn,At=o.stateNode.containerInfo,xn=!0,Er(e,n,o),At=a,xn=f;break;case 0:case 11:case 14:case 15:if(!Lt&&(a=o.updateQueue,a!==null&&(a=a.lastEffect,a!==null))){f=a=a.next;do{var m=f,_=m.destroy;m=m.tag,_!==void 0&&((m&2)!==0||(m&4)!==0)&&ks(o,n,_),f=f.next}while(f!==a)}Er(e,n,o);break;case 1:if(!Lt&&(wi(o,n),a=o.stateNode,typeof a.componentWillUnmount=="function"))try{a.props=o.memoizedProps,a.state=o.memoizedState,a.componentWillUnmount()}catch(S){pt(o,n,S)}Er(e,n,o);break;case 21:Er(e,n,o);break;case 22:o.mode&1?(Lt=(a=Lt)||o.memoizedState!==null,Er(e,n,o),Lt=a):Er(e,n,o);break;default:Er(e,n,o)}}function Hf(e){var n=e.updateQueue;if(n!==null){e.updateQueue=null;var o=e.stateNode;o===null&&(o=e.stateNode=new sh),n.forEach(function(a){var f=Eh.bind(null,e,a);o.has(a)||(o.add(a),a.then(f,f))})}}function Nn(e,n){var o=n.deletions;if(o!==null)for(var a=0;af&&(f=_),a&=~m}if(a=f,a=st()-a,a=(120>a?120:480>a?480:1080>a?1080:1920>a?1920:3e3>a?3e3:4320>a?4320:1960*fh(a/1960))-a,10e?16:e,_r===null)var a=!1;else{if(e=_r,_r=null,Al=0,(qe&6)!==0)throw Error(r(331));var f=qe;for(qe|=4,ye=e.current;ye!==null;){var m=ye,_=m.child;if((ye.flags&16)!==0){var S=m.deletions;if(S!==null){for(var A=0;Ast()-Cs?Wr(e,0):Ts|=o),qt(e,n)}function td(e,n){n===0&&((e.mode&1)===0?n=1:(n=Ir,Ir<<=1,(Ir&130023424)===0&&(Ir=4194304)));var o=Ut();e=Xn(e,n),e!==null&&(sr(e,n,o),qt(e,o))}function yh(e){var n=e.memoizedState,o=0;n!==null&&(o=n.retryLane),td(e,o)}function Eh(e,n){var o=0;switch(e.tag){case 13:var a=e.stateNode,f=e.memoizedState;f!==null&&(o=f.retryLane);break;case 19:a=e.stateNode;break;default:throw Error(r(314))}a!==null&&a.delete(n),td(e,o)}var nd;nd=function(e,n,o){if(e!==null)if(e.memoizedProps!==n.pendingProps||Gt.current)jt=!0;else{if((e.lanes&o)===0&&(n.flags&128)===0)return jt=!1,oh(e,n,o);jt=(e.flags&131072)!==0}else jt=!1,at&&(n.flags&1048576)!==0&&Lc(n,al,n.index);switch(n.lanes=0,n.tag){case 2:var a=n.type;kl(e,n),e=n.pendingProps;var f=gi(n,Ot.current);_i(n,o),f=os(null,n,a,e,f,o);var m=ls();return n.flags|=1,typeof f=="object"&&f!==null&&typeof f.render=="function"&&f.$$typeof===void 0?(n.tag=1,n.memoizedState=null,n.updateQueue=null,Wt(a)?(m=!0,il(n)):m=!1,n.memoizedState=f.state!==null&&f.state!==void 0?f.state:null,Xa(n),f.updater=_l,n.stateNode=f,f._reactInternals=n,ds(n,a,e,o),n=hs(null,n,a,!0,m,o)):(n.tag=0,at&&m&&Ha(n),Bt(null,n,f,o),n=n.child),n;case 16:a=n.elementType;e:{switch(kl(e,n),e=n.pendingProps,f=a._init,a=f(a._payload),n.type=a,f=n.tag=_h(a),e=Sn(a,e),f){case 0:n=ms(null,n,a,e,o);break e;case 1:n=Cf(null,n,a,e,o);break e;case 11:n=wf(null,n,a,e,o);break e;case 14:n=Sf(null,n,a,Sn(a.type,e),o);break e}throw Error(r(306,a,""))}return n;case 0:return a=n.type,f=n.pendingProps,f=n.elementType===a?f:Sn(a,f),ms(e,n,a,f,o);case 1:return a=n.type,f=n.pendingProps,f=n.elementType===a?f:Sn(a,f),Cf(e,n,a,f,o);case 3:e:{if(Af(n),e===null)throw Error(r(387));a=n.pendingProps,m=n.memoizedState,f=m.element,Kc(e,n),pl(n,a,null,o);var _=n.memoizedState;if(a=_.element,m.isDehydrated)if(m={element:a,isDehydrated:!1,cache:_.cache,pendingSuspenseBoundaries:_.pendingSuspenseBoundaries,transitions:_.transitions},n.updateQueue.baseState=m,n.memoizedState=m,n.flags&256){f=ki(Error(r(423)),n),n=Rf(e,n,a,o,f);break e}else if(a!==f){f=ki(Error(r(424)),n),n=Rf(e,n,a,o,f);break e}else for(nn=dr(n.stateNode.containerInfo.firstChild),tn=n,at=!0,wn=null,o=$c(n,null,a,o),n.child=o;o;)o.flags=o.flags&-3|4096,o=o.sibling;else{if(yi(),a===f){n=er(e,n,o);break e}Bt(e,n,a,o)}n=n.child}return n;case 5:return jc(n),e===null&&Wa(n),a=n.type,f=n.pendingProps,m=e!==null?e.memoizedProps:null,_=f.children,Pa(a,f)?_=null:m!==null&&Pa(a,m)&&(n.flags|=32),Tf(e,n),Bt(e,n,_,o),n.child;case 6:return e===null&&Wa(n),null;case 13:return Of(e,n,o);case 4:return Ja(n,n.stateNode.containerInfo),a=n.pendingProps,e===null?n.child=Ei(n,null,a,o):Bt(e,n,a,o),n.child;case 11:return a=n.type,f=n.pendingProps,f=n.elementType===a?f:Sn(a,f),wf(e,n,a,f,o);case 7:return Bt(e,n,n.pendingProps,o),n.child;case 8:return Bt(e,n,n.pendingProps.children,o),n.child;case 12:return Bt(e,n,n.pendingProps.children,o),n.child;case 10:e:{if(a=n.type._context,f=n.pendingProps,m=n.memoizedProps,_=f.value,nt(cl,a._currentValue),a._currentValue=_,m!==null)if(kn(m.value,_)){if(m.children===f.children&&!Gt.current){n=er(e,n,o);break e}}else for(m=n.child,m!==null&&(m.return=n);m!==null;){var S=m.dependencies;if(S!==null){_=m.child;for(var A=S.firstContext;A!==null;){if(A.context===a){if(m.tag===1){A=Jn(-1,o&-o),A.tag=2;var B=m.updateQueue;if(B!==null){B=B.shared;var Y=B.pending;Y===null?A.next=A:(A.next=Y.next,Y.next=A),B.pending=A}}m.lanes|=o,A=m.alternate,A!==null&&(A.lanes|=o),Qa(m.return,o,n),S.lanes|=o;break}A=A.next}}else if(m.tag===10)_=m.type===n.type?null:m.child;else if(m.tag===18){if(_=m.return,_===null)throw Error(r(341));_.lanes|=o,S=_.alternate,S!==null&&(S.lanes|=o),Qa(_,o,n),_=m.sibling}else _=m.child;if(_!==null)_.return=m;else for(_=m;_!==null;){if(_===n){_=null;break}if(m=_.sibling,m!==null){m.return=_.return,_=m;break}_=_.return}m=_}Bt(e,n,f.children,o),n=n.child}return n;case 9:return f=n.type,a=n.pendingProps.children,_i(n,o),f=pn(f),a=a(f),n.flags|=1,Bt(e,n,a,o),n.child;case 14:return a=n.type,f=Sn(a,n.pendingProps),f=Sn(a.type,f),Sf(e,n,a,f,o);case 15:return xf(e,n,n.type,n.pendingProps,o);case 17:return a=n.type,f=n.pendingProps,f=n.elementType===a?f:Sn(a,f),kl(e,n),n.tag=1,Wt(a)?(e=!0,il(n)):e=!1,_i(n,o),hf(n,a,f),ds(n,a,f,o),hs(null,n,a,!0,e,o);case 19:return Mf(e,n,o);case 22:return Nf(e,n,o)}throw Error(r(156,n.tag))};function rd(e,n){return zo(e,n)}function bh(e,n,o,a){this.tag=e,this.key=o,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=a,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function hn(e,n,o,a){return new bh(e,n,o,a)}function Ps(e){return e=e.prototype,!(!e||!e.isReactComponent)}function _h(e){if(typeof e=="function")return Ps(e)?1:0;if(e!=null){if(e=e.$$typeof,e===L)return 11;if(e===U)return 14}return 2}function wr(e,n){var o=e.alternate;return o===null?(o=hn(e.tag,n,e.key,e.mode),o.elementType=e.elementType,o.type=e.type,o.stateNode=e.stateNode,o.alternate=e,e.alternate=o):(o.pendingProps=n,o.type=e.type,o.flags=0,o.subtreeFlags=0,o.deletions=null),o.flags=e.flags&14680064,o.childLanes=e.childLanes,o.lanes=e.lanes,o.child=e.child,o.memoizedProps=e.memoizedProps,o.memoizedState=e.memoizedState,o.updateQueue=e.updateQueue,n=e.dependencies,o.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},o.sibling=e.sibling,o.index=e.index,o.ref=e.ref,o}function Ml(e,n,o,a,f,m){var _=2;if(a=e,typeof e=="function")Ps(e)&&(_=1);else if(typeof e=="string")_=5;else e:switch(e){case Z:return Vr(o.children,f,m,n);case ee:_=8,f|=8;break;case ne:return e=hn(12,o,n,f|2),e.elementType=ne,e.lanes=m,e;case X:return e=hn(13,o,n,f),e.elementType=X,e.lanes=m,e;case V:return e=hn(19,o,n,f),e.elementType=V,e.lanes=m,e;case fe:return Ll(o,f,m,n);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case M:_=10;break e;case W:_=9;break e;case L:_=11;break e;case U:_=14;break e;case ue:_=16,a=null;break e}throw Error(r(130,e==null?e:typeof e,""))}return n=hn(_,o,n,f),n.elementType=e,n.type=a,n.lanes=m,n}function Vr(e,n,o,a){return e=hn(7,e,a,n),e.lanes=o,e}function Ll(e,n,o,a){return e=hn(22,e,a,n),e.elementType=fe,e.lanes=o,e.stateNode={isHidden:!1},e}function zs(e,n,o){return e=hn(6,e,null,n),e.lanes=o,e}function Fs(e,n,o){return n=hn(4,e.children!==null?e.children:[],e.key,n),n.lanes=o,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}function vh(e,n,o,a,f){this.tag=n,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ar(0),this.expirationTimes=ar(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ar(0),this.identifierPrefix=a,this.onRecoverableError=f,this.mutableSourceEagerHydrationData=null}function Bs(e,n,o,a,f,m,_,S,A){return e=new vh(e,n,o,S,A),n===1?(n=1,m===!0&&(n|=8)):n=0,m=hn(3,null,null,n),e.current=m,m.stateNode=e,m.memoizedState={element:a,isDehydrated:o,cache:null,transitions:null,pendingSuspenseBoundaries:null},Xa(m),e}function kh(e,n,o){var a=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(i){console.error(i)}}return t(),Ws.exports=Ph(),Ws.exports}var yd;function Fh(){if(yd)return $l;yd=1;var t=zh();return $l.createRoot=t.createRoot,$l.hydrateRoot=t.hydrateRoot,$l}var Bh=Fh();const Uh=Ao(Bh);class $h{constructor(){Ti(this,"ws",null);Ti(this,"handlers",new Set);Ti(this,"queue",[]);Ti(this,"closedByUser",!1);Ti(this,"onStatus")}connect(){var l;this.closedByUser=!1,(l=this.onStatus)==null||l.call(this,"connecting");const i=location.protocol==="https:"?"wss:":"ws:",r=new WebSocket(`${i}//${location.host}/ws`);r.onopen=()=>{var s;(s=this.onStatus)==null||s.call(this,"open");for(const c of this.queue)r.send(c);this.queue=[]},r.onmessage=s=>{try{const c=JSON.parse(s.data);for(const u of this.handlers)u(c)}catch{}},r.onclose=()=>{var s;(s=this.onStatus)==null||s.call(this,"closed"),this.closedByUser||setTimeout(()=>this.connect(),1500)},this.ws=r}send(i){var l;const r=JSON.stringify(i);((l=this.ws)==null?void 0:l.readyState)===WebSocket.OPEN?this.ws.send(r):this.queue.push(r)}close(){var i;this.closedByUser=!0,(i=this.ws)==null||i.close()}subscribe(i){return this.handlers.add(i),()=>this.handlers.delete(i)}}const Sp="oxagenttwo.options",Ed="oxagenttwo.session",bd="oxagenttwo.systemPrompt";function Hh(){const t={think:!0,tools:!0,temperature:.7,numPredict:2048,provider:"ollama",openrouterModel:"anthropic/claude-sonnet-4.5"};try{const i=localStorage.getItem(Sp);if(i)return{...t,...JSON.parse(i)}}catch{}return t}function Kh(){const t=de.useRef(null),[i,r]=de.useState("connecting"),[l,s]=de.useState([]),[c,u]=de.useState(()=>localStorage.getItem(Ed)),[d,p]=de.useState([]),[g,y]=de.useState(!1),[h,b]=de.useState({}),[E,k]=de.useState(Hh),[N,R]=de.useState(()=>localStorage.getItem(bd)??""),[x,F]=de.useState(null),P=de.useRef(!1);de.useEffect(()=>{const W=new $h;t.current=W,W.onStatus=r;const L=W.subscribe(X=>{const V=X.type;if(V==="user-message"){const U=X.message;p(ue=>ue.some(fe=>fe.id===U.id)?ue:[...ue,U])}else if(V==="assistant-start"){const U=X.message;p(ue=>[...ue,{...U,content:"",thinking:""}])}else if(V==="thinking"){const U=X.text;p(ue=>ue.map(fe=>fe.id===X.messageId?{...fe,thinking:(fe.thinking??"")+U}:fe))}else if(V==="token"){const U=X.text;p(ue=>ue.map(fe=>fe.id===X.messageId?{...fe,content:fe.content+U}:fe))}else V==="tool-call"?b(U=>({...U,[X.messageId]:[...U[X.messageId]??[],{name:X.name,args:X.args}]})):V==="tool-result"?b(U=>{const ue=U[X.messageId]??[],fe=[...ue].reverse().findIndex(v=>v.name===X.name&&v.ok===void 0);if(fe===-1)return U;const H=ue.length-1-fe,ae=ue.map((v,O)=>O===H?{...v,ok:X.ok,durationMs:X.durationMs}:v);return{...U,[X.messageId]:ae}}):V==="done"||V==="error"?(P.current=!1,y(!1)):(V==="sessions-changed"||V==="session-deleted")&&G()});return W.connect(),()=>{L(),W.close()}},[]);const G=de.useCallback(async()=>{const L=await(await fetch("/api/sessions")).json();s(L),u(X=>{var V;return X??((V=L[0])==null?void 0:V.id)??null})},[]);de.useEffect(()=>{G(),fetch("/api/model").then(W=>W.json()).then(F).catch(()=>F({ok:!1,error:"Ollama nicht erreichbar"}))},[G]),de.useEffect(()=>{if(!c){p([]);return}localStorage.setItem(Ed,c),P.current=!1,y(!1),fetch(`/api/sessions/${c}/messages`).then(W=>W.json()).then(W=>p(Array.isArray(W)?W:[])).catch(()=>p([]))},[c]);const Q=de.useCallback(W=>{k(L=>{const X={...L,...W};return localStorage.setItem(Sp,JSON.stringify(X)),X})},[]),C=de.useCallback(W=>{R(W),localStorage.setItem(bd,W)},[]),Z=de.useCallback((W,L=[])=>{var X;!W.trim()&&L.length===0||P.current||!c||(P.current=!0,y(!0),(X=t.current)==null||X.send({type:"chat",sessionId:c,content:W,images:L,options:E,systemPrompt:N}))},[c,E,N]),ee=de.useCallback(()=>{var W;(W=t.current)==null||W.send({type:"abort"})},[]),ne=de.useCallback(async()=>{const L=await(await fetch("/api/sessions",{method:"POST"})).json();await G(),u(L.id)},[G]),M=de.useCallback(async W=>{await fetch(`/api/sessions/${W}`,{method:"DELETE"}),s(L=>L.filter(X=>X.id!==W)),u(L=>L===W?null:L),await G()},[G]);return{status:i,sessions:l,activeId:c,setActiveId:u,messages:d,streaming:g,toolEvents:h,sendMessage:Z,abort:ee,newSession:ne,deleteSession:M,options:E,setOptions:Q,systemPrompt:N,setSystemPrompt:C,modelInfo:x}}function Gh({onTranscript:t,onQueueDrained:i}){const[r,l]=de.useState(!1),[s,c]=de.useState(!1),[u,d]=de.useState(!1),[p,g]=de.useState(null),y=de.useRef(null),h=de.useRef([]),b=de.useRef(null),E=de.useRef(null),k=de.useRef([]),N=de.useRef(null),R=de.useRef(!1),x=de.useRef(null),F=de.useRef(i);F.current=i;const P=de.useRef(t);P.current=t;const G=de.useCallback(async()=>{if(R.current)return;const ne=k.current.shift();if(ne===void 0){d(!1),F.current();return}R.current=!0,d(!0);try{x.current=new AbortController;const M=await fetch("/api/tts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:ne}),signal:x.current.signal});if(!M.ok)throw new Error(`TTS HTTP ${M.status}`);const W=await M.blob(),L=new Audio(URL.createObjectURL(W));N.current=L,await new Promise(X=>{L.onended=()=>X(),L.onerror=()=>X(),L.play().catch(()=>X())}),URL.revokeObjectURL(L.src)}catch(M){M instanceof DOMException&&M.name==="AbortError"||g(M instanceof Error?M.message:String(M))}finally{R.current=!1,x.current=null,G()}},[]),Q=de.useCallback(ne=>{const M=ne.trim();M&&(k.current.push(M),G())},[G]),C=de.useCallback(()=>{var ne;k.current=[],(ne=x.current)==null||ne.abort(),N.current&&(N.current.pause(),N.current.src=""),R.current=!1,d(!1)},[]),Z=de.useCallback(()=>{var ne;E.current&&clearTimeout(E.current),E.current=null,((ne=y.current)==null?void 0:ne.state)==="recording"&&y.current.stop()},[]),ee=de.useCallback(async()=>{var ne;if(((ne=y.current)==null?void 0:ne.state)!=="recording"){g(null);try{const M=await navigator.mediaDevices.getUserMedia({audio:!0});b.current=M;const W=new MediaRecorder(M);h.current=[],W.ondataavailable=L=>{L.data.size>0&&h.current.push(L.data)},W.onstop=async()=>{var X,V;(X=b.current)==null||X.getTracks().forEach(U=>U.stop()),b.current=null,l(!1);const L=new Blob(h.current);if(h.current=[],!(L.size<2e3)){c(!0);try{const ue=await(await fetch("/api/stt",{method:"POST",headers:{"Content-Type":"application/octet-stream"},body:L})).json();if(!ue.ok)throw new Error(ue.error??"STT fehlgeschlagen");const fe=(V=ue.text)==null?void 0:V.trim();fe?P.current(fe):g("Nichts verstanden — bitte nochmal sprechen.")}catch(U){g(U instanceof Error?U.message:String(U))}finally{c(!1)}}},y.current=W,W.start(),l(!0),E.current=setTimeout(()=>Z(),3e4)}catch(M){g(M instanceof Error?M.message:String(M))}}},[t,Z]);return de.useEffect(()=>()=>{var ne,M;((ne=y.current)==null?void 0:ne.state)==="recording"&&y.current.stop(),(M=b.current)==null||M.getTracks().forEach(W=>W.stop()),C()},[]),{recording:r,transcribing:s,speaking:u,error:p,setError:g,startRecording:ee,stopRecording:Z,enqueueSpeech:Q,cancelSpeech:C}}function Wh({sessions:t,activeId:i,onSelect:r,onNew:l,onDelete:s}){return re.jsxs("aside",{className:"sidebar",children:[re.jsxs("div",{className:"sidebar-header",children:[re.jsxs("div",{className:"brand",children:[re.jsx("span",{className:"brand-prompt",children:"▸"})," agenttwo-tools"]}),re.jsx("button",{className:"btn-new",onClick:l,children:"+ Neuer Chat"})]}),re.jsxs("nav",{className:"session-list",children:[t.length===0&&re.jsx("div",{className:"empty-hint",children:"Noch keine Sessions."}),t.map(c=>re.jsxs("div",{className:`session-item ${c.id===i?"active":""}`,onClick:()=>r(c.id),children:[re.jsx("span",{className:"session-title",children:c.title}),re.jsx("button",{className:"session-delete",title:"Session löschen",onClick:u=>{u.stopPropagation(),s(c.id)},children:"✕"})]},c.id))]})]})}function jh(t,i){const r={};return(t[t.length-1]===""?[...t,""]:t).join((r.padRight?" ":"")+","+(r.padLeft===!1?"":" ")).trim()}const Vh=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,qh=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Yh={};function _d(t,i){return(Yh.jsx?qh:Vh).test(t)}const Qh=/[ \t\n\f\r]/g;function Zh(t){return typeof t=="object"?t.type==="text"?vd(t.value):!1:vd(t)}function vd(t){return t.replace(Qh,"")===""}class Ro{constructor(i,r,l){this.normal=r,this.property=i,l&&(this.space=l)}}Ro.prototype.normal={};Ro.prototype.property={};Ro.prototype.space=void 0;function xp(t,i){const r={},l={};for(const s of t)Object.assign(r,s.property),Object.assign(l,s.normal);return new Ro(r,l,i)}function gu(t){return t.toLowerCase()}class Zt{constructor(i,r){this.attribute=r,this.property=i}}Zt.prototype.attribute="";Zt.prototype.booleanish=!1;Zt.prototype.boolean=!1;Zt.prototype.commaOrSpaceSeparated=!1;Zt.prototype.commaSeparated=!1;Zt.prototype.defined=!1;Zt.prototype.mustUseProperty=!1;Zt.prototype.number=!1;Zt.prototype.overloadedBoolean=!1;Zt.prototype.property="";Zt.prototype.spaceSeparated=!1;Zt.prototype.space=void 0;let Xh=0;const Le=Xr(),bt=Xr(),mu=Xr(),te=Xr(),Je=Xr(),Qr=Xr(),on=Xr();function Xr(){return 2**++Xh}const hu=Object.freeze(Object.defineProperty({__proto__:null,boolean:Le,booleanish:bt,commaOrSpaceSeparated:on,commaSeparated:Qr,number:te,overloadedBoolean:mu,spaceSeparated:Je},Symbol.toStringTag,{value:"Module"})),qs=Object.keys(hu);class Tu extends Zt{constructor(i,r,l,s){let c=-1;if(super(i,r),kd(this,"space",s),typeof l=="number")for(;++c4&&r.slice(0,4)==="data"&&ry.test(i)){if(i.charAt(4)==="-"){const c=i.slice(5).replace(wd,ly);l="data"+c.charAt(0).toUpperCase()+c.slice(1)}else{const c=i.slice(4);if(!wd.test(c)){let u=c.replace(ny,oy);u.charAt(0)!=="-"&&(u="-"+u),i="data"+u}}s=Tu}return new s(l,i)}function oy(t){return"-"+t.toLowerCase()}function ly(t){return t.charAt(1).toUpperCase()}const ay=xp([Np,Jh,Ap,Rp,Op],"html"),Cu=xp([Np,ey,Ap,Rp,Op],"svg");function sy(t){return t.join(" ").trim()}var Ci={},Ys,Sd;function uy(){if(Sd)return Ys;Sd=1;var t=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,i=/\n/g,r=/^\s*/,l=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,s=/^:\s*/,c=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,u=/^[;\s]*/,d=/^\s+|\s+$/g,p=` +`,g="/",y="*",h="",b="comment",E="declaration";function k(R,x){if(typeof R!="string")throw new TypeError("First argument must be a string");if(!R)return[];x=x||{};var F=1,P=1;function G(V){var U=V.match(i);U&&(F+=U.length);var ue=V.lastIndexOf(p);P=~ue?V.length-ue:P+V.length}function Q(){var V={line:F,column:P};return function(U){return U.position=new C(V),ne(),U}}function C(V){this.start=V,this.end={line:F,column:P},this.source=x.source}C.prototype.content=R;function Z(V){var U=new Error(x.source+":"+F+":"+P+": "+V);if(U.reason=V,U.filename=x.source,U.line=F,U.column=P,U.source=R,!x.silent)throw U}function ee(V){var U=V.exec(R);if(U){var ue=U[0];return G(ue),R=R.slice(ue.length),U}}function ne(){ee(r)}function M(V){var U;for(V=V||[];U=W();)U!==!1&&V.push(U);return V}function W(){var V=Q();if(!(g!=R.charAt(0)||y!=R.charAt(1))){for(var U=2;h!=R.charAt(U)&&(y!=R.charAt(U)||g!=R.charAt(U+1));)++U;if(U+=2,h===R.charAt(U-1))return Z("End of comment missing");var ue=R.slice(2,U-2);return P+=2,G(ue),R=R.slice(U),P+=2,V({type:b,comment:ue})}}function L(){var V=Q(),U=ee(l);if(U){if(W(),!ee(s))return Z("property missing ':'");var ue=ee(c),fe=V({type:E,property:N(U[0].replace(t,h)),value:ue?N(ue[0].replace(t,h)):h});return ee(u),fe}}function X(){var V=[];M(V);for(var U;U=L();)U!==!1&&(V.push(U),M(V));return V}return ne(),X()}function N(R){return R?R.replace(d,h):h}return Ys=k,Ys}var xd;function cy(){if(xd)return Ci;xd=1;var t=Ci&&Ci.__importDefault||function(l){return l&&l.__esModule?l:{default:l}};Object.defineProperty(Ci,"__esModule",{value:!0}),Ci.default=r;const i=t(uy());function r(l,s){let c=null;if(!l||typeof l!="string")return c;const u=(0,i.default)(l),d=typeof s=="function";return u.forEach(p=>{if(p.type!=="declaration")return;const{property:g,value:y}=p;d?s(g,y,p):y&&(c=c||{},c[g]=y)}),c}return Ci}var Eo={},Nd;function fy(){if(Nd)return Eo;Nd=1,Object.defineProperty(Eo,"__esModule",{value:!0}),Eo.camelCase=void 0;var t=/^--[a-zA-Z0-9_-]+$/,i=/-([a-z])/g,r=/^[^-]+$/,l=/^-(webkit|moz|ms|o|khtml)-/,s=/^-(ms)-/,c=function(g){return!g||r.test(g)||t.test(g)},u=function(g,y){return y.toUpperCase()},d=function(g,y){return"".concat(y,"-")},p=function(g,y){return y===void 0&&(y={}),c(g)?g:(g=g.toLowerCase(),y.reactCompat?g=g.replace(s,d):g=g.replace(l,d),g.replace(i,u))};return Eo.camelCase=p,Eo}var bo,Td;function dy(){if(Td)return bo;Td=1;var t=bo&&bo.__importDefault||function(s){return s&&s.__esModule?s:{default:s}},i=t(cy()),r=fy();function l(s,c){var u={};return!s||typeof s!="string"||(0,i.default)(s,function(d,p){d&&p&&(u[(0,r.camelCase)(d,c)]=p)}),u}return l.default=l,bo=l,bo}var py=dy();const gy=Ao(py),Ip=Mp("end"),Au=Mp("start");function Mp(t){return i;function i(r){const l=r&&r.position&&r.position[t]||{};if(typeof l.line=="number"&&l.line>0&&typeof l.column=="number"&&l.column>0)return{line:l.line,column:l.column,offset:typeof l.offset=="number"&&l.offset>-1?l.offset:void 0}}}function my(t){const i=Au(t),r=Ip(t);if(i&&r)return{start:i,end:r}}function So(t){return!t||typeof t!="object"?"":"position"in t||"type"in t?Cd(t.position):"start"in t||"end"in t?Cd(t):"line"in t||"column"in t?yu(t):""}function yu(t){return Ad(t&&t.line)+":"+Ad(t&&t.column)}function Cd(t){return yu(t&&t.start)+"-"+yu(t&&t.end)}function Ad(t){return t&&typeof t=="number"?t:1}class Pt extends Error{constructor(i,r,l){super(),typeof r=="string"&&(l=r,r=void 0);let s="",c={},u=!1;if(r&&("line"in r&&"column"in r?c={place:r}:"start"in r&&"end"in r?c={place:r}:"type"in r?c={ancestors:[r],place:r.position}:c={...r}),typeof i=="string"?s=i:!c.cause&&i&&(u=!0,s=i.message,c.cause=i),!c.ruleId&&!c.source&&typeof l=="string"){const p=l.indexOf(":");p===-1?c.ruleId=l:(c.source=l.slice(0,p),c.ruleId=l.slice(p+1))}if(!c.place&&c.ancestors&&c.ancestors){const p=c.ancestors[c.ancestors.length-1];p&&(c.place=p.position)}const d=c.place&&"start"in c.place?c.place.start:c.place;this.ancestors=c.ancestors||void 0,this.cause=c.cause||void 0,this.column=d?d.column:void 0,this.fatal=void 0,this.file="",this.message=s,this.line=d?d.line:void 0,this.name=So(c.place)||"1:1",this.place=c.place||void 0,this.reason=this.message,this.ruleId=c.ruleId||void 0,this.source=c.source||void 0,this.stack=u&&c.cause&&typeof c.cause.stack=="string"?c.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Pt.prototype.file="";Pt.prototype.name="";Pt.prototype.reason="";Pt.prototype.message="";Pt.prototype.stack="";Pt.prototype.column=void 0;Pt.prototype.line=void 0;Pt.prototype.ancestors=void 0;Pt.prototype.cause=void 0;Pt.prototype.fatal=void 0;Pt.prototype.place=void 0;Pt.prototype.ruleId=void 0;Pt.prototype.source=void 0;const Ru={}.hasOwnProperty,hy=new Map,yy=/[A-Z]/g,Ey=new Set(["table","tbody","thead","tfoot","tr"]),by=new Set(["td","th"]),Lp="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function _y(t,i){if(!i||i.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const r=i.filePath||void 0;let l;if(i.development){if(typeof i.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");l=Cy(r,i.jsxDEV)}else{if(typeof i.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof i.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");l=Ty(r,i.jsx,i.jsxs)}const s={Fragment:i.Fragment,ancestors:[],components:i.components||{},create:l,elementAttributeNameCase:i.elementAttributeNameCase||"react",evaluater:i.createEvaluater?i.createEvaluater():void 0,filePath:r,ignoreInvalidStyle:i.ignoreInvalidStyle||!1,passKeys:i.passKeys!==!1,passNode:i.passNode||!1,schema:i.space==="svg"?Cu:ay,stylePropertyNameCase:i.stylePropertyNameCase||"dom",tableCellAlignToStyle:i.tableCellAlignToStyle!==!1},c=Dp(s,t,void 0);return c&&typeof c!="string"?c:s.create(t,s.Fragment,{children:c||void 0},void 0)}function Dp(t,i,r){if(i.type==="element")return vy(t,i,r);if(i.type==="mdxFlowExpression"||i.type==="mdxTextExpression")return ky(t,i);if(i.type==="mdxJsxFlowElement"||i.type==="mdxJsxTextElement")return Sy(t,i,r);if(i.type==="mdxjsEsm")return wy(t,i);if(i.type==="root")return xy(t,i,r);if(i.type==="text")return Ny(t,i)}function vy(t,i,r){const l=t.schema;let s=l;i.tagName.toLowerCase()==="svg"&&l.space==="html"&&(s=Cu,t.schema=s),t.ancestors.push(i);const c=zp(t,i.tagName,!1),u=Ay(t,i);let d=Iu(t,i);return Ey.has(i.tagName)&&(d=d.filter(function(p){return typeof p=="string"?!Zh(p):!0})),Pp(t,u,c,i),Ou(u,d),t.ancestors.pop(),t.schema=l,t.create(i,c,u,r)}function ky(t,i){if(i.data&&i.data.estree&&t.evaluater){const l=i.data.estree.body[0];return l.type,t.evaluater.evaluateExpression(l.expression)}To(t,i.position)}function wy(t,i){if(i.data&&i.data.estree&&t.evaluater)return t.evaluater.evaluateProgram(i.data.estree);To(t,i.position)}function Sy(t,i,r){const l=t.schema;let s=l;i.name==="svg"&&l.space==="html"&&(s=Cu,t.schema=s),t.ancestors.push(i);const c=i.name===null?t.Fragment:zp(t,i.name,!0),u=Ry(t,i),d=Iu(t,i);return Pp(t,u,c,i),Ou(u,d),t.ancestors.pop(),t.schema=l,t.create(i,c,u,r)}function xy(t,i,r){const l={};return Ou(l,Iu(t,i)),t.create(i,t.Fragment,l,r)}function Ny(t,i){return i.value}function Pp(t,i,r,l){typeof r!="string"&&r!==t.Fragment&&t.passNode&&(i.node=l)}function Ou(t,i){if(i.length>0){const r=i.length>1?i:i[0];r&&(t.children=r)}}function Ty(t,i,r){return l;function l(s,c,u,d){const g=Array.isArray(u.children)?r:i;return d?g(c,u,d):g(c,u)}}function Cy(t,i){return r;function r(l,s,c,u){const d=Array.isArray(c.children),p=Au(l);return i(s,c,u,d,{columnNumber:p?p.column-1:void 0,fileName:t,lineNumber:p?p.line:void 0},void 0)}}function Ay(t,i){const r={};let l,s;for(s in i.properties)if(s!=="children"&&Ru.call(i.properties,s)){const c=Oy(t,s,i.properties[s]);if(c){const[u,d]=c;t.tableCellAlignToStyle&&u==="align"&&typeof d=="string"&&by.has(i.tagName)?l=d:r[u]=d}}if(l){const c=r.style||(r.style={});c[t.stylePropertyNameCase==="css"?"text-align":"textAlign"]=l}return r}function Ry(t,i){const r={};for(const l of i.attributes)if(l.type==="mdxJsxExpressionAttribute")if(l.data&&l.data.estree&&t.evaluater){const c=l.data.estree.body[0];c.type;const u=c.expression;u.type;const d=u.properties[0];d.type,Object.assign(r,t.evaluater.evaluateExpression(d.argument))}else To(t,i.position);else{const s=l.name;let c;if(l.value&&typeof l.value=="object")if(l.value.data&&l.value.data.estree&&t.evaluater){const d=l.value.data.estree.body[0];d.type,c=t.evaluater.evaluateExpression(d.expression)}else To(t,i.position);else c=l.value===null?!0:l.value;r[s]=c}return r}function Iu(t,i){const r=[];let l=-1;const s=t.passKeys?new Map:hy;for(;++ls?0:s+i:i=i>s?s:i,r=r>0?r:0,l.length<1e4)u=Array.from(l),u.unshift(i,r),t.splice(...u);else for(r&&t.splice(i,r);c0?(ln(t,t.length,0,i),t):i}const Id={}.hasOwnProperty;function Bp(t){const i={};let r=-1;for(;++r13&&r<32||r>126&&r<160||r>55295&&r<57344||r>64975&&r<65008||(r&65535)===65535||(r&65535)===65534||r>1114111?"�":String.fromCodePoint(r)}function Cn(t){return t.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Ht=Nr(/[A-Za-z]/),Dt=Nr(/[\dA-Za-z]/),Uy=Nr(/[#-'*+\--9=?A-Z^-~]/);function Xl(t){return t!==null&&(t<32||t===127)}const Eu=Nr(/\d/),$y=Nr(/[\dA-Fa-f]/),Hy=Nr(/[!-/:-@[-`{-~]/);function Te(t){return t!==null&&t<-2}function et(t){return t!==null&&(t<0||t===32)}function Ue(t){return t===-2||t===-1||t===32}const ia=Nr(new RegExp("\\p{P}|\\p{S}","u")),Zr=Nr(/\s/);function Nr(t){return i;function i(r){return r!==null&&r>-1&&t.test(String.fromCharCode(r))}}function Li(t){const i=[];let r=-1,l=0,s=0;for(;++r55295&&c<57344){const d=t.charCodeAt(r+1);c<56320&&d>56319&&d<57344?(u=String.fromCharCode(c,d),s=1):u="�"}else u=String.fromCharCode(c);u&&(i.push(t.slice(l,r),encodeURIComponent(u)),l=r+s+1,u=""),s&&(r+=s,s=0)}return i.join("")+t.slice(l)}function je(t,i,r,l){const s=l?l-1:Number.POSITIVE_INFINITY;let c=0;return u;function u(p){return Ue(p)?(t.enter(r),d(p)):i(p)}function d(p){return Ue(p)&&c++u))return;const Z=i.events.length;let ee=Z,ne,M;for(;ee--;)if(i.events[ee][0]==="exit"&&i.events[ee][1].type==="chunkFlow"){if(ne){M=i.events[ee][1].end;break}ne=!0}for(x(l),C=Z;CP;){const Q=r[G];i.containerState=Q[1],Q[0].exit.call(i,t)}r.length=P}function F(){s.write([null]),c=void 0,s=void 0,i.containerState._closeFlow=void 0}}function Vy(t,i,r){return je(t,t.attempt(this.parser.constructs.document,i,r),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Ii(t){if(t===null||et(t)||Zr(t))return 1;if(ia(t))return 2}function oa(t,i,r){const l=[];let s=-1;for(;++s1&&t[r][1].end.offset-t[r][1].start.offset>1?2:1;const h={...t[l][1].end},b={...t[r][1].start};Ld(h,-p),Ld(b,p),u={type:p>1?"strongSequence":"emphasisSequence",start:h,end:{...t[l][1].end}},d={type:p>1?"strongSequence":"emphasisSequence",start:{...t[r][1].start},end:b},c={type:p>1?"strongText":"emphasisText",start:{...t[l][1].end},end:{...t[r][1].start}},s={type:p>1?"strong":"emphasis",start:{...u.start},end:{...d.end}},t[l][1].end={...u.start},t[r][1].start={...d.end},g=[],t[l][1].end.offset-t[l][1].start.offset&&(g=yn(g,[["enter",t[l][1],i],["exit",t[l][1],i]])),g=yn(g,[["enter",s,i],["enter",u,i],["exit",u,i],["enter",c,i]]),g=yn(g,oa(i.parser.constructs.insideSpan.null,t.slice(l+1,r),i)),g=yn(g,[["exit",c,i],["enter",d,i],["exit",d,i],["exit",s,i]]),t[r][1].end.offset-t[r][1].start.offset?(y=2,g=yn(g,[["enter",t[r][1],i],["exit",t[r][1],i]])):y=0,ln(t,l-1,r-l+3,g),r=l+g.length-y-2;break}}for(r=-1;++r0&&Ue(C)?je(t,F,"linePrefix",c+1)(C):F(C)}function F(C){return C===null||Te(C)?t.check(Dd,N,G)(C):(t.enter("codeFlowValue"),P(C))}function P(C){return C===null||Te(C)?(t.exit("codeFlowValue"),F(C)):(t.consume(C),P)}function G(C){return t.exit("codeFenced"),i(C)}function Q(C,Z,ee){let ne=0;return M;function M(U){return C.enter("lineEnding"),C.consume(U),C.exit("lineEnding"),W}function W(U){return C.enter("codeFencedFence"),Ue(U)?je(C,L,"linePrefix",l.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(U):L(U)}function L(U){return U===d?(C.enter("codeFencedFenceSequence"),X(U)):ee(U)}function X(U){return U===d?(ne++,C.consume(U),X):ne>=u?(C.exit("codeFencedFenceSequence"),Ue(U)?je(C,V,"whitespace")(U):V(U)):ee(U)}function V(U){return U===null||Te(U)?(C.exit("codeFencedFence"),Z(U)):ee(U)}}}function oE(t,i,r){const l=this;return s;function s(u){return u===null?r(u):(t.enter("lineEnding"),t.consume(u),t.exit("lineEnding"),c)}function c(u){return l.parser.lazy[l.now().line]?r(u):i(u)}}const Zs={name:"codeIndented",tokenize:aE},lE={partial:!0,tokenize:sE};function aE(t,i,r){const l=this;return s;function s(g){return t.enter("codeIndented"),je(t,c,"linePrefix",5)(g)}function c(g){const y=l.events[l.events.length-1];return y&&y[1].type==="linePrefix"&&y[2].sliceSerialize(y[1],!0).length>=4?u(g):r(g)}function u(g){return g===null?p(g):Te(g)?t.attempt(lE,u,p)(g):(t.enter("codeFlowValue"),d(g))}function d(g){return g===null||Te(g)?(t.exit("codeFlowValue"),u(g)):(t.consume(g),d)}function p(g){return t.exit("codeIndented"),i(g)}}function sE(t,i,r){const l=this;return s;function s(u){return l.parser.lazy[l.now().line]?r(u):Te(u)?(t.enter("lineEnding"),t.consume(u),t.exit("lineEnding"),s):je(t,c,"linePrefix",5)(u)}function c(u){const d=l.events[l.events.length-1];return d&&d[1].type==="linePrefix"&&d[2].sliceSerialize(d[1],!0).length>=4?i(u):Te(u)?s(u):r(u)}}const uE={name:"codeText",previous:fE,resolve:cE,tokenize:dE};function cE(t){let i=t.length-4,r=3,l,s;if((t[r][1].type==="lineEnding"||t[r][1].type==="space")&&(t[i][1].type==="lineEnding"||t[i][1].type==="space")){for(l=r;++l=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+i+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return ithis.left.length?this.right.slice(this.right.length-l+this.left.length,this.right.length-i+this.left.length).reverse():this.left.slice(i).concat(this.right.slice(this.right.length-l+this.left.length).reverse())}splice(i,r,l){const s=r||0;this.setCursor(Math.trunc(i));const c=this.right.splice(this.right.length-s,Number.POSITIVE_INFINITY);return l&&_o(this.left,l),c.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(i){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(i)}pushMany(i){this.setCursor(Number.POSITIVE_INFINITY),_o(this.left,i)}unshift(i){this.setCursor(0),this.right.push(i)}unshiftMany(i){this.setCursor(0),_o(this.right,i.reverse())}setCursor(i){if(!(i===this.left.length||i>this.left.length&&this.right.length===0||i<0&&this.left.length===0))if(i=4?i(u):t.interrupt(l.parser.constructs.flow,r,i)(u)}}function Wp(t,i,r,l,s,c,u,d,p){const g=p||Number.POSITIVE_INFINITY;let y=0;return h;function h(x){return x===60?(t.enter(l),t.enter(s),t.enter(c),t.consume(x),t.exit(c),b):x===null||x===32||x===41||Xl(x)?r(x):(t.enter(l),t.enter(u),t.enter(d),t.enter("chunkString",{contentType:"string"}),N(x))}function b(x){return x===62?(t.enter(c),t.consume(x),t.exit(c),t.exit(s),t.exit(l),i):(t.enter(d),t.enter("chunkString",{contentType:"string"}),E(x))}function E(x){return x===62?(t.exit("chunkString"),t.exit(d),b(x)):x===null||x===60||Te(x)?r(x):(t.consume(x),x===92?k:E)}function k(x){return x===60||x===62||x===92?(t.consume(x),E):E(x)}function N(x){return!y&&(x===null||x===41||et(x))?(t.exit("chunkString"),t.exit(d),t.exit(u),t.exit(l),i(x)):y999||E===null||E===91||E===93&&!p||E===94&&!d&&"_hiddenFootnoteSupport"in u.parser.constructs?r(E):E===93?(t.exit(c),t.enter(s),t.consume(E),t.exit(s),t.exit(l),i):Te(E)?(t.enter("lineEnding"),t.consume(E),t.exit("lineEnding"),y):(t.enter("chunkString",{contentType:"string"}),h(E))}function h(E){return E===null||E===91||E===93||Te(E)||d++>999?(t.exit("chunkString"),y(E)):(t.consume(E),p||(p=!Ue(E)),E===92?b:h)}function b(E){return E===91||E===92||E===93?(t.consume(E),d++,h):h(E)}}function Vp(t,i,r,l,s,c){let u;return d;function d(b){return b===34||b===39||b===40?(t.enter(l),t.enter(s),t.consume(b),t.exit(s),u=b===40?41:b,p):r(b)}function p(b){return b===u?(t.enter(s),t.consume(b),t.exit(s),t.exit(l),i):(t.enter(c),g(b))}function g(b){return b===u?(t.exit(c),p(u)):b===null?r(b):Te(b)?(t.enter("lineEnding"),t.consume(b),t.exit("lineEnding"),je(t,g,"linePrefix")):(t.enter("chunkString",{contentType:"string"}),y(b))}function y(b){return b===u||b===null||Te(b)?(t.exit("chunkString"),g(b)):(t.consume(b),b===92?h:y)}function h(b){return b===u||b===92?(t.consume(b),y):y(b)}}function xo(t,i){let r;return l;function l(s){return Te(s)?(t.enter("lineEnding"),t.consume(s),t.exit("lineEnding"),r=!0,l):Ue(s)?je(t,l,r?"linePrefix":"lineSuffix")(s):i(s)}}const _E={name:"definition",tokenize:kE},vE={partial:!0,tokenize:wE};function kE(t,i,r){const l=this;let s;return c;function c(E){return t.enter("definition"),u(E)}function u(E){return jp.call(l,t,d,r,"definitionLabel","definitionLabelMarker","definitionLabelString")(E)}function d(E){return s=Cn(l.sliceSerialize(l.events[l.events.length-1][1]).slice(1,-1)),E===58?(t.enter("definitionMarker"),t.consume(E),t.exit("definitionMarker"),p):r(E)}function p(E){return et(E)?xo(t,g)(E):g(E)}function g(E){return Wp(t,y,r,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(E)}function y(E){return t.attempt(vE,h,h)(E)}function h(E){return Ue(E)?je(t,b,"whitespace")(E):b(E)}function b(E){return E===null||Te(E)?(t.exit("definition"),l.parser.defined.push(s),i(E)):r(E)}}function wE(t,i,r){return l;function l(d){return et(d)?xo(t,s)(d):r(d)}function s(d){return Vp(t,c,r,"definitionTitle","definitionTitleMarker","definitionTitleString")(d)}function c(d){return Ue(d)?je(t,u,"whitespace")(d):u(d)}function u(d){return d===null||Te(d)?i(d):r(d)}}const SE={name:"hardBreakEscape",tokenize:xE};function xE(t,i,r){return l;function l(c){return t.enter("hardBreakEscape"),t.consume(c),s}function s(c){return Te(c)?(t.exit("hardBreakEscape"),i(c)):r(c)}}const NE={name:"headingAtx",resolve:TE,tokenize:CE};function TE(t,i){let r=t.length-2,l=3,s,c;return t[l][1].type==="whitespace"&&(l+=2),r-2>l&&t[r][1].type==="whitespace"&&(r-=2),t[r][1].type==="atxHeadingSequence"&&(l===r-1||r-4>l&&t[r-2][1].type==="whitespace")&&(r-=l+1===r?2:4),r>l&&(s={type:"atxHeadingText",start:t[l][1].start,end:t[r][1].end},c={type:"chunkText",start:t[l][1].start,end:t[r][1].end,contentType:"text"},ln(t,l,r-l+1,[["enter",s,i],["enter",c,i],["exit",c,i],["exit",s,i]])),t}function CE(t,i,r){let l=0;return s;function s(y){return t.enter("atxHeading"),c(y)}function c(y){return t.enter("atxHeadingSequence"),u(y)}function u(y){return y===35&&l++<6?(t.consume(y),u):y===null||et(y)?(t.exit("atxHeadingSequence"),d(y)):r(y)}function d(y){return y===35?(t.enter("atxHeadingSequence"),p(y)):y===null||Te(y)?(t.exit("atxHeading"),i(y)):Ue(y)?je(t,d,"whitespace")(y):(t.enter("atxHeadingText"),g(y))}function p(y){return y===35?(t.consume(y),p):(t.exit("atxHeadingSequence"),d(y))}function g(y){return y===null||y===35||et(y)?(t.exit("atxHeadingText"),d(y)):(t.consume(y),g)}}const AE=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],zd=["pre","script","style","textarea"],RE={concrete:!0,name:"htmlFlow",resolveTo:ME,tokenize:LE},OE={partial:!0,tokenize:PE},IE={partial:!0,tokenize:DE};function ME(t){let i=t.length;for(;i--&&!(t[i][0]==="enter"&&t[i][1].type==="htmlFlow"););return i>1&&t[i-2][1].type==="linePrefix"&&(t[i][1].start=t[i-2][1].start,t[i+1][1].start=t[i-2][1].start,t.splice(i-2,2)),t}function LE(t,i,r){const l=this;let s,c,u,d,p;return g;function g(w){return y(w)}function y(w){return t.enter("htmlFlow"),t.enter("htmlFlowData"),t.consume(w),h}function h(w){return w===33?(t.consume(w),b):w===47?(t.consume(w),c=!0,N):w===63?(t.consume(w),s=3,l.interrupt?i:v):Ht(w)?(t.consume(w),u=String.fromCharCode(w),R):r(w)}function b(w){return w===45?(t.consume(w),s=2,E):w===91?(t.consume(w),s=5,d=0,k):Ht(w)?(t.consume(w),s=4,l.interrupt?i:v):r(w)}function E(w){return w===45?(t.consume(w),l.interrupt?i:v):r(w)}function k(w){const we="CDATA[";return w===we.charCodeAt(d++)?(t.consume(w),d===we.length?l.interrupt?i:L:k):r(w)}function N(w){return Ht(w)?(t.consume(w),u=String.fromCharCode(w),R):r(w)}function R(w){if(w===null||w===47||w===62||et(w)){const we=w===47,Me=u.toLowerCase();return!we&&!c&&zd.includes(Me)?(s=1,l.interrupt?i(w):L(w)):AE.includes(u.toLowerCase())?(s=6,we?(t.consume(w),x):l.interrupt?i(w):L(w)):(s=7,l.interrupt&&!l.parser.lazy[l.now().line]?r(w):c?F(w):P(w))}return w===45||Dt(w)?(t.consume(w),u+=String.fromCharCode(w),R):r(w)}function x(w){return w===62?(t.consume(w),l.interrupt?i:L):r(w)}function F(w){return Ue(w)?(t.consume(w),F):M(w)}function P(w){return w===47?(t.consume(w),M):w===58||w===95||Ht(w)?(t.consume(w),G):Ue(w)?(t.consume(w),P):M(w)}function G(w){return w===45||w===46||w===58||w===95||Dt(w)?(t.consume(w),G):Q(w)}function Q(w){return w===61?(t.consume(w),C):Ue(w)?(t.consume(w),Q):P(w)}function C(w){return w===null||w===60||w===61||w===62||w===96?r(w):w===34||w===39?(t.consume(w),p=w,Z):Ue(w)?(t.consume(w),C):ee(w)}function Z(w){return w===p?(t.consume(w),p=null,ne):w===null||Te(w)?r(w):(t.consume(w),Z)}function ee(w){return w===null||w===34||w===39||w===47||w===60||w===61||w===62||w===96||et(w)?Q(w):(t.consume(w),ee)}function ne(w){return w===47||w===62||Ue(w)?P(w):r(w)}function M(w){return w===62?(t.consume(w),W):r(w)}function W(w){return w===null||Te(w)?L(w):Ue(w)?(t.consume(w),W):r(w)}function L(w){return w===45&&s===2?(t.consume(w),ue):w===60&&s===1?(t.consume(w),fe):w===62&&s===4?(t.consume(w),O):w===63&&s===3?(t.consume(w),v):w===93&&s===5?(t.consume(w),ae):Te(w)&&(s===6||s===7)?(t.exit("htmlFlowData"),t.check(OE,$,X)(w)):w===null||Te(w)?(t.exit("htmlFlowData"),X(w)):(t.consume(w),L)}function X(w){return t.check(IE,V,$)(w)}function V(w){return t.enter("lineEnding"),t.consume(w),t.exit("lineEnding"),U}function U(w){return w===null||Te(w)?X(w):(t.enter("htmlFlowData"),L(w))}function ue(w){return w===45?(t.consume(w),v):L(w)}function fe(w){return w===47?(t.consume(w),u="",H):L(w)}function H(w){if(w===62){const we=u.toLowerCase();return zd.includes(we)?(t.consume(w),O):L(w)}return Ht(w)&&u.length<8?(t.consume(w),u+=String.fromCharCode(w),H):L(w)}function ae(w){return w===93?(t.consume(w),v):L(w)}function v(w){return w===62?(t.consume(w),O):w===45&&s===2?(t.consume(w),v):L(w)}function O(w){return w===null||Te(w)?(t.exit("htmlFlowData"),$(w)):(t.consume(w),O)}function $(w){return t.exit("htmlFlow"),i(w)}}function DE(t,i,r){const l=this;return s;function s(u){return Te(u)?(t.enter("lineEnding"),t.consume(u),t.exit("lineEnding"),c):r(u)}function c(u){return l.parser.lazy[l.now().line]?r(u):i(u)}}function PE(t,i,r){return l;function l(s){return t.enter("lineEnding"),t.consume(s),t.exit("lineEnding"),t.attempt(Oo,i,r)}}const zE={name:"htmlText",tokenize:FE};function FE(t,i,r){const l=this;let s,c,u;return d;function d(v){return t.enter("htmlText"),t.enter("htmlTextData"),t.consume(v),p}function p(v){return v===33?(t.consume(v),g):v===47?(t.consume(v),Q):v===63?(t.consume(v),P):Ht(v)?(t.consume(v),ee):r(v)}function g(v){return v===45?(t.consume(v),y):v===91?(t.consume(v),c=0,k):Ht(v)?(t.consume(v),F):r(v)}function y(v){return v===45?(t.consume(v),E):r(v)}function h(v){return v===null?r(v):v===45?(t.consume(v),b):Te(v)?(u=h,fe(v)):(t.consume(v),h)}function b(v){return v===45?(t.consume(v),E):h(v)}function E(v){return v===62?ue(v):v===45?b(v):h(v)}function k(v){const O="CDATA[";return v===O.charCodeAt(c++)?(t.consume(v),c===O.length?N:k):r(v)}function N(v){return v===null?r(v):v===93?(t.consume(v),R):Te(v)?(u=N,fe(v)):(t.consume(v),N)}function R(v){return v===93?(t.consume(v),x):N(v)}function x(v){return v===62?ue(v):v===93?(t.consume(v),x):N(v)}function F(v){return v===null||v===62?ue(v):Te(v)?(u=F,fe(v)):(t.consume(v),F)}function P(v){return v===null?r(v):v===63?(t.consume(v),G):Te(v)?(u=P,fe(v)):(t.consume(v),P)}function G(v){return v===62?ue(v):P(v)}function Q(v){return Ht(v)?(t.consume(v),C):r(v)}function C(v){return v===45||Dt(v)?(t.consume(v),C):Z(v)}function Z(v){return Te(v)?(u=Z,fe(v)):Ue(v)?(t.consume(v),Z):ue(v)}function ee(v){return v===45||Dt(v)?(t.consume(v),ee):v===47||v===62||et(v)?ne(v):r(v)}function ne(v){return v===47?(t.consume(v),ue):v===58||v===95||Ht(v)?(t.consume(v),M):Te(v)?(u=ne,fe(v)):Ue(v)?(t.consume(v),ne):ue(v)}function M(v){return v===45||v===46||v===58||v===95||Dt(v)?(t.consume(v),M):W(v)}function W(v){return v===61?(t.consume(v),L):Te(v)?(u=W,fe(v)):Ue(v)?(t.consume(v),W):ne(v)}function L(v){return v===null||v===60||v===61||v===62||v===96?r(v):v===34||v===39?(t.consume(v),s=v,X):Te(v)?(u=L,fe(v)):Ue(v)?(t.consume(v),L):(t.consume(v),V)}function X(v){return v===s?(t.consume(v),s=void 0,U):v===null?r(v):Te(v)?(u=X,fe(v)):(t.consume(v),X)}function V(v){return v===null||v===34||v===39||v===60||v===61||v===96?r(v):v===47||v===62||et(v)?ne(v):(t.consume(v),V)}function U(v){return v===47||v===62||et(v)?ne(v):r(v)}function ue(v){return v===62?(t.consume(v),t.exit("htmlTextData"),t.exit("htmlText"),i):r(v)}function fe(v){return t.exit("htmlTextData"),t.enter("lineEnding"),t.consume(v),t.exit("lineEnding"),H}function H(v){return Ue(v)?je(t,ae,"linePrefix",l.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(v):ae(v)}function ae(v){return t.enter("htmlTextData"),u(v)}}const Du={name:"labelEnd",resolveAll:HE,resolveTo:KE,tokenize:GE},BE={tokenize:WE},UE={tokenize:jE},$E={tokenize:VE};function HE(t){let i=-1;const r=[];for(;++i=3&&(g===null||Te(g))?(t.exit("thematicBreak"),i(g)):r(g)}function p(g){return g===s?(t.consume(g),l++,p):(t.exit("thematicBreakSequence"),Ue(g)?je(t,d,"whitespace")(g):d(g))}}const Qt={continuation:{tokenize:rb},exit:ob,name:"list",tokenize:nb},eb={partial:!0,tokenize:lb},tb={partial:!0,tokenize:ib};function nb(t,i,r){const l=this,s=l.events[l.events.length-1];let c=s&&s[1].type==="linePrefix"?s[2].sliceSerialize(s[1],!0).length:0,u=0;return d;function d(E){const k=l.containerState.type||(E===42||E===43||E===45?"listUnordered":"listOrdered");if(k==="listUnordered"?!l.containerState.marker||E===l.containerState.marker:Eu(E)){if(l.containerState.type||(l.containerState.type=k,t.enter(k,{_container:!0})),k==="listUnordered")return t.enter("listItemPrefix"),E===42||E===45?t.check(Zl,r,g)(E):g(E);if(!l.interrupt||E===49)return t.enter("listItemPrefix"),t.enter("listItemValue"),p(E)}return r(E)}function p(E){return Eu(E)&&++u<10?(t.consume(E),p):(!l.interrupt||u<2)&&(l.containerState.marker?E===l.containerState.marker:E===41||E===46)?(t.exit("listItemValue"),g(E)):r(E)}function g(E){return t.enter("listItemMarker"),t.consume(E),t.exit("listItemMarker"),l.containerState.marker=l.containerState.marker||E,t.check(Oo,l.interrupt?r:y,t.attempt(eb,b,h))}function y(E){return l.containerState.initialBlankLine=!0,c++,b(E)}function h(E){return Ue(E)?(t.enter("listItemPrefixWhitespace"),t.consume(E),t.exit("listItemPrefixWhitespace"),b):r(E)}function b(E){return l.containerState.size=c+l.sliceSerialize(t.exit("listItemPrefix"),!0).length,i(E)}}function rb(t,i,r){const l=this;return l.containerState._closeFlow=void 0,t.check(Oo,s,c);function s(d){return l.containerState.furtherBlankLines=l.containerState.furtherBlankLines||l.containerState.initialBlankLine,je(t,i,"listItemIndent",l.containerState.size+1)(d)}function c(d){return l.containerState.furtherBlankLines||!Ue(d)?(l.containerState.furtherBlankLines=void 0,l.containerState.initialBlankLine=void 0,u(d)):(l.containerState.furtherBlankLines=void 0,l.containerState.initialBlankLine=void 0,t.attempt(tb,i,u)(d))}function u(d){return l.containerState._closeFlow=!0,l.interrupt=void 0,je(t,t.attempt(Qt,i,r),"linePrefix",l.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(d)}}function ib(t,i,r){const l=this;return je(t,s,"listItemIndent",l.containerState.size+1);function s(c){const u=l.events[l.events.length-1];return u&&u[1].type==="listItemIndent"&&u[2].sliceSerialize(u[1],!0).length===l.containerState.size?i(c):r(c)}}function ob(t){t.exit(this.containerState.type)}function lb(t,i,r){const l=this;return je(t,s,"listItemPrefixWhitespace",l.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function s(c){const u=l.events[l.events.length-1];return!Ue(c)&&u&&u[1].type==="listItemPrefixWhitespace"?i(c):r(c)}}const Fd={name:"setextUnderline",resolveTo:ab,tokenize:sb};function ab(t,i){let r=t.length,l,s,c;for(;r--;)if(t[r][0]==="enter"){if(t[r][1].type==="content"){l=r;break}t[r][1].type==="paragraph"&&(s=r)}else t[r][1].type==="content"&&t.splice(r,1),!c&&t[r][1].type==="definition"&&(c=r);const u={type:"setextHeading",start:{...t[l][1].start},end:{...t[t.length-1][1].end}};return t[s][1].type="setextHeadingText",c?(t.splice(s,0,["enter",u,i]),t.splice(c+1,0,["exit",t[l][1],i]),t[l][1].end={...t[c][1].end}):t[l][1]=u,t.push(["exit",u,i]),t}function sb(t,i,r){const l=this;let s;return c;function c(g){let y=l.events.length,h;for(;y--;)if(l.events[y][1].type!=="lineEnding"&&l.events[y][1].type!=="linePrefix"&&l.events[y][1].type!=="content"){h=l.events[y][1].type==="paragraph";break}return!l.parser.lazy[l.now().line]&&(l.interrupt||h)?(t.enter("setextHeadingLine"),s=g,u(g)):r(g)}function u(g){return t.enter("setextHeadingLineSequence"),d(g)}function d(g){return g===s?(t.consume(g),d):(t.exit("setextHeadingLineSequence"),Ue(g)?je(t,p,"lineSuffix")(g):p(g))}function p(g){return g===null||Te(g)?(t.exit("setextHeadingLine"),i(g)):r(g)}}const ub={tokenize:cb};function cb(t){const i=this,r=t.attempt(Oo,l,t.attempt(this.parser.constructs.flowInitial,s,je(t,t.attempt(this.parser.constructs.flow,s,t.attempt(mE,s)),"linePrefix")));return r;function l(c){if(c===null){t.consume(c);return}return t.enter("lineEndingBlank"),t.consume(c),t.exit("lineEndingBlank"),i.currentConstruct=void 0,r}function s(c){if(c===null){t.consume(c);return}return t.enter("lineEnding"),t.consume(c),t.exit("lineEnding"),i.currentConstruct=void 0,r}}const fb={resolveAll:Yp()},db=qp("string"),pb=qp("text");function qp(t){return{resolveAll:Yp(t==="text"?gb:void 0),tokenize:i};function i(r){const l=this,s=this.parser.constructs[t],c=r.attempt(s,u,d);return u;function u(y){return g(y)?c(y):d(y)}function d(y){if(y===null){r.consume(y);return}return r.enter("data"),r.consume(y),p}function p(y){return g(y)?(r.exit("data"),c(y)):(r.consume(y),p)}function g(y){if(y===null)return!0;const h=s[y];let b=-1;if(h)for(;++b-1){const d=u[0];typeof d=="string"?u[0]=d.slice(l):u.shift()}c>0&&u.push(t[s].slice(0,c))}return u}function Tb(t,i){let r=-1;const l=[];let s;for(;++r0){const _t=Ce.tokenStack[Ce.tokenStack.length-1];(_t[1]||Ud).call(Ce,void 0,_t[0])}for(ie.position={start:xr(U.length>0?U[0][1].start:{line:1,column:1,offset:0}),end:xr(U.length>0?U[U.length-2][1].end:{line:1,column:1,offset:0})},He=-1;++He0){const _t=Ce.tokenStack[Ce.tokenStack.length-1];(_t[1]||Ud).call(Ce,void 0,_t[0])}for(le.position={start:xr(K.length>0?K[0][1].start:{line:1,column:1,offset:0}),end:xr(K.length>0?K[K.length-2][1].end:{line:1,column:1,offset:0})},He=-1;++He0&&(l.className=["language-"+s[0]]);let c={type:"element",tagName:"code",properties:l,children:[{type:"text",value:r}]};return i.meta&&(c.data={meta:i.meta}),t.patch(i,c),c=t.applyData(i,c),c={type:"element",tagName:"pre",properties:{},children:[c]},t.patch(i,c),c}function $b(t,i){const r={type:"element",tagName:"del",properties:{},children:t.all(i)};return t.patch(i,r),t.applyData(i,r)}function Hb(t,i){const r={type:"element",tagName:"em",properties:{},children:t.all(i)};return t.patch(i,r),t.applyData(i,r)}function Kb(t,i){const r=typeof t.options.clobberPrefix=="string"?t.options.clobberPrefix:"user-content-",l=String(i.identifier).toUpperCase(),s=Li(l.toLowerCase()),c=t.footnoteOrder.indexOf(l);let u,d=t.footnoteCounts.get(l);d===void 0?(d=0,t.footnoteOrder.push(l),u=t.footnoteOrder.length):u=c+1,d+=1,t.footnoteCounts.set(l,d);const p={type:"element",tagName:"a",properties:{href:"#"+r+"fn-"+s,id:r+"fnref-"+s+(d>1?"-"+d:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(u)}]};t.patch(i,p);const g={type:"element",tagName:"sup",properties:{},children:[p]};return t.patch(i,g),t.applyData(i,g)}function Gb(t,i){const r={type:"element",tagName:"h"+i.depth,properties:{},children:t.all(i)};return t.patch(i,r),t.applyData(i,r)}function Wb(t,i){if(t.options.allowDangerousHtml){const r={type:"raw",value:i.value};return t.patch(i,r),t.applyData(i,r)}}function Xp(t,i){const r=i.referenceType;let l="]";if(r==="collapsed"?l+="[]":r==="full"&&(l+="["+(i.label||i.identifier)+"]"),i.type==="imageReference")return[{type:"text",value:"!["+i.alt+l}];const s=t.all(i),c=s[0];c&&c.type==="text"?c.value="["+c.value:s.unshift({type:"text",value:"["});const u=s[s.length-1];return u&&u.type==="text"?u.value+=l:s.push({type:"text",value:l}),s}function jb(t,i){const r=String(i.identifier).toUpperCase(),l=t.definitionById.get(r);if(!l)return Xp(t,i);const s={src:Li(l.url||""),alt:i.alt};l.title!==null&&l.title!==void 0&&(s.title=l.title);const c={type:"element",tagName:"img",properties:s,children:[]};return t.patch(i,c),t.applyData(i,c)}function Vb(t,i){const r={src:Li(i.url)};i.alt!==null&&i.alt!==void 0&&(r.alt=i.alt),i.title!==null&&i.title!==void 0&&(r.title=i.title);const l={type:"element",tagName:"img",properties:r,children:[]};return t.patch(i,l),t.applyData(i,l)}function qb(t,i){const r={type:"text",value:i.value.replace(/\r?\n|\r/g," ")};t.patch(i,r);const l={type:"element",tagName:"code",properties:{},children:[r]};return t.patch(i,l),t.applyData(i,l)}function Yb(t,i){const r=String(i.identifier).toUpperCase(),l=t.definitionById.get(r);if(!l)return Xp(t,i);const s={href:Li(l.url||"")};l.title!==null&&l.title!==void 0&&(s.title=l.title);const c={type:"element",tagName:"a",properties:s,children:t.all(i)};return t.patch(i,c),t.applyData(i,c)}function Qb(t,i){const r={href:Li(i.url)};i.title!==null&&i.title!==void 0&&(r.title=i.title);const l={type:"element",tagName:"a",properties:r,children:t.all(i)};return t.patch(i,l),t.applyData(i,l)}function Zb(t,i,r){const l=t.all(i),s=r?Xb(r):Jp(i),c={},u=[];if(typeof i.checked=="boolean"){const y=l[0];let h;y&&y.type==="element"&&y.tagName==="p"?h=y:(h={type:"element",tagName:"p",properties:{},children:[]},l.unshift(h)),h.children.length>0&&h.children.unshift({type:"text",value:" "}),h.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:i.checked,disabled:!0},children:[]}),c.className=["task-list-item"]}let d=-1;for(;++d1}function Jb(t,i){const r={},l=t.all(i);let s=-1;for(typeof i.start=="number"&&i.start!==1&&(r.start=i.start);++s0){const u={type:"element",tagName:"tbody",properties:{},children:t.wrap(r,!0)},d=Au(i.children[1]),p=Ip(i.children[i.children.length-1]);d&&p&&(u.position={start:d,end:p}),s.push(u)}const c={type:"element",tagName:"table",properties:{},children:t.wrap(s,!0)};return t.patch(i,c),t.applyData(i,c)}function i_(t,i,r){const l=r?r.children:void 0,c=(l?l.indexOf(i):1)===0?"th":"td",u=r&&r.type==="table"?r.align:void 0,d=u?u.length:i.children.length;let p=-1;const g=[];for(;++p0,!0),l[0]),s=l.index+l[0].length,l=r.exec(i);return c.push(Kd(i.slice(s),s>0,!1)),c.join("")}function Kd(t,i,r){let l=0,s=t.length;if(i){let c=t.codePointAt(l);for(;c===$d||c===Hd;)l++,c=t.codePointAt(l)}if(r){let c=t.codePointAt(s-1);for(;c===$d||c===Hd;)s--,c=t.codePointAt(s-1)}return s>l?t.slice(l,s):""}function a_(t,i){const r={type:"text",value:l_(String(i.value))};return t.patch(i,r),t.applyData(i,r)}function s_(t,i){const r={type:"element",tagName:"hr",properties:{},children:[]};return t.patch(i,r),t.applyData(i,r)}const u_={blockquote:Fb,break:Bb,code:Ub,delete:$b,emphasis:Hb,footnoteReference:Kb,heading:Gb,html:Wb,imageReference:jb,image:Vb,inlineCode:qb,linkReference:Yb,link:Qb,listItem:Zb,list:Jb,paragraph:e_,root:t_,strong:n_,table:r_,tableCell:o_,tableRow:i_,text:a_,thematicBreak:s_,toml:Hl,yaml:Hl,definition:Hl,footnoteDefinition:Hl};function Hl(){}const eg=-1,la=0,No=1,Jl=2,Pu=3,zu=4,Fu=5,Bu=6,tg=7,ng=8,rg=typeof self=="object"?self:globalThis,Gd=(t,i)=>{switch(t){case"Function":case"SharedWorker":case"Worker":case"eval":case"setInterval":case"setTimeout":throw new TypeError("unable to deserialize "+t)}return new rg[t](i)},c_=(t,i)=>{const r=(s,c)=>(t.set(c,s),s),l=s=>{if(t.has(s))return t.get(s);const[c,u]=i[s];switch(c){case la:case eg:return r(u,s);case No:{const d=r([],s);for(const p of u)d.push(l(p));return d}case Jl:{const d=r({},s);for(const[p,g]of u)d[l(p)]=l(g);return d}case Pu:return r(new Date(u),s);case zu:{const{source:d,flags:p}=u;return r(new RegExp(d,p),s)}case Fu:{const d=r(new Map,s);for(const[p,g]of u)d.set(l(p),l(g));return d}case Bu:{const d=r(new Set,s);for(const p of u)d.add(l(p));return d}case tg:{const{name:d,message:p}=u;return r(typeof rg[d]=="function"?Gd(d,p):new Error(p),s)}case ng:return r(BigInt(u),s);case"BigInt":return r(Object(BigInt(u)),s);case"ArrayBuffer":return r(new Uint8Array(u).buffer,u);case"DataView":{const{buffer:d}=new Uint8Array(u);return r(new DataView(d),u)}}return r(Gd(c,u),s)};return l},Wd=t=>c_(new Map,t)(0),Yr="",{toString:f_}={},{keys:d_}=Object,vo=t=>{const i=typeof t;if(i!=="object"||!t)return[la,i];const r=f_.call(t).slice(8,-1);switch(r){case"Array":return[No,Yr];case"Object":return[Jl,Yr];case"Date":return[Pu,Yr];case"RegExp":return[zu,Yr];case"Map":return[Fu,Yr];case"Set":return[Bu,Yr];case"DataView":return[No,r]}return r.includes("Array")?[No,r]:t instanceof Error?[tg,t.name||"Error"]:[Jl,r]},Kl=([t,i])=>t===la&&(i==="function"||i==="symbol"),p_=(t,i,r,l)=>{const s=(u,d)=>{const p=l.push(u)-1;return r.set(d,p),p},c=u=>{if(r.has(u))return r.get(u);let[d,p]=vo(u);switch(d){case la:{let y=u;switch(p){case"bigint":d=ng,y=u.toString();break;case"function":case"symbol":if(t)throw new TypeError("unable to serialize "+p);y=null;break;case"undefined":return s([eg],u)}return s([d,y],u)}case No:{if(p){let b=u;return p==="DataView"?b=new Uint8Array(u.buffer):p==="ArrayBuffer"&&(b=new Uint8Array(u)),s([p,[...b]],u)}const y=[],h=s([d,y],u);for(const b of u)y.push(c(b));return h}case Jl:{if(p)switch(p){case"BigInt":return s([p,u.toString()],u);case"Boolean":case"Number":case"String":return s([p,u.valueOf()],u)}if(i&&"toJSON"in u)return c(u.toJSON());const y=[],h=s([d,y],u);for(const b of d_(u))(t||!Kl(vo(u[b])))&&y.push([c(b),c(u[b])]);return h}case Pu:return s([d,isNaN(u.getTime())?Yr:u.toISOString()],u);case zu:{const{source:y,flags:h}=u;return s([d,{source:y,flags:h}],u)}case Fu:{const y=[],h=s([d,y],u);for(const[b,E]of u)(t||!(Kl(vo(b))||Kl(vo(E))))&&y.push([c(b),c(E)]);return h}case Bu:{const y=[],h=s([d,y],u);for(const b of u)(t||!Kl(vo(b)))&&y.push(c(b));return h}}const{message:g}=u;return s([d,{name:p,message:g}],u)};return c},jd=(t,{json:i,lossy:r}={})=>{const l=[];return p_(!(i||r),!!i,new Map,l)(t),l},ea=typeof structuredClone=="function"?(t,i)=>i&&("json"in i||"lossy"in i)?Wd(jd(t,i)):structuredClone(t):(t,i)=>Wd(jd(t,i));function g_(t,i){const r=[{type:"text",value:"↩"}];return i>1&&r.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(i)}]}),r}function m_(t,i){return"Back to reference "+(t+1)+(i>1?"-"+i:"")}function h_(t){const i=typeof t.options.clobberPrefix=="string"?t.options.clobberPrefix:"user-content-",r=t.options.footnoteBackContent||g_,l=t.options.footnoteBackLabel||m_,s=t.options.footnoteLabel||"Footnotes",c=t.options.footnoteLabelTagName||"h2",u=t.options.footnoteLabelProperties||{className:["sr-only"]},d=[];let p=-1;for(;++p0&&k.push({type:"text",value:" "});let P=typeof r=="string"?r:r(p,E);typeof P=="string"&&(P={type:"text",value:P}),k.push({type:"element",tagName:"a",properties:{href:"#"+i+"fnref-"+b+(E>1?"-"+E:""),dataFootnoteBackref:"",ariaLabel:typeof l=="string"?l:l(p,E),className:["data-footnote-backref"]},children:Array.isArray(P)?P:[P]})}const O=y[y.length-1];if(O&&O.type==="element"&&O.tagName==="p"){const P=O.children[O.children.length-1];P&&P.type==="text"?P.value+=" ":O.children.push({type:"text",value:" "}),O.children.push(...k)}else y.push(...k);const N={type:"element",tagName:"li",properties:{id:i+"fn-"+b},children:t.wrap(y,!0)};t.patch(g,N),d.push(N)}if(d.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:c,properties:{...ea(u),id:"footnote-label"},children:[{type:"text",value:s}]},{type:"text",value:` +`});const g={type:"element",tagName:"li",properties:c,children:u};return t.patch(i,g),t.applyData(i,g)}function Xb(t){let i=!1;if(t.type==="list"){i=t.spread||!1;const r=t.children;let l=-1;for(;!i&&++l1}function Jb(t,i){const r={},l=t.all(i);let s=-1;for(typeof i.start=="number"&&i.start!==1&&(r.start=i.start);++s0){const u={type:"element",tagName:"tbody",properties:{},children:t.wrap(r,!0)},d=Au(i.children[1]),p=Ip(i.children[i.children.length-1]);d&&p&&(u.position={start:d,end:p}),s.push(u)}const c={type:"element",tagName:"table",properties:{},children:t.wrap(s,!0)};return t.patch(i,c),t.applyData(i,c)}function i_(t,i,r){const l=r?r.children:void 0,c=(l?l.indexOf(i):1)===0?"th":"td",u=r&&r.type==="table"?r.align:void 0,d=u?u.length:i.children.length;let p=-1;const g=[];for(;++p0,!0),l[0]),s=l.index+l[0].length,l=r.exec(i);return c.push(Kd(i.slice(s),s>0,!1)),c.join("")}function Kd(t,i,r){let l=0,s=t.length;if(i){let c=t.codePointAt(l);for(;c===$d||c===Hd;)l++,c=t.codePointAt(l)}if(r){let c=t.codePointAt(s-1);for(;c===$d||c===Hd;)s--,c=t.codePointAt(s-1)}return s>l?t.slice(l,s):""}function a_(t,i){const r={type:"text",value:l_(String(i.value))};return t.patch(i,r),t.applyData(i,r)}function s_(t,i){const r={type:"element",tagName:"hr",properties:{},children:[]};return t.patch(i,r),t.applyData(i,r)}const u_={blockquote:Fb,break:Bb,code:Ub,delete:$b,emphasis:Hb,footnoteReference:Kb,heading:Gb,html:Wb,imageReference:jb,image:Vb,inlineCode:qb,linkReference:Yb,link:Qb,listItem:Zb,list:Jb,paragraph:e_,root:t_,strong:n_,table:r_,tableCell:o_,tableRow:i_,text:a_,thematicBreak:s_,toml:Hl,yaml:Hl,definition:Hl,footnoteDefinition:Hl};function Hl(){}const eg=-1,la=0,No=1,Jl=2,Pu=3,zu=4,Fu=5,Bu=6,tg=7,ng=8,rg=typeof self=="object"?self:globalThis,Gd=(t,i)=>{switch(t){case"Function":case"SharedWorker":case"Worker":case"eval":case"setInterval":case"setTimeout":throw new TypeError("unable to deserialize "+t)}return new rg[t](i)},c_=(t,i)=>{const r=(s,c)=>(t.set(c,s),s),l=s=>{if(t.has(s))return t.get(s);const[c,u]=i[s];switch(c){case la:case eg:return r(u,s);case No:{const d=r([],s);for(const p of u)d.push(l(p));return d}case Jl:{const d=r({},s);for(const[p,g]of u)d[l(p)]=l(g);return d}case Pu:return r(new Date(u),s);case zu:{const{source:d,flags:p}=u;return r(new RegExp(d,p),s)}case Fu:{const d=r(new Map,s);for(const[p,g]of u)d.set(l(p),l(g));return d}case Bu:{const d=r(new Set,s);for(const p of u)d.add(l(p));return d}case tg:{const{name:d,message:p}=u;return r(typeof rg[d]=="function"?Gd(d,p):new Error(p),s)}case ng:return r(BigInt(u),s);case"BigInt":return r(Object(BigInt(u)),s);case"ArrayBuffer":return r(new Uint8Array(u).buffer,u);case"DataView":{const{buffer:d}=new Uint8Array(u);return r(new DataView(d),u)}}return r(Gd(c,u),s)};return l},Wd=t=>c_(new Map,t)(0),Yr="",{toString:f_}={},{keys:d_}=Object,vo=t=>{const i=typeof t;if(i!=="object"||!t)return[la,i];const r=f_.call(t).slice(8,-1);switch(r){case"Array":return[No,Yr];case"Object":return[Jl,Yr];case"Date":return[Pu,Yr];case"RegExp":return[zu,Yr];case"Map":return[Fu,Yr];case"Set":return[Bu,Yr];case"DataView":return[No,r]}return r.includes("Array")?[No,r]:t instanceof Error?[tg,t.name||"Error"]:[Jl,r]},Kl=([t,i])=>t===la&&(i==="function"||i==="symbol"),p_=(t,i,r,l)=>{const s=(u,d)=>{const p=l.push(u)-1;return r.set(d,p),p},c=u=>{if(r.has(u))return r.get(u);let[d,p]=vo(u);switch(d){case la:{let y=u;switch(p){case"bigint":d=ng,y=u.toString();break;case"function":case"symbol":if(t)throw new TypeError("unable to serialize "+p);y=null;break;case"undefined":return s([eg],u)}return s([d,y],u)}case No:{if(p){let b=u;return p==="DataView"?b=new Uint8Array(u.buffer):p==="ArrayBuffer"&&(b=new Uint8Array(u)),s([p,[...b]],u)}const y=[],h=s([d,y],u);for(const b of u)y.push(c(b));return h}case Jl:{if(p)switch(p){case"BigInt":return s([p,u.toString()],u);case"Boolean":case"Number":case"String":return s([p,u.valueOf()],u)}if(i&&"toJSON"in u)return c(u.toJSON());const y=[],h=s([d,y],u);for(const b of d_(u))(t||!Kl(vo(u[b])))&&y.push([c(b),c(u[b])]);return h}case Pu:return s([d,isNaN(u.getTime())?Yr:u.toISOString()],u);case zu:{const{source:y,flags:h}=u;return s([d,{source:y,flags:h}],u)}case Fu:{const y=[],h=s([d,y],u);for(const[b,E]of u)(t||!(Kl(vo(b))||Kl(vo(E))))&&y.push([c(b),c(E)]);return h}case Bu:{const y=[],h=s([d,y],u);for(const b of u)(t||!Kl(vo(b)))&&y.push(c(b));return h}}const{message:g}=u;return s([d,{name:p,message:g}],u)};return c},jd=(t,{json:i,lossy:r}={})=>{const l=[];return p_(!(i||r),!!i,new Map,l)(t),l},ea=typeof structuredClone=="function"?(t,i)=>i&&("json"in i||"lossy"in i)?Wd(jd(t,i)):structuredClone(t):(t,i)=>Wd(jd(t,i));function g_(t,i){const r=[{type:"text",value:"↩"}];return i>1&&r.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(i)}]}),r}function m_(t,i){return"Back to reference "+(t+1)+(i>1?"-"+i:"")}function h_(t){const i=typeof t.options.clobberPrefix=="string"?t.options.clobberPrefix:"user-content-",r=t.options.footnoteBackContent||g_,l=t.options.footnoteBackLabel||m_,s=t.options.footnoteLabel||"Footnotes",c=t.options.footnoteLabelTagName||"h2",u=t.options.footnoteLabelProperties||{className:["sr-only"]},d=[];let p=-1;for(;++p0&&k.push({type:"text",value:" "});let F=typeof r=="string"?r:r(p,E);typeof F=="string"&&(F={type:"text",value:F}),k.push({type:"element",tagName:"a",properties:{href:"#"+i+"fnref-"+b+(E>1?"-"+E:""),dataFootnoteBackref:"",ariaLabel:typeof l=="string"?l:l(p,E),className:["data-footnote-backref"]},children:Array.isArray(F)?F:[F]})}const R=y[y.length-1];if(R&&R.type==="element"&&R.tagName==="p"){const F=R.children[R.children.length-1];F&&F.type==="text"?F.value+=" ":R.children.push({type:"text",value:" "}),R.children.push(...k)}else y.push(...k);const x={type:"element",tagName:"li",properties:{id:i+"fn-"+b},children:t.wrap(y,!0)};t.patch(g,x),d.push(x)}if(d.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:c,properties:{...ea(u),id:"footnote-label"},children:[{type:"text",value:s}]},{type:"text",value:` `},{type:"element",tagName:"ol",properties:{},children:t.wrap(d,!0)},{type:"text",value:` -`}]}}const Io=(function(t){if(t==null)return __;if(typeof t=="function")return aa(t);if(typeof t=="object")return Array.isArray(t)?y_(t):E_(t);if(typeof t=="string")return b_(t);throw new Error("Expected function, string, or object as test")});function y_(t){const i=[];let r=-1;for(;++r":""))+")"})}return b;function b(){let E=ig,k,C,O;if((!i||c(p,g,y[y.length-1]||void 0))&&(E=S_(r(p,y)),E[0]===_u))return E;if("children"in p&&p.children){const N=p;if(N.children&&E[0]!==w_)for(C=(l?N.children.length:-1)+u,O=y.concat(N);C>-1&&C":""))+")"})}return b;function b(){let E=ig,k,N,R;if((!i||c(p,g,y[y.length-1]||void 0))&&(E=S_(r(p,y)),E[0]===_u))return E;if("children"in p&&p.children){const x=p;if(x.children&&E[0]!==w_)for(N=(l?x.children.length:-1)+u,R=y.concat(x);N>-1&&N0&&r.push({type:"text",value:` `}),r}function Vd(t){let i=0,r=t.charCodeAt(i);for(;r===9||r===32;)i++,r=t.charCodeAt(i);return t.slice(i)}function qd(t,i){const r=N_(t,i),l=r.one(t,void 0),s=h_(r),c=Array.isArray(l)?{type:"root",children:l}:l||{type:"root",children:[]};return s&&c.children.push({type:"text",value:` -`},s),c}function O_(t,i){return t&&"run"in t?async function(r,l){const s=qd(r,{file:l,...i});await t.run(s,l)}:function(r,l){return qd(r,{file:l,...t||i})}}function Yd(t){if(t)throw t}var Js,Qd;function I_(){if(Qd)return Js;Qd=1;var t=Object.prototype.hasOwnProperty,i=Object.prototype.toString,r=Object.defineProperty,l=Object.getOwnPropertyDescriptor,s=function(g){return typeof Array.isArray=="function"?Array.isArray(g):i.call(g)==="[object Array]"},c=function(g){if(!g||i.call(g)!=="[object Object]")return!1;var y=t.call(g,"constructor"),h=g.constructor&&g.constructor.prototype&&t.call(g.constructor.prototype,"isPrototypeOf");if(g.constructor&&!y&&!h)return!1;var b;for(b in g);return typeof b>"u"||t.call(g,b)},u=function(g,y){r&&y.name==="__proto__"?r(g,y.name,{enumerable:!0,configurable:!0,value:y.newValue,writable:!0}):g[y.name]=y.newValue},d=function(g,y){if(y==="__proto__")if(t.call(g,y)){if(l)return l(g,y).value}else return;return g[y]};return Js=function p(){var g,y,h,b,E,k,C=arguments[0],O=1,N=arguments.length,P=!1;for(typeof C=="boolean"&&(P=C,C=arguments[1]||{},O=2),(C==null||typeof C!="object"&&typeof C!="function")&&(C={});Ou.length;let p;d&&u.push(s);try{p=t.apply(this,u)}catch(g){const y=g;if(d&&r)throw y;return s(y)}d||(p&&p.then&&typeof p.then=="function"?p.then(c,s):p instanceof Error?s(p):c(p))}function s(u,...d){r||(r=!0,i(u,...d))}function c(u){s(null,u)}}const Un={basename:P_,dirname:z_,extname:F_,join:B_,sep:"/"};function P_(t,i){if(i!==void 0&&typeof i!="string")throw new TypeError('"ext" argument must be a string');Mo(t);let r=0,l=-1,s=t.length,c;if(i===void 0||i.length===0||i.length>t.length){for(;s--;)if(t.codePointAt(s)===47){if(c){r=s+1;break}}else l<0&&(c=!0,l=s+1);return l<0?"":t.slice(r,l)}if(i===t)return"";let u=-1,d=i.length-1;for(;s--;)if(t.codePointAt(s)===47){if(c){r=s+1;break}}else u<0&&(c=!0,u=s+1),d>-1&&(t.codePointAt(s)===i.codePointAt(d--)?d<0&&(l=s):(d=-1,l=u));return r===l?l=u:l<0&&(l=t.length),t.slice(r,l)}function z_(t){if(Mo(t),t.length===0)return".";let i=-1,r=t.length,l;for(;--r;)if(t.codePointAt(r)===47){if(l){i=r;break}}else l||(l=!0);return i<0?t.codePointAt(0)===47?"/":".":i===1&&t.codePointAt(0)===47?"//":t.slice(0,i)}function F_(t){Mo(t);let i=t.length,r=-1,l=0,s=-1,c=0,u;for(;i--;){const d=t.codePointAt(i);if(d===47){if(u){l=i+1;break}continue}r<0&&(u=!0,r=i+1),d===46?s<0?s=i:c!==1&&(c=1):s>-1&&(c=-1)}return s<0||r<0||c===0||c===1&&s===r-1&&s===l+1?"":t.slice(s,r)}function B_(...t){let i=-1,r;for(;++i0&&t.codePointAt(t.length-1)===47&&(r+="/"),i?"/"+r:r}function $_(t,i){let r="",l=0,s=-1,c=0,u=-1,d,p;for(;++u<=t.length;){if(u2){if(p=r.lastIndexOf("/"),p!==r.length-1){p<0?(r="",l=0):(r=r.slice(0,p),l=r.length-1-r.lastIndexOf("/")),s=u,c=0;continue}}else if(r.length>0){r="",l=0,s=u,c=0;continue}}i&&(r=r.length>0?r+"/..":"..",l=2)}else r.length>0?r+="/"+t.slice(s+1,u):r=t.slice(s+1,u),l=u-s-1;s=u,c=0}else d===46&&c>-1?c++:c=-1}return r}function Mo(t){if(typeof t!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(t))}const H_={cwd:K_};function K_(){return"/"}function wu(t){return!!(t!==null&&typeof t=="object"&&"href"in t&&t.href&&"protocol"in t&&t.protocol&&t.auth===void 0)}function G_(t){if(typeof t=="string")t=new URL(t);else if(!wu(t)){const i=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+t+"`");throw i.code="ERR_INVALID_ARG_TYPE",i}if(t.protocol!=="file:"){const i=new TypeError("The URL must be of scheme file");throw i.code="ERR_INVALID_URL_SCHEME",i}return W_(t)}function W_(t){if(t.hostname!==""){const l=new TypeError('File URL host must be "localhost" or empty on darwin');throw l.code="ERR_INVALID_FILE_URL_HOST",l}const i=t.pathname;let r=-1;for(;++r0){let[E,...k]=y;const C=l[b][1];ku(C)&&ku(E)&&(E=eu(!0,C,E)),l[b]=[g,E,...k]}}}}const Y_=new Uu().freeze();function iu(t,i){if(typeof i!="function")throw new TypeError("Cannot `"+t+"` without `parser`")}function ou(t,i){if(typeof i!="function")throw new TypeError("Cannot `"+t+"` without `compiler`")}function lu(t,i){if(i)throw new Error("Cannot call `"+t+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function Xd(t){if(!ku(t)||typeof t.type!="string")throw new TypeError("Expected node, got `"+t+"`")}function Jd(t,i,r){if(!r)throw new Error("`"+t+"` finished async. Use `"+i+"` instead")}function Gl(t){return Q_(t)?t:new lg(t)}function Q_(t){return!!(t&&typeof t=="object"&&"message"in t&&"messages"in t)}function Z_(t){return typeof t=="string"||X_(t)}function X_(t){return!!(t&&typeof t=="object"&&"byteLength"in t&&"byteOffset"in t)}const J_="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",ep=[],tp={allowDangerousHtml:!0},ev=/^(https?|ircs?|mailto|xmpp)$/i,tv=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function nv(t){const i=rv(t),r=iv(t);return ov(i.runSync(i.parse(r),r),t)}function rv(t){const i=t.rehypePlugins||ep,r=t.remarkPlugins||ep,l=t.remarkRehypeOptions?{...t.remarkRehypeOptions,...tp}:tp;return Y_().use(zb).use(r).use(O_,l).use(i)}function iv(t){const i=t.children||"",r=new lg;return typeof i=="string"&&(r.value=i),r}function ov(t,i){const r=i.allowedElements,l=i.allowElement,s=i.components,c=i.disallowedElements,u=i.skipHtml,d=i.unwrapDisallowed,p=i.urlTransform||lv;for(const y of tv)Object.hasOwn(i,y.from)&&(""+y.from+(y.to?"use `"+y.to+"` instead":"remove it")+J_+y.id,void 0);return i.className&&(t={type:"element",tagName:"div",properties:{className:i.className},children:t.type==="root"?t.children:[t]}),sa(t,g),_y(t,{Fragment:le.Fragment,components:s,ignoreInvalidStyle:!0,jsx:le.jsx,jsxs:le.jsxs,passKeys:!0,passNode:!0});function g(y,h,b){if(y.type==="raw"&&b&&typeof h=="number")return u?b.children.splice(h,1):b.children[h]={type:"text",value:y.value},h;if(y.type==="element"){let E;for(E in Qs)if(Object.hasOwn(Qs,E)&&Object.hasOwn(y.properties,E)){const k=y.properties[E],C=Qs[E];(C===null||C.includes(y.tagName))&&(y.properties[E]=p(String(k||""),E,y))}}if(y.type==="element"){let E=r?!r.includes(y.tagName):c?c.includes(y.tagName):!1;if(!E&&l&&typeof h=="number"&&(E=!l(y,h,b)),E&&b&&typeof h=="number")return d&&y.children?b.children.splice(h,1,...y.children):b.children.splice(h,1),h}}}function lv(t){const i=t.indexOf(":"),r=t.indexOf("?"),l=t.indexOf("#"),s=t.indexOf("/");return i===-1||s!==-1&&i>s||r!==-1&&i>r||l!==-1&&i>l||ev.test(t.slice(0,i))?t:""}function np(t,i){const r=String(t);if(typeof i!="string")throw new TypeError("Expected character");let l=0,s=r.indexOf(i);for(;s!==-1;)l++,s=r.indexOf(i,s+i.length);return l}function av(t){if(typeof t!="string")throw new TypeError("Expected a string");return t.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function sv(t,i,r){const s=Io((r||{}).ignore||[]),c=uv(i);let u=-1;for(;++u0?{type:"text",value:A}:void 0),A===!1?b.lastIndex=W+1:(k!==W&&P.push({type:"text",value:g.value.slice(k,W)}),Array.isArray(A)?P.push(...A):A&&P.push(A),k=W+z[0].length,N=!0),!b.global)break;z=b.exec(g.value)}return N?(k?\]}]+$/.exec(t);if(!i)return[t,void 0];t=t.slice(0,i.index);let r=i[0],l=r.indexOf(")");const s=np(t,"(");let c=np(t,")");for(;l!==-1&&s>c;)t+=r.slice(0,l+1),r=r.slice(l+1),l=r.indexOf(")"),c++;return[t,r]}function ag(t,i){const r=t.input.charCodeAt(t.index-1);return(t.index===0||Zr(r)||ia(r))&&(!i||r!==47)}sg.peek=Iv;function Sv(){this.buffer()}function xv(t){this.enter({type:"footnoteReference",identifier:"",label:""},t)}function Nv(){this.buffer()}function Tv(t){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},t)}function Cv(t){const i=this.resume(),r=this.stack[this.stack.length-1];r.type,r.identifier=Cn(this.sliceSerialize(t)).toLowerCase(),r.label=i}function Av(t){this.exit(t)}function Rv(t){const i=this.resume(),r=this.stack[this.stack.length-1];r.type,r.identifier=Cn(this.sliceSerialize(t)).toLowerCase(),r.label=i}function Ov(t){this.exit(t)}function Iv(){return"["}function sg(t,i,r,l){const s=r.createTracker(l);let c=s.move("[^");const u=r.enter("footnoteReference"),d=r.enter("reference");return c+=s.move(r.safe(r.associationId(t),{after:"]",before:c})),d(),u(),c+=s.move("]"),c}function Mv(){return{enter:{gfmFootnoteCallString:Sv,gfmFootnoteCall:xv,gfmFootnoteDefinitionLabelString:Nv,gfmFootnoteDefinition:Tv},exit:{gfmFootnoteCallString:Cv,gfmFootnoteCall:Av,gfmFootnoteDefinitionLabelString:Rv,gfmFootnoteDefinition:Ov}}}function Lv(t){let i=!1;return t&&t.firstLineBlank&&(i=!0),{handlers:{footnoteDefinition:r,footnoteReference:sg},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function r(l,s,c,u){const d=c.createTracker(u);let p=d.move("[^");const g=c.enter("footnoteDefinition"),y=c.enter("label");return p+=d.move(c.safe(c.associationId(l),{before:p,after:"]"})),y(),p+=d.move("]:"),l.children&&l.children.length>0&&(d.shift(4),p+=d.move((i?` -`:" ")+c.indentLines(c.containerFlow(l,d.current()),i?ug:Dv))),g(),p}}function Dv(t,i,r){return i===0?t:ug(t,i,r)}function ug(t,i,r){return(r?"":" ")+t}const Pv=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];cg.peek=$v;function zv(){return{canContainEols:["delete"],enter:{strikethrough:Bv},exit:{strikethrough:Uv}}}function Fv(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:Pv}],handlers:{delete:cg}}}function Bv(t){this.enter({type:"delete",children:[]},t)}function Uv(t){this.exit(t)}function cg(t,i,r,l){const s=r.createTracker(l),c=r.enter("strikethrough");let u=s.move("~~");return u+=r.containerPhrasing(t,{...s.current(),before:u,after:"~"}),u+=s.move("~~"),c(),u}function $v(){return"~"}function Hv(t){return t.length}function Kv(t,i){const r=i||{},l=(r.align||[]).concat(),s=r.stringLength||Hv,c=[],u=[],d=[],p=[];let g=0,y=-1;for(;++yg&&(g=t[y].length);++Np[N])&&(p[N]=z)}C.push(P)}u[y]=C,d[y]=O}let h=-1;if(typeof l=="object"&&"length"in l)for(;++hp[h]&&(p[h]=P),E[h]=P),b[h]=z}u.splice(1,0,b),d.splice(1,0,E),y=-1;const k=[];for(;++y"u"||t.call(g,b)},u=function(g,y){r&&y.name==="__proto__"?r(g,y.name,{enumerable:!0,configurable:!0,value:y.newValue,writable:!0}):g[y.name]=y.newValue},d=function(g,y){if(y==="__proto__")if(t.call(g,y)){if(l)return l(g,y).value}else return;return g[y]};return Js=function p(){var g,y,h,b,E,k,N=arguments[0],R=1,x=arguments.length,F=!1;for(typeof N=="boolean"&&(F=N,N=arguments[1]||{},R=2),(N==null||typeof N!="object"&&typeof N!="function")&&(N={});Ru.length;let p;d&&u.push(s);try{p=t.apply(this,u)}catch(g){const y=g;if(d&&r)throw y;return s(y)}d||(p&&p.then&&typeof p.then=="function"?p.then(c,s):p instanceof Error?s(p):c(p))}function s(u,...d){r||(r=!0,i(u,...d))}function c(u){s(null,u)}}const Un={basename:P_,dirname:z_,extname:F_,join:B_,sep:"/"};function P_(t,i){if(i!==void 0&&typeof i!="string")throw new TypeError('"ext" argument must be a string');Mo(t);let r=0,l=-1,s=t.length,c;if(i===void 0||i.length===0||i.length>t.length){for(;s--;)if(t.codePointAt(s)===47){if(c){r=s+1;break}}else l<0&&(c=!0,l=s+1);return l<0?"":t.slice(r,l)}if(i===t)return"";let u=-1,d=i.length-1;for(;s--;)if(t.codePointAt(s)===47){if(c){r=s+1;break}}else u<0&&(c=!0,u=s+1),d>-1&&(t.codePointAt(s)===i.codePointAt(d--)?d<0&&(l=s):(d=-1,l=u));return r===l?l=u:l<0&&(l=t.length),t.slice(r,l)}function z_(t){if(Mo(t),t.length===0)return".";let i=-1,r=t.length,l;for(;--r;)if(t.codePointAt(r)===47){if(l){i=r;break}}else l||(l=!0);return i<0?t.codePointAt(0)===47?"/":".":i===1&&t.codePointAt(0)===47?"//":t.slice(0,i)}function F_(t){Mo(t);let i=t.length,r=-1,l=0,s=-1,c=0,u;for(;i--;){const d=t.codePointAt(i);if(d===47){if(u){l=i+1;break}continue}r<0&&(u=!0,r=i+1),d===46?s<0?s=i:c!==1&&(c=1):s>-1&&(c=-1)}return s<0||r<0||c===0||c===1&&s===r-1&&s===l+1?"":t.slice(s,r)}function B_(...t){let i=-1,r;for(;++i0&&t.codePointAt(t.length-1)===47&&(r+="/"),i?"/"+r:r}function $_(t,i){let r="",l=0,s=-1,c=0,u=-1,d,p;for(;++u<=t.length;){if(u2){if(p=r.lastIndexOf("/"),p!==r.length-1){p<0?(r="",l=0):(r=r.slice(0,p),l=r.length-1-r.lastIndexOf("/")),s=u,c=0;continue}}else if(r.length>0){r="",l=0,s=u,c=0;continue}}i&&(r=r.length>0?r+"/..":"..",l=2)}else r.length>0?r+="/"+t.slice(s+1,u):r=t.slice(s+1,u),l=u-s-1;s=u,c=0}else d===46&&c>-1?c++:c=-1}return r}function Mo(t){if(typeof t!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(t))}const H_={cwd:K_};function K_(){return"/"}function wu(t){return!!(t!==null&&typeof t=="object"&&"href"in t&&t.href&&"protocol"in t&&t.protocol&&t.auth===void 0)}function G_(t){if(typeof t=="string")t=new URL(t);else if(!wu(t)){const i=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+t+"`");throw i.code="ERR_INVALID_ARG_TYPE",i}if(t.protocol!=="file:"){const i=new TypeError("The URL must be of scheme file");throw i.code="ERR_INVALID_URL_SCHEME",i}return W_(t)}function W_(t){if(t.hostname!==""){const l=new TypeError('File URL host must be "localhost" or empty on darwin');throw l.code="ERR_INVALID_FILE_URL_HOST",l}const i=t.pathname;let r=-1;for(;++r0){let[E,...k]=y;const N=l[b][1];ku(N)&&ku(E)&&(E=eu(!0,N,E)),l[b]=[g,E,...k]}}}}const Y_=new Uu().freeze();function iu(t,i){if(typeof i!="function")throw new TypeError("Cannot `"+t+"` without `parser`")}function ou(t,i){if(typeof i!="function")throw new TypeError("Cannot `"+t+"` without `compiler`")}function lu(t,i){if(i)throw new Error("Cannot call `"+t+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function Xd(t){if(!ku(t)||typeof t.type!="string")throw new TypeError("Expected node, got `"+t+"`")}function Jd(t,i,r){if(!r)throw new Error("`"+t+"` finished async. Use `"+i+"` instead")}function Gl(t){return Q_(t)?t:new lg(t)}function Q_(t){return!!(t&&typeof t=="object"&&"message"in t&&"messages"in t)}function Z_(t){return typeof t=="string"||X_(t)}function X_(t){return!!(t&&typeof t=="object"&&"byteLength"in t&&"byteOffset"in t)}const J_="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",ep=[],tp={allowDangerousHtml:!0},ev=/^(https?|ircs?|mailto|xmpp)$/i,tv=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function nv(t){const i=rv(t),r=iv(t);return ov(i.runSync(i.parse(r),r),t)}function rv(t){const i=t.rehypePlugins||ep,r=t.remarkPlugins||ep,l=t.remarkRehypeOptions?{...t.remarkRehypeOptions,...tp}:tp;return Y_().use(zb).use(r).use(O_,l).use(i)}function iv(t){const i=t.children||"",r=new lg;return typeof i=="string"&&(r.value=i),r}function ov(t,i){const r=i.allowedElements,l=i.allowElement,s=i.components,c=i.disallowedElements,u=i.skipHtml,d=i.unwrapDisallowed,p=i.urlTransform||lv;for(const y of tv)Object.hasOwn(i,y.from)&&(""+y.from+(y.to?"use `"+y.to+"` instead":"remove it")+J_+y.id,void 0);return i.className&&(t={type:"element",tagName:"div",properties:{className:i.className},children:t.type==="root"?t.children:[t]}),sa(t,g),_y(t,{Fragment:re.Fragment,components:s,ignoreInvalidStyle:!0,jsx:re.jsx,jsxs:re.jsxs,passKeys:!0,passNode:!0});function g(y,h,b){if(y.type==="raw"&&b&&typeof h=="number")return u?b.children.splice(h,1):b.children[h]={type:"text",value:y.value},h;if(y.type==="element"){let E;for(E in Qs)if(Object.hasOwn(Qs,E)&&Object.hasOwn(y.properties,E)){const k=y.properties[E],N=Qs[E];(N===null||N.includes(y.tagName))&&(y.properties[E]=p(String(k||""),E,y))}}if(y.type==="element"){let E=r?!r.includes(y.tagName):c?c.includes(y.tagName):!1;if(!E&&l&&typeof h=="number"&&(E=!l(y,h,b)),E&&b&&typeof h=="number")return d&&y.children?b.children.splice(h,1,...y.children):b.children.splice(h,1),h}}}function lv(t){const i=t.indexOf(":"),r=t.indexOf("?"),l=t.indexOf("#"),s=t.indexOf("/");return i===-1||s!==-1&&i>s||r!==-1&&i>r||l!==-1&&i>l||ev.test(t.slice(0,i))?t:""}function np(t,i){const r=String(t);if(typeof i!="string")throw new TypeError("Expected character");let l=0,s=r.indexOf(i);for(;s!==-1;)l++,s=r.indexOf(i,s+i.length);return l}function av(t){if(typeof t!="string")throw new TypeError("Expected a string");return t.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function sv(t,i,r){const s=Io((r||{}).ignore||[]),c=uv(i);let u=-1;for(;++u0?{type:"text",value:C}:void 0),C===!1?b.lastIndex=G+1:(k!==G&&F.push({type:"text",value:g.value.slice(k,G)}),Array.isArray(C)?F.push(...C):C&&F.push(C),k=G+P[0].length,x=!0),!b.global)break;P=b.exec(g.value)}return x?(k?\]}]+$/.exec(t);if(!i)return[t,void 0];t=t.slice(0,i.index);let r=i[0],l=r.indexOf(")");const s=np(t,"(");let c=np(t,")");for(;l!==-1&&s>c;)t+=r.slice(0,l+1),r=r.slice(l+1),l=r.indexOf(")"),c++;return[t,r]}function ag(t,i){const r=t.input.charCodeAt(t.index-1);return(t.index===0||Zr(r)||ia(r))&&(!i||r!==47)}sg.peek=Iv;function Sv(){this.buffer()}function xv(t){this.enter({type:"footnoteReference",identifier:"",label:""},t)}function Nv(){this.buffer()}function Tv(t){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},t)}function Cv(t){const i=this.resume(),r=this.stack[this.stack.length-1];r.type,r.identifier=Cn(this.sliceSerialize(t)).toLowerCase(),r.label=i}function Av(t){this.exit(t)}function Rv(t){const i=this.resume(),r=this.stack[this.stack.length-1];r.type,r.identifier=Cn(this.sliceSerialize(t)).toLowerCase(),r.label=i}function Ov(t){this.exit(t)}function Iv(){return"["}function sg(t,i,r,l){const s=r.createTracker(l);let c=s.move("[^");const u=r.enter("footnoteReference"),d=r.enter("reference");return c+=s.move(r.safe(r.associationId(t),{after:"]",before:c})),d(),u(),c+=s.move("]"),c}function Mv(){return{enter:{gfmFootnoteCallString:Sv,gfmFootnoteCall:xv,gfmFootnoteDefinitionLabelString:Nv,gfmFootnoteDefinition:Tv},exit:{gfmFootnoteCallString:Cv,gfmFootnoteCall:Av,gfmFootnoteDefinitionLabelString:Rv,gfmFootnoteDefinition:Ov}}}function Lv(t){let i=!1;return t&&t.firstLineBlank&&(i=!0),{handlers:{footnoteDefinition:r,footnoteReference:sg},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function r(l,s,c,u){const d=c.createTracker(u);let p=d.move("[^");const g=c.enter("footnoteDefinition"),y=c.enter("label");return p+=d.move(c.safe(c.associationId(l),{before:p,after:"]"})),y(),p+=d.move("]:"),l.children&&l.children.length>0&&(d.shift(4),p+=d.move((i?` +`:" ")+c.indentLines(c.containerFlow(l,d.current()),i?ug:Dv))),g(),p}}function Dv(t,i,r){return i===0?t:ug(t,i,r)}function ug(t,i,r){return(r?"":" ")+t}const Pv=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];cg.peek=$v;function zv(){return{canContainEols:["delete"],enter:{strikethrough:Bv},exit:{strikethrough:Uv}}}function Fv(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:Pv}],handlers:{delete:cg}}}function Bv(t){this.enter({type:"delete",children:[]},t)}function Uv(t){this.exit(t)}function cg(t,i,r,l){const s=r.createTracker(l),c=r.enter("strikethrough");let u=s.move("~~");return u+=r.containerPhrasing(t,{...s.current(),before:u,after:"~"}),u+=s.move("~~"),c(),u}function $v(){return"~"}function Hv(t){return t.length}function Kv(t,i){const r=i||{},l=(r.align||[]).concat(),s=r.stringLength||Hv,c=[],u=[],d=[],p=[];let g=0,y=-1;for(;++yg&&(g=t[y].length);++xp[x])&&(p[x]=P)}N.push(F)}u[y]=N,d[y]=R}let h=-1;if(typeof l=="object"&&"length"in l)for(;++hp[h]&&(p[h]=F),E[h]=F),b[h]=P}u.splice(1,0,b),d.splice(1,0,E),y=-1;const k=[];for(;++y "),c.shift(2);const u=r.indentLines(r.containerFlow(t,c.current()),jv);return s(),u}function jv(t,i,r){return">"+(r?"":" ")+t}function Vv(t,i){return ip(t,i.inConstruct,!0)&&!ip(t,i.notInConstruct,!1)}function ip(t,i,r){if(typeof i=="string"&&(i=[i]),!i||i.length===0)return r;let l=-1;for(;++lu&&(u=c):c=1,s=l+i.length,l=r.indexOf(i,s);return u}function Yv(t,i){return!!(i.options.fences===!1&&t.value&&!t.lang&&/[^ \r\n]/.test(t.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(t.value))}function Qv(t){const i=t.options.fence||"`";if(i!=="`"&&i!=="~")throw new Error("Cannot serialize code with `"+i+"` for `options.fence`, expected `` ` `` or `~`");return i}function Zv(t,i,r,l){const s=Qv(r),c=t.value||"",u=s==="`"?"GraveAccent":"Tilde";if(Yv(t,r)){const h=r.enter("codeIndented"),b=r.indentLines(c,Xv);return h(),b}const d=r.createTracker(l),p=s.repeat(Math.max(qv(c,s)+1,3)),g=r.enter("codeFenced");let y=d.move(p);if(t.lang){const h=r.enter(`codeFencedLang${u}`);y+=d.move(r.safe(t.lang,{before:y,after:" ",encode:["`"],...d.current()})),h()}if(t.lang&&t.meta){const h=r.enter(`codeFencedMeta${u}`);y+=d.move(" "),y+=d.move(r.safe(t.meta,{before:y,after:` @@ -64,11 +64,11 @@ Error generating stack: `+m.message+` `+(s===1?"=":"-").repeat(b.length-(Math.max(b.lastIndexOf("\r"),b.lastIndexOf(` `))+1))}const u="#".repeat(s),d=r.enter("headingAtx"),p=r.enter("phrasing");c.move(u+" ");let g=r.containerPhrasing(t,{before:"# ",after:` `,...c.current()});return/^[\t ]/.test(g)&&(g=Co(g.charCodeAt(0))+g.slice(1)),g=g?u+" "+g:u,r.options.closeAtx&&(g+=" "+u),p(),d(),g}dg.peek=ik;function dg(t){return t.value||""}function ik(){return"<"}pg.peek=ok;function pg(t,i,r,l){const s=$u(r),c=s==='"'?"Quote":"Apostrophe",u=r.enter("image");let d=r.enter("label");const p=r.createTracker(l);let g=p.move("![");return g+=p.move(r.safe(t.alt,{before:g,after:"]",...p.current()})),g+=p.move("]("),d(),!t.url&&t.title||/[\0- \u007F]/.test(t.url)?(d=r.enter("destinationLiteral"),g+=p.move("<"),g+=p.move(r.safe(t.url,{before:g,after:">",...p.current()})),g+=p.move(">")):(d=r.enter("destinationRaw"),g+=p.move(r.safe(t.url,{before:g,after:t.title?" ":")",...p.current()}))),d(),t.title&&(d=r.enter(`title${c}`),g+=p.move(" "+s),g+=p.move(r.safe(t.title,{before:g,after:s,...p.current()})),g+=p.move(s),d()),g+=p.move(")"),u(),g}function ok(){return"!"}gg.peek=lk;function gg(t,i,r,l){const s=t.referenceType,c=r.enter("imageReference");let u=r.enter("label");const d=r.createTracker(l);let p=d.move("![");const g=r.safe(t.alt,{before:p,after:"]",...d.current()});p+=d.move(g+"]["),u();const y=r.stack;r.stack=[],u=r.enter("reference");const h=r.safe(r.associationId(t),{before:p,after:"]",...d.current()});return u(),r.stack=y,c(),s==="full"||!g||g!==h?p+=d.move(h+"]"):s==="shortcut"?p=p.slice(0,-1):p+=d.move("]"),p}function lk(){return"!"}mg.peek=ak;function mg(t,i,r){let l=t.value||"",s="`",c=-1;for(;new RegExp("(^|[^`])"+s+"([^`]|$)").test(l);)s+="`";for(/[^ \r\n]/.test(l)&&(/^[ \r\n]/.test(l)&&/[ \r\n]$/.test(l)||/^`|`$/.test(l))&&(l=" "+l+" ");++c\u007F]/.test(t.url))}yg.peek=sk;function yg(t,i,r,l){const s=$u(r),c=s==='"'?"Quote":"Apostrophe",u=r.createTracker(l);let d,p;if(hg(t,r)){const y=r.stack;r.stack=[],d=r.enter("autolink");let h=u.move("<");return h+=u.move(r.containerPhrasing(t,{before:h,after:">",...u.current()})),h+=u.move(">"),d(),r.stack=y,h}d=r.enter("link"),p=r.enter("label");let g=u.move("[");return g+=u.move(r.containerPhrasing(t,{before:g,after:"](",...u.current()})),g+=u.move("]("),p(),!t.url&&t.title||/[\0- \u007F]/.test(t.url)?(p=r.enter("destinationLiteral"),g+=u.move("<"),g+=u.move(r.safe(t.url,{before:g,after:">",...u.current()})),g+=u.move(">")):(p=r.enter("destinationRaw"),g+=u.move(r.safe(t.url,{before:g,after:t.title?" ":")",...u.current()}))),p(),t.title&&(p=r.enter(`title${c}`),g+=u.move(" "+s),g+=u.move(r.safe(t.title,{before:g,after:s,...u.current()})),g+=u.move(s),p()),g+=u.move(")"),d(),g}function sk(t,i,r){return hg(t,r)?"<":"["}Eg.peek=uk;function Eg(t,i,r,l){const s=t.referenceType,c=r.enter("linkReference");let u=r.enter("label");const d=r.createTracker(l);let p=d.move("[");const g=r.containerPhrasing(t,{before:p,after:"]",...d.current()});p+=d.move(g+"]["),u();const y=r.stack;r.stack=[],u=r.enter("reference");const h=r.safe(r.associationId(t),{before:p,after:"]",...d.current()});return u(),r.stack=y,c(),s==="full"||!g||g!==h?p+=d.move(h+"]"):s==="shortcut"?p=p.slice(0,-1):p+=d.move("]"),p}function uk(){return"["}function Hu(t){const i=t.options.bullet||"*";if(i!=="*"&&i!=="+"&&i!=="-")throw new Error("Cannot serialize items with `"+i+"` for `options.bullet`, expected `*`, `+`, or `-`");return i}function ck(t){const i=Hu(t),r=t.options.bulletOther;if(!r)return i==="*"?"-":"*";if(r!=="*"&&r!=="+"&&r!=="-")throw new Error("Cannot serialize items with `"+r+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(r===i)throw new Error("Expected `bullet` (`"+i+"`) and `bulletOther` (`"+r+"`) to be different");return r}function fk(t){const i=t.options.bulletOrdered||".";if(i!=="."&&i!==")")throw new Error("Cannot serialize items with `"+i+"` for `options.bulletOrdered`, expected `.` or `)`");return i}function bg(t){const i=t.options.rule||"*";if(i!=="*"&&i!=="-"&&i!=="_")throw new Error("Cannot serialize rules with `"+i+"` for `options.rule`, expected `*`, `-`, or `_`");return i}function dk(t,i,r,l){const s=r.enter("list"),c=r.bulletCurrent;let u=t.ordered?fk(r):Hu(r);const d=t.ordered?u==="."?")":".":ck(r);let p=i&&r.bulletLastUsed?u===r.bulletLastUsed:!1;if(!t.ordered){const y=t.children?t.children[0]:void 0;if((u==="*"||u==="-")&&y&&(!y.children||!y.children[0])&&r.stack[r.stack.length-1]==="list"&&r.stack[r.stack.length-2]==="listItem"&&r.stack[r.stack.length-3]==="list"&&r.stack[r.stack.length-4]==="listItem"&&r.indexStack[r.indexStack.length-1]===0&&r.indexStack[r.indexStack.length-2]===0&&r.indexStack[r.indexStack.length-3]===0&&(p=!0),bg(r)===u&&y){let h=-1;for(;++h-1?i.start:1)+(r.options.incrementListMarker===!1?0:i.children.indexOf(t))+c);let u=c.length+1;(s==="tab"||s==="mixed"&&(i&&i.type==="list"&&i.spread||t.spread))&&(u=Math.ceil(u/4)*4);const d=r.createTracker(l);d.move(c+" ".repeat(u-c.length)),d.shift(u);const p=r.enter("listItem"),g=r.indentLines(r.containerFlow(t,d.current()),y);return p(),g;function y(h,b,E){return b?(E?"":" ".repeat(u))+h:(E?c:c+" ".repeat(u-c.length))+h}}function mk(t,i,r,l){const s=r.enter("paragraph"),c=r.enter("phrasing"),u=r.containerPhrasing(t,l);return c(),s(),u}const hk=Io(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function yk(t,i,r,l){return(t.children.some(function(u){return hk(u)})?r.containerPhrasing:r.containerFlow).call(r,t,l)}function Ek(t){const i=t.options.strong||"*";if(i!=="*"&&i!=="_")throw new Error("Cannot serialize strong with `"+i+"` for `options.strong`, expected `*`, or `_`");return i}_g.peek=bk;function _g(t,i,r,l){const s=Ek(r),c=r.enter("strong"),u=r.createTracker(l),d=u.move(s+s);let p=u.move(r.containerPhrasing(t,{after:s,before:d,...u.current()}));const g=p.charCodeAt(0),y=ta(l.before.charCodeAt(l.before.length-1),g,s);y.inside&&(p=Co(g)+p.slice(1));const h=p.charCodeAt(p.length-1),b=ta(l.after.charCodeAt(0),h,s);b.inside&&(p=p.slice(0,-1)+Co(h));const E=u.move(s+s);return c(),r.attentionEncodeSurroundingInfo={after:b.outside,before:y.outside},d+p+E}function bk(t,i,r){return r.options.strong||"*"}function _k(t,i,r,l){return r.safe(t.value,l)}function vk(t){const i=t.options.ruleRepetition||3;if(i<3)throw new Error("Cannot serialize rules with repetition `"+i+"` for `options.ruleRepetition`, expected `3` or more");return i}function kk(t,i,r){const l=(bg(r)+(r.options.ruleSpaces?" ":"")).repeat(vk(r));return r.options.ruleSpaces?l.slice(0,-1):l}const vg={blockquote:Wv,break:op,code:Zv,definition:Jv,emphasis:fg,hardBreak:op,heading:rk,html:dg,image:pg,imageReference:gg,inlineCode:mg,link:yg,linkReference:Eg,list:dk,listItem:gk,paragraph:mk,root:yk,strong:_g,text:_k,thematicBreak:kk};function wk(){return{enter:{table:Sk,tableData:lp,tableHeader:lp,tableRow:Nk},exit:{codeText:Tk,table:xk,tableData:cu,tableHeader:cu,tableRow:cu}}}function Sk(t){const i=t._align;this.enter({type:"table",align:i.map(function(r){return r==="none"?null:r}),children:[]},t),this.data.inTable=!0}function xk(t){this.exit(t),this.data.inTable=void 0}function Nk(t){this.enter({type:"tableRow",children:[]},t)}function cu(t){this.exit(t)}function lp(t){this.enter({type:"tableCell",children:[]},t)}function Tk(t){let i=this.resume();this.data.inTable&&(i=i.replace(/\\([\\|])/g,Ck));const r=this.stack[this.stack.length-1];r.type,r.value=i,this.exit(t)}function Ck(t,i){return i==="|"?i:t}function Ak(t){const i=t||{},r=i.tableCellPadding,l=i.tablePipeAlign,s=i.stringLength,c=r?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` -`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:b,table:u,tableCell:p,tableRow:d}};function u(E,k,C,O){return g(y(E,C,O),E.align)}function d(E,k,C,O){const N=h(E,C,O),P=g([N]);return P.slice(0,P.indexOf(` -`))}function p(E,k,C,O){const N=C.enter("tableCell"),P=C.enter("phrasing"),z=C.containerPhrasing(E,{...O,before:c,after:c});return P(),N(),z}function g(E,k){return Kv(E,{align:k,alignDelimiters:l,padding:r,stringLength:s})}function y(E,k,C){const O=E.children;let N=-1;const P=[],z=k.enter("table");for(;++N0&&!r&&(t[t.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),r}const Vk={tokenize:tw,partial:!0};function qk(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:Xk,continuation:{tokenize:Jk},exit:ew}},text:{91:{name:"gfmFootnoteCall",tokenize:Zk},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:Yk,resolveTo:Qk}}}}function Yk(t,i,r){const l=this;let s=l.events.length;const c=l.parser.gfmFootnotes||(l.parser.gfmFootnotes=[]);let u;for(;s--;){const p=l.events[s][1];if(p.type==="labelImage"){u=p;break}if(p.type==="gfmFootnoteCall"||p.type==="labelLink"||p.type==="label"||p.type==="image"||p.type==="link")break}return d;function d(p){if(!u||!u._balanced)return r(p);const g=Cn(l.sliceSerialize({start:u.end,end:l.now()}));return g.codePointAt(0)!==94||!c.includes(g.slice(1))?r(p):(t.enter("gfmFootnoteCallLabelMarker"),t.consume(p),t.exit("gfmFootnoteCallLabelMarker"),i(p))}}function Qk(t,i){let r=t.length;for(;r--;)if(t[r][1].type==="labelImage"&&t[r][0]==="enter"){t[r][1];break}t[r+1][1].type="data",t[r+3][1].type="gfmFootnoteCallLabelMarker";const l={type:"gfmFootnoteCall",start:Object.assign({},t[r+3][1].start),end:Object.assign({},t[t.length-1][1].end)},s={type:"gfmFootnoteCallMarker",start:Object.assign({},t[r+3][1].end),end:Object.assign({},t[r+3][1].end)};s.end.column++,s.end.offset++,s.end._bufferIndex++;const c={type:"gfmFootnoteCallString",start:Object.assign({},s.end),end:Object.assign({},t[t.length-1][1].start)},u={type:"chunkString",contentType:"string",start:Object.assign({},c.start),end:Object.assign({},c.end)},d=[t[r+1],t[r+2],["enter",l,i],t[r+3],t[r+4],["enter",s,i],["exit",s,i],["enter",c,i],["enter",u,i],["exit",u,i],["exit",c,i],t[t.length-2],t[t.length-1],["exit",l,i]];return t.splice(r,t.length-r+1,...d),t}function Zk(t,i,r){const l=this,s=l.parser.gfmFootnotes||(l.parser.gfmFootnotes=[]);let c=0,u;return d;function d(h){return t.enter("gfmFootnoteCall"),t.enter("gfmFootnoteCallLabelMarker"),t.consume(h),t.exit("gfmFootnoteCallLabelMarker"),p}function p(h){return h!==94?r(h):(t.enter("gfmFootnoteCallMarker"),t.consume(h),t.exit("gfmFootnoteCallMarker"),t.enter("gfmFootnoteCallString"),t.enter("chunkString").contentType="string",g)}function g(h){if(c>999||h===93&&!u||h===null||h===91||et(h))return r(h);if(h===93){t.exit("chunkString");const b=t.exit("gfmFootnoteCallString");return s.includes(Cn(l.sliceSerialize(b)))?(t.enter("gfmFootnoteCallLabelMarker"),t.consume(h),t.exit("gfmFootnoteCallLabelMarker"),t.exit("gfmFootnoteCall"),i):r(h)}return et(h)||(u=!0),c++,t.consume(h),h===92?y:g}function y(h){return h===91||h===92||h===93?(t.consume(h),c++,g):g(h)}}function Xk(t,i,r){const l=this,s=l.parser.gfmFootnotes||(l.parser.gfmFootnotes=[]);let c,u=0,d;return p;function p(k){return t.enter("gfmFootnoteDefinition")._container=!0,t.enter("gfmFootnoteDefinitionLabel"),t.enter("gfmFootnoteDefinitionLabelMarker"),t.consume(k),t.exit("gfmFootnoteDefinitionLabelMarker"),g}function g(k){return k===94?(t.enter("gfmFootnoteDefinitionMarker"),t.consume(k),t.exit("gfmFootnoteDefinitionMarker"),t.enter("gfmFootnoteDefinitionLabelString"),t.enter("chunkString").contentType="string",y):r(k)}function y(k){if(u>999||k===93&&!d||k===null||k===91||et(k))return r(k);if(k===93){t.exit("chunkString");const C=t.exit("gfmFootnoteDefinitionLabelString");return c=Cn(l.sliceSerialize(C)),t.enter("gfmFootnoteDefinitionLabelMarker"),t.consume(k),t.exit("gfmFootnoteDefinitionLabelMarker"),t.exit("gfmFootnoteDefinitionLabel"),b}return et(k)||(d=!0),u++,t.consume(k),k===92?h:y}function h(k){return k===91||k===92||k===93?(t.consume(k),u++,y):y(k)}function b(k){return k===58?(t.enter("definitionMarker"),t.consume(k),t.exit("definitionMarker"),s.includes(c)||s.push(c),je(t,E,"gfmFootnoteDefinitionWhitespace")):r(k)}function E(k){return i(k)}}function Jk(t,i,r){return t.check(Oo,i,t.attempt(Vk,i,r))}function ew(t){t.exit("gfmFootnoteDefinition")}function tw(t,i,r){const l=this;return je(t,s,"gfmFootnoteDefinitionIndent",5);function s(c){const u=l.events[l.events.length-1];return u&&u[1].type==="gfmFootnoteDefinitionIndent"&&u[2].sliceSerialize(u[1],!0).length===4?i(c):r(c)}}function nw(t){let r=(t||{}).singleTilde;const l={name:"strikethrough",tokenize:c,resolveAll:s};return r==null&&(r=!0),{text:{126:l},insideSpan:{null:[l]},attentionMarkers:{null:[126]}};function s(u,d){let p=-1;for(;++p1?p(k):(u.consume(k),h++,E);if(h<2&&!r)return p(k);const O=u.exit("strikethroughSequenceTemporary"),N=Ii(k);return O._open=!N||N===2&&!!C,O._close=!C||C===2&&!!N,d(k)}}}class rw{constructor(){this.map=[]}add(i,r,l){iw(this,i,r,l)}consume(i){if(this.map.sort(function(c,u){return c[0]-u[0]}),this.map.length===0)return;let r=this.map.length;const l=[];for(;r>0;)r-=1,l.push(i.slice(this.map[r][0]+this.map[r][1]),this.map[r][2]),i.length=this.map[r][0];l.push(i.slice()),i.length=0;let s=l.pop();for(;s;){for(const c of s)i.push(c);s=l.pop()}this.map.length=0}}function iw(t,i,r,l){let s=0;if(!(r===0&&l.length===0)){for(;s-1;){const Y=l.events[j][1].type;if(Y==="lineEnding"||Y==="linePrefix")j--;else break}const V=j>-1?l.events[j][1].type:null,ae=V==="tableHead"||V==="tableRow"?A:p;return ae===A&&l.parser.lazy[l.now().line]?r(w):ae(w)}function p(w){return t.enter("tableHead"),t.enter("tableRow"),g(w)}function g(w){return w===124||(u=!0,c+=1),y(w)}function y(w){return w===null?r(w):Te(w)?c>1?(c=0,l.interrupt=!0,t.exit("tableRow"),t.enter("lineEnding"),t.consume(w),t.exit("lineEnding"),E):r(w):Ue(w)?je(t,y,"whitespace")(w):(c+=1,u&&(u=!1,s+=1),w===124?(t.enter("tableCellDivider"),t.consume(w),t.exit("tableCellDivider"),u=!0,y):(t.enter("data"),h(w)))}function h(w){return w===null||w===124||et(w)?(t.exit("data"),y(w)):(t.consume(w),w===92?b:h)}function b(w){return w===92||w===124?(t.consume(w),h):h(w)}function E(w){return l.interrupt=!1,l.parser.lazy[l.now().line]?r(w):(t.enter("tableDelimiterRow"),u=!1,Ue(w)?je(t,k,"linePrefix",l.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(w):k(w))}function k(w){return w===45||w===58?O(w):w===124?(u=!0,t.enter("tableCellDivider"),t.consume(w),t.exit("tableCellDivider"),C):X(w)}function C(w){return Ue(w)?je(t,O,"whitespace")(w):O(w)}function O(w){return w===58?(c+=1,u=!0,t.enter("tableDelimiterMarker"),t.consume(w),t.exit("tableDelimiterMarker"),N):w===45?(c+=1,N(w)):w===null||Te(w)?W(w):X(w)}function N(w){return w===45?(t.enter("tableDelimiterFiller"),P(w)):X(w)}function P(w){return w===45?(t.consume(w),P):w===58?(u=!0,t.exit("tableDelimiterFiller"),t.enter("tableDelimiterMarker"),t.consume(w),t.exit("tableDelimiterMarker"),z):(t.exit("tableDelimiterFiller"),z(w))}function z(w){return Ue(w)?je(t,W,"whitespace")(w):W(w)}function W(w){return w===124?k(w):w===null||Te(w)?!u||s!==c?X(w):(t.exit("tableDelimiterRow"),t.exit("tableHead"),i(w)):X(w)}function X(w){return r(w)}function A(w){return t.enter("tableRow"),Z(w)}function Z(w){return w===124?(t.enter("tableCellDivider"),t.consume(w),t.exit("tableCellDivider"),Z):w===null||Te(w)?(t.exit("tableRow"),i(w)):Ue(w)?je(t,Z,"whitespace")(w):(t.enter("data"),ee(w))}function ee(w){return w===null||w===124||et(w)?(t.exit("data"),Z(w)):(t.consume(w),w===92?H:ee)}function H(w){return w===92||w===124?(t.consume(w),ee):ee(w)}}function sw(t,i){let r=-1,l=!0,s=0,c=[0,0,0,0],u=[0,0,0,0],d=!1,p=0,g,y,h;const b=new rw;for(;++rr[2]+1){const k=r[2]+1,C=r[3]-r[2]-1;t.add(k,C,[])}}t.add(r[3]+1,0,[["exit",h,i]])}return s!==void 0&&(c.end=Object.assign({},Ai(i.events,s)),t.add(s,0,[["exit",c,i]]),c=void 0),c}function sp(t,i,r,l,s){const c=[],u=Ai(i.events,r);s&&(s.end=Object.assign({},u),c.push(["exit",s,i])),l.end=Object.assign({},u),c.push(["exit",l,i]),t.add(r+1,0,c)}function Ai(t,i){const r=t[i],l=r[0]==="enter"?"start":"end";return r[1][l]}const uw={name:"tasklistCheck",tokenize:fw};function cw(){return{text:{91:uw}}}function fw(t,i,r){const l=this;return s;function s(p){return l.previous!==null||!l._gfmTasklistFirstContentOfListItem?r(p):(t.enter("taskListCheck"),t.enter("taskListCheckMarker"),t.consume(p),t.exit("taskListCheckMarker"),c)}function c(p){return et(p)?(t.enter("taskListCheckValueUnchecked"),t.consume(p),t.exit("taskListCheckValueUnchecked"),u):p===88||p===120?(t.enter("taskListCheckValueChecked"),t.consume(p),t.exit("taskListCheckValueChecked"),u):r(p)}function u(p){return p===93?(t.enter("taskListCheckMarker"),t.consume(p),t.exit("taskListCheckMarker"),t.exit("taskListCheck"),d):r(p)}function d(p){return Te(p)?i(p):Ue(p)?t.check({tokenize:dw},i,r)(p):r(p)}}function dw(t,i,r){return je(t,l,"whitespace");function l(s){return s===null?r(s):i(s)}}function pw(t){return Bp([Fk(),qk(),nw(t),lw(),cw()])}const gw={};function mw(t){const i=this,r=t||gw,l=i.data(),s=l.micromarkExtensions||(l.micromarkExtensions=[]),c=l.fromMarkdownExtensions||(l.fromMarkdownExtensions=[]),u=l.toMarkdownExtensions||(l.toMarkdownExtensions=[]);s.push(pw(r)),c.push(Lk()),u.push(Dk(r))}const up=(function(t,i,r){const l=Io(r);if(!t||!t.type||!t.children)throw new Error("Expected parent node");if(typeof i=="number"){if(i<0||i===Number.POSITIVE_INFINITY)throw new Error("Expected positive finite number as index")}else if(i=t.children.indexOf(i),i<0)throw new Error("Expected child node or index");for(;++ig&&(g=y):y&&(g!==void 0&&g>-1&&p.push(` +`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:b,table:u,tableCell:p,tableRow:d}};function u(E,k,N,R){return g(y(E,N,R),E.align)}function d(E,k,N,R){const x=h(E,N,R),F=g([x]);return F.slice(0,F.indexOf(` +`))}function p(E,k,N,R){const x=N.enter("tableCell"),F=N.enter("phrasing"),P=N.containerPhrasing(E,{...R,before:c,after:c});return F(),x(),P}function g(E,k){return Kv(E,{align:k,alignDelimiters:l,padding:r,stringLength:s})}function y(E,k,N){const R=E.children;let x=-1;const F=[],P=k.enter("table");for(;++x0&&!r&&(t[t.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),r}const Vk={tokenize:tw,partial:!0};function qk(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:Xk,continuation:{tokenize:Jk},exit:ew}},text:{91:{name:"gfmFootnoteCall",tokenize:Zk},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:Yk,resolveTo:Qk}}}}function Yk(t,i,r){const l=this;let s=l.events.length;const c=l.parser.gfmFootnotes||(l.parser.gfmFootnotes=[]);let u;for(;s--;){const p=l.events[s][1];if(p.type==="labelImage"){u=p;break}if(p.type==="gfmFootnoteCall"||p.type==="labelLink"||p.type==="label"||p.type==="image"||p.type==="link")break}return d;function d(p){if(!u||!u._balanced)return r(p);const g=Cn(l.sliceSerialize({start:u.end,end:l.now()}));return g.codePointAt(0)!==94||!c.includes(g.slice(1))?r(p):(t.enter("gfmFootnoteCallLabelMarker"),t.consume(p),t.exit("gfmFootnoteCallLabelMarker"),i(p))}}function Qk(t,i){let r=t.length;for(;r--;)if(t[r][1].type==="labelImage"&&t[r][0]==="enter"){t[r][1];break}t[r+1][1].type="data",t[r+3][1].type="gfmFootnoteCallLabelMarker";const l={type:"gfmFootnoteCall",start:Object.assign({},t[r+3][1].start),end:Object.assign({},t[t.length-1][1].end)},s={type:"gfmFootnoteCallMarker",start:Object.assign({},t[r+3][1].end),end:Object.assign({},t[r+3][1].end)};s.end.column++,s.end.offset++,s.end._bufferIndex++;const c={type:"gfmFootnoteCallString",start:Object.assign({},s.end),end:Object.assign({},t[t.length-1][1].start)},u={type:"chunkString",contentType:"string",start:Object.assign({},c.start),end:Object.assign({},c.end)},d=[t[r+1],t[r+2],["enter",l,i],t[r+3],t[r+4],["enter",s,i],["exit",s,i],["enter",c,i],["enter",u,i],["exit",u,i],["exit",c,i],t[t.length-2],t[t.length-1],["exit",l,i]];return t.splice(r,t.length-r+1,...d),t}function Zk(t,i,r){const l=this,s=l.parser.gfmFootnotes||(l.parser.gfmFootnotes=[]);let c=0,u;return d;function d(h){return t.enter("gfmFootnoteCall"),t.enter("gfmFootnoteCallLabelMarker"),t.consume(h),t.exit("gfmFootnoteCallLabelMarker"),p}function p(h){return h!==94?r(h):(t.enter("gfmFootnoteCallMarker"),t.consume(h),t.exit("gfmFootnoteCallMarker"),t.enter("gfmFootnoteCallString"),t.enter("chunkString").contentType="string",g)}function g(h){if(c>999||h===93&&!u||h===null||h===91||et(h))return r(h);if(h===93){t.exit("chunkString");const b=t.exit("gfmFootnoteCallString");return s.includes(Cn(l.sliceSerialize(b)))?(t.enter("gfmFootnoteCallLabelMarker"),t.consume(h),t.exit("gfmFootnoteCallLabelMarker"),t.exit("gfmFootnoteCall"),i):r(h)}return et(h)||(u=!0),c++,t.consume(h),h===92?y:g}function y(h){return h===91||h===92||h===93?(t.consume(h),c++,g):g(h)}}function Xk(t,i,r){const l=this,s=l.parser.gfmFootnotes||(l.parser.gfmFootnotes=[]);let c,u=0,d;return p;function p(k){return t.enter("gfmFootnoteDefinition")._container=!0,t.enter("gfmFootnoteDefinitionLabel"),t.enter("gfmFootnoteDefinitionLabelMarker"),t.consume(k),t.exit("gfmFootnoteDefinitionLabelMarker"),g}function g(k){return k===94?(t.enter("gfmFootnoteDefinitionMarker"),t.consume(k),t.exit("gfmFootnoteDefinitionMarker"),t.enter("gfmFootnoteDefinitionLabelString"),t.enter("chunkString").contentType="string",y):r(k)}function y(k){if(u>999||k===93&&!d||k===null||k===91||et(k))return r(k);if(k===93){t.exit("chunkString");const N=t.exit("gfmFootnoteDefinitionLabelString");return c=Cn(l.sliceSerialize(N)),t.enter("gfmFootnoteDefinitionLabelMarker"),t.consume(k),t.exit("gfmFootnoteDefinitionLabelMarker"),t.exit("gfmFootnoteDefinitionLabel"),b}return et(k)||(d=!0),u++,t.consume(k),k===92?h:y}function h(k){return k===91||k===92||k===93?(t.consume(k),u++,y):y(k)}function b(k){return k===58?(t.enter("definitionMarker"),t.consume(k),t.exit("definitionMarker"),s.includes(c)||s.push(c),je(t,E,"gfmFootnoteDefinitionWhitespace")):r(k)}function E(k){return i(k)}}function Jk(t,i,r){return t.check(Oo,i,t.attempt(Vk,i,r))}function ew(t){t.exit("gfmFootnoteDefinition")}function tw(t,i,r){const l=this;return je(t,s,"gfmFootnoteDefinitionIndent",5);function s(c){const u=l.events[l.events.length-1];return u&&u[1].type==="gfmFootnoteDefinitionIndent"&&u[2].sliceSerialize(u[1],!0).length===4?i(c):r(c)}}function nw(t){let r=(t||{}).singleTilde;const l={name:"strikethrough",tokenize:c,resolveAll:s};return r==null&&(r=!0),{text:{126:l},insideSpan:{null:[l]},attentionMarkers:{null:[126]}};function s(u,d){let p=-1;for(;++p1?p(k):(u.consume(k),h++,E);if(h<2&&!r)return p(k);const R=u.exit("strikethroughSequenceTemporary"),x=Ii(k);return R._open=!x||x===2&&!!N,R._close=!N||N===2&&!!x,d(k)}}}class rw{constructor(){this.map=[]}add(i,r,l){iw(this,i,r,l)}consume(i){if(this.map.sort(function(c,u){return c[0]-u[0]}),this.map.length===0)return;let r=this.map.length;const l=[];for(;r>0;)r-=1,l.push(i.slice(this.map[r][0]+this.map[r][1]),this.map[r][2]),i.length=this.map[r][0];l.push(i.slice()),i.length=0;let s=l.pop();for(;s;){for(const c of s)i.push(c);s=l.pop()}this.map.length=0}}function iw(t,i,r,l){let s=0;if(!(r===0&&l.length===0)){for(;s-1;){const V=l.events[W][1].type;if(V==="lineEnding"||V==="linePrefix")W--;else break}const L=W>-1?l.events[W][1].type:null,X=L==="tableHead"||L==="tableRow"?C:p;return X===C&&l.parser.lazy[l.now().line]?r(M):X(M)}function p(M){return t.enter("tableHead"),t.enter("tableRow"),g(M)}function g(M){return M===124||(u=!0,c+=1),y(M)}function y(M){return M===null?r(M):Te(M)?c>1?(c=0,l.interrupt=!0,t.exit("tableRow"),t.enter("lineEnding"),t.consume(M),t.exit("lineEnding"),E):r(M):Ue(M)?je(t,y,"whitespace")(M):(c+=1,u&&(u=!1,s+=1),M===124?(t.enter("tableCellDivider"),t.consume(M),t.exit("tableCellDivider"),u=!0,y):(t.enter("data"),h(M)))}function h(M){return M===null||M===124||et(M)?(t.exit("data"),y(M)):(t.consume(M),M===92?b:h)}function b(M){return M===92||M===124?(t.consume(M),h):h(M)}function E(M){return l.interrupt=!1,l.parser.lazy[l.now().line]?r(M):(t.enter("tableDelimiterRow"),u=!1,Ue(M)?je(t,k,"linePrefix",l.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(M):k(M))}function k(M){return M===45||M===58?R(M):M===124?(u=!0,t.enter("tableCellDivider"),t.consume(M),t.exit("tableCellDivider"),N):Q(M)}function N(M){return Ue(M)?je(t,R,"whitespace")(M):R(M)}function R(M){return M===58?(c+=1,u=!0,t.enter("tableDelimiterMarker"),t.consume(M),t.exit("tableDelimiterMarker"),x):M===45?(c+=1,x(M)):M===null||Te(M)?G(M):Q(M)}function x(M){return M===45?(t.enter("tableDelimiterFiller"),F(M)):Q(M)}function F(M){return M===45?(t.consume(M),F):M===58?(u=!0,t.exit("tableDelimiterFiller"),t.enter("tableDelimiterMarker"),t.consume(M),t.exit("tableDelimiterMarker"),P):(t.exit("tableDelimiterFiller"),P(M))}function P(M){return Ue(M)?je(t,G,"whitespace")(M):G(M)}function G(M){return M===124?k(M):M===null||Te(M)?!u||s!==c?Q(M):(t.exit("tableDelimiterRow"),t.exit("tableHead"),i(M)):Q(M)}function Q(M){return r(M)}function C(M){return t.enter("tableRow"),Z(M)}function Z(M){return M===124?(t.enter("tableCellDivider"),t.consume(M),t.exit("tableCellDivider"),Z):M===null||Te(M)?(t.exit("tableRow"),i(M)):Ue(M)?je(t,Z,"whitespace")(M):(t.enter("data"),ee(M))}function ee(M){return M===null||M===124||et(M)?(t.exit("data"),Z(M)):(t.consume(M),M===92?ne:ee)}function ne(M){return M===92||M===124?(t.consume(M),ee):ee(M)}}function sw(t,i){let r=-1,l=!0,s=0,c=[0,0,0,0],u=[0,0,0,0],d=!1,p=0,g,y,h;const b=new rw;for(;++rr[2]+1){const k=r[2]+1,N=r[3]-r[2]-1;t.add(k,N,[])}}t.add(r[3]+1,0,[["exit",h,i]])}return s!==void 0&&(c.end=Object.assign({},Ai(i.events,s)),t.add(s,0,[["exit",c,i]]),c=void 0),c}function sp(t,i,r,l,s){const c=[],u=Ai(i.events,r);s&&(s.end=Object.assign({},u),c.push(["exit",s,i])),l.end=Object.assign({},u),c.push(["exit",l,i]),t.add(r+1,0,c)}function Ai(t,i){const r=t[i],l=r[0]==="enter"?"start":"end";return r[1][l]}const uw={name:"tasklistCheck",tokenize:fw};function cw(){return{text:{91:uw}}}function fw(t,i,r){const l=this;return s;function s(p){return l.previous!==null||!l._gfmTasklistFirstContentOfListItem?r(p):(t.enter("taskListCheck"),t.enter("taskListCheckMarker"),t.consume(p),t.exit("taskListCheckMarker"),c)}function c(p){return et(p)?(t.enter("taskListCheckValueUnchecked"),t.consume(p),t.exit("taskListCheckValueUnchecked"),u):p===88||p===120?(t.enter("taskListCheckValueChecked"),t.consume(p),t.exit("taskListCheckValueChecked"),u):r(p)}function u(p){return p===93?(t.enter("taskListCheckMarker"),t.consume(p),t.exit("taskListCheckMarker"),t.exit("taskListCheck"),d):r(p)}function d(p){return Te(p)?i(p):Ue(p)?t.check({tokenize:dw},i,r)(p):r(p)}}function dw(t,i,r){return je(t,l,"whitespace");function l(s){return s===null?r(s):i(s)}}function pw(t){return Bp([Fk(),qk(),nw(t),lw(),cw()])}const gw={};function mw(t){const i=this,r=t||gw,l=i.data(),s=l.micromarkExtensions||(l.micromarkExtensions=[]),c=l.fromMarkdownExtensions||(l.fromMarkdownExtensions=[]),u=l.toMarkdownExtensions||(l.toMarkdownExtensions=[]);s.push(pw(r)),c.push(Lk()),u.push(Dk(r))}const up=(function(t,i,r){const l=Io(r);if(!t||!t.type||!t.children)throw new Error("Expected parent node");if(typeof i=="number"){if(i<0||i===Number.POSITIVE_INFINITY)throw new Error("Expected positive finite number as index")}else if(i=t.children.indexOf(i),i<0)throw new Error("Expected child node or index");for(;++ig&&(g=y):y&&(g!==void 0&&g>-1&&p.push(` `.repeat(g)||" "),g=-1,p.push(y))}return p.join("")}function Og(t,i,r){return t.type==="element"?ww(t,i,r):t.type==="text"?r.whitespace==="normal"?Ig(t,r):Sw(t):[]}function ww(t,i,r){const l=Mg(t,r),s=t.children||[];let c=-1,u=[];if(vw(t))return u;let d,p;for(xu(t)||pp(t)&&up(i,t,pp)?p=` -`:_w(t)?(d=2,p=2):Rg(t)&&(d=1,p=1);++c]+>")+")",d={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},g={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[t.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},t.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},y={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},h={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},t.inherit(g,{className:"string"}),{className:"string",begin:/<.*?>/},r,t.C_BLOCK_COMMENT_MODE]},b={className:"title",begin:i.optional(s)+t.IDENT_RE,relevance:0},E=i.optional(s)+t.IDENT_RE+"\\s*\\(",k=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],C=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],O=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],N=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],W={type:C,keyword:k,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:O},X={className:"function.dispatch",relevance:0,keywords:{_hint:N},begin:i.concat(/\b/,`(?!${k.join("|")})`,t.IDENT_RE,i.lookahead(/(<[^<>]+>|)\s*\(/))},A=[X,h,d,r,t.C_BLOCK_COMMENT_MODE,y,g],Z={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:W,contains:A.concat([{begin:/\(/,end:/\)/,keywords:W,contains:A.concat(["self"]),relevance:0}]),relevance:0},ee={className:"function",begin:"("+u+"[\\*&\\s]+)+"+E,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:W,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:l,keywords:W,relevance:0},{begin:E,returnBegin:!0,contains:[b],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[g,y]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:W,relevance:0,contains:[r,t.C_BLOCK_COMMENT_MODE,g,y,d,{begin:/\(/,end:/\)/,keywords:W,relevance:0,contains:["self",r,t.C_BLOCK_COMMENT_MODE,g,y,d]}]},d,r,t.C_BLOCK_COMMENT_MODE,h]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:W,illegal:"",keywords:W,contains:["self",d]},{begin:t.IDENT_RE+"::",keywords:W},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function Rw(t){const i={type:["boolean","byte","word","String"],built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"],_hints:["setup","loop","runShellCommandAsynchronously","analogWriteResolution","retrieveCallingNumber","printFirmwareVersion","analogReadResolution","sendDigitalPortPair","noListenOnLocalhost","readJoystickButton","setFirmwareVersion","readJoystickSwitch","scrollDisplayRight","getVoiceCallStatus","scrollDisplayLeft","writeMicroseconds","delayMicroseconds","beginTransmission","getSignalStrength","runAsynchronously","getAsynchronously","listenOnLocalhost","getCurrentCarrier","readAccelerometer","messageAvailable","sendDigitalPorts","lineFollowConfig","countryNameWrite","runShellCommand","readStringUntil","rewindDirectory","readTemperature","setClockDivider","readLightSensor","endTransmission","analogReference","detachInterrupt","countryNameRead","attachInterrupt","encryptionType","readBytesUntil","robotNameWrite","readMicrophone","robotNameRead","cityNameWrite","userNameWrite","readJoystickY","readJoystickX","mouseReleased","openNextFile","scanNetworks","noInterrupts","digitalWrite","beginSpeaker","mousePressed","isActionDone","mouseDragged","displayLogos","noAutoscroll","addParameter","remoteNumber","getModifiers","keyboardRead","userNameRead","waitContinue","processInput","parseCommand","printVersion","readNetworks","writeMessage","blinkVersion","cityNameRead","readMessage","setDataMode","parsePacket","isListening","setBitOrder","beginPacket","isDirectory","motorsWrite","drawCompass","digitalRead","clearScreen","serialEvent","rightToLeft","setTextSize","leftToRight","requestFrom","keyReleased","compassRead","analogWrite","interrupts","WiFiServer","disconnect","playMelody","parseFloat","autoscroll","getPINUsed","setPINUsed","setTimeout","sendAnalog","readSlider","analogRead","beginWrite","createChar","motorsStop","keyPressed","tempoWrite","readButton","subnetMask","debugPrint","macAddress","writeGreen","randomSeed","attachGPRS","readString","sendString","remotePort","releaseAll","mouseMoved","background","getXChange","getYChange","answerCall","getResult","voiceCall","endPacket","constrain","getSocket","writeJSON","getButton","available","connected","findUntil","readBytes","exitValue","readGreen","writeBlue","startLoop","IPAddress","isPressed","sendSysex","pauseMode","gatewayIP","setCursor","getOemKey","tuneWrite","noDisplay","loadImage","switchPIN","onRequest","onReceive","changePIN","playFile","noBuffer","parseInt","overflow","checkPIN","knobRead","beginTFT","bitClear","updateIR","bitWrite","position","writeRGB","highByte","writeRed","setSpeed","readBlue","noStroke","remoteIP","transfer","shutdown","hangCall","beginSMS","endWrite","attached","maintain","noCursor","checkReg","checkPUK","shiftOut","isValid","shiftIn","pulseIn","connect","println","localIP","pinMode","getIMEI","display","noBlink","process","getBand","running","beginSD","drawBMP","lowByte","setBand","release","bitRead","prepare","pointTo","readRed","setMode","noFill","remove","listen","stroke","detach","attach","noTone","exists","buffer","height","bitSet","circle","config","cursor","random","IRread","setDNS","endSMS","getKey","micros","millis","begin","print","write","ready","flush","width","isPIN","blink","clear","press","mkdir","rmdir","close","point","yield","image","BSSID","click","delay","read","text","move","peek","beep","rect","line","open","seek","fill","size","turn","stop","home","find","step","tone","sqrt","RSSI","SSID","end","bit","tan","cos","sin","pow","map","abs","max","min","get","run","put"],literal:["DIGITAL_MESSAGE","FIRMATA_STRING","ANALOG_MESSAGE","REPORT_DIGITAL","REPORT_ANALOG","INPUT_PULLUP","SET_PIN_MODE","INTERNAL2V56","SYSTEM_RESET","LED_BUILTIN","INTERNAL1V1","SYSEX_START","INTERNAL","EXTERNAL","DEFAULT","OUTPUT","INPUT","HIGH","LOW"]},r=Aw(t),l=r.keywords;return l.type=[...l.type,...i.type],l.literal=[...l.literal,...i.literal],l.built_in=[...l.built_in,...i.built_in],l._hints=i._hints,r.name="Arduino",r.aliases=["ino"],r.supersetOf="cpp",r}function Ow(t){const i=t.regex,r={},l={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[r]}]};Object.assign(r,{className:"variable",variants:[{begin:i.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},l]});const s={className:"subst",begin:/\$\(/,end:/\)/,contains:[t.BACKSLASH_ESCAPE]},c=t.inherit(t.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),u={begin:/<<-?\s*(?=\w+)/,starts:{contains:[t.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},d={className:"string",begin:/"/,end:/"/,contains:[t.BACKSLASH_ESCAPE,r,s]};s.contains.push(d);const p={match:/\\"/},g={className:"string",begin:/'/,end:/'/},y={match:/\\'/},h={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},t.NUMBER_MODE,r]},b=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],E=t.SHEBANG({binary:`(${b.join("|")})`,relevance:10}),k={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[t.inherit(t.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},C=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],O=["true","false"],N={match:/(\/[a-z._-]+)+/},P=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],z=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],W=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],X=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:C,literal:O,built_in:[...P,...z,"set","shopt",...W,...X]},contains:[E,t.SHEBANG(),k,h,c,u,N,d,p,g,y,r]}}function Iw(t){const i=t.regex,r=t.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),l="decltype\\(auto\\)",s="[a-zA-Z_]\\w*::",u="("+l+"|"+i.optional(s)+"[a-zA-Z_]\\w*"+i.optional("<[^<>]+>")+")",d={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},g={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[t.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},t.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},y={className:"number",variants:[{match:/\b(0b[01']+)/},{match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/},{match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0},h={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"},contains:[{begin:/\\\n/,relevance:0},t.inherit(g,{className:"string"}),{className:"string",begin:/<.*?>/},r,t.C_BLOCK_COMMENT_MODE]},b={className:"title",begin:i.optional(s)+t.IDENT_RE,relevance:0},E=i.optional(s)+t.IDENT_RE+"\\s*\\(",O={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},N=[h,d,r,t.C_BLOCK_COMMENT_MODE,y,g],P={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:O,contains:N.concat([{begin:/\(/,end:/\)/,keywords:O,contains:N.concat(["self"]),relevance:0}]),relevance:0},z={begin:"("+u+"[\\*&\\s]+)+"+E,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:O,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:l,keywords:O,relevance:0},{begin:E,returnBegin:!0,contains:[t.inherit(b,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:O,relevance:0,contains:[r,t.C_BLOCK_COMMENT_MODE,g,y,d,{begin:/\(/,end:/\)/,keywords:O,relevance:0,contains:["self",r,t.C_BLOCK_COMMENT_MODE,g,y,d]}]},d,r,t.C_BLOCK_COMMENT_MODE,h]};return{name:"C",aliases:["h"],keywords:O,disableAutodetect:!0,illegal:"=]/,contains:[{beginKeywords:"final class struct"},t.TITLE_MODE]}]),exports:{preprocessor:h,strings:g,keywords:O}}}function Mw(t){const i=t.regex,r=t.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),l="decltype\\(auto\\)",s="[a-zA-Z_]\\w*::",u="(?!struct)("+l+"|"+i.optional(s)+"[a-zA-Z_]\\w*"+i.optional("<[^<>]+>")+")",d={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},g={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[t.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},t.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},y={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},h={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},t.inherit(g,{className:"string"}),{className:"string",begin:/<.*?>/},r,t.C_BLOCK_COMMENT_MODE]},b={className:"title",begin:i.optional(s)+t.IDENT_RE,relevance:0},E=i.optional(s)+t.IDENT_RE+"\\s*\\(",k=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],C=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],O=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],N=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],W={type:C,keyword:k,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:O},X={className:"function.dispatch",relevance:0,keywords:{_hint:N},begin:i.concat(/\b/,`(?!${k.join("|")})`,t.IDENT_RE,i.lookahead(/(<[^<>]+>|)\s*\(/))},A=[X,h,d,r,t.C_BLOCK_COMMENT_MODE,y,g],Z={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:W,contains:A.concat([{begin:/\(/,end:/\)/,keywords:W,contains:A.concat(["self"]),relevance:0}]),relevance:0},ee={className:"function",begin:"("+u+"[\\*&\\s]+)+"+E,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:W,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:l,keywords:W,relevance:0},{begin:E,returnBegin:!0,contains:[b],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[g,y]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:W,relevance:0,contains:[r,t.C_BLOCK_COMMENT_MODE,g,y,d,{begin:/\(/,end:/\)/,keywords:W,relevance:0,contains:["self",r,t.C_BLOCK_COMMENT_MODE,g,y,d]}]},d,r,t.C_BLOCK_COMMENT_MODE,h]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:W,illegal:"",keywords:W,contains:["self",d]},{begin:t.IDENT_RE+"::",keywords:W},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function Lw(t){const i=["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],r=["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"],l=["default","false","null","true"],s=["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"],c=["add","alias","and","ascending","args","async","await","by","descending","dynamic","equals","file","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","record","remove","required","scoped","select","set","unmanaged","value|0","var","when","where","with","yield"],u={keyword:s.concat(c),built_in:i,literal:l},d=t.inherit(t.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),p={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9'_]+|(\\b[\\d'_]+(\\.[\\d'_]*)?|\\.[\\d'_]+)([eE][-+]?[\\d'_]+)?)"}],relevance:0},g={className:"string",begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1},y={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},h=t.inherit(y,{illegal:/\n/}),b={className:"subst",begin:/\{/,end:/\}/,keywords:u},E=t.inherit(b,{illegal:/\n/}),k={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},t.BACKSLASH_ESCAPE,E]},C={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},b]},O=t.inherit(C,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},E]});b.contains=[C,k,y,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,p,t.C_BLOCK_COMMENT_MODE],E.contains=[O,k,h,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,p,t.inherit(t.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const N={variants:[g,C,k,y,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},P={begin:"<",end:">",contains:[{beginKeywords:"in out"},d]},z=t.IDENT_RE+"(<"+t.IDENT_RE+"(\\s*,\\s*"+t.IDENT_RE+")*>)?(\\[\\])?",W={begin:"@"+t.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:u,illegal:/::/,contains:[t.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:""},{begin:""}]}]}),t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},N,p,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},d,P,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[d,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[d,P,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+z+"\\s+)+"+t.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:u,contains:[{beginKeywords:r.join(" "),relevance:0},{begin:t.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[t.TITLE_MODE,P],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:u,relevance:0,contains:[N,p,t.C_BLOCK_COMMENT_MODE]},t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},W]}}const Dw=t=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:t.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},UNICODE_RANGE:{scope:"number",begin:/\b[Uu]\+[0-9A-Fa-f][0-9A-Fa-f?]{0,4}(-[0-9A-Fa-f][0-9A-Fa-f]{0,4})?/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:t.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),Pw=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],zw=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],Fw=[...Pw,...zw],Bw=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),Uw=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),$w=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),Hw=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","unicode-range","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function Kw(t){const i=t.regex,r=Dw(t),l={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},s="and or not only",c=/@-?\w[\w]*(-\w+)*/,u="[a-zA-Z-][a-zA-Z0-9_-]*",d=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[r.BLOCK_COMMENT,l,r.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+u,relevance:0},r.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+Uw.join("|")+")"},{begin:":(:)?("+$w.join("|")+")"}]},r.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Hw.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[r.BLOCK_COMMENT,r.HEXCOLOR,r.IMPORTANT,r.CSS_NUMBER_MODE,r.UNICODE_RANGE,...d,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...d,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},r.FUNCTION_DISPATCH]},{begin:i.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:c},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:s,attribute:Bw.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...d,r.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+Fw.join("|")+")\\b"}]}}function Gw(t){const i=t.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:i.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^@@ +-\d+ +\+\d+,\d+ +@@/,/^@@ +-\d+,\d+ +\+\d+ +@@/,/^@@ +-\d+ +\+\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:i.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}function Ww(t){const c={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:c,illegal:"Lg(t,i,r-1))}function qw(t){const i=t.regex,r="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",l=r+Lg("(?:<"+r+"~~~(?:\\s*,\\s*"+r+"~~~)*>)?",/~~~/g,2),p={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},g={className:"meta",begin:"@"+r,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},y={className:"params",begin:/\(/,end:/\)/,keywords:p,relevance:0,contains:[t.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:p,illegal:/<\/|#/,contains:[t.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[t.BACKSLASH_ESCAPE]},t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,r],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[i.concat(/(?!else)/,r),/\s+/,r,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,r],className:{1:"keyword",3:"title.class"},contains:[y,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+l+"\\s+)",t.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:p,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:p,relevance:0,contains:[g,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,gp,t.C_BLOCK_COMMENT_MODE]},t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},gp,g]}}const mp="[A-Za-z$_][0-9A-Za-z$_]*",Yw=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],Qw=["true","false","null","undefined","NaN","Infinity"],Dg=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],Pg=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],zg=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Zw=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],Xw=[].concat(zg,Dg,Pg);function Jw(t){const i=t.regex,r=(K,{after:ue})=>{const v="",end:""},c=/<[A-Za-z0-9\\._:-]+\s*\/>/,u={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(K,ue)=>{const v=K[0].length+K.index,I=K.input[v];if(I==="<"||I===","){ue.ignoreMatch();return}I===">"&&(r(K,{after:v})||ue.ignoreMatch());let B;const S=K.input.substring(v);if(B=S.match(/^\s*=/)){ue.ignoreMatch();return}if((B=S.match(/^\s+extends\s+/))&&B.index===0){ue.ignoreMatch();return}}},d={$pattern:mp,keyword:Yw,literal:Qw,built_in:Xw,"variable.language":Zw},p="[0-9](_?[0-9])*",g=`\\.(${p})`,y="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",h={className:"number",variants:[{begin:`(\\b(${y})((${g})|\\.)?|(${g}))[eE][+-]?(${p})\\b`},{begin:`\\b(${y})\\b((${g})\\b|\\.)?|(${g})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},b={className:"subst",begin:"\\$\\{",end:"\\}",keywords:d,contains:[]},E={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,b],subLanguage:"xml"}},k={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,b],subLanguage:"css"}},C={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,b],subLanguage:"graphql"}},O={className:"string",begin:"`",end:"`",contains:[t.BACKSLASH_ESCAPE,b]},P={className:"comment",variants:[t.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:l+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE]},z=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,E,k,C,O,{match:/\$\d+/},h];b.contains=z.concat({begin:/\{/,end:/\}/,keywords:d,contains:["self"].concat(z)});const W=[].concat(P,b.contains),X=W.concat([{begin:/(\s*)\(/,end:/\)/,keywords:d,contains:["self"].concat(W)}]),A={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,contains:X},Z={variants:[{match:[/class/,/\s+/,l,/\s+/,/extends/,/\s+/,i.concat(l,"(",i.concat(/\./,l),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,l],scope:{1:"keyword",3:"title.class"}}]},ee={relevance:0,match:i.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...Dg,...Pg]}},H={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},w={variants:[{match:[/function/,/\s+/,l,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[A],illegal:/%/},j={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function V(K){return i.concat("(?!",K.join("|"),")")}const ae={match:i.concat(/\b/,V([...zg,"super","import","await"].map(K=>`${K}\\s*\\(`)),l,i.lookahead(/\s*\(/)),className:"title.function",relevance:0},Y={begin:i.concat(/\./,i.lookahead(i.concat(l,/(?![0-9A-Za-z$_(])/))),end:l,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},$={match:[/get|set/,/\s+/,l,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},A]},ce="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+t.UNDERSCORE_IDENT_RE+")\\s*=>",_e={match:[/const|var|let/,/\s+/,l,/\s*/,/=\s*/,/(async\s*)?/,i.lookahead(ce)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[A]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:d,exports:{PARAMS_CONTAINS:X,CLASS_REFERENCE:ee},illegal:/#(?![$_A-Za-z])/,contains:[t.SHEBANG({label:"shebang",binary:"node",relevance:5}),H,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,E,k,C,O,P,{match:/\$\d+/},h,ee,{scope:"attr",match:l+i.lookahead(":"),relevance:0},_e,{begin:"("+t.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[P,t.REGEXP_MODE,{className:"function",begin:ce,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,contains:X}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:s.begin,end:s.end},{match:c},{begin:u.begin,"on:begin":u.isTrulyOpeningTag,end:u.end}],subLanguage:"xml",contains:[{begin:u.begin,end:u.end,skip:!0,contains:["self"]}]}]},w,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+t.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[A,t.inherit(t.TITLE_MODE,{begin:l,className:"title.function"})]},{match:/\.\.\./,relevance:0},Y,{match:"\\$"+l,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[A]},ae,j,Z,$,{match:/\$[(.]/}]}}const eS="([-+]?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)|NaN|[-+]?Infinity",tS={scope:"number",match:eS,relevance:0};function nS(t){const i={className:"attr",begin:/(("(\\.|[^\\"\r\n])*")|('(\\.|[^\\'\r\n])*'))(?=\s*:)/,relevance:1.01},r={match:/[{}[\],:]/,className:"punctuation",relevance:0},l=["true","false","null"],s={scope:"literal",beginKeywords:l.join(" ")};return{name:"JSON",aliases:["jsonc","json5"],keywords:{literal:l},contains:[i,r,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,s,tS,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}var Oi="[0-9](_*[0-9])*",ql=`\\.(${Oi})`,Yl="[0-9a-fA-F](_*[0-9a-fA-F])*",rS={className:"number",variants:[{begin:`(\\b(${Oi})((${ql})|\\.)?|(${ql}))[eE][+-]?(${Oi})[fFdD]?\\b`},{begin:`\\b(${Oi})((${ql})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${ql})[fFdD]?\\b`},{begin:`\\b(${Oi})[fFdD]\\b`},{begin:`\\b0[xX]((${Yl})\\.?|(${Yl})?\\.(${Yl}))[pP][+-]?(${Oi})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${Yl})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function iS(t){const i={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},r={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},l={className:"symbol",begin:t.UNDERSCORE_IDENT_RE+"@"},s={className:"subst",begin:/\$\{/,end:/\}/,contains:[t.C_NUMBER_MODE]},c={className:"variable",begin:"\\$"+t.UNDERSCORE_IDENT_RE},u={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[c,s]},{begin:"'",end:"'",illegal:/\n/,contains:[t.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[t.BACKSLASH_ESCAPE,c,s]}]};s.contains.push(u);const d={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+t.UNDERSCORE_IDENT_RE+")?"},p={className:"meta",begin:"@"+t.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[t.inherit(u,{className:"string"}),"self"]}]},g=rS,y=t.COMMENT("/\\*","\\*/",{contains:[t.C_BLOCK_COMMENT_MODE]}),h={variants:[{className:"type",begin:t.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},b=h;return b.variants[1].contains=[h],h.variants[1].contains=[b],{name:"Kotlin",aliases:["kt","kts"],keywords:i,contains:[t.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),t.C_LINE_COMMENT_MODE,y,r,l,d,p,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:i,relevance:5,contains:[{begin:t.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[t.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:i,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[h,t.C_LINE_COMMENT_MODE,y],relevance:0},t.C_LINE_COMMENT_MODE,y,d,p,u,t.C_NUMBER_MODE]},y]},{begin:[/class|interface|trait/,/\s+/,t.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},t.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},d,p]},u,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:` -`},g]}}const oS=t=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:t.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},UNICODE_RANGE:{scope:"number",begin:/\b[Uu]\+[0-9A-Fa-f][0-9A-Fa-f?]{0,4}(-[0-9A-Fa-f][0-9A-Fa-f]{0,4})?/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:t.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),lS=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],aS=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],sS=[...lS,...aS],uS=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),Fg=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),Bg=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),cS=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","unicode-range","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse(),fS=Fg.concat(Bg).sort().reverse();function dS(t){const i=oS(t),r=fS,l="and or not only",s="[\\w-]+",c="("+s+"|@\\{"+s+"\\})",u=[],d=[],p=function(z){return{className:"string",begin:"~?"+z+".*?"+z}},g=function(z,W,X){return{className:z,begin:W,relevance:X}},y={$pattern:/[a-z-]+/,keyword:l,attribute:uS.join(" ")},h={begin:"\\(",end:"\\)",contains:d,keywords:y,relevance:0};d.push(t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,p("'"),p('"'),i.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},i.UNICODE_RANGE,i.HEXCOLOR,h,g("variable","@@?"+s,10),g("variable","@\\{"+s+"\\}"),g("built_in","~?`[^`]*?`"),{className:"attribute",begin:s+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0},i.IMPORTANT,{beginKeywords:"and not"},i.FUNCTION_DISPATCH);const b=d.concat({begin:/\{/,end:/\}/,contains:u}),E={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(d)},k={begin:c+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},i.CSS_VARIABLE,{className:"attribute",begin:"\\b("+cS.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:d}}]},C={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:y,returnEnd:!0,contains:d,relevance:0}},O={className:"variable",variants:[{begin:"@"+s+"\\s*:",relevance:15},{begin:"@"+s}],starts:{end:"[;}]",returnEnd:!0,contains:b}},N={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:c,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:`[<='$"]`,relevance:0,contains:[t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,E,g("keyword","all\\b"),g("variable","@\\{"+s+"\\}"),{begin:"\\b("+sS.join("|")+")\\b",className:"selector-tag"},i.CSS_NUMBER_MODE,g("selector-tag",c,0),g("selector-id","#"+c),g("selector-class","\\."+c,0),g("selector-tag","&",0),i.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+Fg.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+Bg.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:b},{begin:"!important"},i.FUNCTION_DISPATCH]},P={begin:s+`:(:)?(${r.join("|")})`,returnBegin:!0,contains:[N]};return u.push(t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,C,O,P,k,N,E,i.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:`[=>'/<($"]`,contains:u}}function pS(t){const i="\\[=*\\[",r="\\]=*\\]",l={begin:i,end:r,contains:["self"]},s=[t.COMMENT("--(?!"+i+")","$"),t.COMMENT("--"+i,r,{contains:[l],relevance:10})];return{name:"Lua",aliases:["pluto"],keywords:{$pattern:t.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:s.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[t.inherit(t.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:s}].concat(s)},t.C_NUMBER_MODE,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,{className:"string",begin:i,end:r,contains:[l],relevance:5}])}}function gS(t){const i={className:"variable",variants:[{begin:"\\$\\("+t.UNDERSCORE_IDENT_RE+"\\)",contains:[t.BACKSLASH_ESCAPE]},{begin:/\$[@%",subLanguage:"xml",relevance:0},l={begin:"^[-\\*]{3,}",end:"$"},s={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},c={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},u={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},d=/[A-Za-z][A-Za-z0-9+.-]*/,p={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:i.concat(/\[.+?\]\(/,d,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},g={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},y={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},h=t.inherit(g,{contains:[]}),b=t.inherit(y,{contains:[]});g.contains.push(b),y.contains.push(h);let E=[r,p];return[g,y,h,b].forEach(N=>{N.contains=N.contains.concat(E)}),E=E.concat(g,y),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:E},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:E}]}]},r,c,g,y,{className:"quote",begin:"^>\\s+",contains:E,end:"$"},s,l,p,u,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function hS(t){const i={className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},r=/[a-zA-Z@][a-zA-Z0-9_]*/,d={"variable.language":["this","super"],$pattern:r,keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]},p={$pattern:r,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:d,illegal:"/,end:/$/,illegal:"\\n"},t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+p.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:p,contains:[t.UNDERSCORE_TITLE_MODE]},{begin:"\\."+t.UNDERSCORE_IDENT_RE,relevance:0}]}}function yS(t){const i=t.regex,r=["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","class","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","field","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","method","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"],l=/[dualxmsipngr]{0,12}/,s={$pattern:/[\w.]+/,keyword:r.join(" ")},c={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:s},u={begin:/->\{/,end:/\}/},d={scope:"attr",match:/\s+:\s*\w+(\s*\(.*?\))?/},p={scope:"variable",variants:[{begin:/\$\d/},{begin:i.concat(/[$%@](?!")(\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@](?!")[^\s\w{=]|\$=/,relevance:0}],contains:[d]},g={className:"number",variants:[{match:/0?\.[0-9][0-9_]+\b/},{match:/\bv?(0|[1-9][0-9_]*(\.[0-9_]+)?|[1-9][0-9_]*)\b/},{match:/\b0[0-7][0-7_]*\b/},{match:/\b0x[0-9a-fA-F][0-9a-fA-F_]*\b/},{match:/\b0b[0-1][0-1_]*\b/}],relevance:0},y=[t.BACKSLASH_ESCAPE,c,p],h=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],b=(C,O,N="\\1")=>{const P=N==="\\1"?N:i.concat(N,O);return i.concat(i.concat("(?:",C,")"),O,/(?:\\.|[^\\\/])*?/,P,/(?:\\.|[^\\\/])*?/,N,l)},E=(C,O,N)=>i.concat(i.concat("(?:",C,")"),O,/(?:\\.|[^\\\/])*?/,N,l),k=[p,t.HASH_COMMENT_MODE,t.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),u,{className:"string",contains:y,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[t.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[t.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},g,{begin:"(\\/\\/|"+t.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[t.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:b("s|tr|y",i.either(...h,{capture:!0}))},{begin:b("s|tr|y","\\(","\\)")},{begin:b("s|tr|y","\\[","\\]")},{begin:b("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:E("(?:m|qr)?",/\//,/\//)},{begin:E("m|qr",i.either(...h,{capture:!0}),/\1/)},{begin:E("m|qr",/\(/,/\)/)},{begin:E("m|qr",/\[/,/\]/)},{begin:E("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub method",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[t.TITLE_MODE,d]},{className:"class",beginKeywords:"class",end:"[;{]",excludeEnd:!0,relevance:5,contains:[t.TITLE_MODE,d,g]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return c.contains=k,u.contains=k,{name:"Perl",aliases:["pl","pm"],keywords:s,contains:k}}function ES(t){const i=t.regex,r=/(?![A-Za-z0-9])(?![$])/,l=i.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,r),s=i.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,r),c=i.concat(/[A-Z]+/,r),u={scope:"variable",match:"\\$+"+l},d={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},p={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},g=t.inherit(t.APOS_STRING_MODE,{illegal:null}),y=t.inherit(t.QUOTE_STRING_MODE,{illegal:null,contains:t.QUOTE_STRING_MODE.contains.concat(p)}),h={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:t.QUOTE_STRING_MODE.contains.concat(p),"on:begin":(Y,$)=>{$.data._beginMatch=Y[1]||Y[2]},"on:end":(Y,$)=>{$.data._beginMatch!==Y[1]&&$.ignoreMatch()}},b=t.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),E=`[ -]`,k={scope:"string",variants:[y,g,h,b]},C={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},O=["false","null","true"],N=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],P=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],W={keyword:N,literal:(Y=>{const $=[];return Y.forEach(ce=>{$.push(ce),ce.toLowerCase()===ce?$.push(ce.toUpperCase()):$.push(ce.toLowerCase())}),$})(O),built_in:P},X=Y=>Y.map($=>$.replace(/\|\d+$/,"")),A={variants:[{match:[/new/,i.concat(E,"+"),i.concat("(?!",X(P).join("\\b|"),"\\b)"),s],scope:{1:"keyword",4:"title.class"}}]},Z=i.concat(l,"\\b(?!\\()"),ee={variants:[{match:[i.concat(/::/,i.lookahead(/(?!class\b)/)),Z],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[s,i.concat(/::/,i.lookahead(/(?!class\b)/)),Z],scope:{1:"title.class",3:"variable.constant"}},{match:[s,i.concat("::",i.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[s,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},H={scope:"attr",match:i.concat(l,i.lookahead(":"),i.lookahead(/(?!::)/))},w={relevance:0,begin:/\(/,end:/\)/,keywords:W,contains:[H,u,ee,t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE,t.HASH_COMMENT_MODE,k,C,A]},j={relevance:0,match:[/\b/,i.concat("(?!fn\\b|function\\b|",X(N).join("\\b|"),"|",X(P).join("\\b|"),"\\b)"),l,i.concat(E,"*"),i.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[w]};w.contains.push(j);const V=[H,ee,t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE,t.HASH_COMMENT_MODE,k,C,A],ae={begin:i.concat(/#\[\s*\\?/,i.either(s,c)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:O,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:O,keyword:["new","array"]},contains:["self",...V]},...V,{scope:"meta",variants:[{match:s},{match:c}]}]};return{case_insensitive:!1,keywords:W,contains:[ae,t.HASH_COMMENT_MODE,t.COMMENT("//","$"),t.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:t.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},d,{scope:"variable.language",match:/\$this\b/},u,j,ee,{match:[/const/,/\s/,l],scope:{1:"keyword",3:"variable.constant"}},A,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},t.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:W,contains:["self",ae,u,ee,t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE,t.HASH_COMMENT_MODE,k,C]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},t.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[t.inherit(t.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},t.UNDERSCORE_TITLE_MODE]},k,C]}}function bS(t){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},t.inherit(t.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),t.inherit(t.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}function _S(t){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}function vS(t){const i=t.regex,r=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),l=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],d={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:l,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},p={className:"meta",begin:/^(>>>|\.\.\.) /},g={className:"subst",begin:/\{/,end:/\}/,keywords:d,illegal:/#/},y={begin:/\{\{/,relevance:0},h={className:"string",contains:[t.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[t.BACKSLASH_ESCAPE,p],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[t.BACKSLASH_ESCAPE,p],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[t.BACKSLASH_ESCAPE,p,y,g]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[t.BACKSLASH_ESCAPE,p,y,g]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[t.BACKSLASH_ESCAPE,y,g]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[t.BACKSLASH_ESCAPE,y,g]},t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},b="[0-9](_?[0-9])*",E=`(\\b(${b}))?\\.(${b})|\\b(${b})\\.`,k=`\\b|${l.join("|")}`,C={className:"number",relevance:0,variants:[{begin:`(\\b(${b})|(${E}))[eE][+-]?(${b})[jJ]?(?=${k})`},{begin:`(${E})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${k})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${k})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${k})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${k})`},{begin:`\\b(${b})[jJ](?=${k})`}]},O={className:"comment",begin:i.lookahead(/# type:/),end:/$/,keywords:d,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},N={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,contains:["self",p,C,h,t.HASH_COMMENT_MODE]}]};return g.contains=[h,C,p],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:d,illegal:/(<\/|\?)|=>/,contains:[p,C,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},h,O,t.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,r],scope:{1:"keyword",3:"title.function"},contains:[N]},{variants:[{match:[/\bclass/,/\s+/,r,/\s*/,/\(\s*/,r,/\s*\)/]},{match:[/\bclass/,/\s+/,r]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[C,N,h]}]}}function kS(t){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}function wS(t){const i=t.regex,r=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,l=i.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),s=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,c=i.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:r,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[t.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:i.lookahead(i.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:r},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),t.HASH_COMMENT_MODE,{scope:"string",contains:[t.BACKSLASH_ESCAPE],variants:[t.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),t.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),t.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),t.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),t.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),t.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[s,l]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,l]},{scope:{1:"punctuation",2:"number"},match:[c,l]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,l]}]},{scope:{3:"operator"},match:[r,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:s},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:c},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}function SS(t){const i=t.regex,r="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",l=i.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),s=i.concat(l,/(::\w+)*/),u={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield",...["include","extend","prepend","public","private","protected","raise","throw"]],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},d={className:"doctag",begin:"@[A-Za-z]+"},p={begin:"#<",end:">"},g=[t.COMMENT("#","$",{contains:[d]}),t.COMMENT("^=begin","^=end",{contains:[d],relevance:10}),t.COMMENT("^__END__",t.MATCH_NOTHING_RE)],y={className:"subst",begin:/#\{/,end:/\}/,keywords:u},h={className:"string",contains:[t.BACKSLASH_ESCAPE,y],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:i.concat(/<<[-~]?'?/,i.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[t.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[t.BACKSLASH_ESCAPE,y]})]}]},b="[1-9](_?[0-9])*|0",E="[0-9](_?[0-9])*",k={className:"number",relevance:0,variants:[{begin:`\\b(${b})(\\.(${E}))?([eE][+-]?(${E})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},C={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:u}]},A=[h,{variants:[{match:[/class\s+/,s,/\s+<\s+/,s]},{match:[/\b(class|module)\s+/,s]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:u},{match:[/(include|extend)\s+/,s],scope:{2:"title.class"},keywords:u},{relevance:0,match:[s,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:l,scope:"title.class"},{match:[/def/,/\s+/,r],scope:{1:"keyword",3:"title.function"},contains:[C]},{begin:t.IDENT_RE+"::"},{className:"symbol",begin:t.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[h,{begin:r}],relevance:0},k,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:u},{begin:"("+t.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[t.BACKSLASH_ESCAPE,y],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(p,g),relevance:0}].concat(p,g);y.contains=A,C.contains=A;const w=[{begin:/^\s*=>/,starts:{end:"$",contains:A}},{className:"meta.prompt",begin:"^("+"[>?]>"+"|"+"[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]"+"|"+"(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>"+")(?=[ ])",starts:{end:"$",keywords:u,contains:A}}];return g.unshift(p),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:u,illegal:/\/\*/,contains:[t.SHEBANG({binary:"ruby"})].concat(w).concat(g).concat(A)}}function xS(t){const i=t.regex,r=/(r#)?/,l=i.concat(r,t.UNDERSCORE_IDENT_RE),s=i.concat(r,t.IDENT_RE),c={className:"title.function.invoke",relevance:0,begin:i.concat(/\b/,/(?!let|for|while|if|else|match\b)/,s,i.lookahead(/\s*\(/))},u="([ui](8|16|32|64|128|size)|f(32|64))?",d=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],p=["true","false","Some","None","Ok","Err"],g=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],y=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:t.IDENT_RE+"!?",type:y,keyword:d,literal:p,built_in:g},illegal:""},c]}}const NS=t=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:t.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},UNICODE_RANGE:{scope:"number",begin:/\b[Uu]\+[0-9A-Fa-f][0-9A-Fa-f?]{0,4}(-[0-9A-Fa-f][0-9A-Fa-f]{0,4})?/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:t.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),TS=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],CS=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],AS=[...TS,...CS],RS=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),OS=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),IS=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),MS=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","unicode-range","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function LS(t){const i=NS(t),r=IS,l=OS,s="@[a-z-]+",c="and or not only",d={className:"variable",begin:"(\\$"+"[a-zA-Z-][a-zA-Z0-9_-]*"+")\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,i.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},i.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+AS.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+l.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+r.join("|")+")"},d,{begin:/\(/,end:/\)/,contains:[i.CSS_NUMBER_MODE]},i.CSS_VARIABLE,{className:"attribute",begin:"\\b("+MS.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[i.BLOCK_COMMENT,d,i.HEXCOLOR,i.CSS_NUMBER_MODE,i.UNICODE_RANGE,t.QUOTE_STRING_MODE,t.APOS_STRING_MODE,i.IMPORTANT,i.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:s,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:c,attribute:RS.join(" ")},contains:[{begin:s,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},d,t.QUOTE_STRING_MODE,t.APOS_STRING_MODE,i.HEXCOLOR,i.CSS_NUMBER_MODE]},i.FUNCTION_DISPATCH]}}function DS(t){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}function PS(t){const i=t.regex,r=t.COMMENT("--","$"),l={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},s={begin:/"/,end:/"/,contains:[{match:/""/}]},c=["true","false","unknown"],u=["double precision","large object","with timezone","without timezone"],d=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],p=["add","asc","collation","desc","final","first","last","view"],g=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],y=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],h=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],b=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],E=y,k=[...g,...p].filter(X=>!y.includes(X)),C={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},O={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},N={match:i.concat(/\b/,i.either(...E),/\s*\(/),relevance:0,keywords:{built_in:E}};function P(X){return i.concat(/\b/,i.either(...X.map(A=>A.replace(/\s+/,"\\s+"))),/\b/)}const z={scope:"keyword",match:P(b),relevance:0};function W(X,{exceptions:A,when:Z}={}){const ee=Z;return A=A||[],X.map(H=>H.match(/\|\d+$/)||A.includes(H)?H:ee(H)?`${H}|0`:H)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:W(k,{when:X=>X.length<3}),literal:c,type:d,built_in:h},contains:[{scope:"type",match:P(u)},z,N,C,l,s,t.C_NUMBER_MODE,t.C_BLOCK_COMMENT_MODE,r,O]}}function Ug(t){return t?typeof t=="string"?t:t.source:null}function ko(t){return Ze("(?=",t,")")}function Ze(...t){return t.map(r=>Ug(r)).join("")}function zS(t){const i=t[t.length-1];return typeof i=="object"&&i.constructor===Object?(t.splice(t.length-1,1),i):{}}function $t(...t){return"("+(zS(t).capture?"":"?:")+t.map(l=>Ug(l)).join("|")+")"}const Wu=t=>Ze(/\b/,t,/\w$/.test(t)?/\b/:/\B/),FS=["Protocol","Type"].map(Wu),hp=["init","self"].map(Wu),BS=["Any","Self"],fu=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],yp=["false","nil","true"],US=["assignment","associativity","higherThan","left","lowerThan","none","right"],$S=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],Ep=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],$g=$t(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),Hg=$t($g,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),du=Ze($g,Hg,"*"),Kg=$t(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),na=$t(Kg,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),Bn=Ze(Kg,na,"*"),Ql=Ze(/[A-Z]/,na,"*"),HS=["attached","autoclosure",Ze(/convention\(/,$t("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",Ze(/objc\(/,Bn,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],KS=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function GS(t){const i={match:/\s+/,relevance:0},r=t.COMMENT("/\\*","\\*/",{contains:["self"]}),l=[t.C_LINE_COMMENT_MODE,r],s={match:[/\./,$t(...FS,...hp)],className:{2:"keyword"}},c={match:Ze(/\./,$t(...fu)),relevance:0},u=fu.filter(We=>typeof We=="string").concat(["_|0"]),d=fu.filter(We=>typeof We!="string").concat(BS).map(Wu),p={variants:[{className:"keyword",match:$t(...d,...hp)}]},g={$pattern:$t(/\b\w+/,/#\w+/),keyword:u.concat($S),literal:yp},y=[s,c,p],h={match:Ze(/\./,$t(...Ep)),relevance:0},b={className:"built_in",match:Ze(/\b/,$t(...Ep),/(?=\()/)},E=[h,b],k={match:/->/,relevance:0},C={className:"operator",relevance:0,variants:[{match:du},{match:`\\.(\\.|${Hg})+`}]},O=[k,C],N="([0-9]_*)+",P="([0-9a-fA-F]_*)+",z={className:"number",relevance:0,variants:[{match:`\\b(${N})(\\.(${N}))?([eE][+-]?(${N}))?\\b`},{match:`\\b0x(${P})(\\.(${P}))?([pP][+-]?(${N}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},W=(We="")=>({className:"subst",variants:[{match:Ze(/\\/,We,/[0\\tnr"']/)},{match:Ze(/\\/,We,/u\{[0-9a-fA-F]{1,8}\}/)}]}),X=(We="")=>({className:"subst",match:Ze(/\\/,We,/[\t ]*(?:[\r\n]|\r\n)/)}),A=(We="")=>({className:"subst",label:"interpol",begin:Ze(/\\/,We,/\(/),end:/\)/}),Z=(We="")=>({begin:Ze(We,/"""/),end:Ze(/"""/,We),contains:[W(We),X(We),A(We)]}),ee=(We="")=>({begin:Ze(We,/"/),end:Ze(/"/,We),contains:[W(We),A(We)]}),H={className:"string",variants:[Z(),Z("#"),Z("##"),Z("###"),ee(),ee("#"),ee("##"),ee("###")]},w=[t.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[t.BACKSLASH_ESCAPE]}],j={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:w},V=We=>{const Jt=Ze(We,/\//),an=Ze(/\//,We);return{begin:Jt,end:an,contains:[...w,{scope:"comment",begin:`#(?!.*${an})`,end:/$/}]}},ae={scope:"regexp",variants:[V("###"),V("##"),V("#"),j]},Y={match:Ze(/`/,Bn,/`/)},$={className:"variable",match:/\$\d+/},ce={className:"variable",match:`\\$${na}+`},_e=[Y,$,ce],K={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:KS,contains:[...O,z,H]}]}},ue={scope:"keyword",match:Ze(/@/,$t(...HS),ko($t(/\(/,/\s+/)))},v={scope:"meta",match:Ze(/@/,Bn)},I=[K,ue,v],B={match:ko(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:Ze(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,na,"+")},{className:"type",match:Ql,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:Ze(/\s+&\s+/,ko(Ql)),relevance:0}]},S={begin://,keywords:g,contains:[...l,...y,...I,k,B]};B.contains.push(S);const we={match:Ze(Bn,/\s*:/),keywords:"_|0",relevance:0},Me={begin:/\(/,end:/\)/,relevance:0,keywords:g,contains:["self",we,...l,ae,...y,...E,...O,z,H,..._e,...I,B]},ke={begin://,keywords:"repeat each",contains:[...l,B]},$e={begin:$t(ko(Ze(Bn,/\s*:/)),ko(Ze(Bn,/\s+/,Bn,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:Bn}]},De={begin:/\(/,end:/\)/,keywords:g,contains:[$e,...l,...y,...O,z,H,...I,B,Me],endsParent:!0,illegal:/["']/},Ge={match:[/(func|macro)/,/\s+/,$t(Y.match,Bn,du)],className:{1:"keyword",3:"title.function"},contains:[ke,De,i],illegal:[/\[/,/%/]},Xe={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[ke,De,i],illegal:/\[|%/},Xt={match:[/operator/,/\s+/,du],className:{1:"keyword",3:"title"}},rr={begin:[/precedencegroup/,/\s+/,Ql],className:{1:"keyword",3:"title"},contains:[B],keywords:[...US,...yp],end:/}/},An={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},Hn={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},Kn={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,Bn,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:g,contains:[ke,...y,{begin:/:/,end:/\{/,keywords:g,contains:[{scope:"title.class.inherited",match:Ql},...y],relevance:0}]};for(const We of H.variants){const Jt=We.contains.find(Rn=>Rn.label==="interpol");Jt.keywords=g;const an=[...y,...E,...O,z,H,..._e];Jt.contains=[...an,{begin:/\(/,end:/\)/,contains:["self",...an]}]}return{name:"Swift",keywords:g,contains:[...l,Ge,Xe,An,Hn,Kn,Xt,rr,{beginKeywords:"import",end:/$/,contains:[...l],relevance:0},ae,...y,...E,...O,z,H,..._e,...I,B,Me]}}const ra="[A-Za-z$_][0-9A-Za-z$_]*",Gg=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],Wg=["true","false","null","undefined","NaN","Infinity"],jg=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],Vg=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],qg=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Yg=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],Qg=[].concat(qg,jg,Vg);function WS(t){const i=t.regex,r=(K,{after:ue})=>{const v="",end:""},c=/<[A-Za-z0-9\\._:-]+\s*\/>/,u={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(K,ue)=>{const v=K[0].length+K.index,I=K.input[v];if(I==="<"||I===","){ue.ignoreMatch();return}I===">"&&(r(K,{after:v})||ue.ignoreMatch());let B;const S=K.input.substring(v);if(B=S.match(/^\s*=/)){ue.ignoreMatch();return}if((B=S.match(/^\s+extends\s+/))&&B.index===0){ue.ignoreMatch();return}}},d={$pattern:ra,keyword:Gg,literal:Wg,built_in:Qg,"variable.language":Yg},p="[0-9](_?[0-9])*",g=`\\.(${p})`,y="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",h={className:"number",variants:[{begin:`(\\b(${y})((${g})|\\.)?|(${g}))[eE][+-]?(${p})\\b`},{begin:`\\b(${y})\\b((${g})\\b|\\.)?|(${g})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},b={className:"subst",begin:"\\$\\{",end:"\\}",keywords:d,contains:[]},E={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,b],subLanguage:"xml"}},k={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,b],subLanguage:"css"}},C={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,b],subLanguage:"graphql"}},O={className:"string",begin:"`",end:"`",contains:[t.BACKSLASH_ESCAPE,b]},P={className:"comment",variants:[t.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:l+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE]},z=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,E,k,C,O,{match:/\$\d+/},h];b.contains=z.concat({begin:/\{/,end:/\}/,keywords:d,contains:["self"].concat(z)});const W=[].concat(P,b.contains),X=W.concat([{begin:/(\s*)\(/,end:/\)/,keywords:d,contains:["self"].concat(W)}]),A={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,contains:X},Z={variants:[{match:[/class/,/\s+/,l,/\s+/,/extends/,/\s+/,i.concat(l,"(",i.concat(/\./,l),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,l],scope:{1:"keyword",3:"title.class"}}]},ee={relevance:0,match:i.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...jg,...Vg]}},H={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},w={variants:[{match:[/function/,/\s+/,l,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[A],illegal:/%/},j={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function V(K){return i.concat("(?!",K.join("|"),")")}const ae={match:i.concat(/\b/,V([...qg,"super","import","await"].map(K=>`${K}\\s*\\(`)),l,i.lookahead(/\s*\(/)),className:"title.function",relevance:0},Y={begin:i.concat(/\./,i.lookahead(i.concat(l,/(?![0-9A-Za-z$_(])/))),end:l,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},$={match:[/get|set/,/\s+/,l,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},A]},ce="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+t.UNDERSCORE_IDENT_RE+")\\s*=>",_e={match:[/const|var|let/,/\s+/,l,/\s*/,/=\s*/,/(async\s*)?/,i.lookahead(ce)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[A]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:d,exports:{PARAMS_CONTAINS:X,CLASS_REFERENCE:ee},illegal:/#(?![$_A-Za-z])/,contains:[t.SHEBANG({label:"shebang",binary:"node",relevance:5}),H,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,E,k,C,O,P,{match:/\$\d+/},h,ee,{scope:"attr",match:l+i.lookahead(":"),relevance:0},_e,{begin:"("+t.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[P,t.REGEXP_MODE,{className:"function",begin:ce,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,contains:X}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:s.begin,end:s.end},{match:c},{begin:u.begin,"on:begin":u.isTrulyOpeningTag,end:u.end}],subLanguage:"xml",contains:[{begin:u.begin,end:u.end,skip:!0,contains:["self"]}]}]},w,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+t.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[A,t.inherit(t.TITLE_MODE,{begin:l,className:"title.function"})]},{match:/\.\.\./,relevance:0},Y,{match:"\\$"+l,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[A]},ae,j,Z,$,{match:/\$[(.]/}]}}function jS(t){const i=t.regex,r=WS(t),l=ra,s=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],c={begin:[/namespace/,/\s+/,t.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},u={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:s},contains:[r.exports.CLASS_REFERENCE]},d={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},p=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],g={$pattern:ra,keyword:Gg.concat(p),literal:Wg,built_in:Qg.concat(s),"variable.language":Yg},y={className:"meta",begin:"@"+l},h=(C,O,N)=>{const P=C.contains.findIndex(z=>z.label===O);if(P===-1)throw new Error("can not find mode to replace");C.contains.splice(P,1,N)};Object.assign(r.keywords,g),r.exports.PARAMS_CONTAINS.push(y);const b=r.contains.find(C=>C.scope==="attr"),E=Object.assign({},b,{match:i.concat(l,i.lookahead(/\s*\?:/))});r.exports.PARAMS_CONTAINS.push([r.exports.CLASS_REFERENCE,b,E]),r.contains=r.contains.concat([y,c,u,E]),h(r,"shebang",t.SHEBANG()),h(r,"use_strict",d);const k=r.contains.find(C=>C.label==="func.def");return k.relevance=0,Object.assign(r,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),r}function VS(t){const i=t.regex,r={className:"string",begin:/"(""|[^/n])"C\b/},l={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},s=/\d{1,2}\/\d{1,2}\/\d{4}/,c=/\d{4}-\d{1,2}-\d{1,2}/,u=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,d=/\d{1,2}(:\d{1,2}){1,2}/,p={className:"literal",variants:[{begin:i.concat(/# */,i.either(c,s),/ *#/)},{begin:i.concat(/# */,d,/ *#/)},{begin:i.concat(/# */,u,/ *#/)},{begin:i.concat(/# */,i.either(c,s),/ +/,i.either(u,d),/ *#/)}]},g={className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},y={className:"label",begin:/^\w+:/},h=t.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),b=t.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[r,l,p,g,y,h,b,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[b]}]}}function qS(t){t.regex;const i=t.COMMENT(/\(;/,/;\)/);i.contains.push("self");const r=t.COMMENT(/;;/,/$/),l=["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"],s={begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},c={className:"variable",begin:/\$[\w_]+/},u={match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},d={className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/},p={match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},g={className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/};return{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:l},contains:[r,i,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},c,u,s,t.QUOTE_STRING_MODE,p,g,d]}}function YS(t){const i=t.regex,r=i.concat(/[\p{L}_]/u,i.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),l=/[\p{L}0-9._:-]+/u,s={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},c={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},u=t.inherit(c,{begin:/\(/,end:/\)/}),d=t.inherit(t.APOS_STRING_MODE,{className:"string"}),p=t.inherit(t.QUOTE_STRING_MODE,{className:"string"}),g={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[c,p,d,u,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[c,u,p,d]}]}]},t.COMMENT(//,{relevance:10}),{begin://,relevance:10},s,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[p]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[g],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[g],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:i.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:r,relevance:0,starts:g}]},{className:"tag",begin:i.concat(/<\//,i.lookahead(i.concat(r,/>/))),contains:[{className:"name",begin:r,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function QS(t){const i="true false yes no null",r="[\\w#;/?:@&=+$,.~*'()[\\]]+",l={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},s={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},c={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},u={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[t.BACKSLASH_ESCAPE,s]},d=t.inherit(u,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),b={className:"number",begin:"\\b"+"[0-9]{4}(-[0-9][0-9]){0,2}"+"([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?"+"(\\.[0-9]*)?"+"([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?"+"\\b"},E={end:",",endsWithParent:!0,excludeEnd:!0,keywords:i,relevance:0},k={begin:/\{/,end:/\}/,contains:[E],illegal:"\\n",relevance:0},C={begin:"\\[",end:"\\]",contains:[E],illegal:"\\n",relevance:0},O=[l,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+r},{className:"type",begin:"!<"+r+">"},{className:"type",begin:"!"+r},{className:"type",begin:"!!"+r},{className:"meta",begin:"&"+t.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+t.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},t.HASH_COMMENT_MODE,{beginKeywords:i,keywords:{literal:i}},b,{className:"number",begin:t.C_NUMBER_RE+"\\b",relevance:0},k,C,c,u],N=[...O];return N.pop(),N.push(d),E.contains=N,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:O}}const ZS={arduino:Rw,bash:Ow,c:Iw,cpp:Mw,csharp:Lw,css:Kw,diff:Gw,go:Ww,graphql:jw,ini:Vw,java:qw,javascript:Jw,json:nS,kotlin:iS,less:dS,lua:pS,makefile:gS,markdown:mS,objectivec:hS,perl:yS,php:ES,"php-template":bS,plaintext:_S,python:vS,"python-repl":kS,r:wS,ruby:SS,rust:xS,scss:LS,shell:DS,sql:PS,swift:GS,typescript:jS,vbnet:VS,wasm:qS,xml:YS,yaml:QS};var pu,bp;function XS(){if(bp)return pu;bp=1;function t(T){return T instanceof Map?T.clear=T.delete=T.set=function(){throw new Error("map is read-only")}:T instanceof Set&&(T.add=T.clear=T.delete=function(){throw new Error("set is read-only")}),Object.freeze(T),Object.getOwnPropertyNames(T).forEach(G=>{const se=T[G],Re=typeof se;(Re==="object"||Re==="function")&&!Object.isFrozen(se)&&t(se)}),T}class i{constructor(G){G.data===void 0&&(G.data={}),this.data=G.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function r(T){return T.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function l(T,...G){const se=Object.create(null);for(const Re in T)se[Re]=T[Re];return G.forEach(function(Re){for(const rt in Re)se[rt]=Re[rt]}),se}const s="",c=T=>!!T.scope,u=(T,{prefix:G})=>{if(T.startsWith("language:"))return T.replace("language:","language-");if(T.includes(".")){const se=T.split(".");return[`${G}${se.shift()}`,...se.map((Re,rt)=>`${Re}${"_".repeat(rt+1)}`)].join(" ")}return`${G}${T}`};class d{constructor(G,se){this.buffer="",this.classPrefix=se.classPrefix,G.walk(this)}addText(G){this.buffer+=r(G)}openNode(G){if(!c(G))return;const se=u(G.scope,{prefix:this.classPrefix});this.span(se)}closeNode(G){c(G)&&(this.buffer+=s)}value(){return this.buffer}span(G){this.buffer+=``}}const p=(T={})=>{const G={children:[]};return Object.assign(G,T),G};class g{constructor(){this.rootNode=p(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(G){this.top.children.push(G)}openNode(G){const se=p({scope:G});this.add(se),this.stack.push(se)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(G){return this.constructor._walk(G,this.rootNode)}static _walk(G,se){return typeof se=="string"?G.addText(se):se.children&&(G.openNode(se),se.children.forEach(Re=>this._walk(G,Re)),G.closeNode(se)),G}static _collapse(G){typeof G!="string"&&G.children&&(G.children.every(se=>typeof se=="string")?G.children=[G.children.join("")]:G.children.forEach(se=>{g._collapse(se)}))}}class y extends g{constructor(G){super(),this.options=G}addText(G){G!==""&&this.add(G)}startScope(G){this.openNode(G)}endScope(){this.closeNode()}__addSublanguage(G,se){const Re=G.root;se&&(Re.scope=`language:${se}`),this.add(Re)}toHTML(){return new d(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function h(T){return T?typeof T=="string"?T:T.source:null}function b(T){return C("(?=",T,")")}function E(T){return C("(?:",T,")*")}function k(T){return C("(?:",T,")?")}function C(...T){return T.map(se=>h(se)).join("")}function O(T){const G=T[T.length-1];return typeof G=="object"&&G.constructor===Object?(T.splice(T.length-1,1),G):{}}function N(...T){return"("+(O(T).capture?"":"?:")+T.map(Re=>h(Re)).join("|")+")"}function P(T){return new RegExp(T.toString()+"|").exec("").length-1}function z(T,G){const se=T&&T.exec(G);return se&&se.index===0}const W=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function X(T,{joinWith:G}){let se=0;return T.map(Re=>{se+=1;const rt=se;let lt=h(Re),me="";for(;lt.length>0;){const pe=W.exec(lt);if(!pe){me+=lt;break}me+=lt.substring(0,pe.index),lt=lt.substring(pe.index+pe[0].length),pe[0][0]==="\\"&&pe[1]?me+="\\"+String(Number(pe[1])+rt):(me+=pe[0],pe[0]==="("&&se++)}return me}).map(Re=>`(${Re})`).join(G)}const A=/\b\B/,Z="[a-zA-Z]\\w*",ee="[a-zA-Z_]\\w*",H="\\b\\d+(\\.\\d+)?",w="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",j="\\b(0b[01]+)",V="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",ae=(T={})=>{const G=/^#![ ]*\//;return T.binary&&(T.begin=C(G,/.*\b/,T.binary,/\b.*/)),l({scope:"meta",begin:G,end:/$/,relevance:0,"on:begin":(se,Re)=>{se.index!==0&&Re.ignoreMatch()}},T)},Y={begin:"\\\\[\\s\\S]",relevance:0},$={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[Y]},ce={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[Y]},_e={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},K=function(T,G,se={}){const Re=l({scope:"comment",begin:T,end:G,contains:[]},se);Re.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const rt=N("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return Re.contains.push({begin:C(/[ ]+/,"(",rt,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),Re},ue=K("//","$"),v=K("/\\*","\\*/"),I=K("#","$"),B={scope:"number",begin:H,relevance:0},S={scope:"number",begin:w,relevance:0},we={scope:"number",begin:j,relevance:0},Me={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[Y,{begin:/\[/,end:/\]/,relevance:0,contains:[Y]}]},ke={scope:"title",begin:Z,relevance:0},$e={scope:"title",begin:ee,relevance:0},De={begin:"\\.\\s*"+ee,relevance:0};var Xe=Object.freeze({__proto__:null,APOS_STRING_MODE:$,BACKSLASH_ESCAPE:Y,BINARY_NUMBER_MODE:we,BINARY_NUMBER_RE:j,COMMENT:K,C_BLOCK_COMMENT_MODE:v,C_LINE_COMMENT_MODE:ue,C_NUMBER_MODE:S,C_NUMBER_RE:w,END_SAME_AS_BEGIN:function(T){return Object.assign(T,{"on:begin":(G,se)=>{se.data._beginMatch=G[1]},"on:end":(G,se)=>{se.data._beginMatch!==G[1]&&se.ignoreMatch()}})},HASH_COMMENT_MODE:I,IDENT_RE:Z,MATCH_NOTHING_RE:A,METHOD_GUARD:De,NUMBER_MODE:B,NUMBER_RE:H,PHRASAL_WORDS_MODE:_e,QUOTE_STRING_MODE:ce,REGEXP_MODE:Me,RE_STARTERS_RE:V,SHEBANG:ae,TITLE_MODE:ke,UNDERSCORE_IDENT_RE:ee,UNDERSCORE_TITLE_MODE:$e});function Xt(T,G){T.input[T.index-1]==="."&&G.ignoreMatch()}function rr(T,G){T.className!==void 0&&(T.scope=T.className,delete T.className)}function An(T,G){G&&T.beginKeywords&&(T.begin="\\b("+T.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",T.__beforeBegin=Xt,T.keywords=T.keywords||T.beginKeywords,delete T.beginKeywords,T.relevance===void 0&&(T.relevance=0))}function Hn(T,G){Array.isArray(T.illegal)&&(T.illegal=N(...T.illegal))}function Kn(T,G){if(T.match){if(T.begin||T.end)throw new Error("begin & end are not supported with match");T.begin=T.match,delete T.match}}function We(T,G){T.relevance===void 0&&(T.relevance=1)}const Jt=(T,G)=>{if(!T.beforeMatch)return;if(T.starts)throw new Error("beforeMatch cannot be used with starts");const se=Object.assign({},T);Object.keys(T).forEach(Re=>{delete T[Re]}),T.keywords=se.keywords,T.begin=C(se.beforeMatch,b(se.begin)),T.starts={relevance:0,contains:[Object.assign(se,{endsParent:!0})]},T.relevance=0,delete se.beforeMatch},an=["of","and","for","in","not","or","if","then","parent","list","value"],Rn="keyword";function En(T,G,se=Rn){const Re=Object.create(null);return typeof T=="string"?rt(se,T.split(" ")):Array.isArray(T)?rt(se,T):Object.keys(T).forEach(function(lt){Object.assign(Re,En(T[lt],G,lt))}),Re;function rt(lt,me){G&&(me=me.map(pe=>pe.toLowerCase())),me.forEach(function(pe){const Se=pe.split("|");Re[Se[0]]=[lt,On(Se[0],Se[1])]})}}function On(T,G){return G?Number(G):Tr(T)?0:1}function Tr(T){return an.includes(T.toLowerCase())}const Cr={},sn=T=>{console.error(T)},Ar=(T,...G)=>{console.log(`WARN: ${T}`,...G)},U=(T,G)=>{Cr[`${T}/${G}`]||(console.log(`Deprecated as of ${T}. ${G}`),Cr[`${T}/${G}`]=!0)},ie=new Error;function Ce(T,G,{key:se}){let Re=0;const rt=T[se],lt={},me={};for(let pe=1;pe<=G.length;pe++)me[pe+Re]=rt[pe],lt[pe+Re]=!0,Re+=P(G[pe-1]);T[se]=me,T[se]._emit=lt,T[se]._multi=!0}function Pe(T){if(Array.isArray(T.begin)){if(T.skip||T.excludeBegin||T.returnBegin)throw sn("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),ie;if(typeof T.beginScope!="object"||T.beginScope===null)throw sn("beginScope must be object"),ie;Ce(T,T.begin,{key:"beginScope"}),T.begin=X(T.begin,{joinWith:""})}}function He(T){if(Array.isArray(T.end)){if(T.skip||T.excludeEnd||T.returnEnd)throw sn("skip, excludeEnd, returnEnd not compatible with endScope: {}"),ie;if(typeof T.endScope!="object"||T.endScope===null)throw sn("endScope must be object"),ie;Ce(T,T.end,{key:"endScope"}),T.end=X(T.end,{joinWith:""})}}function _t(T){T.scope&&typeof T.scope=="object"&&T.scope!==null&&(T.beginScope=T.scope,delete T.scope)}function bn(T){_t(T),typeof T.beginScope=="string"&&(T.beginScope={_wrap:T.beginScope}),typeof T.endScope=="string"&&(T.endScope={_wrap:T.endScope}),Pe(T),He(T)}function Kt(T){function G(me,pe){return new RegExp(h(me),"m"+(T.case_insensitive?"i":"")+(T.unicodeRegex?"u":"")+(pe?"g":""))}class se{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(pe,Se){Se.position=this.position++,this.matchIndexes[this.matchAt]=Se,this.regexes.push([Se,pe]),this.matchAt+=P(pe)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const pe=this.regexes.map(Se=>Se[1]);this.matcherRe=G(X(pe,{joinWith:"|"}),!0),this.lastIndex=0}exec(pe){this.matcherRe.lastIndex=this.lastIndex;const Se=this.matcherRe.exec(pe);if(!Se)return null;const yt=Se.findIndex((In,or)=>or>0&&In!==void 0),tt=this.matchIndexes[yt];return Se.splice(0,yt),Object.assign(Se,tt)}}class Re{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(pe){if(this.multiRegexes[pe])return this.multiRegexes[pe];const Se=new se;return this.rules.slice(pe).forEach(([yt,tt])=>Se.addRule(yt,tt)),Se.compile(),this.multiRegexes[pe]=Se,Se}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(pe,Se){this.rules.push([pe,Se]),Se.type==="begin"&&this.count++}exec(pe){const Se=this.getMatcher(this.regexIndex);Se.lastIndex=this.lastIndex;let yt=Se.exec(pe);if(this.resumingScanAtSamePosition()&&!(yt&&yt.index===this.lastIndex)){const tt=this.getMatcher(0);tt.lastIndex=this.lastIndex+1,yt=tt.exec(pe)}return yt&&(this.regexIndex+=yt.position+1,this.regexIndex===this.count&&this.considerAll()),yt}}function rt(me){const pe=new Re;return me.contains.forEach(Se=>pe.addRule(Se.begin,{rule:Se,type:"begin"})),me.terminatorEnd&&pe.addRule(me.terminatorEnd,{type:"end"}),me.illegal&&pe.addRule(me.illegal,{type:"illegal"}),pe}function lt(me,pe){const Se=me;if(me.isCompiled)return Se;[rr,Kn,bn,Jt].forEach(tt=>tt(me,pe)),T.compilerExtensions.forEach(tt=>tt(me,pe)),me.__beforeBegin=null,[An,Hn,We].forEach(tt=>tt(me,pe)),me.isCompiled=!0;let yt=null;return typeof me.keywords=="object"&&me.keywords.$pattern&&(me.keywords=Object.assign({},me.keywords),yt=me.keywords.$pattern,delete me.keywords.$pattern),yt=yt||/\w+/,me.keywords&&(me.keywords=En(me.keywords,T.case_insensitive)),Se.keywordPatternRe=G(yt,!0),pe&&(me.begin||(me.begin=/\B|\b/),Se.beginRe=G(Se.begin),!me.end&&!me.endsWithParent&&(me.end=/\B|\b/),me.end&&(Se.endRe=G(Se.end)),Se.terminatorEnd=h(Se.end)||"",me.endsWithParent&&pe.terminatorEnd&&(Se.terminatorEnd+=(me.end?"|":"")+pe.terminatorEnd)),me.illegal&&(Se.illegalRe=G(me.illegal)),me.contains||(me.contains=[]),me.contains=[].concat(...me.contains.map(function(tt){return Gn(tt==="self"?me:tt)})),me.contains.forEach(function(tt){lt(tt,Se)}),me.starts&<(me.starts,pe),Se.matcher=rt(Se),Se}if(T.compilerExtensions||(T.compilerExtensions=[]),T.contains&&T.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return T.classNameAliases=l(T.classNameAliases||{}),lt(T)}function _n(T){return T?T.endsWithParent||_n(T.starts):!1}function Gn(T){return T.variants&&!T.cachedVariants&&(T.cachedVariants=T.variants.map(function(G){return l(T,{variants:null},G)})),T.cachedVariants?T.cachedVariants:_n(T)?l(T,{starts:T.starts?l(T.starts):null}):Object.isFrozen(T)?l(T):T}var vt="11.11.2";class un extends Error{constructor(G,se){super(G),this.name="HTMLInjectionError",this.html=se}}const Ct=r,ei=l,ti=Symbol("nomatch"),ir=7,Wn=function(T){const G=Object.create(null),se=Object.create(null),Re=[];let rt=!0;const lt="Could not find the language '{}', did you forget to load/include a language module?",me={disableAutodetect:!0,name:"Plain text",contains:[]};let pe={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:y};function Se(ne){return pe.noHighlightRe.test(ne)}function yt(ne){let ve=ne.className+" ";ve+=ne.parentNode?ne.parentNode.className:"";const ze=pe.languageDetectRe.exec(ve);if(ze){const Be=vn(ze[1]);return Be||(Ar(lt.replace("{}",ze[1])),Ar("Falling back to no-highlight mode for this block.",ne)),Be?ze[1]:"no-highlight"}return ve.split(/\s+/).find(Be=>Se(Be)||vn(Be))}function tt(ne,ve,ze){let Be="",gt="";typeof ve=="object"?(Be=ne,ze=ve.ignoreIllegals,gt=ve.language):(U("10.7.0","highlight(lang, code, ...args) has been deprecated."),U("10.7.0",`Please use highlight(code, options) instead. -https://github.com/highlightjs/highlight.js/issues/2277`),gt=ne,Be=ve),ze===void 0&&(ze=!0);const ut={code:Be,language:gt};Or("before:highlight",ut);const Mn=ut.result?ut.result:In(ut.language,ut.code,ze);return Mn.code=ut.code,Or("after:highlight",Mn),Mn}function In(ne,ve,ze,Be){const gt=Object.create(null);function ut(oe,ge){return oe.keywords[ge]}function Mn(){if(!Ie.keywords){mt.addText(Qe);return}let oe=0;Ie.keywordPatternRe.lastIndex=0;let ge=Ie.keywordPatternRe.exec(Qe),Ae="";for(;ge;){Ae+=Qe.substring(oe,ge.index);const Ke=cn.case_insensitive?ge[0].toLowerCase():ge[0],dt=ut(Ie,Ke);if(dt){const[St,ga]=dt;if(mt.addText(Ae),Ae="",gt[Ke]=(gt[Ke]||0)+1,gt[Ke]<=ir&&(Lr+=ga),St.startsWith("_"))Ae+=ge[0];else{const $o=cn.classNameAliases[St]||St;Ft(ge[0],$o)}}else Ae+=ge[0];oe=Ie.keywordPatternRe.lastIndex,ge=Ie.keywordPatternRe.exec(Qe)}Ae+=Qe.substring(oe),mt.addText(Ae)}function ii(){if(Qe==="")return;let oe=null;if(typeof Ie.subLanguage=="string"){if(!G[Ie.subLanguage]){mt.addText(Qe);return}oe=In(Ie.subLanguage,Qe,!0,Ui[Ie.subLanguage]),Ui[Ie.subLanguage]=oe._top}else oe=Rr(Qe,Ie.subLanguage.length?Ie.subLanguage:null);Ie.relevance>0&&(Lr+=oe.relevance),mt.__addSublanguage(oe._emitter,oe.language)}function zt(){Ie.subLanguage!=null?ii():Mn(),Qe=""}function Ft(oe,ge){oe!==""&&(mt.startScope(ge),mt.addText(oe),mt.endScope())}function Ir(oe,ge){let Ae=1;const Ke=ge.length-1;for(;Ae<=Ke;){if(!oe._emit[Ae]){Ae++;continue}const dt=cn.classNameAliases[oe[Ae]]||oe[Ae],St=ge[Ae];dt?Ft(St,dt):(Qe=St,Mn(),Qe=""),Ae++}}function lr(oe,ge){return oe.scope&&typeof oe.scope=="string"&&mt.openNode(cn.classNameAliases[oe.scope]||oe.scope),oe.beginScope&&(oe.beginScope._wrap?(Ft(Qe,cn.classNameAliases[oe.beginScope._wrap]||oe.beginScope._wrap),Qe=""):oe.beginScope._multi&&(Ir(oe.beginScope,ge),Qe="")),Ie=Object.create(oe,{parent:{value:Ie}}),Ie}function Mr(oe,ge,Ae){let Ke=z(oe.endRe,Ae);if(Ke){if(oe["on:end"]){const dt=new i(oe);oe["on:end"](ge,dt),dt.isMatchIgnored&&(Ke=!1)}if(Ke){for(;oe.endsParent&&oe.parent;)oe=oe.parent;return oe}}if(oe.endsWithParent)return Mr(oe.parent,ge,Ae)}function da(oe){return Ie.matcher.regexIndex===0?(Qe+=oe[0],1):(ur=!0,0)}function pa(oe){const ge=oe[0],Ae=oe.rule,Ke=new i(Ae),dt=[Ae.__beforeBegin,Ae["on:begin"]];for(const St of dt)if(St&&(St(oe,Ke),Ke.isMatchIgnored))return da(ge);return Ae.skip?Qe+=ge:(Ae.excludeBegin&&(Qe+=ge),zt(),!Ae.returnBegin&&!Ae.excludeBegin&&(Qe=ge)),lr(Ae,oe),Ae.returnBegin?0:ge.length}function Fi(oe){const ge=oe[0],Ae=ve.substring(oe.index),Ke=Mr(Ie,oe,Ae);if(!Ke)return ti;const dt=Ie;Ie.endScope&&Ie.endScope._wrap?(zt(),Ft(ge,Ie.endScope._wrap)):Ie.endScope&&Ie.endScope._multi?(zt(),Ir(Ie.endScope,oe)):dt.skip?Qe+=ge:(dt.returnEnd||dt.excludeEnd||(Qe+=ge),zt(),dt.excludeEnd&&(Qe=ge));do Ie.scope&&mt.closeNode(),!Ie.skip&&!Ie.subLanguage&&(Lr+=Ie.relevance),Ie=Ie.parent;while(Ie!==Ke.parent);return Ke.starts&&lr(Ke.starts,oe),dt.returnEnd?0:ge.length}function Uo(){const oe=[];for(let ge=Ie;ge!==cn;ge=ge.parent)ge.scope&&oe.unshift(ge.scope);oe.forEach(ge=>mt.openNode(ge))}let ar={};function sr(oe,ge){const Ae=ge&&ge[0];if(Qe+=oe,Ae==null)return zt(),0;if(ar.type==="begin"&&ge.type==="end"&&ar.index===ge.index&&Ae===""){if(Qe+=ve.slice(ge.index,ge.index+1),!rt){const Ke=new Error(`0 width match regex (${ne})`);throw Ke.languageName=ne,Ke.badRule=ar.rule,Ke}return 1}if(ar=ge,ge.type==="begin")return pa(ge);if(ge.type==="illegal"&&!ze){const Ke=new Error('Illegal lexeme "'+Ae+'" for mode "'+(Ie.scope||"")+'"');throw Ke.mode=Ie,Ke}else if(ge.type==="end"){const Ke=Fi(ge);if(Ke!==ti)return Ke}if(ge.type==="illegal"&&Ae==="")return ge.index===ve.length||(Qe+=` -`),1;if(Dr>1e5&&Dr>ge.index*3)throw new Error("potential infinite loop, way more iterations than matches");return Qe+=Ae,Ae.length}const cn=vn(ne);if(!cn)throw sn(lt.replace("{}",ne)),new Error('Unknown language: "'+ne+'"');const Bi=Kt(cn);let Ve="",Ie=Be||Bi;const Ui={},mt=new pe.__emitter(pe);Uo();let Qe="",Lr=0,Ln=0,Dr=0,ur=!1;try{if(cn.__emitTokens)cn.__emitTokens(ve,mt);else{for(Ie.matcher.considerAll();;){Dr++,ur?ur=!1:Ie.matcher.considerAll(),Ie.matcher.lastIndex=Ln;const oe=Ie.matcher.exec(ve);if(!oe)break;const ge=ve.substring(Ln,oe.index),Ae=sr(ge,oe);Ln=oe.index+Ae}sr(ve.substring(Ln))}return mt.finalize(),Ve=mt.toHTML(),{language:ne,value:Ve,relevance:Lr,illegal:!1,_emitter:mt,_top:Ie}}catch(oe){if(oe.message&&oe.message.includes("Illegal"))return{language:ne,value:Ct(ve),illegal:!0,relevance:0,_illegalBy:{message:oe.message,index:Ln,context:ve.slice(Ln-100,Ln+100),mode:oe.mode,resultSoFar:Ve},_emitter:mt};if(rt)return{language:ne,value:Ct(ve),illegal:!1,relevance:0,errorRaised:oe,_emitter:mt,_top:Ie};throw oe}}function or(ne){const ve={value:Ct(ne),illegal:!1,relevance:0,_top:me,_emitter:new pe.__emitter(pe)};return ve._emitter.addText(ne),ve}function Rr(ne,ve){ve=ve||pe.languages||Object.keys(G);const ze=or(ne),Be=ve.filter(vn).filter(Bo).map(zt=>In(zt,ne,!1));Be.unshift(ze);const gt=Be.sort((zt,Ft)=>{if(zt.relevance!==Ft.relevance)return Ft.relevance-zt.relevance;if(zt.language&&Ft.language){if(vn(zt.language).supersetOf===Ft.language)return 1;if(vn(Ft.language).supersetOf===zt.language)return-1}return 0}),[ut,Mn]=gt,ii=ut;return ii.secondBest=Mn,ii}function ua(ne,ve,ze){const Be=ve&&se[ve]||ze;ne.classList.add("hljs"),ne.classList.add(`language-${Be}`)}function Di(ne){let ve=null;const ze=yt(ne);if(Se(ze))return;if(Or("before:highlightElement",{el:ne,language:ze}),ne.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",ne);return}if(ne.children.length>0&&(pe.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(ne)),pe.throwUnescapedHTML))throw new un("One of your code blocks includes unescaped HTML.",ne.innerHTML);ve=ne;const Be=ve.textContent,gt=ze?tt(Be,{language:ze,ignoreIllegals:!0}):Rr(Be);ne.innerHTML=gt.value,ne.dataset.highlighted="yes",ua(ne,ze,gt.language),ne.result={language:gt.language,re:gt.relevance,relevance:gt.relevance},gt.secondBest&&(ne.secondBest={language:gt.secondBest.language,relevance:gt.secondBest.relevance}),Or("after:highlightElement",{el:ne,result:gt,text:Be})}function ca(ne){pe=ei(pe,ne)}const Vn=()=>{ni(),U("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function Lo(){ni(),U("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let Pi=!1;function ni(){function ne(){ni()}if(document.readyState==="loading"){Pi||window.addEventListener("DOMContentLoaded",ne,!1),Pi=!0;return}document.querySelectorAll(pe.cssSelector).forEach(Di)}function Do(ne,ve){let ze=null;try{ze=ve(T)}catch(Be){if(sn("Language definition for '{}' could not be registered.".replace("{}",ne)),rt)sn(Be);else throw Be;ze=me}ze.name||(ze.name=ne),G[ne]=ze,ze.rawDefinition=ve.bind(null,T),ze.aliases&&Fo(ze.aliases,{languageName:ne})}function Po(ne){delete G[ne];for(const ve of Object.keys(se))se[ve]===ne&&delete se[ve]}function zo(){return Object.keys(G)}function vn(ne){return ne=(ne||"").toLowerCase(),G[ne]||G[se[ne]]}function Fo(ne,{languageName:ve}){typeof ne=="string"&&(ne=[ne]),ne.forEach(ze=>{se[ze.toLowerCase()]=ve})}function Bo(ne){const ve=vn(ne);return ve&&!ve.disableAutodetect}function st(ne){ne["before:highlightBlock"]&&!ne["before:highlightElement"]&&(ne["before:highlightElement"]=ve=>{ne["before:highlightBlock"](Object.assign({block:ve.el},ve))}),ne["after:highlightBlock"]&&!ne["after:highlightElement"]&&(ne["after:highlightElement"]=ve=>{ne["after:highlightBlock"](Object.assign({block:ve.el},ve))})}function fa(ne){st(ne),Re.push(ne)}function zi(ne){const ve=Re.indexOf(ne);ve!==-1&&Re.splice(ve,1)}function Or(ne,ve){const ze=ne;Re.forEach(function(Be){Be[ze]&&Be[ze](ve)})}function ri(ne){return U("10.7.0","highlightBlock will be removed entirely in v12.0"),U("10.7.0","Please use highlightElement now."),Di(ne)}Object.assign(T,{highlight:tt,highlightAuto:Rr,highlightAll:ni,highlightElement:Di,highlightBlock:ri,configure:ca,initHighlighting:Vn,initHighlightingOnLoad:Lo,registerLanguage:Do,unregisterLanguage:Po,listLanguages:zo,getLanguage:vn,registerAliases:Fo,autoDetection:Bo,inherit:ei,addPlugin:fa,removePlugin:zi}),T.debugMode=function(){rt=!1},T.safeMode=function(){rt=!0},T.versionString=vt,T.regex={concat:C,lookahead:b,either:N,optional:k,anyNumberOfTimes:E};for(const ne in Xe)typeof Xe[ne]=="object"&&t(Xe[ne]);return Object.assign(T,Xe),T},jn=Wn({});return jn.newInstance=()=>Wn({}),pu=jn,jn.HighlightJS=jn,jn.default=jn,pu}var JS=XS();const e0=Ao(JS),_p={},t0="hljs-";function n0(t){const i=e0.newInstance();return t&&c(t),{highlight:r,highlightAuto:l,listLanguages:s,register:c,registerAlias:u,registered:d};function r(p,g,y){const h=y||_p,b=typeof h.prefix=="string"?h.prefix:t0;if(!i.getLanguage(p))throw new Error("Unknown language: `"+p+"` is not registered");i.configure({__emitter:r0,classPrefix:b});const E=i.highlight(g,{ignoreIllegals:!0,language:p});if(E.errorRaised)throw new Error("Could not highlight with `Highlight.js`",{cause:E.errorRaised});const k=E._emitter.root,C=k.data;return C.language=E.language,C.relevance=E.relevance,k}function l(p,g){const h=(g||_p).subset||s();let b=-1,E=0,k;for(;++bE&&(E=O.data.relevance,k=O)}return k||{type:"root",children:[],data:{language:void 0,relevance:E}}}function s(){return i.listLanguages()}function c(p,g){if(typeof p=="string")i.registerLanguage(p,g);else{let y;for(y in p)Object.hasOwn(p,y)&&i.registerLanguage(y,p[y])}}function u(p,g){if(typeof p=="string")i.registerAliases(typeof g=="string"?g:[...g],{languageName:p});else{let y;for(y in p)if(Object.hasOwn(p,y)){const h=p[y];i.registerAliases(typeof h=="string"?h:[...h],{languageName:y})}}}function d(p){return!!i.getLanguage(p)}}class r0{constructor(i){this.options=i,this.root={type:"root",children:[],data:{language:void 0,relevance:0}},this.stack=[this.root]}addText(i){if(i==="")return;const r=this.stack[this.stack.length-1],l=r.children[r.children.length-1];l&&l.type==="text"?l.value+=i:r.children.push({type:"text",value:i})}startScope(i){this.openNode(String(i))}endScope(){this.closeNode()}__addSublanguage(i,r){const l=this.stack[this.stack.length-1],s=i.root.children;r?l.children.push({type:"element",tagName:"span",properties:{className:[r]},children:s}):l.children.push(...s)}openNode(i){const r=this,l=i.split(".").map(function(u,d){return d?u+"_".repeat(d):r.options.classPrefix+u}),s=this.stack[this.stack.length-1],c={type:"element",tagName:"span",properties:{className:l},children:[]};s.children.push(c),this.stack.push(c)}closeNode(){this.stack.pop()}finalize(){}toHTML(){return""}}const i0={};function o0(t){const i=t||i0,r=i.aliases,l=i.detect||!1,s=i.languages||ZS,c=i.plainText,u=i.prefix,d=i.subset;let p="hljs";const g=n0(s);if(r&&g.registerAlias(r),u){const y=u.indexOf("-");p=y===-1?u:u.slice(0,y)}return function(y,h){sa(y,"element",function(b,E,k){if(b.tagName!=="code"||!k||k.type!=="element"||k.tagName!=="pre")return;const C=l0(b);if(C===!1||!C&&!l||C&&c&&c.includes(C))return;Array.isArray(b.properties.className)||(b.properties.className=[]),b.properties.className.includes(p)||b.properties.className.unshift(p);const O=kw(b,{whitespace:"pre"});let N;try{N=C?g.highlight(C,O,{prefix:u}):g.highlightAuto(O,{prefix:u,subset:d})}catch(P){const z=P;if(C&&/Unknown language/.test(z.message)){h.message("Cannot highlight as `"+C+"`, it’s not registered",{ancestors:[k,b],cause:z,place:b.position,ruleId:"missing-language",source:"rehype-highlight"});return}throw z}!C&&N.data&&N.data.language&&b.properties.className.push("language-"+N.data.language),N.children.length>0&&(b.children=N.children)})}}function l0(t){const i=t.properties.className;let r=-1;if(!Array.isArray(i))return;let l;for(;++rtypeof r=="string"):[]}catch{return[]}}function u0({message:t}){const[i,r]=de.useState(!1),l=t.role==="user",s=s0(t);return le.jsxs("div",{className:`msg ${l?"msg-user":"msg-assistant"}`,children:[le.jsx("div",{className:"msg-role",children:l?"du":"qwen3"}),!l&&t.thinking&&t.thinking.length>0&&le.jsxs("div",{className:`thinking ${i?"open":""}`,children:[le.jsxs("button",{className:"thinking-toggle",onClick:()=>r(c=>!c),children:[le.jsx("span",{className:`caret ${i?"rotated":""}`,children:"▸"}),t.content===""&&i===!1?"denkt nach …":`Denkprozess (${t.thinking.length.toLocaleString("de-DE")} Zeichen)`]}),i&&le.jsx("pre",{className:"thinking-body",children:t.thinking})]}),s.length>0&&le.jsx("div",{className:"msg-images",children:s.map((c,u)=>le.jsx("img",{src:`data:${a0(c)};base64,${c}`,alt:`Anhang ${u+1}`,loading:"lazy"},u))}),l?t.content?le.jsx("div",{className:"msg-content user-content",children:t.content}):null:le.jsx("div",{className:"msg-content markdown",children:le.jsx(nv,{remarkPlugins:[mw],rehypePlugins:[o0],children:t.content||"▍"})})]})}const wo=4,vp=6*1024*1024,kp=["image/png","image/jpeg","image/gif","image/webp"];function c0(t){return new Promise((i,r)=>{const l=new FileReader;l.onerror=()=>r(new Error(`${t.name} konnte nicht gelesen werden`)),l.onload=()=>{const s=String(l.result),c=s.indexOf(",");i({id:`${t.name}-${t.size}-${Date.now()}-${Math.random()}`,base64:s.slice(c+1),dataUrl:s,name:t.name||"Bild"})},l.readAsDataURL(t)})}function f0({streaming:t,disabled:i,recording:r,transcribing:l,injectedText:s,onInjected:c,onSend:u,onAbort:d,onMicToggle:p}){const[g,y]=de.useState(""),[h,b]=de.useState([]),[E,k]=de.useState(null),[C,O]=de.useState(!1),N=de.useRef(null),P=de.useRef(null);de.useEffect(()=>{s!=null&&(y(s),c(),requestAnimationFrame(()=>{var A,Z;(A=N.current)==null||A.focus(),(Z=N.current)==null||Z.setSelectionRange(s.length,s.length)}))},[s,c]);const z=async A=>{k(null);const Z=[];for(const ee of A){if(!kp.includes(ee.type)){k(`${ee.name||"Datei"}: nur PNG, JPEG, GIF oder WebP`);continue}if(ee.size>vp){k(`${ee.name}: größer als ${vp/1024/1024} MB`);continue}Z.push(ee)}if(Z.length)try{const ee=await Promise.all(Z.map(c0));b(H=>{const w=wo-H.length;return ee.length>w&&k(`Maximal ${wo} Bilder pro Nachricht`),[...H,...ee.slice(0,Math.max(w,0))]})}catch(ee){k(ee instanceof Error?ee.message:"Bild konnte nicht gelesen werden")}},W=()=>{const A=g.trim();!A&&h.length===0||t||i||(u(A,h.map(Z=>Z.base64)),y(""),b([]),k(null),requestAnimationFrame(()=>{var Z;return(Z=N.current)==null?void 0:Z.focus()}))},X=(g.trim().length>0||h.length>0)&&!i;return le.jsxs("div",{className:`composer ${C?"dragging":""}`,onDragOver:A=>{i||(A.preventDefault(),O(!0))},onDragLeave:()=>O(!1),onDrop:A=>{i||(A.preventDefault(),O(!1),z([...A.dataTransfer.files]))},children:[(h.length>0||E)&&le.jsxs("div",{className:"attachments",children:[h.map(A=>le.jsxs("div",{className:"attachment",children:[le.jsx("img",{src:A.dataUrl,alt:A.name}),le.jsx("button",{className:"attachment-remove",onClick:()=>b(Z=>Z.filter(ee=>ee.id!==A.id)),title:`${A.name} entfernen`,children:"×"})]},A.id)),E&&le.jsx("span",{className:"attachment-error",children:E})]}),le.jsxs("div",{className:"composer-row",children:[le.jsx("button",{className:`btn-mic ${r?"recording":""} ${l?"transcribing":""}`,onClick:p,title:r?"Aufnahme stoppen & senden":l?"Transkribiere …":"Sprachnachricht aufnehmen",disabled:l||i,children:r?"●":l?"…":"🎙"}),le.jsx("button",{className:"btn-attach",onClick:()=>{var A;return(A=P.current)==null?void 0:A.click()},disabled:i||h.length>=wo,title:h.length>=wo?`Maximal ${wo} Bilder`:"Bild anhängen (auch per Einfügen oder Drag & Drop)",children:"🖼"}),le.jsx("input",{ref:P,type:"file",accept:kp.join(","),multiple:!0,hidden:!0,onChange:A=>{z([...A.target.files??[]]),A.target.value=""}}),le.jsx("textarea",{ref:N,value:g,placeholder:r?"Ich höre zu … (zum Beenden nochmal auf das Mikro klicken)":i?"Keine Session aktiv — neuen Chat starten":"Nachricht an qwen3 … (Enter = senden, Bild einfügen mit ⌘V)",rows:1,disabled:i,onChange:A=>y(A.target.value),onPaste:A=>{const Z=[...A.clipboardData.files].filter(ee=>ee.type.startsWith("image/"));Z.length&&(A.preventDefault(),z(Z))},onKeyDown:A=>{A.key==="Enter"&&!A.shiftKey&&(A.preventDefault(),W())}}),t?le.jsx("button",{className:"btn-send stop",onClick:d,children:"■ Stop"}):le.jsx("button",{className:"btn-send",disabled:!X,onClick:W,children:"Senden ▸"})]})]})}const wp="oxagenttwo.voiceMode";function d0(){var Z,ee,H;const t=Kh(),i=de.useRef(null),[r,l]=de.useState(!1),[s,c]=de.useState(null),[u,d]=de.useState(()=>localStorage.getItem(wp)==="1"),[p,g]=de.useState([]);de.useEffect(()=>{r&&t.options.provider==="openrouter"&&p.length===0&&fetch("/api/openrouter/models").then(w=>w.json()).then(w=>{w.ok&&w.models&&g(w.models)}).catch(()=>{})},[r,t.options.provider,p.length]);const y=de.useRef(u),h=de.useRef(!1),b=de.useRef(!1);h.current=t.streaming,y.current=u;const E=de.useCallback(w=>{d(w),localStorage.setItem(wp,w?"1":"0")},[]),k=Gh({onTranscript:w=>{y.current?(C.current.cancelSpeech(),N.current="",O.current.sendMessage(w)):c(w)},onQueueDrained:()=>{b.current&&(b.current=!1,y.current&&!h.current&&C.current.startRecording())}}),C=de.useRef(k);C.current=k;const O=de.useRef(t);O.current=t;const N=de.useRef(""),P=de.useRef({id:"",offset:0});de.useEffect(()=>{const w=i.current;w&&(w.scrollTop=w.scrollHeight)},[t.messages]),de.useEffect(()=>{if(!u)return;const w=[...t.messages].reverse().find(ce=>ce.role==="assistant");if(!w)return;P.current.id!==w.id&&(P.current={id:w.id,offset:0},N.current="");const j=w.content;if(j.length=40&&($=ae.slice(0,_e))}else if(ae.length>300){const ce=Math.max(ae.lastIndexOf(", "),ae.lastIndexOf(" "));$=ce>100?ae.slice(0,ce+1):ae}$&&(N.current=ae.slice($.length),k.enqueueSpeech($))});const z=de.useRef(!1);de.useEffect(()=>{if(z.current&&!t.streaming&&u){const w=N.current.trim();w&&(N.current="",k.enqueueSpeech(w)),(w||P.current.id)&&(b.current=!0)}z.current=t.streaming},[t.streaming,u,k]);const W=de.useCallback((w,j=[])=>{k.cancelSpeech(),N.current="",t.sendMessage(w,j)},[t,k]),X=de.useCallback(()=>{k.cancelSpeech(),N.current="",t.abort()},[t,k]),A=de.useCallback(()=>{k.recording?k.stopRecording():(k.cancelSpeech(),k.startRecording())},[k]);return le.jsxs("div",{className:"app",children:[le.jsx(Wh,{sessions:t.sessions,activeId:t.activeId,onSelect:t.setActiveId,onNew:()=>void t.newSession(),onDelete:w=>void t.deleteSession(w)}),le.jsxs("main",{className:"main",children:[le.jsxs("header",{className:"topbar",children:[le.jsxs("div",{className:"model-badge",title:(Z=t.modelInfo)!=null&&Z.ok||(ee=t.modelInfo)==null?void 0:ee.error,children:[le.jsx("span",{className:`status-dot ${t.status==="open"?"on":"off"}`}),t.options.provider==="openrouter"?`☁ ${t.options.openrouterModel}`:(H=t.modelInfo)!=null&&H.ok?`${t.modelInfo.model} · ${t.modelInfo.parameterSize} · ${t.modelInfo.quantization}`:"Ollama offline"]}),le.jsxs("div",{className:"topbar-actions",children:[u&&(k.recording||k.transcribing||k.speaking)&&le.jsx("span",{className:"voice-state",children:k.recording?"● hört zu":k.transcribing?"… transkribiert":"🔊 spricht"}),le.jsx("button",{className:`btn-settings ${u?"toggled":""}`,onClick:()=>{u&&(k.cancelSpeech(),k.stopRecording()),E(!u)},title:"Sprachmodus: Antworten werden vorgelesen, danach wird automatisch wieder zugehört",children:u?"🔊 Stimme: an":"🔇 Stimme: aus"}),le.jsx("button",{className:"btn-settings",onClick:()=>l(w=>!w),children:"⚙ Einstellungen"})]})]}),r&&le.jsxs("section",{className:"settings-panel",children:[le.jsxs("label",{className:"setting-row",children:[le.jsx("span",{children:"Modell"}),le.jsxs("select",{className:"provider-select",value:t.options.provider,onChange:w=>t.setOptions({provider:w.target.value}),children:[le.jsx("option",{value:"ollama",children:"Lokal: qwen3.5 (Ollama)"}),le.jsx("option",{value:"openrouter",children:"OpenRouter (Cloud)"})]})]}),t.options.provider==="openrouter"&&le.jsxs("label",{className:"setting-row column",children:[le.jsxs("span",{children:["OpenRouter-Modell (",p.length," verfügbar)"]}),le.jsx("input",{list:"or-models",value:t.options.openrouterModel,placeholder:"z. B. anthropic/claude-sonnet-4.5",onChange:w=>t.setOptions({openrouterModel:w.target.value})}),le.jsx("datalist",{id:"or-models",children:p.map(w=>le.jsxs("option",{value:w.id,children:[w.name," · ",w.promptPrice===0?"gratis":`$${w.promptPrice.toFixed(2)}/M`]},w.id))})]}),t.options.provider==="ollama"&&le.jsxs("label",{className:"setting-row checkbox",children:[le.jsx("input",{type:"checkbox",checked:t.options.think,onChange:w=>t.setOptions({think:w.target.checked})}),le.jsx("span",{children:"Thinking-Mode (Modell denkt sichtbar vor der Antwort)"})]}),le.jsxs("label",{className:"setting-row",children:[le.jsxs("span",{children:["Temperature: ",t.options.temperature.toFixed(2)]}),le.jsx("input",{type:"range",min:0,max:1.5,step:.05,value:t.options.temperature,onChange:w=>t.setOptions({temperature:Number(w.target.value)})})]}),le.jsxs("label",{className:"setting-row",children:[le.jsxs("span",{children:["Max. Tokens: ",t.options.numPredict]}),le.jsx("input",{type:"range",min:256,max:8192,step:256,value:t.options.numPredict,onChange:w=>t.setOptions({numPredict:Number(w.target.value)})})]}),le.jsxs("label",{className:"setting-row column",children:[le.jsx("span",{children:"System-Prompt"}),le.jsx("textarea",{rows:3,placeholder:"Optional: Verhalten des Modells steuern …",value:t.systemPrompt,onChange:w=>t.setSystemPrompt(w.target.value)})]})]}),le.jsxs("div",{className:"messages",ref:i,children:[t.messages.length===0&&le.jsxs("div",{className:"welcome",children:[le.jsx("div",{className:"welcome-title",children:"▸ agenttwo-tools"}),le.jsx("p",{children:"Echtzeit-Chat mit lokalem Qwen3 über Ollama — per Tastatur oder Stimme (Whisper STT + Piper TTS, alles lokal)."}),le.jsx("p",{className:"hint",children:"🎙 für Sprachnachricht · 🔊 Stimme an für freihändigen Dialog"})]}),t.messages.map(w=>le.jsx(u0,{message:w},w.id))]}),k.error&&le.jsxs("div",{className:"voice-error",children:[k.error,le.jsx("button",{onClick:()=>k.setError(null),children:"✕"})]}),le.jsx(f0,{streaming:t.streaming,disabled:!t.activeId,recording:k.recording,transcribing:k.transcribing,injectedText:s,onInjected:()=>c(null),onSend:W,onAbort:X,onMicToggle:A})]})]})}Uh.createRoot(document.getElementById("root")).render(le.jsx(Mh.StrictMode,{children:le.jsx(d0,{})})); +`:_w(t)?(d=2,p=2):Rg(t)&&(d=1,p=1);++c]+>")+")",d={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},g={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[t.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},t.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},y={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},h={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},t.inherit(g,{className:"string"}),{className:"string",begin:/<.*?>/},r,t.C_BLOCK_COMMENT_MODE]},b={className:"title",begin:i.optional(s)+t.IDENT_RE,relevance:0},E=i.optional(s)+t.IDENT_RE+"\\s*\\(",k=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],N=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],R=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],x=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],G={type:N,keyword:k,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:R},Q={className:"function.dispatch",relevance:0,keywords:{_hint:x},begin:i.concat(/\b/,`(?!${k.join("|")})`,t.IDENT_RE,i.lookahead(/(<[^<>]+>|)\s*\(/))},C=[Q,h,d,r,t.C_BLOCK_COMMENT_MODE,y,g],Z={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:G,contains:C.concat([{begin:/\(/,end:/\)/,keywords:G,contains:C.concat(["self"]),relevance:0}]),relevance:0},ee={className:"function",begin:"("+u+"[\\*&\\s]+)+"+E,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:G,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:l,keywords:G,relevance:0},{begin:E,returnBegin:!0,contains:[b],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[g,y]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:G,relevance:0,contains:[r,t.C_BLOCK_COMMENT_MODE,g,y,d,{begin:/\(/,end:/\)/,keywords:G,relevance:0,contains:["self",r,t.C_BLOCK_COMMENT_MODE,g,y,d]}]},d,r,t.C_BLOCK_COMMENT_MODE,h]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:G,illegal:"",keywords:G,contains:["self",d]},{begin:t.IDENT_RE+"::",keywords:G},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function Rw(t){const i={type:["boolean","byte","word","String"],built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"],_hints:["setup","loop","runShellCommandAsynchronously","analogWriteResolution","retrieveCallingNumber","printFirmwareVersion","analogReadResolution","sendDigitalPortPair","noListenOnLocalhost","readJoystickButton","setFirmwareVersion","readJoystickSwitch","scrollDisplayRight","getVoiceCallStatus","scrollDisplayLeft","writeMicroseconds","delayMicroseconds","beginTransmission","getSignalStrength","runAsynchronously","getAsynchronously","listenOnLocalhost","getCurrentCarrier","readAccelerometer","messageAvailable","sendDigitalPorts","lineFollowConfig","countryNameWrite","runShellCommand","readStringUntil","rewindDirectory","readTemperature","setClockDivider","readLightSensor","endTransmission","analogReference","detachInterrupt","countryNameRead","attachInterrupt","encryptionType","readBytesUntil","robotNameWrite","readMicrophone","robotNameRead","cityNameWrite","userNameWrite","readJoystickY","readJoystickX","mouseReleased","openNextFile","scanNetworks","noInterrupts","digitalWrite","beginSpeaker","mousePressed","isActionDone","mouseDragged","displayLogos","noAutoscroll","addParameter","remoteNumber","getModifiers","keyboardRead","userNameRead","waitContinue","processInput","parseCommand","printVersion","readNetworks","writeMessage","blinkVersion","cityNameRead","readMessage","setDataMode","parsePacket","isListening","setBitOrder","beginPacket","isDirectory","motorsWrite","drawCompass","digitalRead","clearScreen","serialEvent","rightToLeft","setTextSize","leftToRight","requestFrom","keyReleased","compassRead","analogWrite","interrupts","WiFiServer","disconnect","playMelody","parseFloat","autoscroll","getPINUsed","setPINUsed","setTimeout","sendAnalog","readSlider","analogRead","beginWrite","createChar","motorsStop","keyPressed","tempoWrite","readButton","subnetMask","debugPrint","macAddress","writeGreen","randomSeed","attachGPRS","readString","sendString","remotePort","releaseAll","mouseMoved","background","getXChange","getYChange","answerCall","getResult","voiceCall","endPacket","constrain","getSocket","writeJSON","getButton","available","connected","findUntil","readBytes","exitValue","readGreen","writeBlue","startLoop","IPAddress","isPressed","sendSysex","pauseMode","gatewayIP","setCursor","getOemKey","tuneWrite","noDisplay","loadImage","switchPIN","onRequest","onReceive","changePIN","playFile","noBuffer","parseInt","overflow","checkPIN","knobRead","beginTFT","bitClear","updateIR","bitWrite","position","writeRGB","highByte","writeRed","setSpeed","readBlue","noStroke","remoteIP","transfer","shutdown","hangCall","beginSMS","endWrite","attached","maintain","noCursor","checkReg","checkPUK","shiftOut","isValid","shiftIn","pulseIn","connect","println","localIP","pinMode","getIMEI","display","noBlink","process","getBand","running","beginSD","drawBMP","lowByte","setBand","release","bitRead","prepare","pointTo","readRed","setMode","noFill","remove","listen","stroke","detach","attach","noTone","exists","buffer","height","bitSet","circle","config","cursor","random","IRread","setDNS","endSMS","getKey","micros","millis","begin","print","write","ready","flush","width","isPIN","blink","clear","press","mkdir","rmdir","close","point","yield","image","BSSID","click","delay","read","text","move","peek","beep","rect","line","open","seek","fill","size","turn","stop","home","find","step","tone","sqrt","RSSI","SSID","end","bit","tan","cos","sin","pow","map","abs","max","min","get","run","put"],literal:["DIGITAL_MESSAGE","FIRMATA_STRING","ANALOG_MESSAGE","REPORT_DIGITAL","REPORT_ANALOG","INPUT_PULLUP","SET_PIN_MODE","INTERNAL2V56","SYSTEM_RESET","LED_BUILTIN","INTERNAL1V1","SYSEX_START","INTERNAL","EXTERNAL","DEFAULT","OUTPUT","INPUT","HIGH","LOW"]},r=Aw(t),l=r.keywords;return l.type=[...l.type,...i.type],l.literal=[...l.literal,...i.literal],l.built_in=[...l.built_in,...i.built_in],l._hints=i._hints,r.name="Arduino",r.aliases=["ino"],r.supersetOf="cpp",r}function Ow(t){const i=t.regex,r={},l={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[r]}]};Object.assign(r,{className:"variable",variants:[{begin:i.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},l]});const s={className:"subst",begin:/\$\(/,end:/\)/,contains:[t.BACKSLASH_ESCAPE]},c=t.inherit(t.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),u={begin:/<<-?\s*(?=\w+)/,starts:{contains:[t.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},d={className:"string",begin:/"/,end:/"/,contains:[t.BACKSLASH_ESCAPE,r,s]};s.contains.push(d);const p={match:/\\"/},g={className:"string",begin:/'/,end:/'/},y={match:/\\'/},h={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},t.NUMBER_MODE,r]},b=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],E=t.SHEBANG({binary:`(${b.join("|")})`,relevance:10}),k={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[t.inherit(t.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},N=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],R=["true","false"],x={match:/(\/[a-z._-]+)+/},F=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],P=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],G=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],Q=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:N,literal:R,built_in:[...F,...P,"set","shopt",...G,...Q]},contains:[E,t.SHEBANG(),k,h,c,u,x,d,p,g,y,r]}}function Iw(t){const i=t.regex,r=t.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),l="decltype\\(auto\\)",s="[a-zA-Z_]\\w*::",u="("+l+"|"+i.optional(s)+"[a-zA-Z_]\\w*"+i.optional("<[^<>]+>")+")",d={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},g={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[t.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},t.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},y={className:"number",variants:[{match:/\b(0b[01']+)/},{match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/},{match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0},h={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"},contains:[{begin:/\\\n/,relevance:0},t.inherit(g,{className:"string"}),{className:"string",begin:/<.*?>/},r,t.C_BLOCK_COMMENT_MODE]},b={className:"title",begin:i.optional(s)+t.IDENT_RE,relevance:0},E=i.optional(s)+t.IDENT_RE+"\\s*\\(",R={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},x=[h,d,r,t.C_BLOCK_COMMENT_MODE,y,g],F={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:R,contains:x.concat([{begin:/\(/,end:/\)/,keywords:R,contains:x.concat(["self"]),relevance:0}]),relevance:0},P={begin:"("+u+"[\\*&\\s]+)+"+E,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:R,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:l,keywords:R,relevance:0},{begin:E,returnBegin:!0,contains:[t.inherit(b,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:R,relevance:0,contains:[r,t.C_BLOCK_COMMENT_MODE,g,y,d,{begin:/\(/,end:/\)/,keywords:R,relevance:0,contains:["self",r,t.C_BLOCK_COMMENT_MODE,g,y,d]}]},d,r,t.C_BLOCK_COMMENT_MODE,h]};return{name:"C",aliases:["h"],keywords:R,disableAutodetect:!0,illegal:"=]/,contains:[{beginKeywords:"final class struct"},t.TITLE_MODE]}]),exports:{preprocessor:h,strings:g,keywords:R}}}function Mw(t){const i=t.regex,r=t.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),l="decltype\\(auto\\)",s="[a-zA-Z_]\\w*::",u="(?!struct)("+l+"|"+i.optional(s)+"[a-zA-Z_]\\w*"+i.optional("<[^<>]+>")+")",d={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},g={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[t.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},t.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},y={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},h={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},t.inherit(g,{className:"string"}),{className:"string",begin:/<.*?>/},r,t.C_BLOCK_COMMENT_MODE]},b={className:"title",begin:i.optional(s)+t.IDENT_RE,relevance:0},E=i.optional(s)+t.IDENT_RE+"\\s*\\(",k=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],N=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],R=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],x=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],G={type:N,keyword:k,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:R},Q={className:"function.dispatch",relevance:0,keywords:{_hint:x},begin:i.concat(/\b/,`(?!${k.join("|")})`,t.IDENT_RE,i.lookahead(/(<[^<>]+>|)\s*\(/))},C=[Q,h,d,r,t.C_BLOCK_COMMENT_MODE,y,g],Z={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:G,contains:C.concat([{begin:/\(/,end:/\)/,keywords:G,contains:C.concat(["self"]),relevance:0}]),relevance:0},ee={className:"function",begin:"("+u+"[\\*&\\s]+)+"+E,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:G,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:l,keywords:G,relevance:0},{begin:E,returnBegin:!0,contains:[b],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[g,y]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:G,relevance:0,contains:[r,t.C_BLOCK_COMMENT_MODE,g,y,d,{begin:/\(/,end:/\)/,keywords:G,relevance:0,contains:["self",r,t.C_BLOCK_COMMENT_MODE,g,y,d]}]},d,r,t.C_BLOCK_COMMENT_MODE,h]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:G,illegal:"",keywords:G,contains:["self",d]},{begin:t.IDENT_RE+"::",keywords:G},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function Lw(t){const i=["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],r=["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"],l=["default","false","null","true"],s=["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"],c=["add","alias","and","ascending","args","async","await","by","descending","dynamic","equals","file","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","record","remove","required","scoped","select","set","unmanaged","value|0","var","when","where","with","yield"],u={keyword:s.concat(c),built_in:i,literal:l},d=t.inherit(t.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),p={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9'_]+|(\\b[\\d'_]+(\\.[\\d'_]*)?|\\.[\\d'_]+)([eE][-+]?[\\d'_]+)?)"}],relevance:0},g={className:"string",begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1},y={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},h=t.inherit(y,{illegal:/\n/}),b={className:"subst",begin:/\{/,end:/\}/,keywords:u},E=t.inherit(b,{illegal:/\n/}),k={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},t.BACKSLASH_ESCAPE,E]},N={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},b]},R=t.inherit(N,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},E]});b.contains=[N,k,y,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,p,t.C_BLOCK_COMMENT_MODE],E.contains=[R,k,h,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,p,t.inherit(t.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const x={variants:[g,N,k,y,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},F={begin:"<",end:">",contains:[{beginKeywords:"in out"},d]},P=t.IDENT_RE+"(<"+t.IDENT_RE+"(\\s*,\\s*"+t.IDENT_RE+")*>)?(\\[\\])?",G={begin:"@"+t.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:u,illegal:/::/,contains:[t.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:""},{begin:""}]}]}),t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},x,p,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},d,F,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[d,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[d,F,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+P+"\\s+)+"+t.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:u,contains:[{beginKeywords:r.join(" "),relevance:0},{begin:t.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[t.TITLE_MODE,F],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:u,relevance:0,contains:[x,p,t.C_BLOCK_COMMENT_MODE]},t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},G]}}const Dw=t=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:t.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},UNICODE_RANGE:{scope:"number",begin:/\b[Uu]\+[0-9A-Fa-f][0-9A-Fa-f?]{0,4}(-[0-9A-Fa-f][0-9A-Fa-f]{0,4})?/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:t.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),Pw=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],zw=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],Fw=[...Pw,...zw],Bw=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),Uw=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),$w=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),Hw=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","unicode-range","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function Kw(t){const i=t.regex,r=Dw(t),l={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},s="and or not only",c=/@-?\w[\w]*(-\w+)*/,u="[a-zA-Z-][a-zA-Z0-9_-]*",d=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[r.BLOCK_COMMENT,l,r.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+u,relevance:0},r.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+Uw.join("|")+")"},{begin:":(:)?("+$w.join("|")+")"}]},r.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Hw.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[r.BLOCK_COMMENT,r.HEXCOLOR,r.IMPORTANT,r.CSS_NUMBER_MODE,r.UNICODE_RANGE,...d,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...d,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},r.FUNCTION_DISPATCH]},{begin:i.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:c},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:s,attribute:Bw.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...d,r.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+Fw.join("|")+")\\b"}]}}function Gw(t){const i=t.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:i.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^@@ +-\d+ +\+\d+,\d+ +@@/,/^@@ +-\d+,\d+ +\+\d+ +@@/,/^@@ +-\d+ +\+\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:i.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}function Ww(t){const c={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:c,illegal:"Lg(t,i,r-1))}function qw(t){const i=t.regex,r="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",l=r+Lg("(?:<"+r+"~~~(?:\\s*,\\s*"+r+"~~~)*>)?",/~~~/g,2),p={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},g={className:"meta",begin:"@"+r,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},y={className:"params",begin:/\(/,end:/\)/,keywords:p,relevance:0,contains:[t.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:p,illegal:/<\/|#/,contains:[t.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[t.BACKSLASH_ESCAPE]},t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,r],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[i.concat(/(?!else)/,r),/\s+/,r,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,r],className:{1:"keyword",3:"title.class"},contains:[y,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+l+"\\s+)",t.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:p,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:p,relevance:0,contains:[g,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,gp,t.C_BLOCK_COMMENT_MODE]},t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},gp,g]}}const mp="[A-Za-z$_][0-9A-Za-z$_]*",Yw=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],Qw=["true","false","null","undefined","NaN","Infinity"],Dg=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],Pg=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],zg=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Zw=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],Xw=[].concat(zg,Dg,Pg);function Jw(t){const i=t.regex,r=(H,{after:ae})=>{const v="",end:""},c=/<[A-Za-z0-9\\._:-]+\s*\/>/,u={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(H,ae)=>{const v=H[0].length+H.index,O=H.input[v];if(O==="<"||O===","){ae.ignoreMatch();return}O===">"&&(r(H,{after:v})||ae.ignoreMatch());let $;const w=H.input.substring(v);if($=w.match(/^\s*=/)){ae.ignoreMatch();return}if(($=w.match(/^\s+extends\s+/))&&$.index===0){ae.ignoreMatch();return}}},d={$pattern:mp,keyword:Yw,literal:Qw,built_in:Xw,"variable.language":Zw},p="[0-9](_?[0-9])*",g=`\\.(${p})`,y="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",h={className:"number",variants:[{begin:`(\\b(${y})((${g})|\\.)?|(${g}))[eE][+-]?(${p})\\b`},{begin:`\\b(${y})\\b((${g})\\b|\\.)?|(${g})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},b={className:"subst",begin:"\\$\\{",end:"\\}",keywords:d,contains:[]},E={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,b],subLanguage:"xml"}},k={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,b],subLanguage:"css"}},N={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,b],subLanguage:"graphql"}},R={className:"string",begin:"`",end:"`",contains:[t.BACKSLASH_ESCAPE,b]},F={className:"comment",variants:[t.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:l+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE]},P=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,E,k,N,R,{match:/\$\d+/},h];b.contains=P.concat({begin:/\{/,end:/\}/,keywords:d,contains:["self"].concat(P)});const G=[].concat(F,b.contains),Q=G.concat([{begin:/(\s*)\(/,end:/\)/,keywords:d,contains:["self"].concat(G)}]),C={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,contains:Q},Z={variants:[{match:[/class/,/\s+/,l,/\s+/,/extends/,/\s+/,i.concat(l,"(",i.concat(/\./,l),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,l],scope:{1:"keyword",3:"title.class"}}]},ee={relevance:0,match:i.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...Dg,...Pg]}},ne={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},M={variants:[{match:[/function/,/\s+/,l,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[C],illegal:/%/},W={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function L(H){return i.concat("(?!",H.join("|"),")")}const X={match:i.concat(/\b/,L([...zg,"super","import","await"].map(H=>`${H}\\s*\\(`)),l,i.lookahead(/\s*\(/)),className:"title.function",relevance:0},V={begin:i.concat(/\./,i.lookahead(i.concat(l,/(?![0-9A-Za-z$_(])/))),end:l,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},U={match:[/get|set/,/\s+/,l,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},C]},ue="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+t.UNDERSCORE_IDENT_RE+")\\s*=>",fe={match:[/const|var|let/,/\s+/,l,/\s*/,/=\s*/,/(async\s*)?/,i.lookahead(ue)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[C]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:d,exports:{PARAMS_CONTAINS:Q,CLASS_REFERENCE:ee},illegal:/#(?![$_A-Za-z])/,contains:[t.SHEBANG({label:"shebang",binary:"node",relevance:5}),ne,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,E,k,N,R,F,{match:/\$\d+/},h,ee,{scope:"attr",match:l+i.lookahead(":"),relevance:0},fe,{begin:"("+t.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[F,t.REGEXP_MODE,{className:"function",begin:ue,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,contains:Q}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:s.begin,end:s.end},{match:c},{begin:u.begin,"on:begin":u.isTrulyOpeningTag,end:u.end}],subLanguage:"xml",contains:[{begin:u.begin,end:u.end,skip:!0,contains:["self"]}]}]},M,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+t.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[C,t.inherit(t.TITLE_MODE,{begin:l,className:"title.function"})]},{match:/\.\.\./,relevance:0},V,{match:"\\$"+l,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[C]},X,W,Z,U,{match:/\$[(.]/}]}}const eS="([-+]?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)|NaN|[-+]?Infinity",tS={scope:"number",match:eS,relevance:0};function nS(t){const i={className:"attr",begin:/(("(\\.|[^\\"\r\n])*")|('(\\.|[^\\'\r\n])*'))(?=\s*:)/,relevance:1.01},r={match:/[{}[\],:]/,className:"punctuation",relevance:0},l=["true","false","null"],s={scope:"literal",beginKeywords:l.join(" ")};return{name:"JSON",aliases:["jsonc","json5"],keywords:{literal:l},contains:[i,r,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,s,tS,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}var Oi="[0-9](_*[0-9])*",ql=`\\.(${Oi})`,Yl="[0-9a-fA-F](_*[0-9a-fA-F])*",rS={className:"number",variants:[{begin:`(\\b(${Oi})((${ql})|\\.)?|(${ql}))[eE][+-]?(${Oi})[fFdD]?\\b`},{begin:`\\b(${Oi})((${ql})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${ql})[fFdD]?\\b`},{begin:`\\b(${Oi})[fFdD]\\b`},{begin:`\\b0[xX]((${Yl})\\.?|(${Yl})?\\.(${Yl}))[pP][+-]?(${Oi})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${Yl})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function iS(t){const i={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},r={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},l={className:"symbol",begin:t.UNDERSCORE_IDENT_RE+"@"},s={className:"subst",begin:/\$\{/,end:/\}/,contains:[t.C_NUMBER_MODE]},c={className:"variable",begin:"\\$"+t.UNDERSCORE_IDENT_RE},u={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[c,s]},{begin:"'",end:"'",illegal:/\n/,contains:[t.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[t.BACKSLASH_ESCAPE,c,s]}]};s.contains.push(u);const d={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+t.UNDERSCORE_IDENT_RE+")?"},p={className:"meta",begin:"@"+t.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[t.inherit(u,{className:"string"}),"self"]}]},g=rS,y=t.COMMENT("/\\*","\\*/",{contains:[t.C_BLOCK_COMMENT_MODE]}),h={variants:[{className:"type",begin:t.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},b=h;return b.variants[1].contains=[h],h.variants[1].contains=[b],{name:"Kotlin",aliases:["kt","kts"],keywords:i,contains:[t.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),t.C_LINE_COMMENT_MODE,y,r,l,d,p,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:i,relevance:5,contains:[{begin:t.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[t.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:i,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[h,t.C_LINE_COMMENT_MODE,y],relevance:0},t.C_LINE_COMMENT_MODE,y,d,p,u,t.C_NUMBER_MODE]},y]},{begin:[/class|interface|trait/,/\s+/,t.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},t.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},d,p]},u,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:` +`},g]}}const oS=t=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:t.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},UNICODE_RANGE:{scope:"number",begin:/\b[Uu]\+[0-9A-Fa-f][0-9A-Fa-f?]{0,4}(-[0-9A-Fa-f][0-9A-Fa-f]{0,4})?/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:t.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),lS=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],aS=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],sS=[...lS,...aS],uS=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),Fg=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),Bg=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),cS=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","unicode-range","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse(),fS=Fg.concat(Bg).sort().reverse();function dS(t){const i=oS(t),r=fS,l="and or not only",s="[\\w-]+",c="("+s+"|@\\{"+s+"\\})",u=[],d=[],p=function(P){return{className:"string",begin:"~?"+P+".*?"+P}},g=function(P,G,Q){return{className:P,begin:G,relevance:Q}},y={$pattern:/[a-z-]+/,keyword:l,attribute:uS.join(" ")},h={begin:"\\(",end:"\\)",contains:d,keywords:y,relevance:0};d.push(t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,p("'"),p('"'),i.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},i.UNICODE_RANGE,i.HEXCOLOR,h,g("variable","@@?"+s,10),g("variable","@\\{"+s+"\\}"),g("built_in","~?`[^`]*?`"),{className:"attribute",begin:s+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0},i.IMPORTANT,{beginKeywords:"and not"},i.FUNCTION_DISPATCH);const b=d.concat({begin:/\{/,end:/\}/,contains:u}),E={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(d)},k={begin:c+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},i.CSS_VARIABLE,{className:"attribute",begin:"\\b("+cS.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:d}}]},N={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:y,returnEnd:!0,contains:d,relevance:0}},R={className:"variable",variants:[{begin:"@"+s+"\\s*:",relevance:15},{begin:"@"+s}],starts:{end:"[;}]",returnEnd:!0,contains:b}},x={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:c,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:`[<='$"]`,relevance:0,contains:[t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,E,g("keyword","all\\b"),g("variable","@\\{"+s+"\\}"),{begin:"\\b("+sS.join("|")+")\\b",className:"selector-tag"},i.CSS_NUMBER_MODE,g("selector-tag",c,0),g("selector-id","#"+c),g("selector-class","\\."+c,0),g("selector-tag","&",0),i.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+Fg.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+Bg.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:b},{begin:"!important"},i.FUNCTION_DISPATCH]},F={begin:s+`:(:)?(${r.join("|")})`,returnBegin:!0,contains:[x]};return u.push(t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,N,R,F,k,x,E,i.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:`[=>'/<($"]`,contains:u}}function pS(t){const i="\\[=*\\[",r="\\]=*\\]",l={begin:i,end:r,contains:["self"]},s=[t.COMMENT("--(?!"+i+")","$"),t.COMMENT("--"+i,r,{contains:[l],relevance:10})];return{name:"Lua",aliases:["pluto"],keywords:{$pattern:t.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:s.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[t.inherit(t.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:s}].concat(s)},t.C_NUMBER_MODE,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,{className:"string",begin:i,end:r,contains:[l],relevance:5}])}}function gS(t){const i={className:"variable",variants:[{begin:"\\$\\("+t.UNDERSCORE_IDENT_RE+"\\)",contains:[t.BACKSLASH_ESCAPE]},{begin:/\$[@%",subLanguage:"xml",relevance:0},l={begin:"^[-\\*]{3,}",end:"$"},s={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},c={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},u={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},d=/[A-Za-z][A-Za-z0-9+.-]*/,p={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:i.concat(/\[.+?\]\(/,d,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},g={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},y={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},h=t.inherit(g,{contains:[]}),b=t.inherit(y,{contains:[]});g.contains.push(b),y.contains.push(h);let E=[r,p];return[g,y,h,b].forEach(x=>{x.contains=x.contains.concat(E)}),E=E.concat(g,y),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:E},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:E}]}]},r,c,g,y,{className:"quote",begin:"^>\\s+",contains:E,end:"$"},s,l,p,u,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function hS(t){const i={className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},r=/[a-zA-Z@][a-zA-Z0-9_]*/,d={"variable.language":["this","super"],$pattern:r,keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]},p={$pattern:r,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:d,illegal:"/,end:/$/,illegal:"\\n"},t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+p.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:p,contains:[t.UNDERSCORE_TITLE_MODE]},{begin:"\\."+t.UNDERSCORE_IDENT_RE,relevance:0}]}}function yS(t){const i=t.regex,r=["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","class","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","field","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","method","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"],l=/[dualxmsipngr]{0,12}/,s={$pattern:/[\w.]+/,keyword:r.join(" ")},c={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:s},u={begin:/->\{/,end:/\}/},d={scope:"attr",match:/\s+:\s*\w+(\s*\(.*?\))?/},p={scope:"variable",variants:[{begin:/\$\d/},{begin:i.concat(/[$%@](?!")(\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@](?!")[^\s\w{=]|\$=/,relevance:0}],contains:[d]},g={className:"number",variants:[{match:/0?\.[0-9][0-9_]+\b/},{match:/\bv?(0|[1-9][0-9_]*(\.[0-9_]+)?|[1-9][0-9_]*)\b/},{match:/\b0[0-7][0-7_]*\b/},{match:/\b0x[0-9a-fA-F][0-9a-fA-F_]*\b/},{match:/\b0b[0-1][0-1_]*\b/}],relevance:0},y=[t.BACKSLASH_ESCAPE,c,p],h=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],b=(N,R,x="\\1")=>{const F=x==="\\1"?x:i.concat(x,R);return i.concat(i.concat("(?:",N,")"),R,/(?:\\.|[^\\\/])*?/,F,/(?:\\.|[^\\\/])*?/,x,l)},E=(N,R,x)=>i.concat(i.concat("(?:",N,")"),R,/(?:\\.|[^\\\/])*?/,x,l),k=[p,t.HASH_COMMENT_MODE,t.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),u,{className:"string",contains:y,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[t.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[t.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},g,{begin:"(\\/\\/|"+t.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[t.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:b("s|tr|y",i.either(...h,{capture:!0}))},{begin:b("s|tr|y","\\(","\\)")},{begin:b("s|tr|y","\\[","\\]")},{begin:b("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:E("(?:m|qr)?",/\//,/\//)},{begin:E("m|qr",i.either(...h,{capture:!0}),/\1/)},{begin:E("m|qr",/\(/,/\)/)},{begin:E("m|qr",/\[/,/\]/)},{begin:E("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub method",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[t.TITLE_MODE,d]},{className:"class",beginKeywords:"class",end:"[;{]",excludeEnd:!0,relevance:5,contains:[t.TITLE_MODE,d,g]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return c.contains=k,u.contains=k,{name:"Perl",aliases:["pl","pm"],keywords:s,contains:k}}function ES(t){const i=t.regex,r=/(?![A-Za-z0-9])(?![$])/,l=i.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,r),s=i.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,r),c=i.concat(/[A-Z]+/,r),u={scope:"variable",match:"\\$+"+l},d={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},p={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},g=t.inherit(t.APOS_STRING_MODE,{illegal:null}),y=t.inherit(t.QUOTE_STRING_MODE,{illegal:null,contains:t.QUOTE_STRING_MODE.contains.concat(p)}),h={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:t.QUOTE_STRING_MODE.contains.concat(p),"on:begin":(V,U)=>{U.data._beginMatch=V[1]||V[2]},"on:end":(V,U)=>{U.data._beginMatch!==V[1]&&U.ignoreMatch()}},b=t.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),E=`[ +]`,k={scope:"string",variants:[y,g,h,b]},N={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},R=["false","null","true"],x=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],F=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],G={keyword:x,literal:(V=>{const U=[];return V.forEach(ue=>{U.push(ue),ue.toLowerCase()===ue?U.push(ue.toUpperCase()):U.push(ue.toLowerCase())}),U})(R),built_in:F},Q=V=>V.map(U=>U.replace(/\|\d+$/,"")),C={variants:[{match:[/new/,i.concat(E,"+"),i.concat("(?!",Q(F).join("\\b|"),"\\b)"),s],scope:{1:"keyword",4:"title.class"}}]},Z=i.concat(l,"\\b(?!\\()"),ee={variants:[{match:[i.concat(/::/,i.lookahead(/(?!class\b)/)),Z],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[s,i.concat(/::/,i.lookahead(/(?!class\b)/)),Z],scope:{1:"title.class",3:"variable.constant"}},{match:[s,i.concat("::",i.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[s,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},ne={scope:"attr",match:i.concat(l,i.lookahead(":"),i.lookahead(/(?!::)/))},M={relevance:0,begin:/\(/,end:/\)/,keywords:G,contains:[ne,u,ee,t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE,t.HASH_COMMENT_MODE,k,N,C]},W={relevance:0,match:[/\b/,i.concat("(?!fn\\b|function\\b|",Q(x).join("\\b|"),"|",Q(F).join("\\b|"),"\\b)"),l,i.concat(E,"*"),i.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[M]};M.contains.push(W);const L=[ne,ee,t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE,t.HASH_COMMENT_MODE,k,N,C],X={begin:i.concat(/#\[\s*\\?/,i.either(s,c)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:R,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:R,keyword:["new","array"]},contains:["self",...L]},...L,{scope:"meta",variants:[{match:s},{match:c}]}]};return{case_insensitive:!1,keywords:G,contains:[X,t.HASH_COMMENT_MODE,t.COMMENT("//","$"),t.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:t.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},d,{scope:"variable.language",match:/\$this\b/},u,W,ee,{match:[/const/,/\s/,l],scope:{1:"keyword",3:"variable.constant"}},C,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},t.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:G,contains:["self",X,u,ee,t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE,t.HASH_COMMENT_MODE,k,N]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},t.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[t.inherit(t.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},t.UNDERSCORE_TITLE_MODE]},k,N]}}function bS(t){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},t.inherit(t.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),t.inherit(t.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}function _S(t){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}function vS(t){const i=t.regex,r=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),l=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],d={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:l,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},p={className:"meta",begin:/^(>>>|\.\.\.) /},g={className:"subst",begin:/\{/,end:/\}/,keywords:d,illegal:/#/},y={begin:/\{\{/,relevance:0},h={className:"string",contains:[t.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[t.BACKSLASH_ESCAPE,p],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[t.BACKSLASH_ESCAPE,p],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[t.BACKSLASH_ESCAPE,p,y,g]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[t.BACKSLASH_ESCAPE,p,y,g]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[t.BACKSLASH_ESCAPE,y,g]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[t.BACKSLASH_ESCAPE,y,g]},t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},b="[0-9](_?[0-9])*",E=`(\\b(${b}))?\\.(${b})|\\b(${b})\\.`,k=`\\b|${l.join("|")}`,N={className:"number",relevance:0,variants:[{begin:`(\\b(${b})|(${E}))[eE][+-]?(${b})[jJ]?(?=${k})`},{begin:`(${E})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${k})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${k})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${k})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${k})`},{begin:`\\b(${b})[jJ](?=${k})`}]},R={className:"comment",begin:i.lookahead(/# type:/),end:/$/,keywords:d,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},x={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,contains:["self",p,N,h,t.HASH_COMMENT_MODE]}]};return g.contains=[h,N,p],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:d,illegal:/(<\/|\?)|=>/,contains:[p,N,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},h,R,t.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,r],scope:{1:"keyword",3:"title.function"},contains:[x]},{variants:[{match:[/\bclass/,/\s+/,r,/\s*/,/\(\s*/,r,/\s*\)/]},{match:[/\bclass/,/\s+/,r]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[N,x,h]}]}}function kS(t){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}function wS(t){const i=t.regex,r=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,l=i.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),s=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,c=i.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:r,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[t.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:i.lookahead(i.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:r},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),t.HASH_COMMENT_MODE,{scope:"string",contains:[t.BACKSLASH_ESCAPE],variants:[t.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),t.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),t.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),t.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),t.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),t.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[s,l]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,l]},{scope:{1:"punctuation",2:"number"},match:[c,l]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,l]}]},{scope:{3:"operator"},match:[r,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:s},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:c},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}function SS(t){const i=t.regex,r="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",l=i.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),s=i.concat(l,/(::\w+)*/),u={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield",...["include","extend","prepend","public","private","protected","raise","throw"]],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},d={className:"doctag",begin:"@[A-Za-z]+"},p={begin:"#<",end:">"},g=[t.COMMENT("#","$",{contains:[d]}),t.COMMENT("^=begin","^=end",{contains:[d],relevance:10}),t.COMMENT("^__END__",t.MATCH_NOTHING_RE)],y={className:"subst",begin:/#\{/,end:/\}/,keywords:u},h={className:"string",contains:[t.BACKSLASH_ESCAPE,y],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:i.concat(/<<[-~]?'?/,i.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[t.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[t.BACKSLASH_ESCAPE,y]})]}]},b="[1-9](_?[0-9])*|0",E="[0-9](_?[0-9])*",k={className:"number",relevance:0,variants:[{begin:`\\b(${b})(\\.(${E}))?([eE][+-]?(${E})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},N={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:u}]},C=[h,{variants:[{match:[/class\s+/,s,/\s+<\s+/,s]},{match:[/\b(class|module)\s+/,s]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:u},{match:[/(include|extend)\s+/,s],scope:{2:"title.class"},keywords:u},{relevance:0,match:[s,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:l,scope:"title.class"},{match:[/def/,/\s+/,r],scope:{1:"keyword",3:"title.function"},contains:[N]},{begin:t.IDENT_RE+"::"},{className:"symbol",begin:t.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[h,{begin:r}],relevance:0},k,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:u},{begin:"("+t.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[t.BACKSLASH_ESCAPE,y],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(p,g),relevance:0}].concat(p,g);y.contains=C,N.contains=C;const M=[{begin:/^\s*=>/,starts:{end:"$",contains:C}},{className:"meta.prompt",begin:"^("+"[>?]>"+"|"+"[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]"+"|"+"(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>"+")(?=[ ])",starts:{end:"$",keywords:u,contains:C}}];return g.unshift(p),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:u,illegal:/\/\*/,contains:[t.SHEBANG({binary:"ruby"})].concat(M).concat(g).concat(C)}}function xS(t){const i=t.regex,r=/(r#)?/,l=i.concat(r,t.UNDERSCORE_IDENT_RE),s=i.concat(r,t.IDENT_RE),c={className:"title.function.invoke",relevance:0,begin:i.concat(/\b/,/(?!let|for|while|if|else|match\b)/,s,i.lookahead(/\s*\(/))},u="([ui](8|16|32|64|128|size)|f(32|64))?",d=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],p=["true","false","Some","None","Ok","Err"],g=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],y=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:t.IDENT_RE+"!?",type:y,keyword:d,literal:p,built_in:g},illegal:""},c]}}const NS=t=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:t.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},UNICODE_RANGE:{scope:"number",begin:/\b[Uu]\+[0-9A-Fa-f][0-9A-Fa-f?]{0,4}(-[0-9A-Fa-f][0-9A-Fa-f]{0,4})?/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:t.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),TS=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],CS=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],AS=[...TS,...CS],RS=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),OS=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),IS=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),MS=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","unicode-range","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function LS(t){const i=NS(t),r=IS,l=OS,s="@[a-z-]+",c="and or not only",d={className:"variable",begin:"(\\$"+"[a-zA-Z-][a-zA-Z0-9_-]*"+")\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,i.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},i.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+AS.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+l.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+r.join("|")+")"},d,{begin:/\(/,end:/\)/,contains:[i.CSS_NUMBER_MODE]},i.CSS_VARIABLE,{className:"attribute",begin:"\\b("+MS.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[i.BLOCK_COMMENT,d,i.HEXCOLOR,i.CSS_NUMBER_MODE,i.UNICODE_RANGE,t.QUOTE_STRING_MODE,t.APOS_STRING_MODE,i.IMPORTANT,i.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:s,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:c,attribute:RS.join(" ")},contains:[{begin:s,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},d,t.QUOTE_STRING_MODE,t.APOS_STRING_MODE,i.HEXCOLOR,i.CSS_NUMBER_MODE]},i.FUNCTION_DISPATCH]}}function DS(t){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}function PS(t){const i=t.regex,r=t.COMMENT("--","$"),l={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},s={begin:/"/,end:/"/,contains:[{match:/""/}]},c=["true","false","unknown"],u=["double precision","large object","with timezone","without timezone"],d=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],p=["add","asc","collation","desc","final","first","last","view"],g=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],y=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],h=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],b=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],E=y,k=[...g,...p].filter(Q=>!y.includes(Q)),N={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},R={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},x={match:i.concat(/\b/,i.either(...E),/\s*\(/),relevance:0,keywords:{built_in:E}};function F(Q){return i.concat(/\b/,i.either(...Q.map(C=>C.replace(/\s+/,"\\s+"))),/\b/)}const P={scope:"keyword",match:F(b),relevance:0};function G(Q,{exceptions:C,when:Z}={}){const ee=Z;return C=C||[],Q.map(ne=>ne.match(/\|\d+$/)||C.includes(ne)?ne:ee(ne)?`${ne}|0`:ne)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:G(k,{when:Q=>Q.length<3}),literal:c,type:d,built_in:h},contains:[{scope:"type",match:F(u)},P,x,N,l,s,t.C_NUMBER_MODE,t.C_BLOCK_COMMENT_MODE,r,R]}}function Ug(t){return t?typeof t=="string"?t:t.source:null}function ko(t){return Ze("(?=",t,")")}function Ze(...t){return t.map(r=>Ug(r)).join("")}function zS(t){const i=t[t.length-1];return typeof i=="object"&&i.constructor===Object?(t.splice(t.length-1,1),i):{}}function $t(...t){return"("+(zS(t).capture?"":"?:")+t.map(l=>Ug(l)).join("|")+")"}const Wu=t=>Ze(/\b/,t,/\w$/.test(t)?/\b/:/\B/),FS=["Protocol","Type"].map(Wu),hp=["init","self"].map(Wu),BS=["Any","Self"],fu=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],yp=["false","nil","true"],US=["assignment","associativity","higherThan","left","lowerThan","none","right"],$S=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],Ep=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],$g=$t(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),Hg=$t($g,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),du=Ze($g,Hg,"*"),Kg=$t(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),na=$t(Kg,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),Bn=Ze(Kg,na,"*"),Ql=Ze(/[A-Z]/,na,"*"),HS=["attached","autoclosure",Ze(/convention\(/,$t("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",Ze(/objc\(/,Bn,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],KS=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function GS(t){const i={match:/\s+/,relevance:0},r=t.COMMENT("/\\*","\\*/",{contains:["self"]}),l=[t.C_LINE_COMMENT_MODE,r],s={match:[/\./,$t(...FS,...hp)],className:{2:"keyword"}},c={match:Ze(/\./,$t(...fu)),relevance:0},u=fu.filter(We=>typeof We=="string").concat(["_|0"]),d=fu.filter(We=>typeof We!="string").concat(BS).map(Wu),p={variants:[{className:"keyword",match:$t(...d,...hp)}]},g={$pattern:$t(/\b\w+/,/#\w+/),keyword:u.concat($S),literal:yp},y=[s,c,p],h={match:Ze(/\./,$t(...Ep)),relevance:0},b={className:"built_in",match:Ze(/\b/,$t(...Ep),/(?=\()/)},E=[h,b],k={match:/->/,relevance:0},N={className:"operator",relevance:0,variants:[{match:du},{match:`\\.(\\.|${Hg})+`}]},R=[k,N],x="([0-9]_*)+",F="([0-9a-fA-F]_*)+",P={className:"number",relevance:0,variants:[{match:`\\b(${x})(\\.(${x}))?([eE][+-]?(${x}))?\\b`},{match:`\\b0x(${F})(\\.(${F}))?([pP][+-]?(${x}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},G=(We="")=>({className:"subst",variants:[{match:Ze(/\\/,We,/[0\\tnr"']/)},{match:Ze(/\\/,We,/u\{[0-9a-fA-F]{1,8}\}/)}]}),Q=(We="")=>({className:"subst",match:Ze(/\\/,We,/[\t ]*(?:[\r\n]|\r\n)/)}),C=(We="")=>({className:"subst",label:"interpol",begin:Ze(/\\/,We,/\(/),end:/\)/}),Z=(We="")=>({begin:Ze(We,/"""/),end:Ze(/"""/,We),contains:[G(We),Q(We),C(We)]}),ee=(We="")=>({begin:Ze(We,/"/),end:Ze(/"/,We),contains:[G(We),C(We)]}),ne={className:"string",variants:[Z(),Z("#"),Z("##"),Z("###"),ee(),ee("#"),ee("##"),ee("###")]},M=[t.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[t.BACKSLASH_ESCAPE]}],W={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:M},L=We=>{const Jt=Ze(We,/\//),an=Ze(/\//,We);return{begin:Jt,end:an,contains:[...M,{scope:"comment",begin:`#(?!.*${an})`,end:/$/}]}},X={scope:"regexp",variants:[L("###"),L("##"),L("#"),W]},V={match:Ze(/`/,Bn,/`/)},U={className:"variable",match:/\$\d+/},ue={className:"variable",match:`\\$${na}+`},fe=[V,U,ue],H={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:KS,contains:[...R,P,ne]}]}},ae={scope:"keyword",match:Ze(/@/,$t(...HS),ko($t(/\(/,/\s+/)))},v={scope:"meta",match:Ze(/@/,Bn)},O=[H,ae,v],$={match:ko(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:Ze(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,na,"+")},{className:"type",match:Ql,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:Ze(/\s+&\s+/,ko(Ql)),relevance:0}]},w={begin://,keywords:g,contains:[...l,...y,...O,k,$]};$.contains.push(w);const we={match:Ze(Bn,/\s*:/),keywords:"_|0",relevance:0},Me={begin:/\(/,end:/\)/,relevance:0,keywords:g,contains:["self",we,...l,X,...y,...E,...R,P,ne,...fe,...O,$]},ke={begin://,keywords:"repeat each",contains:[...l,$]},$e={begin:$t(ko(Ze(Bn,/\s*:/)),ko(Ze(Bn,/\s+/,Bn,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:Bn}]},De={begin:/\(/,end:/\)/,keywords:g,contains:[$e,...l,...y,...R,P,ne,...O,$,Me],endsParent:!0,illegal:/["']/},Ge={match:[/(func|macro)/,/\s+/,$t(V.match,Bn,du)],className:{1:"keyword",3:"title.function"},contains:[ke,De,i],illegal:[/\[/,/%/]},Xe={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[ke,De,i],illegal:/\[|%/},Xt={match:[/operator/,/\s+/,du],className:{1:"keyword",3:"title"}},rr={begin:[/precedencegroup/,/\s+/,Ql],className:{1:"keyword",3:"title"},contains:[$],keywords:[...US,...yp],end:/}/},An={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},Hn={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},Kn={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,Bn,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:g,contains:[ke,...y,{begin:/:/,end:/\{/,keywords:g,contains:[{scope:"title.class.inherited",match:Ql},...y],relevance:0}]};for(const We of ne.variants){const Jt=We.contains.find(Rn=>Rn.label==="interpol");Jt.keywords=g;const an=[...y,...E,...R,P,ne,...fe];Jt.contains=[...an,{begin:/\(/,end:/\)/,contains:["self",...an]}]}return{name:"Swift",keywords:g,contains:[...l,Ge,Xe,An,Hn,Kn,Xt,rr,{beginKeywords:"import",end:/$/,contains:[...l],relevance:0},X,...y,...E,...R,P,ne,...fe,...O,$,Me]}}const ra="[A-Za-z$_][0-9A-Za-z$_]*",Gg=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],Wg=["true","false","null","undefined","NaN","Infinity"],jg=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],Vg=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],qg=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Yg=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],Qg=[].concat(qg,jg,Vg);function WS(t){const i=t.regex,r=(H,{after:ae})=>{const v="",end:""},c=/<[A-Za-z0-9\\._:-]+\s*\/>/,u={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(H,ae)=>{const v=H[0].length+H.index,O=H.input[v];if(O==="<"||O===","){ae.ignoreMatch();return}O===">"&&(r(H,{after:v})||ae.ignoreMatch());let $;const w=H.input.substring(v);if($=w.match(/^\s*=/)){ae.ignoreMatch();return}if(($=w.match(/^\s+extends\s+/))&&$.index===0){ae.ignoreMatch();return}}},d={$pattern:ra,keyword:Gg,literal:Wg,built_in:Qg,"variable.language":Yg},p="[0-9](_?[0-9])*",g=`\\.(${p})`,y="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",h={className:"number",variants:[{begin:`(\\b(${y})((${g})|\\.)?|(${g}))[eE][+-]?(${p})\\b`},{begin:`\\b(${y})\\b((${g})\\b|\\.)?|(${g})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},b={className:"subst",begin:"\\$\\{",end:"\\}",keywords:d,contains:[]},E={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,b],subLanguage:"xml"}},k={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,b],subLanguage:"css"}},N={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,b],subLanguage:"graphql"}},R={className:"string",begin:"`",end:"`",contains:[t.BACKSLASH_ESCAPE,b]},F={className:"comment",variants:[t.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:l+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE]},P=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,E,k,N,R,{match:/\$\d+/},h];b.contains=P.concat({begin:/\{/,end:/\}/,keywords:d,contains:["self"].concat(P)});const G=[].concat(F,b.contains),Q=G.concat([{begin:/(\s*)\(/,end:/\)/,keywords:d,contains:["self"].concat(G)}]),C={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,contains:Q},Z={variants:[{match:[/class/,/\s+/,l,/\s+/,/extends/,/\s+/,i.concat(l,"(",i.concat(/\./,l),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,l],scope:{1:"keyword",3:"title.class"}}]},ee={relevance:0,match:i.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...jg,...Vg]}},ne={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},M={variants:[{match:[/function/,/\s+/,l,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[C],illegal:/%/},W={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function L(H){return i.concat("(?!",H.join("|"),")")}const X={match:i.concat(/\b/,L([...qg,"super","import","await"].map(H=>`${H}\\s*\\(`)),l,i.lookahead(/\s*\(/)),className:"title.function",relevance:0},V={begin:i.concat(/\./,i.lookahead(i.concat(l,/(?![0-9A-Za-z$_(])/))),end:l,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},U={match:[/get|set/,/\s+/,l,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},C]},ue="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+t.UNDERSCORE_IDENT_RE+")\\s*=>",fe={match:[/const|var|let/,/\s+/,l,/\s*/,/=\s*/,/(async\s*)?/,i.lookahead(ue)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[C]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:d,exports:{PARAMS_CONTAINS:Q,CLASS_REFERENCE:ee},illegal:/#(?![$_A-Za-z])/,contains:[t.SHEBANG({label:"shebang",binary:"node",relevance:5}),ne,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,E,k,N,R,F,{match:/\$\d+/},h,ee,{scope:"attr",match:l+i.lookahead(":"),relevance:0},fe,{begin:"("+t.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[F,t.REGEXP_MODE,{className:"function",begin:ue,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,contains:Q}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:s.begin,end:s.end},{match:c},{begin:u.begin,"on:begin":u.isTrulyOpeningTag,end:u.end}],subLanguage:"xml",contains:[{begin:u.begin,end:u.end,skip:!0,contains:["self"]}]}]},M,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+t.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[C,t.inherit(t.TITLE_MODE,{begin:l,className:"title.function"})]},{match:/\.\.\./,relevance:0},V,{match:"\\$"+l,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[C]},X,W,Z,U,{match:/\$[(.]/}]}}function jS(t){const i=t.regex,r=WS(t),l=ra,s=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],c={begin:[/namespace/,/\s+/,t.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},u={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:s},contains:[r.exports.CLASS_REFERENCE]},d={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},p=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],g={$pattern:ra,keyword:Gg.concat(p),literal:Wg,built_in:Qg.concat(s),"variable.language":Yg},y={className:"meta",begin:"@"+l},h=(N,R,x)=>{const F=N.contains.findIndex(P=>P.label===R);if(F===-1)throw new Error("can not find mode to replace");N.contains.splice(F,1,x)};Object.assign(r.keywords,g),r.exports.PARAMS_CONTAINS.push(y);const b=r.contains.find(N=>N.scope==="attr"),E=Object.assign({},b,{match:i.concat(l,i.lookahead(/\s*\?:/))});r.exports.PARAMS_CONTAINS.push([r.exports.CLASS_REFERENCE,b,E]),r.contains=r.contains.concat([y,c,u,E]),h(r,"shebang",t.SHEBANG()),h(r,"use_strict",d);const k=r.contains.find(N=>N.label==="func.def");return k.relevance=0,Object.assign(r,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),r}function VS(t){const i=t.regex,r={className:"string",begin:/"(""|[^/n])"C\b/},l={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},s=/\d{1,2}\/\d{1,2}\/\d{4}/,c=/\d{4}-\d{1,2}-\d{1,2}/,u=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,d=/\d{1,2}(:\d{1,2}){1,2}/,p={className:"literal",variants:[{begin:i.concat(/# */,i.either(c,s),/ *#/)},{begin:i.concat(/# */,d,/ *#/)},{begin:i.concat(/# */,u,/ *#/)},{begin:i.concat(/# */,i.either(c,s),/ +/,i.either(u,d),/ *#/)}]},g={className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},y={className:"label",begin:/^\w+:/},h=t.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),b=t.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[r,l,p,g,y,h,b,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[b]}]}}function qS(t){t.regex;const i=t.COMMENT(/\(;/,/;\)/);i.contains.push("self");const r=t.COMMENT(/;;/,/$/),l=["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"],s={begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},c={className:"variable",begin:/\$[\w_]+/},u={match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},d={className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/},p={match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},g={className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/};return{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:l},contains:[r,i,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},c,u,s,t.QUOTE_STRING_MODE,p,g,d]}}function YS(t){const i=t.regex,r=i.concat(/[\p{L}_]/u,i.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),l=/[\p{L}0-9._:-]+/u,s={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},c={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},u=t.inherit(c,{begin:/\(/,end:/\)/}),d=t.inherit(t.APOS_STRING_MODE,{className:"string"}),p=t.inherit(t.QUOTE_STRING_MODE,{className:"string"}),g={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[c,p,d,u,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[c,u,p,d]}]}]},t.COMMENT(//,{relevance:10}),{begin://,relevance:10},s,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[p]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[g],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[g],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:i.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:r,relevance:0,starts:g}]},{className:"tag",begin:i.concat(/<\//,i.lookahead(i.concat(r,/>/))),contains:[{className:"name",begin:r,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function QS(t){const i="true false yes no null",r="[\\w#;/?:@&=+$,.~*'()[\\]]+",l={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},s={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},c={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},u={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[t.BACKSLASH_ESCAPE,s]},d=t.inherit(u,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),b={className:"number",begin:"\\b"+"[0-9]{4}(-[0-9][0-9]){0,2}"+"([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?"+"(\\.[0-9]*)?"+"([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?"+"\\b"},E={end:",",endsWithParent:!0,excludeEnd:!0,keywords:i,relevance:0},k={begin:/\{/,end:/\}/,contains:[E],illegal:"\\n",relevance:0},N={begin:"\\[",end:"\\]",contains:[E],illegal:"\\n",relevance:0},R=[l,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+r},{className:"type",begin:"!<"+r+">"},{className:"type",begin:"!"+r},{className:"type",begin:"!!"+r},{className:"meta",begin:"&"+t.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+t.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},t.HASH_COMMENT_MODE,{beginKeywords:i,keywords:{literal:i}},b,{className:"number",begin:t.C_NUMBER_RE+"\\b",relevance:0},k,N,c,u],x=[...R];return x.pop(),x.push(d),E.contains=x,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:R}}const ZS={arduino:Rw,bash:Ow,c:Iw,cpp:Mw,csharp:Lw,css:Kw,diff:Gw,go:Ww,graphql:jw,ini:Vw,java:qw,javascript:Jw,json:nS,kotlin:iS,less:dS,lua:pS,makefile:gS,markdown:mS,objectivec:hS,perl:yS,php:ES,"php-template":bS,plaintext:_S,python:vS,"python-repl":kS,r:wS,ruby:SS,rust:xS,scss:LS,shell:DS,sql:PS,swift:GS,typescript:jS,vbnet:VS,wasm:qS,xml:YS,yaml:QS};var pu,bp;function XS(){if(bp)return pu;bp=1;function t(T){return T instanceof Map?T.clear=T.delete=T.set=function(){throw new Error("map is read-only")}:T instanceof Set&&(T.add=T.clear=T.delete=function(){throw new Error("set is read-only")}),Object.freeze(T),Object.getOwnPropertyNames(T).forEach(j=>{const ce=T[j],Re=typeof ce;(Re==="object"||Re==="function")&&!Object.isFrozen(ce)&&t(ce)}),T}class i{constructor(j){j.data===void 0&&(j.data={}),this.data=j.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function r(T){return T.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function l(T,...j){const ce=Object.create(null);for(const Re in T)ce[Re]=T[Re];return j.forEach(function(Re){for(const rt in Re)ce[rt]=Re[rt]}),ce}const s="",c=T=>!!T.scope,u=(T,{prefix:j})=>{if(T.startsWith("language:"))return T.replace("language:","language-");if(T.includes(".")){const ce=T.split(".");return[`${j}${ce.shift()}`,...ce.map((Re,rt)=>`${Re}${"_".repeat(rt+1)}`)].join(" ")}return`${j}${T}`};class d{constructor(j,ce){this.buffer="",this.classPrefix=ce.classPrefix,j.walk(this)}addText(j){this.buffer+=r(j)}openNode(j){if(!c(j))return;const ce=u(j.scope,{prefix:this.classPrefix});this.span(ce)}closeNode(j){c(j)&&(this.buffer+=s)}value(){return this.buffer}span(j){this.buffer+=``}}const p=(T={})=>{const j={children:[]};return Object.assign(j,T),j};class g{constructor(){this.rootNode=p(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(j){this.top.children.push(j)}openNode(j){const ce=p({scope:j});this.add(ce),this.stack.push(ce)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(j){return this.constructor._walk(j,this.rootNode)}static _walk(j,ce){return typeof ce=="string"?j.addText(ce):ce.children&&(j.openNode(ce),ce.children.forEach(Re=>this._walk(j,Re)),j.closeNode(ce)),j}static _collapse(j){typeof j!="string"&&j.children&&(j.children.every(ce=>typeof ce=="string")?j.children=[j.children.join("")]:j.children.forEach(ce=>{g._collapse(ce)}))}}class y extends g{constructor(j){super(),this.options=j}addText(j){j!==""&&this.add(j)}startScope(j){this.openNode(j)}endScope(){this.closeNode()}__addSublanguage(j,ce){const Re=j.root;ce&&(Re.scope=`language:${ce}`),this.add(Re)}toHTML(){return new d(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function h(T){return T?typeof T=="string"?T:T.source:null}function b(T){return N("(?=",T,")")}function E(T){return N("(?:",T,")*")}function k(T){return N("(?:",T,")?")}function N(...T){return T.map(ce=>h(ce)).join("")}function R(T){const j=T[T.length-1];return typeof j=="object"&&j.constructor===Object?(T.splice(T.length-1,1),j):{}}function x(...T){return"("+(R(T).capture?"":"?:")+T.map(Re=>h(Re)).join("|")+")"}function F(T){return new RegExp(T.toString()+"|").exec("").length-1}function P(T,j){const ce=T&&T.exec(j);return ce&&ce.index===0}const G=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function Q(T,{joinWith:j}){let ce=0;return T.map(Re=>{ce+=1;const rt=ce;let lt=h(Re),he="";for(;lt.length>0;){const ge=G.exec(lt);if(!ge){he+=lt;break}he+=lt.substring(0,ge.index),lt=lt.substring(ge.index+ge[0].length),ge[0][0]==="\\"&&ge[1]?he+="\\"+String(Number(ge[1])+rt):(he+=ge[0],ge[0]==="("&&ce++)}return he}).map(Re=>`(${Re})`).join(j)}const C=/\b\B/,Z="[a-zA-Z]\\w*",ee="[a-zA-Z_]\\w*",ne="\\b\\d+(\\.\\d+)?",M="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",W="\\b(0b[01]+)",L="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",X=(T={})=>{const j=/^#![ ]*\//;return T.binary&&(T.begin=N(j,/.*\b/,T.binary,/\b.*/)),l({scope:"meta",begin:j,end:/$/,relevance:0,"on:begin":(ce,Re)=>{ce.index!==0&&Re.ignoreMatch()}},T)},V={begin:"\\\\[\\s\\S]",relevance:0},U={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[V]},ue={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[V]},fe={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},H=function(T,j,ce={}){const Re=l({scope:"comment",begin:T,end:j,contains:[]},ce);Re.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const rt=x("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return Re.contains.push({begin:N(/[ ]+/,"(",rt,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),Re},ae=H("//","$"),v=H("/\\*","\\*/"),O=H("#","$"),$={scope:"number",begin:ne,relevance:0},w={scope:"number",begin:M,relevance:0},we={scope:"number",begin:W,relevance:0},Me={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[V,{begin:/\[/,end:/\]/,relevance:0,contains:[V]}]},ke={scope:"title",begin:Z,relevance:0},$e={scope:"title",begin:ee,relevance:0},De={begin:"\\.\\s*"+ee,relevance:0};var Xe=Object.freeze({__proto__:null,APOS_STRING_MODE:U,BACKSLASH_ESCAPE:V,BINARY_NUMBER_MODE:we,BINARY_NUMBER_RE:W,COMMENT:H,C_BLOCK_COMMENT_MODE:v,C_LINE_COMMENT_MODE:ae,C_NUMBER_MODE:w,C_NUMBER_RE:M,END_SAME_AS_BEGIN:function(T){return Object.assign(T,{"on:begin":(j,ce)=>{ce.data._beginMatch=j[1]},"on:end":(j,ce)=>{ce.data._beginMatch!==j[1]&&ce.ignoreMatch()}})},HASH_COMMENT_MODE:O,IDENT_RE:Z,MATCH_NOTHING_RE:C,METHOD_GUARD:De,NUMBER_MODE:$,NUMBER_RE:ne,PHRASAL_WORDS_MODE:fe,QUOTE_STRING_MODE:ue,REGEXP_MODE:Me,RE_STARTERS_RE:L,SHEBANG:X,TITLE_MODE:ke,UNDERSCORE_IDENT_RE:ee,UNDERSCORE_TITLE_MODE:$e});function Xt(T,j){T.input[T.index-1]==="."&&j.ignoreMatch()}function rr(T,j){T.className!==void 0&&(T.scope=T.className,delete T.className)}function An(T,j){j&&T.beginKeywords&&(T.begin="\\b("+T.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",T.__beforeBegin=Xt,T.keywords=T.keywords||T.beginKeywords,delete T.beginKeywords,T.relevance===void 0&&(T.relevance=0))}function Hn(T,j){Array.isArray(T.illegal)&&(T.illegal=x(...T.illegal))}function Kn(T,j){if(T.match){if(T.begin||T.end)throw new Error("begin & end are not supported with match");T.begin=T.match,delete T.match}}function We(T,j){T.relevance===void 0&&(T.relevance=1)}const Jt=(T,j)=>{if(!T.beforeMatch)return;if(T.starts)throw new Error("beforeMatch cannot be used with starts");const ce=Object.assign({},T);Object.keys(T).forEach(Re=>{delete T[Re]}),T.keywords=ce.keywords,T.begin=N(ce.beforeMatch,b(ce.begin)),T.starts={relevance:0,contains:[Object.assign(ce,{endsParent:!0})]},T.relevance=0,delete ce.beforeMatch},an=["of","and","for","in","not","or","if","then","parent","list","value"],Rn="keyword";function En(T,j,ce=Rn){const Re=Object.create(null);return typeof T=="string"?rt(ce,T.split(" ")):Array.isArray(T)?rt(ce,T):Object.keys(T).forEach(function(lt){Object.assign(Re,En(T[lt],j,lt))}),Re;function rt(lt,he){j&&(he=he.map(ge=>ge.toLowerCase())),he.forEach(function(ge){const Se=ge.split("|");Re[Se[0]]=[lt,On(Se[0],Se[1])]})}}function On(T,j){return j?Number(j):Tr(T)?0:1}function Tr(T){return an.includes(T.toLowerCase())}const Cr={},sn=T=>{console.error(T)},Ar=(T,...j)=>{console.log(`WARN: ${T}`,...j)},K=(T,j)=>{Cr[`${T}/${j}`]||(console.log(`Deprecated as of ${T}. ${j}`),Cr[`${T}/${j}`]=!0)},le=new Error;function Ce(T,j,{key:ce}){let Re=0;const rt=T[ce],lt={},he={};for(let ge=1;ge<=j.length;ge++)he[ge+Re]=rt[ge],lt[ge+Re]=!0,Re+=F(j[ge-1]);T[ce]=he,T[ce]._emit=lt,T[ce]._multi=!0}function Pe(T){if(Array.isArray(T.begin)){if(T.skip||T.excludeBegin||T.returnBegin)throw sn("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),le;if(typeof T.beginScope!="object"||T.beginScope===null)throw sn("beginScope must be object"),le;Ce(T,T.begin,{key:"beginScope"}),T.begin=Q(T.begin,{joinWith:""})}}function He(T){if(Array.isArray(T.end)){if(T.skip||T.excludeEnd||T.returnEnd)throw sn("skip, excludeEnd, returnEnd not compatible with endScope: {}"),le;if(typeof T.endScope!="object"||T.endScope===null)throw sn("endScope must be object"),le;Ce(T,T.end,{key:"endScope"}),T.end=Q(T.end,{joinWith:""})}}function _t(T){T.scope&&typeof T.scope=="object"&&T.scope!==null&&(T.beginScope=T.scope,delete T.scope)}function bn(T){_t(T),typeof T.beginScope=="string"&&(T.beginScope={_wrap:T.beginScope}),typeof T.endScope=="string"&&(T.endScope={_wrap:T.endScope}),Pe(T),He(T)}function Kt(T){function j(he,ge){return new RegExp(h(he),"m"+(T.case_insensitive?"i":"")+(T.unicodeRegex?"u":"")+(ge?"g":""))}class ce{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(ge,Se){Se.position=this.position++,this.matchIndexes[this.matchAt]=Se,this.regexes.push([Se,ge]),this.matchAt+=F(ge)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const ge=this.regexes.map(Se=>Se[1]);this.matcherRe=j(Q(ge,{joinWith:"|"}),!0),this.lastIndex=0}exec(ge){this.matcherRe.lastIndex=this.lastIndex;const Se=this.matcherRe.exec(ge);if(!Se)return null;const yt=Se.findIndex((In,or)=>or>0&&In!==void 0),tt=this.matchIndexes[yt];return Se.splice(0,yt),Object.assign(Se,tt)}}class Re{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(ge){if(this.multiRegexes[ge])return this.multiRegexes[ge];const Se=new ce;return this.rules.slice(ge).forEach(([yt,tt])=>Se.addRule(yt,tt)),Se.compile(),this.multiRegexes[ge]=Se,Se}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(ge,Se){this.rules.push([ge,Se]),Se.type==="begin"&&this.count++}exec(ge){const Se=this.getMatcher(this.regexIndex);Se.lastIndex=this.lastIndex;let yt=Se.exec(ge);if(this.resumingScanAtSamePosition()&&!(yt&&yt.index===this.lastIndex)){const tt=this.getMatcher(0);tt.lastIndex=this.lastIndex+1,yt=tt.exec(ge)}return yt&&(this.regexIndex+=yt.position+1,this.regexIndex===this.count&&this.considerAll()),yt}}function rt(he){const ge=new Re;return he.contains.forEach(Se=>ge.addRule(Se.begin,{rule:Se,type:"begin"})),he.terminatorEnd&&ge.addRule(he.terminatorEnd,{type:"end"}),he.illegal&&ge.addRule(he.illegal,{type:"illegal"}),ge}function lt(he,ge){const Se=he;if(he.isCompiled)return Se;[rr,Kn,bn,Jt].forEach(tt=>tt(he,ge)),T.compilerExtensions.forEach(tt=>tt(he,ge)),he.__beforeBegin=null,[An,Hn,We].forEach(tt=>tt(he,ge)),he.isCompiled=!0;let yt=null;return typeof he.keywords=="object"&&he.keywords.$pattern&&(he.keywords=Object.assign({},he.keywords),yt=he.keywords.$pattern,delete he.keywords.$pattern),yt=yt||/\w+/,he.keywords&&(he.keywords=En(he.keywords,T.case_insensitive)),Se.keywordPatternRe=j(yt,!0),ge&&(he.begin||(he.begin=/\B|\b/),Se.beginRe=j(Se.begin),!he.end&&!he.endsWithParent&&(he.end=/\B|\b/),he.end&&(Se.endRe=j(Se.end)),Se.terminatorEnd=h(Se.end)||"",he.endsWithParent&&ge.terminatorEnd&&(Se.terminatorEnd+=(he.end?"|":"")+ge.terminatorEnd)),he.illegal&&(Se.illegalRe=j(he.illegal)),he.contains||(he.contains=[]),he.contains=[].concat(...he.contains.map(function(tt){return Gn(tt==="self"?he:tt)})),he.contains.forEach(function(tt){lt(tt,Se)}),he.starts&<(he.starts,ge),Se.matcher=rt(Se),Se}if(T.compilerExtensions||(T.compilerExtensions=[]),T.contains&&T.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return T.classNameAliases=l(T.classNameAliases||{}),lt(T)}function _n(T){return T?T.endsWithParent||_n(T.starts):!1}function Gn(T){return T.variants&&!T.cachedVariants&&(T.cachedVariants=T.variants.map(function(j){return l(T,{variants:null},j)})),T.cachedVariants?T.cachedVariants:_n(T)?l(T,{starts:T.starts?l(T.starts):null}):Object.isFrozen(T)?l(T):T}var vt="11.11.2";class un extends Error{constructor(j,ce){super(j),this.name="HTMLInjectionError",this.html=ce}}const Ct=r,ei=l,ti=Symbol("nomatch"),ir=7,Wn=function(T){const j=Object.create(null),ce=Object.create(null),Re=[];let rt=!0;const lt="Could not find the language '{}', did you forget to load/include a language module?",he={disableAutodetect:!0,name:"Plain text",contains:[]};let ge={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:y};function Se(ie){return ge.noHighlightRe.test(ie)}function yt(ie){let ve=ie.className+" ";ve+=ie.parentNode?ie.parentNode.className:"";const ze=ge.languageDetectRe.exec(ve);if(ze){const Be=vn(ze[1]);return Be||(Ar(lt.replace("{}",ze[1])),Ar("Falling back to no-highlight mode for this block.",ie)),Be?ze[1]:"no-highlight"}return ve.split(/\s+/).find(Be=>Se(Be)||vn(Be))}function tt(ie,ve,ze){let Be="",gt="";typeof ve=="object"?(Be=ie,ze=ve.ignoreIllegals,gt=ve.language):(K("10.7.0","highlight(lang, code, ...args) has been deprecated."),K("10.7.0",`Please use highlight(code, options) instead. +https://github.com/highlightjs/highlight.js/issues/2277`),gt=ie,Be=ve),ze===void 0&&(ze=!0);const ut={code:Be,language:gt};Or("before:highlight",ut);const Mn=ut.result?ut.result:In(ut.language,ut.code,ze);return Mn.code=ut.code,Or("after:highlight",Mn),Mn}function In(ie,ve,ze,Be){const gt=Object.create(null);function ut(se,me){return se.keywords[me]}function Mn(){if(!Ie.keywords){mt.addText(Qe);return}let se=0;Ie.keywordPatternRe.lastIndex=0;let me=Ie.keywordPatternRe.exec(Qe),Ae="";for(;me;){Ae+=Qe.substring(se,me.index);const Ke=cn.case_insensitive?me[0].toLowerCase():me[0],dt=ut(Ie,Ke);if(dt){const[St,ga]=dt;if(mt.addText(Ae),Ae="",gt[Ke]=(gt[Ke]||0)+1,gt[Ke]<=ir&&(Lr+=ga),St.startsWith("_"))Ae+=me[0];else{const $o=cn.classNameAliases[St]||St;Ft(me[0],$o)}}else Ae+=me[0];se=Ie.keywordPatternRe.lastIndex,me=Ie.keywordPatternRe.exec(Qe)}Ae+=Qe.substring(se),mt.addText(Ae)}function ii(){if(Qe==="")return;let se=null;if(typeof Ie.subLanguage=="string"){if(!j[Ie.subLanguage]){mt.addText(Qe);return}se=In(Ie.subLanguage,Qe,!0,Ui[Ie.subLanguage]),Ui[Ie.subLanguage]=se._top}else se=Rr(Qe,Ie.subLanguage.length?Ie.subLanguage:null);Ie.relevance>0&&(Lr+=se.relevance),mt.__addSublanguage(se._emitter,se.language)}function zt(){Ie.subLanguage!=null?ii():Mn(),Qe=""}function Ft(se,me){se!==""&&(mt.startScope(me),mt.addText(se),mt.endScope())}function Ir(se,me){let Ae=1;const Ke=me.length-1;for(;Ae<=Ke;){if(!se._emit[Ae]){Ae++;continue}const dt=cn.classNameAliases[se[Ae]]||se[Ae],St=me[Ae];dt?Ft(St,dt):(Qe=St,Mn(),Qe=""),Ae++}}function lr(se,me){return se.scope&&typeof se.scope=="string"&&mt.openNode(cn.classNameAliases[se.scope]||se.scope),se.beginScope&&(se.beginScope._wrap?(Ft(Qe,cn.classNameAliases[se.beginScope._wrap]||se.beginScope._wrap),Qe=""):se.beginScope._multi&&(Ir(se.beginScope,me),Qe="")),Ie=Object.create(se,{parent:{value:Ie}}),Ie}function Mr(se,me,Ae){let Ke=P(se.endRe,Ae);if(Ke){if(se["on:end"]){const dt=new i(se);se["on:end"](me,dt),dt.isMatchIgnored&&(Ke=!1)}if(Ke){for(;se.endsParent&&se.parent;)se=se.parent;return se}}if(se.endsWithParent)return Mr(se.parent,me,Ae)}function da(se){return Ie.matcher.regexIndex===0?(Qe+=se[0],1):(ur=!0,0)}function pa(se){const me=se[0],Ae=se.rule,Ke=new i(Ae),dt=[Ae.__beforeBegin,Ae["on:begin"]];for(const St of dt)if(St&&(St(se,Ke),Ke.isMatchIgnored))return da(me);return Ae.skip?Qe+=me:(Ae.excludeBegin&&(Qe+=me),zt(),!Ae.returnBegin&&!Ae.excludeBegin&&(Qe=me)),lr(Ae,se),Ae.returnBegin?0:me.length}function Fi(se){const me=se[0],Ae=ve.substring(se.index),Ke=Mr(Ie,se,Ae);if(!Ke)return ti;const dt=Ie;Ie.endScope&&Ie.endScope._wrap?(zt(),Ft(me,Ie.endScope._wrap)):Ie.endScope&&Ie.endScope._multi?(zt(),Ir(Ie.endScope,se)):dt.skip?Qe+=me:(dt.returnEnd||dt.excludeEnd||(Qe+=me),zt(),dt.excludeEnd&&(Qe=me));do Ie.scope&&mt.closeNode(),!Ie.skip&&!Ie.subLanguage&&(Lr+=Ie.relevance),Ie=Ie.parent;while(Ie!==Ke.parent);return Ke.starts&&lr(Ke.starts,se),dt.returnEnd?0:me.length}function Uo(){const se=[];for(let me=Ie;me!==cn;me=me.parent)me.scope&&se.unshift(me.scope);se.forEach(me=>mt.openNode(me))}let ar={};function sr(se,me){const Ae=me&&me[0];if(Qe+=se,Ae==null)return zt(),0;if(ar.type==="begin"&&me.type==="end"&&ar.index===me.index&&Ae===""){if(Qe+=ve.slice(me.index,me.index+1),!rt){const Ke=new Error(`0 width match regex (${ie})`);throw Ke.languageName=ie,Ke.badRule=ar.rule,Ke}return 1}if(ar=me,me.type==="begin")return pa(me);if(me.type==="illegal"&&!ze){const Ke=new Error('Illegal lexeme "'+Ae+'" for mode "'+(Ie.scope||"")+'"');throw Ke.mode=Ie,Ke}else if(me.type==="end"){const Ke=Fi(me);if(Ke!==ti)return Ke}if(me.type==="illegal"&&Ae==="")return me.index===ve.length||(Qe+=` +`),1;if(Dr>1e5&&Dr>me.index*3)throw new Error("potential infinite loop, way more iterations than matches");return Qe+=Ae,Ae.length}const cn=vn(ie);if(!cn)throw sn(lt.replace("{}",ie)),new Error('Unknown language: "'+ie+'"');const Bi=Kt(cn);let Ve="",Ie=Be||Bi;const Ui={},mt=new ge.__emitter(ge);Uo();let Qe="",Lr=0,Ln=0,Dr=0,ur=!1;try{if(cn.__emitTokens)cn.__emitTokens(ve,mt);else{for(Ie.matcher.considerAll();;){Dr++,ur?ur=!1:Ie.matcher.considerAll(),Ie.matcher.lastIndex=Ln;const se=Ie.matcher.exec(ve);if(!se)break;const me=ve.substring(Ln,se.index),Ae=sr(me,se);Ln=se.index+Ae}sr(ve.substring(Ln))}return mt.finalize(),Ve=mt.toHTML(),{language:ie,value:Ve,relevance:Lr,illegal:!1,_emitter:mt,_top:Ie}}catch(se){if(se.message&&se.message.includes("Illegal"))return{language:ie,value:Ct(ve),illegal:!0,relevance:0,_illegalBy:{message:se.message,index:Ln,context:ve.slice(Ln-100,Ln+100),mode:se.mode,resultSoFar:Ve},_emitter:mt};if(rt)return{language:ie,value:Ct(ve),illegal:!1,relevance:0,errorRaised:se,_emitter:mt,_top:Ie};throw se}}function or(ie){const ve={value:Ct(ie),illegal:!1,relevance:0,_top:he,_emitter:new ge.__emitter(ge)};return ve._emitter.addText(ie),ve}function Rr(ie,ve){ve=ve||ge.languages||Object.keys(j);const ze=or(ie),Be=ve.filter(vn).filter(Bo).map(zt=>In(zt,ie,!1));Be.unshift(ze);const gt=Be.sort((zt,Ft)=>{if(zt.relevance!==Ft.relevance)return Ft.relevance-zt.relevance;if(zt.language&&Ft.language){if(vn(zt.language).supersetOf===Ft.language)return 1;if(vn(Ft.language).supersetOf===zt.language)return-1}return 0}),[ut,Mn]=gt,ii=ut;return ii.secondBest=Mn,ii}function ua(ie,ve,ze){const Be=ve&&ce[ve]||ze;ie.classList.add("hljs"),ie.classList.add(`language-${Be}`)}function Di(ie){let ve=null;const ze=yt(ie);if(Se(ze))return;if(Or("before:highlightElement",{el:ie,language:ze}),ie.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",ie);return}if(ie.children.length>0&&(ge.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(ie)),ge.throwUnescapedHTML))throw new un("One of your code blocks includes unescaped HTML.",ie.innerHTML);ve=ie;const Be=ve.textContent,gt=ze?tt(Be,{language:ze,ignoreIllegals:!0}):Rr(Be);ie.innerHTML=gt.value,ie.dataset.highlighted="yes",ua(ie,ze,gt.language),ie.result={language:gt.language,re:gt.relevance,relevance:gt.relevance},gt.secondBest&&(ie.secondBest={language:gt.secondBest.language,relevance:gt.secondBest.relevance}),Or("after:highlightElement",{el:ie,result:gt,text:Be})}function ca(ie){ge=ei(ge,ie)}const Vn=()=>{ni(),K("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function Lo(){ni(),K("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let Pi=!1;function ni(){function ie(){ni()}if(document.readyState==="loading"){Pi||window.addEventListener("DOMContentLoaded",ie,!1),Pi=!0;return}document.querySelectorAll(ge.cssSelector).forEach(Di)}function Do(ie,ve){let ze=null;try{ze=ve(T)}catch(Be){if(sn("Language definition for '{}' could not be registered.".replace("{}",ie)),rt)sn(Be);else throw Be;ze=he}ze.name||(ze.name=ie),j[ie]=ze,ze.rawDefinition=ve.bind(null,T),ze.aliases&&Fo(ze.aliases,{languageName:ie})}function Po(ie){delete j[ie];for(const ve of Object.keys(ce))ce[ve]===ie&&delete ce[ve]}function zo(){return Object.keys(j)}function vn(ie){return ie=(ie||"").toLowerCase(),j[ie]||j[ce[ie]]}function Fo(ie,{languageName:ve}){typeof ie=="string"&&(ie=[ie]),ie.forEach(ze=>{ce[ze.toLowerCase()]=ve})}function Bo(ie){const ve=vn(ie);return ve&&!ve.disableAutodetect}function st(ie){ie["before:highlightBlock"]&&!ie["before:highlightElement"]&&(ie["before:highlightElement"]=ve=>{ie["before:highlightBlock"](Object.assign({block:ve.el},ve))}),ie["after:highlightBlock"]&&!ie["after:highlightElement"]&&(ie["after:highlightElement"]=ve=>{ie["after:highlightBlock"](Object.assign({block:ve.el},ve))})}function fa(ie){st(ie),Re.push(ie)}function zi(ie){const ve=Re.indexOf(ie);ve!==-1&&Re.splice(ve,1)}function Or(ie,ve){const ze=ie;Re.forEach(function(Be){Be[ze]&&Be[ze](ve)})}function ri(ie){return K("10.7.0","highlightBlock will be removed entirely in v12.0"),K("10.7.0","Please use highlightElement now."),Di(ie)}Object.assign(T,{highlight:tt,highlightAuto:Rr,highlightAll:ni,highlightElement:Di,highlightBlock:ri,configure:ca,initHighlighting:Vn,initHighlightingOnLoad:Lo,registerLanguage:Do,unregisterLanguage:Po,listLanguages:zo,getLanguage:vn,registerAliases:Fo,autoDetection:Bo,inherit:ei,addPlugin:fa,removePlugin:zi}),T.debugMode=function(){rt=!1},T.safeMode=function(){rt=!0},T.versionString=vt,T.regex={concat:N,lookahead:b,either:x,optional:k,anyNumberOfTimes:E};for(const ie in Xe)typeof Xe[ie]=="object"&&t(Xe[ie]);return Object.assign(T,Xe),T},jn=Wn({});return jn.newInstance=()=>Wn({}),pu=jn,jn.HighlightJS=jn,jn.default=jn,pu}var JS=XS();const e0=Ao(JS),_p={},t0="hljs-";function n0(t){const i=e0.newInstance();return t&&c(t),{highlight:r,highlightAuto:l,listLanguages:s,register:c,registerAlias:u,registered:d};function r(p,g,y){const h=y||_p,b=typeof h.prefix=="string"?h.prefix:t0;if(!i.getLanguage(p))throw new Error("Unknown language: `"+p+"` is not registered");i.configure({__emitter:r0,classPrefix:b});const E=i.highlight(g,{ignoreIllegals:!0,language:p});if(E.errorRaised)throw new Error("Could not highlight with `Highlight.js`",{cause:E.errorRaised});const k=E._emitter.root,N=k.data;return N.language=E.language,N.relevance=E.relevance,k}function l(p,g){const h=(g||_p).subset||s();let b=-1,E=0,k;for(;++bE&&(E=R.data.relevance,k=R)}return k||{type:"root",children:[],data:{language:void 0,relevance:E}}}function s(){return i.listLanguages()}function c(p,g){if(typeof p=="string")i.registerLanguage(p,g);else{let y;for(y in p)Object.hasOwn(p,y)&&i.registerLanguage(y,p[y])}}function u(p,g){if(typeof p=="string")i.registerAliases(typeof g=="string"?g:[...g],{languageName:p});else{let y;for(y in p)if(Object.hasOwn(p,y)){const h=p[y];i.registerAliases(typeof h=="string"?h:[...h],{languageName:y})}}}function d(p){return!!i.getLanguage(p)}}class r0{constructor(i){this.options=i,this.root={type:"root",children:[],data:{language:void 0,relevance:0}},this.stack=[this.root]}addText(i){if(i==="")return;const r=this.stack[this.stack.length-1],l=r.children[r.children.length-1];l&&l.type==="text"?l.value+=i:r.children.push({type:"text",value:i})}startScope(i){this.openNode(String(i))}endScope(){this.closeNode()}__addSublanguage(i,r){const l=this.stack[this.stack.length-1],s=i.root.children;r?l.children.push({type:"element",tagName:"span",properties:{className:[r]},children:s}):l.children.push(...s)}openNode(i){const r=this,l=i.split(".").map(function(u,d){return d?u+"_".repeat(d):r.options.classPrefix+u}),s=this.stack[this.stack.length-1],c={type:"element",tagName:"span",properties:{className:l},children:[]};s.children.push(c),this.stack.push(c)}closeNode(){this.stack.pop()}finalize(){}toHTML(){return""}}const i0={};function o0(t){const i=t||i0,r=i.aliases,l=i.detect||!1,s=i.languages||ZS,c=i.plainText,u=i.prefix,d=i.subset;let p="hljs";const g=n0(s);if(r&&g.registerAlias(r),u){const y=u.indexOf("-");p=y===-1?u:u.slice(0,y)}return function(y,h){sa(y,"element",function(b,E,k){if(b.tagName!=="code"||!k||k.type!=="element"||k.tagName!=="pre")return;const N=l0(b);if(N===!1||!N&&!l||N&&c&&c.includes(N))return;Array.isArray(b.properties.className)||(b.properties.className=[]),b.properties.className.includes(p)||b.properties.className.unshift(p);const R=kw(b,{whitespace:"pre"});let x;try{x=N?g.highlight(N,R,{prefix:u}):g.highlightAuto(R,{prefix:u,subset:d})}catch(F){const P=F;if(N&&/Unknown language/.test(P.message)){h.message("Cannot highlight as `"+N+"`, it’s not registered",{ancestors:[k,b],cause:P,place:b.position,ruleId:"missing-language",source:"rehype-highlight"});return}throw P}!N&&x.data&&x.data.language&&b.properties.className.push("language-"+x.data.language),x.children.length>0&&(b.children=x.children)})}}function l0(t){const i=t.properties.className;let r=-1;if(!Array.isArray(i))return;let l;for(;++rtypeof r=="string"):[]}catch{return[]}}function u0({message:t,toolEvents:i=[]}){const[r,l]=de.useState(!1),s=t.role==="user",c=s0(t);return re.jsxs("div",{className:`msg ${s?"msg-user":"msg-assistant"}`,children:[re.jsx("div",{className:"msg-role",children:s?"du":"qwen3"}),!s&&t.thinking&&t.thinking.length>0&&re.jsxs("div",{className:`thinking ${r?"open":""}`,children:[re.jsxs("button",{className:"thinking-toggle",onClick:()=>l(u=>!u),children:[re.jsx("span",{className:`caret ${r?"rotated":""}`,children:"▸"}),t.content===""&&r===!1?"denkt nach …":`Denkprozess (${t.thinking.length.toLocaleString("de-DE")} Zeichen)`]}),r&&re.jsx("pre",{className:"thinking-body",children:t.thinking})]}),i.length>0&&re.jsx("div",{className:"tool-events",children:i.map((u,d)=>re.jsxs("div",{className:`tool-event ${u.ok===!1?"failed":""}`,children:[re.jsx("span",{className:"tool-icon",children:u.ok===void 0?"⋯":u.ok?"✓":"✗"}),re.jsx("code",{children:u.name}),re.jsx("span",{className:"tool-args",title:u.args,children:u.args}),u.durationMs!==void 0&&re.jsxs("span",{className:"tool-time",children:[u.durationMs," ms"]})]},d))}),c.length>0&&re.jsx("div",{className:"msg-images",children:c.map((u,d)=>re.jsx("img",{src:`data:${a0(u)};base64,${u}`,alt:`Anhang ${d+1}`,loading:"lazy"},d))}),s?t.content?re.jsx("div",{className:"msg-content user-content",children:t.content}):null:re.jsx("div",{className:"msg-content markdown",children:re.jsx(nv,{remarkPlugins:[mw],rehypePlugins:[o0],children:t.content||"▍"})})]})}const wo=4,vp=6*1024*1024,kp=["image/png","image/jpeg","image/gif","image/webp"];function c0(t){return new Promise((i,r)=>{const l=new FileReader;l.onerror=()=>r(new Error(`${t.name} konnte nicht gelesen werden`)),l.onload=()=>{const s=String(l.result),c=s.indexOf(",");i({id:`${t.name}-${t.size}-${Date.now()}-${Math.random()}`,base64:s.slice(c+1),dataUrl:s,name:t.name||"Bild"})},l.readAsDataURL(t)})}function f0({streaming:t,disabled:i,recording:r,transcribing:l,injectedText:s,onInjected:c,onSend:u,onAbort:d,onMicToggle:p}){const[g,y]=de.useState(""),[h,b]=de.useState([]),[E,k]=de.useState(null),[N,R]=de.useState(!1),x=de.useRef(null),F=de.useRef(null);de.useEffect(()=>{s!=null&&(y(s),c(),requestAnimationFrame(()=>{var C,Z;(C=x.current)==null||C.focus(),(Z=x.current)==null||Z.setSelectionRange(s.length,s.length)}))},[s,c]);const P=async C=>{k(null);const Z=[];for(const ee of C){if(!kp.includes(ee.type)){k(`${ee.name||"Datei"}: nur PNG, JPEG, GIF oder WebP`);continue}if(ee.size>vp){k(`${ee.name}: größer als ${vp/1024/1024} MB`);continue}Z.push(ee)}if(Z.length)try{const ee=await Promise.all(Z.map(c0));b(ne=>{const M=wo-ne.length;return ee.length>M&&k(`Maximal ${wo} Bilder pro Nachricht`),[...ne,...ee.slice(0,Math.max(M,0))]})}catch(ee){k(ee instanceof Error?ee.message:"Bild konnte nicht gelesen werden")}},G=()=>{const C=g.trim();!C&&h.length===0||t||i||(u(C,h.map(Z=>Z.base64)),y(""),b([]),k(null),requestAnimationFrame(()=>{var Z;return(Z=x.current)==null?void 0:Z.focus()}))},Q=(g.trim().length>0||h.length>0)&&!i;return re.jsxs("div",{className:`composer ${N?"dragging":""}`,onDragOver:C=>{i||(C.preventDefault(),R(!0))},onDragLeave:()=>R(!1),onDrop:C=>{i||(C.preventDefault(),R(!1),P([...C.dataTransfer.files]))},children:[(h.length>0||E)&&re.jsxs("div",{className:"attachments",children:[h.map(C=>re.jsxs("div",{className:"attachment",children:[re.jsx("img",{src:C.dataUrl,alt:C.name}),re.jsx("button",{className:"attachment-remove",onClick:()=>b(Z=>Z.filter(ee=>ee.id!==C.id)),title:`${C.name} entfernen`,children:"×"})]},C.id)),E&&re.jsx("span",{className:"attachment-error",children:E})]}),re.jsxs("div",{className:"composer-row",children:[re.jsx("button",{className:`btn-mic ${r?"recording":""} ${l?"transcribing":""}`,onClick:p,title:r?"Aufnahme stoppen & senden":l?"Transkribiere …":"Sprachnachricht aufnehmen",disabled:l||i,children:r?"●":l?"…":"🎙"}),re.jsx("button",{className:"btn-attach",onClick:()=>{var C;return(C=F.current)==null?void 0:C.click()},disabled:i||h.length>=wo,title:h.length>=wo?`Maximal ${wo} Bilder`:"Bild anhängen (auch per Einfügen oder Drag & Drop)",children:"🖼"}),re.jsx("input",{ref:F,type:"file",accept:kp.join(","),multiple:!0,hidden:!0,onChange:C=>{P([...C.target.files??[]]),C.target.value=""}}),re.jsx("textarea",{ref:x,value:g,placeholder:r?"Ich höre zu … (zum Beenden nochmal auf das Mikro klicken)":i?"Keine Session aktiv — neuen Chat starten":"Nachricht an qwen3 … (Enter = senden, Bild einfügen mit ⌘V)",rows:1,disabled:i,onChange:C=>y(C.target.value),onPaste:C=>{const Z=[...C.clipboardData.files].filter(ee=>ee.type.startsWith("image/"));Z.length&&(C.preventDefault(),P(Z))},onKeyDown:C=>{C.key==="Enter"&&!C.shiftKey&&(C.preventDefault(),G())}}),t?re.jsx("button",{className:"btn-send stop",onClick:d,children:"■ Stop"}):re.jsx("button",{className:"btn-send",disabled:!Q,onClick:G,children:"Senden ▸"})]})]})}const wp="oxagenttwo.voiceMode";function d0(){var ne,M,W;const t=Kh(),i=de.useRef(null),[r,l]=de.useState(!1),[s,c]=de.useState(null),[u,d]=de.useState(()=>localStorage.getItem(wp)==="1"),[p,g]=de.useState([]);de.useEffect(()=>{r&&t.options.provider==="openrouter"&&p.length===0&&fetch("/api/openrouter/models").then(L=>L.json()).then(L=>{L.ok&&L.models&&g(L.models)}).catch(()=>{})},[r,t.options.provider,p.length]);const y=de.useRef(u),h=de.useRef(!1),b=de.useRef(!1);h.current=t.streaming,y.current=u;const E=de.useCallback(L=>{d(L),localStorage.setItem(wp,L?"1":"0")},[]),k=Gh({onTranscript:L=>{y.current?(N.current.cancelSpeech(),x.current="",R.current.sendMessage(L)):c(L)},onQueueDrained:()=>{b.current&&(b.current=!1,y.current&&!h.current&&N.current.startRecording())}}),N=de.useRef(k);N.current=k;const R=de.useRef(t);R.current=t;const x=de.useRef(""),F=de.useRef({id:"",offset:0});de.useEffect(()=>{const L=i.current;L&&(L.scrollTop=L.scrollHeight)},[t.messages]),de.useEffect(()=>{if(!u)return;const L=[...t.messages].reverse().find(H=>H.role==="assistant");if(!L)return;F.current.id!==L.id&&(F.current={id:L.id,offset:0},x.current="");const X=L.content;if(X.length=40&&(fe=U.slice(0,ae))}else if(U.length>300){const H=Math.max(U.lastIndexOf(", "),U.lastIndexOf(" "));fe=H>100?U.slice(0,H+1):U}fe&&(x.current=U.slice(fe.length),k.enqueueSpeech(fe))});const P=de.useRef(!1);de.useEffect(()=>{if(P.current&&!t.streaming&&u){const L=x.current.trim();L&&(x.current="",k.enqueueSpeech(L)),(L||F.current.id)&&(b.current=!0)}P.current=t.streaming},[t.streaming,u,k]);const[G,Q]=de.useState([]);de.useEffect(()=>{fetch("/api/tools").then(L=>L.json()).then(L=>Q(L.tools??[])).catch(()=>Q([]))},[]);const C=de.useCallback((L,X=[])=>{k.cancelSpeech(),x.current="",t.sendMessage(L,X)},[t,k]),Z=de.useCallback(()=>{k.cancelSpeech(),x.current="",t.abort()},[t,k]),ee=de.useCallback(()=>{k.recording?k.stopRecording():(k.cancelSpeech(),k.startRecording())},[k]);return re.jsxs("div",{className:"app",children:[re.jsx(Wh,{sessions:t.sessions,activeId:t.activeId,onSelect:t.setActiveId,onNew:()=>void t.newSession(),onDelete:L=>void t.deleteSession(L)}),re.jsxs("main",{className:"main",children:[re.jsxs("header",{className:"topbar",children:[re.jsxs("div",{className:"model-badge",title:(ne=t.modelInfo)!=null&&ne.ok||(M=t.modelInfo)==null?void 0:M.error,children:[re.jsx("span",{className:`status-dot ${t.status==="open"?"on":"off"}`}),t.options.provider==="openrouter"?`☁ ${t.options.openrouterModel}`:(W=t.modelInfo)!=null&&W.ok?`${t.modelInfo.model} · ${t.modelInfo.parameterSize} · ${t.modelInfo.quantization}`:"Ollama offline"]}),re.jsxs("div",{className:"topbar-actions",children:[u&&(k.recording||k.transcribing||k.speaking)&&re.jsx("span",{className:"voice-state",children:k.recording?"● hört zu":k.transcribing?"… transkribiert":"🔊 spricht"}),re.jsx("button",{className:`btn-settings ${u?"toggled":""}`,onClick:()=>{u&&(k.cancelSpeech(),k.stopRecording()),E(!u)},title:"Sprachmodus: Antworten werden vorgelesen, danach wird automatisch wieder zugehört",children:u?"🔊 Stimme: an":"🔇 Stimme: aus"}),re.jsx("button",{className:"btn-settings",onClick:()=>l(L=>!L),children:"⚙ Einstellungen"})]})]}),r&&re.jsxs("section",{className:"settings-panel",children:[re.jsxs("label",{className:"setting-row",children:[re.jsx("span",{children:"Modell"}),re.jsxs("select",{className:"provider-select",value:t.options.provider,onChange:L=>t.setOptions({provider:L.target.value}),children:[re.jsx("option",{value:"ollama",children:"Lokal: qwen3.5 (Ollama)"}),re.jsx("option",{value:"openrouter",children:"OpenRouter (Cloud)"})]})]}),t.options.provider==="openrouter"&&re.jsxs("label",{className:"setting-row column",children:[re.jsxs("span",{children:["OpenRouter-Modell (",p.length," verfügbar)"]}),re.jsx("input",{list:"or-models",value:t.options.openrouterModel,placeholder:"z. B. anthropic/claude-sonnet-4.5",onChange:L=>t.setOptions({openrouterModel:L.target.value})}),re.jsx("datalist",{id:"or-models",children:p.map(L=>re.jsxs("option",{value:L.id,children:[L.name," · ",L.promptPrice===0?"gratis":`$${L.promptPrice.toFixed(2)}/M`]},L.id))})]}),t.options.provider==="ollama"&&re.jsxs("label",{className:"setting-row checkbox",children:[re.jsx("input",{type:"checkbox",checked:t.options.think,onChange:L=>t.setOptions({think:L.target.checked})}),re.jsx("span",{children:"Thinking-Mode (Modell denkt sichtbar vor der Antwort)"})]}),re.jsxs("label",{className:"setting-row checkbox",children:[re.jsx("input",{type:"checkbox",checked:t.options.tools,onChange:L=>t.setOptions({tools:L.target.checked})}),re.jsxs("span",{children:["Werkzeuge (",G.length>0?G.join(", "):"keine geladen",")"]})]}),re.jsxs("label",{className:"setting-row",children:[re.jsxs("span",{children:["Temperature: ",t.options.temperature.toFixed(2)]}),re.jsx("input",{type:"range",min:0,max:1.5,step:.05,value:t.options.temperature,onChange:L=>t.setOptions({temperature:Number(L.target.value)})})]}),re.jsxs("label",{className:"setting-row",children:[re.jsxs("span",{children:["Max. Tokens: ",t.options.numPredict]}),re.jsx("input",{type:"range",min:256,max:8192,step:256,value:t.options.numPredict,onChange:L=>t.setOptions({numPredict:Number(L.target.value)})})]}),re.jsxs("label",{className:"setting-row column",children:[re.jsx("span",{children:"System-Prompt"}),re.jsx("textarea",{rows:3,placeholder:"Optional: Verhalten des Modells steuern …",value:t.systemPrompt,onChange:L=>t.setSystemPrompt(L.target.value)})]})]}),re.jsxs("div",{className:"messages",ref:i,children:[t.messages.length===0&&re.jsxs("div",{className:"welcome",children:[re.jsx("div",{className:"welcome-title",children:"▸ agenttwo-tools"}),re.jsx("p",{children:"Echtzeit-Chat mit lokalem Qwen3 über Ollama — per Tastatur oder Stimme (Whisper STT + Piper TTS, alles lokal)."}),re.jsx("p",{className:"hint",children:"🎙 für Sprachnachricht · 🔊 Stimme an für freihändigen Dialog"})]}),t.messages.map(L=>re.jsx(u0,{message:L,toolEvents:t.toolEvents[L.id]},L.id))]}),k.error&&re.jsxs("div",{className:"voice-error",children:[k.error,re.jsx("button",{onClick:()=>k.setError(null),children:"✕"})]}),re.jsx(f0,{streaming:t.streaming,disabled:!t.activeId,recording:k.recording,transcribing:k.transcribing,injectedText:s,onInjected:()=>c(null),onSend:C,onAbort:Z,onMicToggle:ee})]})]})}Uh.createRoot(document.getElementById("root")).render(re.jsx(Mh.StrictMode,{children:re.jsx(d0,{})})); diff --git a/web/dist/assets/index-DFQmRKNP.css b/web/dist/assets/index-BvIjEji7.css similarity index 93% rename from web/dist/assets/index-DFQmRKNP.css rename to web/dist/assets/index-BvIjEji7.css index 8f8ec03..ff8b0a3 100644 --- a/web/dist/assets/index-DFQmRKNP.css +++ b/web/dist/assets/index-BvIjEji7.css @@ -7,4 +7,4 @@ pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5p Outdated base version: https://github.com/primer/github-syntax-dark Current colors taken from GitHub's CSS -*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}:root{--bg: #0a0f0c;--bg-panel: #0e1511;--bg-elevated: #121b15;--border: #1e2c23;--text: #d4e4d8;--text-dim: #7a9484;--accent: #3ddc84;--accent-dim: #2a9a5f;--accent-warm: #ffb454;--user-bg: #16241c;--mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--mono);font-size:14px;line-height:1.55}.app{display:flex;height:100%}.sidebar{width:250px;flex-shrink:0;background:var(--bg-panel);border-right:1px solid var(--border);display:flex;flex-direction:column}.sidebar-header{padding:16px 14px;border-bottom:1px solid var(--border)}.brand{font-weight:700;letter-spacing:.04em;color:var(--accent);margin-bottom:12px}.brand-prompt{animation:blink 1.2s steps(2) infinite}@keyframes blink{50%{opacity:.25}}.btn-new,.btn-settings,.btn-send{font-family:inherit;font-size:13px;background:transparent;color:var(--accent);border:1px solid var(--accent-dim);border-radius:6px;padding:7px 12px;cursor:pointer;transition:background .15s,border-color .15s}.btn-new{width:100%}.btn-new:hover,.btn-settings:hover{background:#3ddc8414;border-color:var(--accent)}.session-list{overflow-y:auto;flex:1;padding:8px}.empty-hint{color:var(--text-dim);padding:10px;font-size:13px}.session-item{display:flex;align-items:center;gap:6px;padding:8px 10px;border-radius:6px;cursor:pointer;color:var(--text-dim);margin-bottom:2px}.session-item:hover{background:var(--bg-elevated);color:var(--text)}.session-item.active{background:var(--user-bg);color:var(--accent)}.session-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.session-delete{background:none;border:none;color:var(--text-dim);cursor:pointer;opacity:0;font-size:12px}.session-item:hover .session-delete{opacity:1}.session-delete:hover{color:#ff6b6b}.main{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;border-bottom:1px solid var(--border);background:var(--bg-panel)}.model-badge{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-dim)}.status-dot{width:8px;height:8px;border-radius:50%;background:#555}.status-dot.on{background:var(--accent);box-shadow:0 0 6px var(--accent)}.status-dot.off{background:#ff6b6b}.settings-panel{padding:14px 20px;border-bottom:1px solid var(--border);background:var(--bg-elevated);display:flex;flex-direction:column;gap:12px}.setting-row{display:flex;align-items:center;gap:14px;font-size:13px;color:var(--text-dim)}.setting-row.column{flex-direction:column;align-items:stretch}.setting-row input[type=range]{flex:1;accent-color:var(--accent)}.setting-row textarea,.provider-select,.settings-panel input[list]{font-family:inherit;background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:8px 10px}.setting-row textarea{resize:vertical}.provider-select{min-width:220px}.messages{flex:1;overflow-y:auto;padding:24px 20px;scroll-behavior:smooth}.welcome{max-width:640px;margin:80px auto;text-align:center;color:var(--text-dim)}.welcome-title{font-size:22px;color:var(--accent);margin-bottom:12px}.welcome .hint{margin-top:8px;font-size:13px}.msg{max-width:760px;margin:0 auto 20px}.msg-role{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);margin-bottom:6px}.msg-user .msg-role{color:var(--accent)}.user-content{background:var(--user-bg);border:1px solid var(--border);border-radius:10px;padding:12px 14px;white-space:pre-wrap;word-break:break-word}.markdown{word-break:break-word}.markdown p{margin:0 0 10px}.markdown p:last-child{margin-bottom:0}.markdown ul,.markdown ol{margin:0 0 10px 22px}.markdown li{margin-bottom:4px}.markdown h1,.markdown h2,.markdown h3{margin:16px 0 8px;color:var(--accent)}.markdown blockquote{border-left:3px solid var(--accent-dim);padding-left:12px;color:var(--text-dim);margin:0 0 10px}.markdown a{color:var(--accent)}.markdown table{border-collapse:collapse;margin-bottom:10px}.markdown th,.markdown td{border:1px solid var(--border);padding:5px 10px;font-size:13px}.markdown :not(pre)>code{background:var(--bg-elevated);border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-size:13px;color:var(--accent-warm)}.markdown pre{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:12px 14px;overflow-x:auto;margin-bottom:10px;font-size:13px}.thinking{margin-bottom:8px;border:1px dashed var(--border);border-radius:8px}.thinking-toggle{width:100%;text-align:left;background:none;border:none;font-family:inherit;font-size:12px;color:var(--text-dim);padding:8px 10px;cursor:pointer}.thinking-toggle:hover{color:var(--accent-warm)}.caret{display:inline-block;transition:transform .15s}.caret.rotated{transform:rotate(90deg)}.thinking-body{padding:4px 12px 10px;font-size:12.5px;color:var(--text-dim);white-space:pre-wrap;max-height:260px;overflow-y:auto}.composer{display:flex;gap:10px;padding:14px 20px 18px;border-top:1px solid var(--border);background:var(--bg-panel);align-items:stretch}.btn-mic{width:46px;flex-shrink:0;font-size:18px;background:transparent;border:1px solid var(--border);border-radius:8px;cursor:pointer;color:var(--text-dim);transition:border-color .15s,color .15s,box-shadow .15s}.btn-mic:hover:not(:disabled){border-color:var(--accent-dim);color:var(--accent)}.btn-mic.recording{border-color:#ff6b6b;color:#ff6b6b;animation:pulse 1.2s ease-in-out infinite}.btn-mic.transcribing{border-color:var(--accent-warm);color:var(--accent-warm)}@keyframes pulse{50%{box-shadow:0 0 0 5px #ff6b6b26}}.voice-state{font-size:12px;color:var(--accent-warm);white-space:nowrap}.topbar-actions{display:flex;align-items:center;gap:12px}.btn-settings.toggled{color:var(--accent-warm);border-color:var(--accent-warm)}.voice-error{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 20px 8px;padding:8px 12px;font-size:13px;color:#ffb454;background:#ffb45414;border:1px solid rgba(255,180,84,.3);border-radius:8px}.voice-error button{background:none;border:none;color:inherit;cursor:pointer}.composer textarea{flex:1;resize:none;font-family:inherit;font-size:14px;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:11px 14px;min-height:44px;max-height:180px}.composer textarea:focus{outline:none;border-color:var(--accent-dim)}.composer textarea::placeholder{color:#4d6355}.btn-send{min-width:96px;align-self:stretch}.btn-send:disabled{opacity:.4;cursor:not-allowed}.btn-send:not(:disabled):hover{background:#3ddc841a}.btn-send.stop{color:var(--accent-warm);border-color:var(--accent-warm)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-track{background:transparent}.composer.dragging{outline:2px dashed var(--accent, #3fb950);outline-offset:-4px}.composer-row{display:flex;align-items:flex-end;gap:10px;width:100%}.attachments{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:0 0 8px}.attachment{position:relative;width:64px;height:64px}.attachment img{width:100%;height:100%;object-fit:cover;border-radius:6px;border:1px solid var(--border, #30363d)}.attachment-remove{position:absolute;top:-6px;right:-6px;width:20px;height:20px;line-height:18px;padding:0;border-radius:50%;border:1px solid var(--border, #30363d);background:var(--bg, #0d1117);color:var(--fg, #c9d1d9);cursor:pointer}.attachment-error{font-size:.85em;color:#f85149}.btn-attach{flex:0 0 auto;background:transparent;border:1px solid var(--border, #30363d);border-radius:8px;padding:8px 10px;cursor:pointer;color:inherit}.btn-attach:disabled{opacity:.4;cursor:default}.msg-images{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0}.msg-images img{max-width:min(320px,100%);max-height:320px;border-radius:8px;border:1px solid var(--border, #30363d)} +*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}:root{--bg: #0a0f0c;--bg-panel: #0e1511;--bg-elevated: #121b15;--border: #1e2c23;--text: #d4e4d8;--text-dim: #7a9484;--accent: #3ddc84;--accent-dim: #2a9a5f;--accent-warm: #ffb454;--user-bg: #16241c;--mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--mono);font-size:14px;line-height:1.55}.app{display:flex;height:100%}.sidebar{width:250px;flex-shrink:0;background:var(--bg-panel);border-right:1px solid var(--border);display:flex;flex-direction:column}.sidebar-header{padding:16px 14px;border-bottom:1px solid var(--border)}.brand{font-weight:700;letter-spacing:.04em;color:var(--accent);margin-bottom:12px}.brand-prompt{animation:blink 1.2s steps(2) infinite}@keyframes blink{50%{opacity:.25}}.btn-new,.btn-settings,.btn-send{font-family:inherit;font-size:13px;background:transparent;color:var(--accent);border:1px solid var(--accent-dim);border-radius:6px;padding:7px 12px;cursor:pointer;transition:background .15s,border-color .15s}.btn-new{width:100%}.btn-new:hover,.btn-settings:hover{background:#3ddc8414;border-color:var(--accent)}.session-list{overflow-y:auto;flex:1;padding:8px}.empty-hint{color:var(--text-dim);padding:10px;font-size:13px}.session-item{display:flex;align-items:center;gap:6px;padding:8px 10px;border-radius:6px;cursor:pointer;color:var(--text-dim);margin-bottom:2px}.session-item:hover{background:var(--bg-elevated);color:var(--text)}.session-item.active{background:var(--user-bg);color:var(--accent)}.session-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.session-delete{background:none;border:none;color:var(--text-dim);cursor:pointer;opacity:0;font-size:12px}.session-item:hover .session-delete{opacity:1}.session-delete:hover{color:#ff6b6b}.main{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;border-bottom:1px solid var(--border);background:var(--bg-panel)}.model-badge{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-dim)}.status-dot{width:8px;height:8px;border-radius:50%;background:#555}.status-dot.on{background:var(--accent);box-shadow:0 0 6px var(--accent)}.status-dot.off{background:#ff6b6b}.settings-panel{padding:14px 20px;border-bottom:1px solid var(--border);background:var(--bg-elevated);display:flex;flex-direction:column;gap:12px}.setting-row{display:flex;align-items:center;gap:14px;font-size:13px;color:var(--text-dim)}.setting-row.column{flex-direction:column;align-items:stretch}.setting-row input[type=range]{flex:1;accent-color:var(--accent)}.setting-row textarea,.provider-select,.settings-panel input[list]{font-family:inherit;background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:8px 10px}.setting-row textarea{resize:vertical}.provider-select{min-width:220px}.messages{flex:1;overflow-y:auto;padding:24px 20px;scroll-behavior:smooth}.welcome{max-width:640px;margin:80px auto;text-align:center;color:var(--text-dim)}.welcome-title{font-size:22px;color:var(--accent);margin-bottom:12px}.welcome .hint{margin-top:8px;font-size:13px}.msg{max-width:760px;margin:0 auto 20px}.msg-role{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);margin-bottom:6px}.msg-user .msg-role{color:var(--accent)}.user-content{background:var(--user-bg);border:1px solid var(--border);border-radius:10px;padding:12px 14px;white-space:pre-wrap;word-break:break-word}.markdown{word-break:break-word}.markdown p{margin:0 0 10px}.markdown p:last-child{margin-bottom:0}.markdown ul,.markdown ol{margin:0 0 10px 22px}.markdown li{margin-bottom:4px}.markdown h1,.markdown h2,.markdown h3{margin:16px 0 8px;color:var(--accent)}.markdown blockquote{border-left:3px solid var(--accent-dim);padding-left:12px;color:var(--text-dim);margin:0 0 10px}.markdown a{color:var(--accent)}.markdown table{border-collapse:collapse;margin-bottom:10px}.markdown th,.markdown td{border:1px solid var(--border);padding:5px 10px;font-size:13px}.markdown :not(pre)>code{background:var(--bg-elevated);border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-size:13px;color:var(--accent-warm)}.markdown pre{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:12px 14px;overflow-x:auto;margin-bottom:10px;font-size:13px}.thinking{margin-bottom:8px;border:1px dashed var(--border);border-radius:8px}.thinking-toggle{width:100%;text-align:left;background:none;border:none;font-family:inherit;font-size:12px;color:var(--text-dim);padding:8px 10px;cursor:pointer}.thinking-toggle:hover{color:var(--accent-warm)}.caret{display:inline-block;transition:transform .15s}.caret.rotated{transform:rotate(90deg)}.thinking-body{padding:4px 12px 10px;font-size:12.5px;color:var(--text-dim);white-space:pre-wrap;max-height:260px;overflow-y:auto}.composer{display:flex;gap:10px;padding:14px 20px 18px;border-top:1px solid var(--border);background:var(--bg-panel);align-items:stretch}.btn-mic{width:46px;flex-shrink:0;font-size:18px;background:transparent;border:1px solid var(--border);border-radius:8px;cursor:pointer;color:var(--text-dim);transition:border-color .15s,color .15s,box-shadow .15s}.btn-mic:hover:not(:disabled){border-color:var(--accent-dim);color:var(--accent)}.btn-mic.recording{border-color:#ff6b6b;color:#ff6b6b;animation:pulse 1.2s ease-in-out infinite}.btn-mic.transcribing{border-color:var(--accent-warm);color:var(--accent-warm)}@keyframes pulse{50%{box-shadow:0 0 0 5px #ff6b6b26}}.voice-state{font-size:12px;color:var(--accent-warm);white-space:nowrap}.topbar-actions{display:flex;align-items:center;gap:12px}.btn-settings.toggled{color:var(--accent-warm);border-color:var(--accent-warm)}.voice-error{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 20px 8px;padding:8px 12px;font-size:13px;color:#ffb454;background:#ffb45414;border:1px solid rgba(255,180,84,.3);border-radius:8px}.voice-error button{background:none;border:none;color:inherit;cursor:pointer}.composer textarea{flex:1;resize:none;font-family:inherit;font-size:14px;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:11px 14px;min-height:44px;max-height:180px}.composer textarea:focus{outline:none;border-color:var(--accent-dim)}.composer textarea::placeholder{color:#4d6355}.btn-send{min-width:96px;align-self:stretch}.btn-send:disabled{opacity:.4;cursor:not-allowed}.btn-send:not(:disabled):hover{background:#3ddc841a}.btn-send.stop{color:var(--accent-warm);border-color:var(--accent-warm)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-track{background:transparent}.composer.dragging{outline:2px dashed var(--accent, #3fb950);outline-offset:-4px}.composer-row{display:flex;align-items:flex-end;gap:10px;width:100%}.attachments{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:0 0 8px}.attachment{position:relative;width:64px;height:64px}.attachment img{width:100%;height:100%;object-fit:cover;border-radius:6px;border:1px solid var(--border, #30363d)}.attachment-remove{position:absolute;top:-6px;right:-6px;width:20px;height:20px;line-height:18px;padding:0;border-radius:50%;border:1px solid var(--border, #30363d);background:var(--bg, #0d1117);color:var(--fg, #c9d1d9);cursor:pointer}.attachment-error{font-size:.85em;color:#f85149}.btn-attach{flex:0 0 auto;background:transparent;border:1px solid var(--border, #30363d);border-radius:8px;padding:8px 10px;cursor:pointer;color:inherit}.btn-attach:disabled{opacity:.4;cursor:default}.msg-images{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0}.msg-images img{max-width:min(320px,100%);max-height:320px;border-radius:8px;border:1px solid var(--border, #30363d)}.tool-events{display:flex;flex-direction:column;gap:4px;margin:4px 0 10px}.tool-event{display:flex;align-items:center;gap:8px;font-size:.85em;padding:4px 10px;border-left:2px solid var(--accent, #3fb950);background:#3fb9500f;border-radius:0 4px 4px 0;color:var(--fg-dim, #8b949e)}.tool-event.failed{border-left-color:#f85149;background:#f851490f}.tool-event code{color:var(--fg, #c9d1d9);font-weight:600}.tool-args{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.75}.tool-time{flex:0 0 auto;opacity:.6;font-variant-numeric:tabular-nums} diff --git a/web/dist/index.html b/web/dist/index.html index 9c582e0..6a98efb 100644 --- a/web/dist/index.html +++ b/web/dist/index.html @@ -4,8 +4,8 @@ agenttwo-tools — qwen3 mit Vision - - + +
diff --git a/web/src/App.tsx b/web/src/App.tsx index f1dae87..1c48756 100644 --- a/web/src/App.tsx +++ b/web/src/App.tsx @@ -129,6 +129,14 @@ export default function App() { wasStreamingRef.current = chat.streaming; }, [chat.streaming, voiceMode, voice]); + const [toolNames, setToolNames] = useState([]); + useEffect(() => { + fetch("/api/tools") + .then((r) => r.json()) + .then((d: { tools?: string[] }) => setToolNames(d.tools ?? [])) + .catch(() => setToolNames([])); + }, []); + const handleSend = useCallback( (text: string, images: string[] = []) => { voice.cancelSpeech(); @@ -255,6 +263,16 @@ export default function App() { Thinking-Mode (Modell denkt sichtbar vor der Antwort) )} +