From 9bce768f95951ffa30b14d3040a5dcd540c8c3ad Mon Sep 17 00:00:00 2001 From: Jeuner <62662523+Jeuners@users.noreply.github.com> Date: Thu, 27 Aug 2026 21:41:35 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20Ged=C3=A4chtnis=20mit=20Append-Only-Log?= =?UTF-8?q?,=20Traumphase=20und=20Ankerpunkten?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - memory_events als append-only Log (nur INSERT), daraus Zustand deterministisch rekonstruierbar (fold/rebuild) - Traumphase konsolidiert Log in Ankerpunkte: LLM-Extraktion mit Heuristik-Fallback, Dedupe über Wort-Ähnlichkeit, Decay auf ungepinnten Ankern - einstellbares Gedächtnis-Fenster (Default 10 Schritte) statt hartkodiertem slice(-24) - wichtigste Ankerpunkte werden als System-Kontext eingespielt - neue Werkzeuge remember (schreibend, gepinnt) und recall - Gedächtnis-Panel im Frontend: Ankerliste, Pinnen, Traumphase manuell auslösen, Rekonstruktion - Eval-Skript: npm run memory:eval --workspace server --- README.md | 47 ++ server/package.json | 3 +- server/scripts/memory-eval.ts | 95 ++++ server/src/index.ts | 142 +++++- server/src/memory-text.ts | 133 ++++++ server/src/memory.ts | 405 ++++++++++++++++++ server/src/ollama.ts | 4 +- server/src/tools/index.ts | 21 +- server/src/tools/recall.ts | 31 ++ server/src/tools/remember.ts | 41 ++ server/src/tools/types.ts | 2 + server/tsconfig.json | 2 +- web/dist/assets/index-BNj3u6UE.js | 74 ---- web/dist/assets/index-BvIjR1bZ.js | 74 ++++ ...{index-BvIjEji7.css => index-CKaNlN-w.css} | 2 +- web/dist/favicon.svg | 7 + web/dist/index.html | 6 +- web/src/App.tsx | 53 +++ web/src/components/MemoryPanel.tsx | 146 +++++++ web/src/styles.css | 159 +++++++ web/src/types.ts | 38 ++ web/src/useChat.ts | 3 + 22 files changed, 1388 insertions(+), 100 deletions(-) create mode 100644 server/scripts/memory-eval.ts create mode 100644 server/src/memory-text.ts create mode 100644 server/src/memory.ts create mode 100644 server/src/tools/recall.ts create mode 100644 server/src/tools/remember.ts delete mode 100644 web/dist/assets/index-BNj3u6UE.js create mode 100644 web/dist/assets/index-BvIjR1bZ.js rename web/dist/assets/{index-BvIjEji7.css => index-CKaNlN-w.css} (69%) create mode 100644 web/dist/favicon.svg create mode 100644 web/src/components/MemoryPanel.tsx diff --git a/README.md b/README.md index 56859b2..d35ff61 100644 --- a/README.md +++ b/README.md @@ -129,9 +129,56 @@ sich das in den Einstellungen. | `calculate` | Arithmetik mit eigenem Parser | | `read_file` | Textdatei unterhalb des Projektverzeichnisses lesen | | `list_files` | Verzeichnis auflisten | +| `remember` | Wichtigen Punkt als gepinnten Ankerpunkt ins Gedächtnis schreiben | +| `recall` | Gedächtnis (Ankerpunkte) durchsuchen | Aktuelle Liste: `curl -s http://localhost:8788/api/tools` +## Gedächtnis (Chat-Memory) + +Das Gedächtnis hat drei Schichten: + +| Schicht | Speicher | Zweck | +|---|---|---| +| Arbeitsgedächtnis | Nachrichtenfenster | Einstellbar (Default 10 Schritte), geht ans Modell | +| Episodisch | `memory_events` | Append-Only-Log: nur INSERT, nie UPDATE/DELETE | +| Semantisch | `anchors` | Ankerpunkte, destilliert in der Traumphase | + +Das Fenster ist in den Einstellungen per Slider einstellbar (2–100 Schritte). + +### Traumphase + +Die Traumphase konsolidiert neue Log-Einträge in Ankerpunkte — bevorzugt per +LLM-Extraktion (JSON-Format, Temperatur 0.2), mit einer Regex-Heuristik als +Fallback. Auslöser: + +- automatisch nach 3 Minuten Inaktivität oder wenn 10 Schritte unkonsolidiert sind +- manuell über 🧠 **Gedächtnis** → „Traumphase jetzt" + +Ankerpunkte haben eine Wichtigkeit (0–1), eine Art (`fact`, `decision`, +`preference`, `entity`, `open_question`) und einen Ursprung (`dream`, `model`, +`heuristic`, `test`). Ähnliche Anker werden zusammengeführt (Wort-Ähnlichkeit +≥ 0.5, `hits` steigt). Bei jedem Traumlauf verfallen ungepinnte Anker +(Importance × 0.9); unter 0.15 und ohne Treffer werden sie gelöscht. Gepinnte +(★) bleiben dauerhaft. + +Die wichtigsten Anker werden als System-Kontext eingespielt (Budget ~1200 +Zeichen) — das Modell beantwortet dann Fragen aus Inhalten, die nie im +sichtbaren Chatverlauf standen. + +### Rekonstruktion + +Weil das Log append-only ist, lässt sich der Zustand jederzeit deterministisch +aus Seq 0 neu falten: 🧠 **Gedächtnis** → „Aus Log rekonstruieren" (gepinnte +Anker bleiben erhalten). Die Eval der Heuristik und des Dream-Parsers: + +```bash +npm run memory:eval --workspace server +``` + +Endpunkte: `GET /api/sessions/:id/memory`, `POST /api/sessions/:id/dream`, +`POST /api/sessions/:id/memory/rebuild`, `PATCH|DELETE /api/anchors/:id`. + ### Grenzen Alle Werkzeuge sind **ausschließlich lesend**. Es gibt nichts, was schreibt, diff --git a/server/package.json b/server/package.json index 48c3d56..57e4901 100644 --- a/server/package.json +++ b/server/package.json @@ -6,7 +6,8 @@ "scripts": { "dev": "tsx watch src/index.ts", "start": "tsx src/index.ts", - "typecheck": "tsc --noEmit" + "typecheck": "tsc --noEmit", + "memory:eval": "tsx scripts/memory-eval.ts" }, "dependencies": { "@fastify/cors": "^10.0.1", diff --git a/server/scripts/memory-eval.ts b/server/scripts/memory-eval.ts new file mode 100644 index 0000000..0219fa8 --- /dev/null +++ b/server/scripts/memory-eval.ts @@ -0,0 +1,95 @@ +import { heuristicAnchors, parseDreamAnchors, similarity } from "../src/memory-text.js"; + +let pass = 0; +let fail = 0; + +function check(name: string, cond: boolean) { + if (cond) { + pass++; + console.log(` ok ${name}`); + } else { + fail++; + console.error(`FAIL ${name}`); + } +} + +console.log("Heuristik:"); +check( + "Merke-Satz wird als Fakt erkannt", + heuristicAnchors("Bitte merke dir: Das Deployment läuft über Coolify.").some( + (a) => a.kind === "fact" && a.importance >= 0.8, + ), +); +check( + "Namensnennung wird als Fakt erkannt", + heuristicAnchors("Ich heiße Jonas und wohne in Bonn.").some((a) => a.kind === "fact"), +); +check( + "Präferenz wird erkannt", + heuristicAnchors("Ich mag keine Benachrichtigungen am Abend.").some( + (a) => a.kind === "preference", + ), +); +check( + "Entscheidung wird erkannt", + heuristicAnchors("Wir machen Code-Reviews von nun an immer paarweise.").some( + (a) => a.kind === "decision", + ), +); +check( + "Offene Frage wird erkannt", + heuristicAnchors("Der Name der neuen API ist noch unklar.").some( + (a) => a.kind === "open_question", + ), +); +check( + "Smalltalk bleibt außen vor", + heuristicAnchors("Hallo, wie geht es dir heute? Mir geht es gut, danke!").length === 0, +); +check( + "Leerer Text liefert nichts", + heuristicAnchors("").length === 0, +); + +console.log("Dedupe (Similarity):"); +check( + "Umformulierte Wiederholung liegt über Schwelle", + similarity( + "Ich heiße Jonas und wohne in Bonn", + "Mein Name ist Jonas, ich wohne in Bonn", + ) >= 0.5, +); +check( + "Fremde Sätze liegen unter Schwelle", + similarity("Ich mag keine Benachrichtigungen", "Das Deployment läuft über Coolify") < 0.4, +); + +console.log("Dream-Parser:"); +check( + "Gültiges anchors-JSON wird geparst", + parseDreamAnchors( + '{"anchors":[{"text":"Nutzer wohnt in Bonn","kind":"fact","importance":0.9}]}', + ).length === 1, +); +check( + "Bekanntes Kind bleibt erhalten, unbekanntes wird fact", + parseDreamAnchors( + '{"anchors":[{"text":"Wir nutzen pnpm","kind":"decision"},{"text":"Server heißt alfa","kind":"seltsam"}]}', + )[1]?.kind === "fact", +); +check( + "Wichtigkeit wird auf 0.1–1 begrenzt", + parseDreamAnchors('{"anchors":[{"text":"Sehr wichtig alles","importance":99}]}')[0] + ?.importance === 1, +); +check( + "Müll wird abgewiesen", + parseDreamAnchors("kein json hier") .length === 0, +); +check( + "Text in JSON-Wrapper wird noch gefunden", + parseDreamAnchors('Sure! Here you go: {"anchors":[{"text":"API-Key liegt im Vault","kind":"fact","importance":0.8}]}').length === 1, +); + +console.log(`\n${pass} bestanden, ${fail} fehlgeschlagen`); +process.exit(fail > 0 ? 1 : 0); diff --git a/server/src/index.ts b/server/src/index.ts index 4636db1..38a5588 100644 --- a/server/src/index.ts +++ b/server/src/index.ts @@ -5,6 +5,7 @@ import type { IncomingMessage } from "node:http"; import { readFileSync } from "node:fs"; import path from "node:path"; import * as dbmod from "./db.js"; +import * as mem from "./memory.js"; import { streamChat, type OllamaOptions } from "./ollama.js"; import { transcribeAudio, synthesizeSpeech, MAX_AUDIO_BYTES } from "./voice.js"; import { @@ -31,6 +32,38 @@ try { const PORT = Number(process.env.PORT ?? 8788); const OLLAMA_URL = process.env.OLLAMA_URL ?? "http://localhost:11434"; +const MODEL = process.env.MODEL ?? "qwen3.5:latest"; + +const DREAM_IDLE_MS = 180_000; +const DREAM_BATCH = 10; +const dreamTimers = new Map>(); +const activeDreams = new Set(); + +function runDream(sessionId: string): Promise { + if (activeDreams.has(sessionId)) return Promise.resolve(null); + activeDreams.add(sessionId); + clearTimeout(dreamTimers.get(sessionId)); + dreamTimers.delete(sessionId); + return mem + .dream(sessionId, { ollamaUrl: OLLAMA_URL, model: MODEL }) + .then((result) => { + broadcast({ type: "memory-updated", sessionId, result }); + return result; + }) + .catch((err) => { + app.log.error({ err }, "Traumphase fehlgeschlagen"); + return null; + }) + .finally(() => activeDreams.delete(sessionId)); +} + +function scheduleDream(sessionId: string) { + clearTimeout(dreamTimers.get(sessionId)); + dreamTimers.set( + sessionId, + setTimeout(() => void runDream(sessionId), DREAM_IDLE_MS), + ); +} const app = Fastify({ logger: true, bodyLimit: MAX_AUDIO_BYTES }); @@ -64,7 +97,7 @@ app.get("/api/model", async () => { const res = await fetch(`${OLLAMA_URL}/api/show`, { method: "POST", headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ name: process.env.MODEL ?? "qwen3.5:latest" }), + body: JSON.stringify({ name: MODEL }), }); if (!res.ok) return { ok: false, error: `Ollama HTTP ${res.status}` }; const data = (await res.json()) as { @@ -73,7 +106,7 @@ app.get("/api/model", async () => { }; return { ok: true, - model: process.env.MODEL ?? "qwen3.5:latest", + model: MODEL, parameterSize: data.details?.parameter_size, quantization: data.details?.quantization_level, capabilities: data.capabilities ?? [], @@ -94,11 +127,56 @@ app.get("/api/sessions/:id/messages", async (req, reply) => { }); app.delete("/api/sessions/:id", async (req) => { const { id } = req.params as { id: string }; + clearTimeout(dreamTimers.get(id)); + dreamTimers.delete(id); dbmod.deleteSession(id); + mem.deleteSessionMemory(id); broadcast({ type: "session-deleted", id }); return { ok: true }; }); +// --- Gedächtnis --- +app.get("/api/sessions/:id/memory", async (req, reply) => { + const { id } = req.params as { id: string }; + if (!dbmod.getSession(id)) return reply.code(404).send({ error: "not found" }); + return { state: mem.getMemoryState(id), anchors: mem.listAnchors(id) }; +}); + +app.post("/api/sessions/:id/dream", async (req, reply) => { + const { id } = req.params as { id: string }; + if (!dbmod.getSession(id)) return reply.code(404).send({ error: "not found" }); + const result = await mem.dream(id, { ollamaUrl: OLLAMA_URL, model: MODEL }); + broadcast({ type: "memory-updated", sessionId: id, result }); + return result; +}); + +app.post("/api/sessions/:id/memory/rebuild", async (req, reply) => { + const { id } = req.params as { id: string }; + if (!dbmod.getSession(id)) return reply.code(404).send({ error: "not found" }); + const result = mem.rebuildMemory(id); + broadcast({ type: "memory-updated", sessionId: id, result }); + return { ok: true, ...result }; +}); + +app.patch("/api/anchors/:id", async (req, reply) => { + const id = Number((req.params as { id: string }).id); + const { pinned } = (req.body ?? {}) as { pinned?: boolean }; + if (!Number.isInteger(id) || typeof pinned !== "boolean") { + return reply.code(400).send({ error: "id/pinned fehlt" }); + } + if (!mem.setAnchorPinned(id, pinned)) { + return reply.code(404).send({ error: "not found" }); + } + return { ok: true }; +}); + +app.delete("/api/anchors/:id", async (req, reply) => { + const id = Number((req.params as { id: string }).id); + if (!Number.isInteger(id)) return reply.code(400).send({ error: "id ungültig" }); + if (!mem.deleteAnchor(id)) return reply.code(404).send({ error: "not found" }); + return { ok: true }; +}); + // --- Voice --- app.post("/api/stt", async (req, reply) => { if (!sttLimiter(req.ip)) { @@ -165,15 +243,21 @@ interface ChatOptionsPayload { provider?: string; openrouterModel?: string; tools?: boolean; + memorySteps?: number; + memoryAnchors?: boolean; + dreamAuto?: boolean; } function parseOptions(raw: unknown): OllamaOptions & { provider: "ollama" | "openrouter"; openrouterModel: string; + memorySteps: number; + memoryAnchors: boolean; + dreamAuto: boolean; } { const o = (raw ?? {}) as Partial; return { - model: process.env.MODEL ?? "qwen3.5:latest", + model: MODEL, think: o.think !== false, tools: o.tools !== false, temperature: clamp(Number(o.temperature ?? 0.7), 0, 2), @@ -184,6 +268,9 @@ function parseOptions(raw: unknown): OllamaOptions & { /^[\w./:-]{3,120}$/.test(o.openrouterModel) ? o.openrouterModel : "anthropic/claude-sonnet-4.5", + memorySteps: Math.min(Math.max(Math.round(Number(o.memorySteps ?? 10)), 2), 100), + memoryAnchors: o.memoryAnchors !== false, + dreamAuto: o.dreamAuto !== false, }; } @@ -246,13 +333,19 @@ wss.on("connection", (socket: WebSocket, _req: IncomingMessage) => { dbmod.renameSessionIfDefault(session.id, content || "Bild"); const userMsg = dbmod.insertMessage(session.id, "user", content, null, images); + mem.appendEvent(session.id, "message", { + role: "user", + content, + images: images.length, + }); socket.send(JSON.stringify({ type: "user-message", message: userMsg })); broadcast({ type: "sessions-changed" }); const opts = parseOptions(msg.options); + opts.sessionId = session.id; const history = dbmod .listMessages(session.id) - .slice(-24) + .slice(-opts.memorySteps) .map((m) => { const imgs = dbmod.parseImages(m); return imgs.length @@ -260,6 +353,15 @@ wss.on("connection", (socket: WebSocket, _req: IncomingMessage) => { : { role: m.role, content: m.content }; }); + const userSystem = + typeof msg.systemPrompt === "string" && msg.systemPrompt.trim() + ? (msg.systemPrompt as string) + : undefined; + const anchorBlock = opts.memoryAnchors + ? mem.anchorContextBlock(session.id) + : null; + const system = [userSystem, anchorBlock].filter(Boolean).join("\n\n") || undefined; + const assistantRow = dbmod.insertMessage(session.id, "assistant", ""); socket.send(JSON.stringify({ type: "assistant-start", message: assistantRow })); @@ -281,6 +383,12 @@ wss.on("connection", (socket: WebSocket, _req: IncomingMessage) => { }, onDone() {}, onToolCall(name: string, args: Record) { + mem.appendEvent(session.id, "tool_call", { + name, + args: JSON.parse(JSON.stringify(args, (_k, v) => + typeof v === "string" && v.length > 300 ? v.slice(0, 300) + "…" : v, + )), + }); socket.send( JSON.stringify({ type: "tool-call", @@ -305,9 +413,7 @@ wss.on("connection", (socket: WebSocket, _req: IncomingMessage) => { if (!apiKey) throw new Error("OPENROUTER_API_KEY nicht gesetzt (.env fehlt)"); await streamOpenRouter( history, - typeof msg.systemPrompt === "string" && msg.systemPrompt.trim() - ? (msg.systemPrompt as string) - : undefined, + system, { model: opts.openrouterModel, temperature: opts.temperature, @@ -318,17 +424,13 @@ wss.on("connection", (socket: WebSocket, _req: IncomingMessage) => { activeAbort.signal, ); } else { - await streamChat( - history, - typeof msg.systemPrompt === "string" && msg.systemPrompt.trim() - ? (msg.systemPrompt as string) - : undefined, - opts, - callbacks, - activeAbort.signal, - ); + await streamChat(history, system, opts, callbacks, activeAbort.signal); } dbmod.updateAssistantMessage(assistantRow.id, full.trim(), thinking.trim() || null); + mem.appendEvent(session.id, "message", { + role: "assistant", + content: full.trim().slice(0, 4000), + }); socket.send( JSON.stringify({ type: "done", @@ -337,6 +439,14 @@ wss.on("connection", (socket: WebSocket, _req: IncomingMessage) => { }), ); broadcast({ type: "sessions-changed" }); + if (opts.dreamAuto) { + const st = mem.getMemoryState(session.id); + if (st.last_seq - st.last_dream_seq >= DREAM_BATCH) { + void runDream(session.id); + } else { + scheduleDream(session.id); + } + } } catch (err) { const aborted = activeAbort.signal.aborted || diff --git a/server/src/memory-text.ts b/server/src/memory-text.ts new file mode 100644 index 0000000..21cfa1f --- /dev/null +++ b/server/src/memory-text.ts @@ -0,0 +1,133 @@ +export const ANCHOR_KINDS = [ + "fact", + "decision", + "preference", + "entity", + "open_question", +] as const; + +export type AnchorKind = (typeof ANCHOR_KINDS)[number]; + +export interface AnchorCandidate { + text: string; + kind: AnchorKind; + importance: number; +} + +const STOPWORDS = new Set([ + "der", "die", "das", "und", "ich", "ein", "eine", "einer", "ist", "nicht", + "zu", "mit", "auf", "für", "im", "in", "den", "dem", "des", "sich", "hat", + "haben", "sein", "wird", "werden", "von", "mir", "mich", "du", "er", "sie", + "es", "wir", "ihr", "aber", "auch", "dass", "wie", "bei", "aus", "bitte", + "dann", "noch", "schon", "wäre", "habe", "hatte", "kann", "muss", "soll", +]); + +export function normalizeText(s: string): string { + return s + .toLowerCase() + .replace(/[^\p{L}\p{N}\s]/gu, " ") + .replace(/\s+/g, " ") + .trim(); +} + +/** Jaccard-Ähnlichkeit auf Wortebene, Stoppwörter und Kurzwörter ignoriert. */ +export function similarity(a: string, b: string): number { + const wa = normalizeText(a) + .split(" ") + .filter((w) => w.length > 2 && !STOPWORDS.has(w)); + const wb = normalizeText(b) + .split(" ") + .filter((w) => w.length > 2 && !STOPWORDS.has(w)); + if (wa.length === 0 || wb.length === 0) return 0; + const setB = new Set(wb); + const inter = new Set(wa.filter((w) => setB.has(w))).size; + const union = new Set([...wa, ...wb]).size; + return union === 0 ? 0 : inter / union; +} + +const HEURISTICS: { pattern: RegExp; kind: AnchorKind; importance: number }[] = [ + { + pattern: /(merke (dir|dich)|vergiss (das )?nicht|denk dran|nicht vergessen)/i, + kind: "fact", + importance: 0.85, + }, + { + pattern: /^(ich hei(ß|ss)e|mein name ist|ich wohne (in|bei)|ich arbeite (als|bei|in)|meine e-?mail|meine telefonnummer|ich bin von beruf)/i, + kind: "fact", + importance: 0.9, + }, + { + pattern: /^(ich mag|ich mag (kein|keine)|ich bevorzuge|ich hasse|ich liebe|mir gef(ä|a)llt|mir gef(ä|a)llen (kein|keine))/i, + kind: "preference", + importance: 0.7, + }, + { + pattern: /^(wir (machen|nutzen|nehmen|entscheiden|bleiben)|ab jetzt|von nun an|regel:)/i, + kind: "decision", + importance: 0.75, + }, + { + pattern: /(offene frage|noch unklar|noch zu kl(ä|a)ren|ist ungekl(ä|a)rt|bleibt offen)/i, + kind: "open_question", + importance: 0.6, + }, +]; + +/** Satzweise Heuristik-Extraktion ohne LLM — Fallback und Erstfilter. */ +export function heuristicAnchors(text: string): AnchorCandidate[] { + const sentences = text + .split(/(?<=[.!?…])\s+|\n+/) + .map((s) => s.trim()) + .filter((s) => s.length >= 10 && s.length <= 240); + const out: AnchorCandidate[] = []; + for (const s of sentences) { + for (const h of HEURISTICS) { + if (h.pattern.test(s)) { + out.push({ text: s.slice(0, 240), kind: h.kind, importance: h.importance }); + break; + } + } + } + return out; +} + +function clampImportance(n: number): number { + if (!Number.isFinite(n)) return 0.5; + return Math.min(1, Math.max(0.1, n)); +} + +/** + * Parst die Traumphase-Antwort des Modells. Akzeptiert {"anchors":[…]} oder + * ein nacktes Array; kaputte Einträge werden still verworfen, nie geworfen. + */ +export function parseDreamAnchors(raw: string): AnchorCandidate[] { + let parsed: unknown; + try { + parsed = JSON.parse(raw); + } catch { + const m = raw.match(/\{[\s\S]*\}|\[[\s\S]*\]/); + if (!m) return []; + try { + parsed = JSON.parse(m[0]); + } catch { + return []; + } + } + const list = Array.isArray(parsed) + ? parsed + : (parsed as { anchors?: unknown } | null)?.anchors; + if (!Array.isArray(list)) return []; + const out: AnchorCandidate[] = []; + for (const item of list.slice(0, 8)) { + if (!item || typeof item !== "object" || Array.isArray(item)) continue; + const o = item as Record; + if (typeof o.text !== "string") continue; + const text = o.text.trim().slice(0, 300); + if (text.length < 6) continue; + const kind = ANCHOR_KINDS.includes(o.kind as AnchorKind) + ? (o.kind as AnchorKind) + : "fact"; + out.push({ text, kind, importance: clampImportance(Number(o.importance)) }); + } + return out; +} diff --git a/server/src/memory.ts b/server/src/memory.ts new file mode 100644 index 0000000..f36a92f --- /dev/null +++ b/server/src/memory.ts @@ -0,0 +1,405 @@ +import { db } from "./db.js"; +import { + ANCHOR_KINDS, + heuristicAnchors, + parseDreamAnchors, + similarity, + type AnchorKind, +} from "./memory-text.js"; + +db.exec(` + CREATE TABLE IF NOT EXISTS memory_events ( + seq INTEGER PRIMARY KEY AUTOINCREMENT, + session_id TEXT NOT NULL, + type TEXT NOT NULL CHECK(type IN ('message','tool_call')), + payload TEXT NOT NULL, + created_at INTEGER NOT NULL + ); + CREATE INDEX IF NOT EXISTS idx_memory_events_session + ON memory_events(session_id, seq); + + CREATE TABLE IF NOT EXISTS memory_state ( + session_id TEXT PRIMARY KEY, + last_seq INTEGER NOT NULL DEFAULT 0, + last_dream_seq INTEGER NOT NULL DEFAULT 0, + dream_count INTEGER NOT NULL DEFAULT 0, + updated_at INTEGER NOT NULL + ); + + CREATE TABLE IF NOT EXISTS anchors ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + session_id TEXT NOT NULL, + text TEXT NOT NULL, + kind TEXT NOT NULL DEFAULT 'fact', + importance REAL NOT NULL DEFAULT 0.5, + hits INTEGER NOT NULL DEFAULT 0, + pinned INTEGER NOT NULL DEFAULT 0, + origin TEXT NOT NULL DEFAULT 'heuristic', + last_seq INTEGER NOT NULL DEFAULT 0, + created_at INTEGER NOT NULL, + updated_at INTEGER NOT NULL + ); + CREATE INDEX IF NOT EXISTS idx_anchors_session + ON anchors(session_id, importance); +`); + +export interface MemoryEventRow { + seq: number; + session_id: string; + type: "message" | "tool_call"; + payload: string; + created_at: number; +} + +export interface MemoryStateRow { + session_id: string; + last_seq: number; + last_dream_seq: number; + dream_count: number; + updated_at: number; +} + +export interface AnchorRow { + id: number; + session_id: string; + text: string; + kind: AnchorKind; + importance: number; + hits: number; + pinned: number; + origin: string; + last_seq: number; + created_at: number; + updated_at: number; +} + +export interface AnchorInput { + text: string; + kind?: AnchorKind; + importance?: number; + seq?: number; + origin?: string; + pinned?: boolean; +} + +export interface DreamResult { + ok: boolean; + events: number; + inserted: number; + merged: number; + pruned: number; + source: "llm" | "heuristic" | "none"; + error?: string; +} + +export interface DreamOptions { + ollamaUrl: string; + model: string; + signal?: AbortSignal; +} + +export function appendEvent( + sessionId: string, + type: "message" | "tool_call", + payload: Record, +): number { + const res = db + .prepare( + "INSERT INTO memory_events (session_id, type, payload, created_at) VALUES (?, ?, ?, ?)", + ) + .run(sessionId, type, JSON.stringify(payload), Date.now()); + return Number(res.lastInsertRowid); +} + +export function listEvents( + sessionId: string, + afterSeq = 0, +): MemoryEventRow[] { + return db + .prepare( + "SELECT * FROM memory_events WHERE session_id = ? AND seq > ? ORDER BY seq ASC", + ) + .all(sessionId, afterSeq) as unknown as MemoryEventRow[]; +} + +export function getMemoryState(sessionId: string): MemoryStateRow { + db.prepare( + "INSERT OR IGNORE INTO memory_state (session_id, last_seq, last_dream_seq, dream_count, updated_at) VALUES (?, 0, 0, 0, ?)", + ).run(sessionId, Date.now()); + return db + .prepare("SELECT * FROM memory_state WHERE session_id = ?") + .get(sessionId) as unknown as MemoryStateRow; +} + +export function listAnchors(sessionId: string): AnchorRow[] { + return db + .prepare( + "SELECT * FROM anchors WHERE session_id = ? ORDER BY pinned DESC, importance DESC, updated_at DESC", + ) + .all(sessionId) as unknown as AnchorRow[]; +} + +function countAnchors(sessionId: string): number { + return Number( + ( + db + .prepare("SELECT COUNT(*) AS n FROM anchors WHERE session_id = ?") + .get(sessionId) as { n: number } + ).n, + ); +} + +const SIMILARITY_THRESHOLD = 0.5; + +/** + * Fügt einen Ankerpunkt ein oder verstärkt einen vorhandenen. Dedupe über + * Wort-Ähnlichkeit; Merge erhöht Treffer und nimmt die höhere Wichtigkeit. + */ +export function upsertAnchor( + sessionId: string, + input: AnchorInput, +): "inserted" | "merged" | "skipped" { + const text = input.text.trim().replace(/\s+/g, " ").slice(0, 300); + if (text.length < 6) return "skipped"; + const kind = ANCHOR_KINDS.includes(input.kind as AnchorKind) + ? (input.kind as AnchorKind) + : "fact"; + const importance = Number.isFinite(input.importance) + ? Math.min(1, Math.max(0.1, Number(input.importance))) + : 0.5; + const now = Date.now(); + const pinned = input.pinned ? 1 : 0; + + const match = listAnchors(sessionId).find( + (a) => similarity(a.text, text) >= SIMILARITY_THRESHOLD, + ); + if (match) { + db.prepare( + "UPDATE anchors SET hits = hits + 1, importance = MAX(importance, ?), last_seq = MAX(last_seq, ?), pinned = MAX(pinned, ?), updated_at = ? WHERE id = ?", + ).run(importance, input.seq ?? 0, pinned, now, match.id); + return "merged"; + } + + const seq = + input.seq ?? + Number( + ( + db + .prepare( + "SELECT COALESCE(MAX(seq), 0) AS s FROM memory_events WHERE session_id = ?", + ) + .get(sessionId) as { s: number } + ).s, + ); + db.prepare( + "INSERT INTO anchors (session_id, text, kind, importance, hits, pinned, origin, last_seq, created_at, updated_at) VALUES (?, ?, ?, ?, 0, ?, ?, ?, ?, ?)", + ).run(sessionId, text, kind, importance, pinned, input.origin ?? "heuristic", seq, now, now); + return "inserted"; +} + +/** + * Inkrementelle Rekonstruktion: faltet alle Events seit last_seq in + * Ankerpunkte. Da das Log append-only ist, liefert Replay aus Seq 0 immer + * denselben Zustand — Rekonstruktion ist damit deterministisch. + */ +export function foldSession(sessionId: string): { + folded: number; + anchors: number; +} { + const state = getMemoryState(sessionId); + const events = listEvents(sessionId, state.last_seq); + let folded = 0; + for (const ev of events) { + if (ev.type !== "message") continue; + let payload: { role?: string; content?: string }; + try { + payload = JSON.parse(ev.payload) as { role?: string; content?: string }; + } catch { + continue; + } + if (payload.role !== "user" || !payload.content) continue; + for (const c of heuristicAnchors(payload.content)) { + upsertAnchor(sessionId, { ...c, seq: ev.seq }); + } + folded++; + } + const top = events.length ? events[events.length - 1].seq : state.last_seq; + db.prepare( + "UPDATE memory_state SET last_seq = ?, updated_at = ? WHERE session_id = ?", + ).run(top, Date.now(), sessionId); + return { folded, anchors: countAnchors(sessionId) }; +} + +/** Vollständiger Replay aus Seq 0; gepinnte Ankerpunkte bleiben erhalten. */ +export function rebuildMemory(sessionId: string): { + events: number; + anchors: number; +} { + db.prepare("DELETE FROM anchors WHERE session_id = ? AND pinned = 0").run( + sessionId, + ); + db.prepare( + "UPDATE memory_state SET last_seq = 0, last_dream_seq = 0, dream_count = 0, updated_at = ? WHERE session_id = ?", + ).run(Date.now(), sessionId); + const { folded, anchors } = foldSession(sessionId); + return { events: folded, anchors }; +} + +function applyDecay(sessionId: string): number { + db.prepare( + "UPDATE anchors SET importance = importance * 0.9, updated_at = ? WHERE session_id = ? AND pinned = 0", + ).run(Date.now(), sessionId); + const res = db + .prepare( + "DELETE FROM anchors WHERE session_id = ? AND pinned = 0 AND hits = 0 AND importance < 0.15", + ) + .run(sessionId); + return Number(res.changes); +} + +const DREAM_SYSTEM = `Du destillierst aus einem Chatverlauf langlebige Gedächtnisanker ("Ankerpunkte"). +Antworte NUR mit JSON im Format: +{"anchors":[{"text":"...","kind":"fact|decision|preference|entity|open_question","importance":0.0}]} +Regeln: Maximal 8 Anker. Jeder Anker ist ein prägnanter, in sich verständlicher Satz. +Nur dauerhaft Wichtiges: Fakten über den Nutzer, Entscheidungen, Präferenzen, benannte Entitäten, offene Punkte. +Kein Smalltalk, keine Meta-Gesprächsinhalte, keine Aufgaben, die schon erledigt sind. +importance zwischen 0.1 und 1.0.`; + +/** + * Traumphase: konsolidiert neue Events in Ankerpunkte — bevorzugt per + * LLM-Extraktion, mit der Heuristik als Fallback. Dann Decay auf ungepinnten + * Ankern; nicht mehr getragene verfallen und werden gelöscht. + */ +export async function dream( + sessionId: string, + opts: DreamOptions, +): Promise { + foldSession(sessionId); + const state = getMemoryState(sessionId); + const pending = listEvents(sessionId, state.last_dream_seq).slice(0, 40); + if (pending.length === 0) { + return { ok: true, events: 0, inserted: 0, merged: 0, pruned: 0, source: "none" }; + } + + const transcript = pending + .map((ev) => { + let p: { role?: string; content?: string; name?: string; args?: unknown } = {}; + try { + p = JSON.parse(ev.payload) as typeof p; + } catch { + /* leer */ + } + const who = ev.type === "tool_call" ? `tool:${p.name ?? "?"}` : (p.role ?? "?"); + const body = String(p.content ?? JSON.stringify(p.args ?? "")).slice(0, 500); + return `[${ev.seq}] ${who}: ${body}`; + }) + .join("\n"); + + let inserted = 0; + let merged = 0; + let source: DreamResult["source"] = "heuristic"; + let error: string | undefined; + + try { + const res = await fetch(`${opts.ollamaUrl}/api/chat`, { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ + model: opts.model, + stream: false, + think: false, + format: "json", + messages: [ + { role: "system", content: DREAM_SYSTEM }, + { role: "user", content: transcript }, + ], + options: { temperature: 0.2, num_predict: 1024 }, + }), + signal: opts.signal, + }); + if (!res.ok) throw new Error(`Ollama HTTP ${res.status}`); + const data = (await res.json()) as { message?: { content?: string } }; + const parsed = parseDreamAnchors(String(data.message?.content ?? "")); + if (parsed.length === 0) throw new Error("keine brauchbaren Ankerpunkte"); + const lastSeq = pending[pending.length - 1].seq; + for (const a of parsed) { + const r = upsertAnchor(sessionId, { ...a, seq: lastSeq, origin: "dream" }); + if (r === "inserted") inserted++; + else if (r === "merged") merged++; + } + source = "llm"; + } catch (err) { + error = err instanceof Error ? err.message : String(err); + } + + const pruned = applyDecay(sessionId); + if (source === "llm") { + db.prepare( + "UPDATE memory_state SET last_dream_seq = ?, dream_count = dream_count + 1, updated_at = ? WHERE session_id = ?", + ).run(pending[pending.length - 1].seq, Date.now(), sessionId); + } + return { ok: true, events: pending.length, inserted, merged, pruned, source, error }; +} + +const KIND_LABEL: Record = { + fact: "Fakt", + decision: "Entscheidung", + preference: "Präferenz", + entity: "Entität", + open_question: "Offene Frage", +}; + +/** System-Prompt-Block mit den wichtigsten Ankern, Token-Budget über maxChars. */ +export function anchorContextBlock( + sessionId: string, + maxChars = 1200, +): string | null { + const anchors = listAnchors(sessionId).slice(0, 20); + const lines: string[] = []; + let chars = 0; + for (const a of anchors) { + const line = `- [${KIND_LABEL[a.kind] ?? a.kind}] ${a.text}`; + if (chars + line.length > maxChars) break; + lines.push(line); + chars += line.length; + } + if (lines.length === 0) return null; + return `Bekannte Ankerpunkte aus diesem und früheren Gesprächen (Gedächtnis — als Kontext nutzen, nicht wörtlich zitieren):\n${lines.join("\n")}`; +} + +export function queryAnchors( + sessionId: string, + query: string, + limit = 12, +): AnchorRow[] { + const anchors = listAnchors(sessionId); + const q = query.trim(); + if (!q) return anchors.slice(0, limit); + return anchors + .map((a) => ({ a, score: similarity(a.text, q) })) + .filter( + ({ a, score }) => + score >= 0.15 || a.text.toLowerCase().includes(q.toLowerCase()), + ) + .sort((x, y) => y.score - x.score) + .slice(0, limit) + .map(({ a }) => a); +} + +export function setAnchorPinned(id: number, pinned: boolean): boolean { + const res = db + .prepare("UPDATE anchors SET pinned = ?, updated_at = ? WHERE id = ?") + .run(pinned ? 1 : 0, Date.now(), id); + return Number(res.changes) > 0; +} + +export function deleteAnchor(id: number): boolean { + const res = db.prepare("DELETE FROM anchors WHERE id = ?").run(id); + return Number(res.changes) > 0; +} + +export function deleteSessionMemory(sessionId: string): void { + db.prepare("DELETE FROM memory_events WHERE session_id = ?").run(sessionId); + db.prepare("DELETE FROM memory_state WHERE session_id = ?").run(sessionId); + db.prepare("DELETE FROM anchors WHERE session_id = ?").run(sessionId); +} diff --git a/server/src/ollama.ts b/server/src/ollama.ts index 2470d81..0f65020 100644 --- a/server/src/ollama.ts +++ b/server/src/ollama.ts @@ -12,6 +12,8 @@ export interface OllamaOptions { numPredict: number; /** Werkzeuge mitschicken. Aus, wenn der Nutzer sie abgeschaltet hat. */ tools?: boolean; + /** Sitzung des Chats — für Gedächtnis-Werkzeuge (remember/recall). */ + sessionId?: string; } export interface StreamCallbacks { @@ -198,7 +200,7 @@ export async function streamChat( for (const call of toolCalls) { cb.onToolCall?.(call.name, call.arguments); - const result = await runTool(call, signal); + const result = await runTool(call, { signal, sessionId: opts.sessionId }); cb.onToolResult?.(result.name, result.ok, result.durationMs); messages.push({ role: "tool", tool_name: result.name, content: result.content }); } diff --git a/server/src/tools/index.ts b/server/src/tools/index.ts index a06cb41..9217971 100644 --- a/server/src/tools/index.ts +++ b/server/src/tools/index.ts @@ -1,7 +1,9 @@ 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 { rememberTool } from "./remember.js"; +import { recallTool } from "./recall.js"; +import type { Tool, ToolCall, ToolContext, ToolResult } from "./types.js"; import { ToolError } from "./types.js"; export type { Tool, ToolCall, ToolResult } from "./types.js"; @@ -12,7 +14,14 @@ 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 REGISTRY: Tool[] = [ + timeTool, + calculateTool, + readFileTool, + listFilesTool, + rememberTool, + recallTool, +]; const BY_NAME = new Map(REGISTRY.map((t) => [t.name, t])); @@ -50,7 +59,7 @@ function withTimeout(p: Promise, ms: number, name: string): Promise { * 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 { +export async function runTool(call: ToolCall, ctx: ToolContext): Promise { const started = Date.now(); const tool = BY_NAME.get(call.name); @@ -64,7 +73,11 @@ export async function runTool(call: ToolCall, signal: AbortSignal): Promise ({ + text: a.text, + kind: a.kind, + importance: a.importance, + hits: a.hits, + })), + }; + }, +}; diff --git a/server/src/tools/remember.ts b/server/src/tools/remember.ts new file mode 100644 index 0000000..b1ee7b0 --- /dev/null +++ b/server/src/tools/remember.ts @@ -0,0 +1,41 @@ +import { upsertAnchor } from "../memory.js"; +import { ANCHOR_KINDS, type AnchorKind } from "../memory-text.js"; +import { ToolError } from "./types.js"; +import type { Tool } from "./types.js"; + +export const rememberTool: Tool = { + name: "remember", + description: + "Speichert einen dauerhaft wichtigen Punkt als Ankerpunkt im Gedächtnis des aktuellen Chats. Nur für Fakten, Entscheidungen, Präferenzen oder offene Punkte — nicht für flüchtige Inhalte.", + requiresConfirmation: true, + parameters: { + type: "object", + properties: { + text: { + type: "string", + description: "Der zu merkende Punkt als ein prägnanter Satz.", + }, + kind: { + type: "string", + enum: [...ANCHOR_KINDS], + description: "Art des Ankerpunkts (Default: fact).", + }, + }, + required: ["text"], + }, + async run(args, ctx) { + const text = String(args.text ?? "").trim(); + if (!ctx.sessionId) throw new ToolError("Keine Sitzung für das Gedächtnis bekannt"); + if (text.length < 6) throw new ToolError("Text ist zu kurz, um ihn zu merken"); + const result = upsertAnchor(ctx.sessionId, { + text, + kind: ANCHOR_KINDS.includes(args.kind as AnchorKind) + ? (args.kind as AnchorKind) + : "fact", + importance: 0.9, + origin: "model", + pinned: true, + }); + return { stored: result, text }; + }, +}; diff --git a/server/src/tools/types.ts b/server/src/tools/types.ts index b33b82c..aec6172 100644 --- a/server/src/tools/types.ts +++ b/server/src/tools/types.ts @@ -8,6 +8,8 @@ export interface ToolSchema { export interface ToolContext { /** Bricht die Ausführung ab, wenn der Nutzer die Antwort stoppt. */ signal: AbortSignal; + /** Sitzung des aktuellen Chats — für Werkzeuge mit Gedächtniszugriff. */ + sessionId?: string; } export interface Tool { diff --git a/server/tsconfig.json b/server/tsconfig.json index f22d044..383a626 100644 --- a/server/tsconfig.json +++ b/server/tsconfig.json @@ -8,5 +8,5 @@ "noEmit": true, "types": ["node"] }, - "include": ["src"] + "include": ["src", "scripts"] } diff --git a/web/dist/assets/index-BNj3u6UE.js b/web/dist/assets/index-BNj3u6UE.js deleted file mode 100644 index ea907b1..0000000 --- a/web/dist/assets/index-BNj3u6UE.js +++ /dev/null @@ -1,74 +0,0 @@ -var Ch=Object.defineProperty;var Ah=(t,i,r)=>i in t?Ch(t,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[i]=r;var Ti=(t,i,r)=>Ah(t,typeof i!="symbol"?i+"":i,r);(function(){const i=document.createElement("link").relList;if(i&&i.supports&&i.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))l(s);new MutationObserver(s=>{for(const c of s)if(c.type==="childList")for(const u of c.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&l(u)}).observe(document,{childList:!0,subtree:!0});function r(s){const c={};return s.integrity&&(c.integrity=s.integrity),s.referrerPolicy&&(c.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?c.credentials="include":s.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function l(s){if(s.ep)return;s.ep=!0;const c=r(s);fetch(s.href,c)}})();function Ao(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Ks={exports:{}},yo={},Gs={exports:{}},Fe={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * 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(O){return O===null||typeof O!="object"?null:(O=h&&O[h]||O["@@iterator"],typeof O=="function"?O:null)}var E={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},k=Object.assign,N={};function R(O,$,w){this.props=O,this.context=$,this.refs=N,this.updater=w||E}R.prototype.isReactComponent={},R.prototype.setState=function(O,$){if(typeof O!="object"&&typeof O!="function"&&O!=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,O,$,"setState")},R.prototype.forceUpdate=function(O){this.updater.enqueueForceUpdate(this,O,"forceUpdate")};function x(){}x.prototype=R.prototype;function F(O,$,w){this.props=O,this.context=$,this.refs=N,this.updater=w||E}var P=F.prototype=new x;P.constructor=F,k(P,R.prototype),P.isPureReactComponent=!0;var G=Array.isArray,Q=Object.prototype.hasOwnProperty,C={current:null},Z={key:!0,ref:!0,__self:!0,__source:!0};function ee(O,$,w){var we,Me={},ke=null,$e=null;if($!=null)for(we in $.ref!==void 0&&($e=$.ref),$.key!==void 0&&(ke=""+$.key),$)Q.call($,we)&&!Z.hasOwnProperty(we)&&(Me[we]=$[we]);var De=arguments.length-2;if(De===1)Me.children=w;else if(1>>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 - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * 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 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||!(2S||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,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(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 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,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,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:` -`,encode:["`"],...d.current()})),h()}return y+=d.move(` -`),c&&(y+=d.move(c+` -`)),y+=d.move(p),g(),y}function Xv(t,i,r){return(r?"":" ")+t}function $u(t){const i=t.options.quote||'"';if(i!=='"'&&i!=="'")throw new Error("Cannot serialize title with `"+i+"` for `options.quote`, expected `\"`, or `'`");return i}function Jv(t,i,r,l){const s=$u(r),c=s==='"'?"Quote":"Apostrophe",u=r.enter("definition");let d=r.enter("label");const p=r.createTracker(l);let g=p.move("[");return g+=p.move(r.safe(r.associationId(t),{before:g,after:"]",...p.current()})),g+=p.move("]: "),d(),!t.url||/[\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()),u(),g}function ek(t){const i=t.options.emphasis||"*";if(i!=="*"&&i!=="_")throw new Error("Cannot serialize emphasis with `"+i+"` for `options.emphasis`, expected `*`, or `_`");return i}function Co(t){return"&#x"+t.toString(16).toUpperCase()+";"}function ta(t,i,r){const l=Ii(t),s=Ii(i);return l===void 0?s===void 0?r==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:l===1?s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}fg.peek=tk;function fg(t,i,r,l){const s=ek(r),c=r.enter("emphasis"),u=r.createTracker(l),d=u.move(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);return c(),r.attentionEncodeSurroundingInfo={after:b.outside,before:y.outside},d+p+E}function tk(t,i,r){return r.options.emphasis||"*"}function nk(t,i){let r=!1;return sa(t,function(l){if("value"in l&&/\r?\n|\r/.test(l.value)||l.type==="break")return r=!0,_u}),!!((!t.depth||t.depth<3)&&Mu(t)&&(i.options.setext||r))}function rk(t,i,r,l){const s=Math.max(Math.min(6,t.depth||1),1),c=r.createTracker(l);if(nk(t,r)){const y=r.enter("headingSetext"),h=r.enter("phrasing"),b=r.containerPhrasing(t,{...c.current(),before:` -`,after:` -`});return h(),y(),b+` -`+(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,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"],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-BvIjR1bZ.js b/web/dist/assets/index-BvIjR1bZ.js new file mode 100644 index 0000000..5a583fb --- /dev/null +++ b/web/dist/assets/index-BvIjR1bZ.js @@ -0,0 +1,74 @@ +var Th=Object.defineProperty;var Ah=(e,i,r)=>i in e?Th(e,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[i]=r;var Ci=(e,i,r)=>Ah(e,typeof i!="symbol"?i+"":i,r);(function(){const i=document.createElement("link").relList;if(i&&i.supports&&i.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))l(s);new MutationObserver(s=>{for(const c of s)if(c.type==="childList")for(const u of c.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&l(u)}).observe(document,{childList:!0,subtree:!0});function r(s){const c={};return s.integrity&&(c.integrity=s.integrity),s.referrerPolicy&&(c.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?c.credentials="include":s.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function l(s){if(s.ep)return;s.ep=!0;const c=r(s);fetch(s.href,c)}})();function Ao(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var js={exports:{}},yo={},Gs={exports:{}},Fe={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * 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 e=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(O){return O===null||typeof O!="object"?null:(O=h&&O[h]||O["@@iterator"],typeof O=="function"?O:null)}var E={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},k=Object.assign,T={};function S(O,$,w){this.props=O,this.context=$,this.refs=T,this.updater=w||E}S.prototype.isReactComponent={},S.prototype.setState=function(O,$){if(typeof O!="object"&&typeof O!="function"&&O!=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,O,$,"setState")},S.prototype.forceUpdate=function(O){this.updater.enqueueForceUpdate(this,O,"forceUpdate")};function N(){}N.prototype=S.prototype;function B(O,$,w){this.props=O,this.context=$,this.refs=T,this.updater=w||E}var P=B.prototype=new N;P.constructor=B,k(P,S.prototype),P.isPureReactComponent=!0;var j=Array.isArray,Z=Object.prototype.hasOwnProperty,A={current:null},X={key:!0,ref:!0,__self:!0,__source:!0};function ee(O,$,w){var we,Me={},ke=null,$e=null;if($!=null)for(we in $.ref!==void 0&&($e=$.ref),$.key!==void 0&&(ke=""+$.key),$)Z.call($,we)&&!X.hasOwnProperty(we)&&(Me[we]=$[we]);var De=arguments.length-2;if(De===1)Me.children=w;else if(1>>1,$=G[O];if(0>>1;Os(Me,v))ke<$&&0>s($e,Me)?(G[O]=$e,G[ke]=v,O=ke):(G[O]=Me,G[we]=v,O=we);else if(ke<$&&0>s($e,v))G[O]=$e,G[ke]=v,O=ke;else break e}}return ae}function s(G,ae){var v=G.sortIndex-ae.sortIndex;return v!==0?v:G.id-ae.id}if(typeof performance=="object"&&typeof performance.now=="function"){var c=performance;e.unstable_now=function(){return c.now()}}else{var u=Date,d=u.now();e.unstable_now=function(){return u.now()-d}}var p=[],g=[],y=1,h=null,b=3,E=!1,k=!1,T=!1,S=typeof setTimeout=="function"?setTimeout:null,N=typeof clearTimeout=="function"?clearTimeout:null,B=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(G){for(var ae=r(g);ae!==null;){if(ae.callback===null)l(g);else if(ae.startTime<=G)l(g),ae.sortIndex=ae.expirationTime,i(p,ae);else break;ae=r(g)}}function j(G){if(T=!1,P(G),!k)if(r(p)!==null)k=!0,ue(Z);else{var ae=r(g);ae!==null&&ce(j,ae.startTime-G)}}function Z(G,ae){k=!1,T&&(T=!1,N(ee),ee=-1),E=!0;var v=b;try{for(P(ae),h=r(p);h!==null&&(!(h.expirationTime>ae)||G&&!W());){var O=h.callback;if(typeof O=="function"){h.callback=null,b=h.priorityLevel;var $=O(h.expirationTime<=ae);ae=e.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&&ce(j,we.startTime-ae),w=!1}return w}finally{h=null,b=v,E=!1}}var A=!1,X=null,ee=-1,re=5,M=-1;function W(){return!(e.unstable_now()-MG||125O?(G.sortIndex=v,i(g,G),r(p)===null&&G===r(g)&&(T?(N(ee),ee=-1):T=!0,ce(j,v-O))):(G.sortIndex=$,i(p,G),k||E||(k=!0,ue(Z))),G},e.unstable_shouldYield=W,e.unstable_wrapCallback=function(G){var ae=b;return function(){var v=b;b=ae;try{return G.apply(this,arguments)}finally{b=v}}}})(Vs)),Vs}var gd;function Dh(){return gd||(gd=1,Ws.exports=Lh()),Ws.exports}/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * 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 e=Nu(),i=Dh();function r(t){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+t,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(t){return p.call(h,t)?!0:p.call(y,t)?!1:g.test(t)?h[t]=!0:(y[t]=!0,!1)}function E(t,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:(t=t.toLowerCase().slice(0,5),t!=="data-"&&t!=="aria-");default:return!1}}function k(t,n,o,a){if(n===null||typeof n>"u"||E(t,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 T(t,n,o,a,f,m,_){this.acceptsBooleans=n===2||n===3||n===4,this.attributeName=a,this.attributeNamespace=f,this.mustUseProperty=o,this.propertyName=t,this.type=n,this.sanitizeURL=m,this.removeEmptyString=_}var S={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(t){S[t]=new T(t,0,!1,t,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(t){var n=t[0];S[n]=new T(n,1,!1,t[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(t){S[t]=new T(t,2,!1,t.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(t){S[t]=new T(t,2,!1,t,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(t){S[t]=new T(t,3,!1,t.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(t){S[t]=new T(t,3,!0,t,null,!1,!1)}),["capture","download"].forEach(function(t){S[t]=new T(t,4,!1,t,null,!1,!1)}),["cols","rows","size","span"].forEach(function(t){S[t]=new T(t,6,!1,t,null,!1,!1)}),["rowSpan","start"].forEach(function(t){S[t]=new T(t,5,!1,t.toLowerCase(),null,!1,!1)});var N=/[\-:]([a-z])/g;function B(t){return t[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(t){var n=t.replace(N,B);S[n]=new T(n,1,!1,t,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(t){var n=t.replace(N,B);S[n]=new T(n,1,!1,t,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(t){var n=t.replace(N,B);S[n]=new T(n,1,!1,t,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(t){S[t]=new T(t,1,!1,t.toLowerCase(),null,!1,!1)}),S.xlinkHref=new T("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(t){S[t]=new T(t,1,!1,t.toLowerCase(),null,!0,!0)});function P(t,n,o,a){var f=S.hasOwnProperty(n)?S[n]:null;(f!==null?f.type!==0:a||!(2x||f[_]!==m[x]){var R=` +`+f[_].replace(" at new "," at ");return t.displayName&&R.includes("")&&(R=R.replace("",t.displayName)),R}while(1<=_&&0<=x);break}}}finally{w=!1,Error.prepareStackTrace=o}return(t=t?t.displayName||t.name:"")?$(t):""}function Me(t){switch(t.tag){case 5:return $(t.type);case 16:return $("Lazy");case 13:return $("Suspense");case 19:return $("SuspenseList");case 0:case 2:case 15:return t=we(t.type,!1),t;case 11:return t=we(t.type.render,!1),t;case 1:return t=we(t.type,!0),t;default:return""}}function ke(t){if(t==null)return null;if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case X:return"Fragment";case A:return"Portal";case re:return"Profiler";case ee:return"StrictMode";case te:return"Suspense";case L:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case W:return(t.displayName||"Context")+".Consumer";case M:return(t._context.displayName||"Context")+".Provider";case q:var n=t.render;return t=t.displayName,t||(t=n.displayName||n.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case U:return n=t.displayName||null,n!==null?n:ke(t.type)||"Memo";case ue:n=t._payload,t=t._init;try{return ke(t(n))}catch{}}return null}function $e(t){var n=t.type;switch(t.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 t=n.render,t=t.displayName||t.name||"",n.displayName||(t!==""?"ForwardRef("+t+")":"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(t){switch(typeof t){case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function Ge(t){var n=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function Xe(t){var n=Ge(t)?"checked":"value",o=Object.getOwnPropertyDescriptor(t.constructor.prototype,n),a=""+t[n];if(!t.hasOwnProperty(n)&&typeof o<"u"&&typeof o.get=="function"&&typeof o.set=="function"){var f=o.get,m=o.set;return Object.defineProperty(t,n,{configurable:!0,get:function(){return f.call(this)},set:function(_){a=""+_,m.call(this,_)}}),Object.defineProperty(t,n,{enumerable:o.enumerable}),{getValue:function(){return a},setValue:function(_){a=""+_},stopTracking:function(){t._valueTracker=null,delete t[n]}}}}function Xt(t){t._valueTracker||(t._valueTracker=Xe(t))}function rr(t){if(!t)return!1;var n=t._valueTracker;if(!n)return!0;var o=n.getValue(),a="";return t&&(a=Ge(t)?t.checked?"true":"false":t.value),t=a,t!==o?(n.setValue(t),!0):!1}function An(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}function Hn(t,n){var o=n.checked;return v({},n,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:o??t._wrapperState.initialChecked})}function jn(t,n){var o=n.defaultValue==null?"":n.defaultValue,a=n.checked!=null?n.checked:n.defaultChecked;o=De(n.value!=null?n.value:o),t._wrapperState={initialChecked:a,initialValue:o,controlled:n.type==="checkbox"||n.type==="radio"?n.checked!=null:n.value!=null}}function Ke(t,n){n=n.checked,n!=null&&P(t,"checked",n,!1)}function Jt(t,n){Ke(t,n);var o=De(n.value),a=n.type;if(o!=null)a==="number"?(o===0&&t.value===""||t.value!=o)&&(t.value=""+o):t.value!==""+o&&(t.value=""+o);else if(a==="submit"||a==="reset"){t.removeAttribute("value");return}n.hasOwnProperty("value")?Rn(t,n.type,o):n.hasOwnProperty("defaultValue")&&Rn(t,n.type,De(n.defaultValue)),n.checked==null&&n.defaultChecked!=null&&(t.defaultChecked=!!n.defaultChecked)}function an(t,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=""+t._wrapperState.initialValue,o||n===t.value||(t.value=n),t.defaultValue=n}o=t.name,o!==""&&(t.name=""),t.defaultChecked=!!t._wrapperState.initialChecked,o!==""&&(t.name=o)}function Rn(t,n,o){(n!=="number"||An(t.ownerDocument)!==t)&&(o==null?t.defaultValue=""+t._wrapperState.initialValue:t.defaultValue!==""+o&&(t.defaultValue=""+o))}var bn=Array.isArray;function On(t,n,o,a){if(t=t.options,n){n={};for(var f=0;f"+n.valueOf().toString()+"",n=Te.firstChild;t.firstChild;)t.removeChild(t.firstChild);for(;n.firstChild;)t.appendChild(n.firstChild)}});function He(t,n){if(n){var o=t.firstChild;if(o&&o===t.lastChild&&o.nodeType===3){o.nodeValue=n;return}}t.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},En=["Webkit","ms","Moz","O"];Object.keys(_t).forEach(function(t){En.forEach(function(n){n=n+t.charAt(0).toUpperCase()+t.substring(1),_t[n]=_t[t]})});function jt(t,n,o){return n==null||typeof n=="boolean"||n===""?"":o||typeof n!="number"||n===0||_t.hasOwnProperty(t)&&_t[t]?(""+n).trim():n+"px"}function _n(t,n){t=t.style;for(var o in n)if(n.hasOwnProperty(o)){var a=o.indexOf("--")===0,f=jt(o,n[o],a);o==="float"&&(o="cssFloat"),a?t.setProperty(o,f):t[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(t,n){if(n){if(Gn[t]&&(n.children!=null||n.dangerouslySetInnerHTML!=null))throw Error(r(137,t));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(t,n){if(t.indexOf("-")===-1)return typeof n.is=="string";switch(t){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Tt=null;function ei(t){return t=t.target||t.srcElement||window,t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===3?t.parentNode:t}var ti=null,ir=null,Kn=null;function Wn(t){if(t=to(t)){if(typeof ti!="function")throw Error(r(280));var n=t.stateNode;n&&(n=nl(n),ti(t.stateNode,t.type,n))}}function C(t){ir?Kn?Kn.push(t):Kn=[t]:ir=t}function V(){if(ir){var t=ir,n=Kn;if(Kn=ir=null,Wn(t),n)for(t=0;t>>=0,t===0?32:31-(Mn(t)/ii|0)|0}var Ft=64,Ir=4194304;function lr(t){switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return t&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return t}}function Mr(t,n){var o=t.pendingLanes;if(o===0)return 0;var a=0,f=t.suspendedLanes,m=t.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=t.entangledLanes,n!==0)for(t=t.entanglements,n&=a;0o;o++)n.push(t);return n}function sr(t,n,o){t.pendingLanes|=n,n!==536870912&&(t.suspendedLanes=0,t.pingedLanes=0),t=t.eventTimes,n=31-ut(n),t[n]=o}function cn(t,n){var o=t.pendingLanes&~n;t.pendingLanes=n,t.suspendedLanes=0,t.pingedLanes=0,t.expiredLanes&=n,t.mutableReadLanes&=n,t.entangledLanes&=n,n=t.entanglements;var a=t.eventTimes;for(t=t.expirationTimes;0=Wi),tc=" ",nc=!1;function rc(t,n){switch(t){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(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var ai=!1;function Sm(t,n){switch(t){case"compositionend":return ic(n);case"keypress":return n.which!==32?null:(nc=!0,tc);case"textInput":return t=n.data,t===tc&&nc?null:t;default:return null}}function Nm(t,n){if(ai)return t==="compositionend"||!wa&&rc(t,n)?(t=Yu(),Ko=ya=cr=null,ai=!1,t):null;switch(t){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-t};t=a}e:{for(;o;){if(o.nextSibling){o=o.nextSibling;break e}o=o.parentNode}o=void 0}o=fc(o)}}function pc(t,n){return t&&n?t===n?!0:t&&t.nodeType===3?!1:n&&n.nodeType===3?pc(t,n.parentNode):"contains"in t?t.contains(n):t.compareDocumentPosition?!!(t.compareDocumentPosition(n)&16):!1:!1}function gc(){for(var t=window,n=An();n instanceof t.HTMLIFrameElement;){try{var o=typeof n.contentWindow.location.href=="string"}catch{o=!1}if(o)t=n.contentWindow;else break;n=An(t.document)}return n}function Na(t){var n=t&&t.nodeName&&t.nodeName.toLowerCase();return n&&(n==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||n==="textarea"||t.contentEditable==="true")}function Dm(t){var n=gc(),o=t.focusedElem,a=t.selectionRange;if(n!==o&&o&&o.ownerDocument&&pc(o.ownerDocument.documentElement,o)){if(a!==null&&Na(o)){if(n=a.start,t=a.end,t===void 0&&(t=n),"selectionStart"in o)o.selectionStart=n,o.selectionEnd=Math.min(t,o.value.length);else if(t=(n=o.ownerDocument||document)&&n.defaultView||window,t.getSelection){t=t.getSelection();var f=o.textContent.length,m=Math.min(a.start,f);a=a.end===void 0?m:Math.min(a.end,f),!t.extend&&m>a&&(f=a,a=m,m=f),f=dc(o,m);var _=dc(o,a);f&&_&&(t.rangeCount!==1||t.anchorNode!==f.node||t.anchorOffset!==f.offset||t.focusNode!==_.node||t.focusOffset!==_.offset)&&(n=n.createRange(),n.setStart(f.node,f.offset),t.removeAllRanges(),m>a?(t.addRange(n),t.extend(_.node,_.offset)):(n.setEnd(_.node,_.offset),t.addRange(n)))}}for(n=[],t=o;t=t.parentNode;)t.nodeType===1&&n.push({element:t,left:t.scrollLeft,top:t.scrollTop});for(typeof o.focus=="function"&&o.focus(),o=0;o=document.documentMode,si=null,Ca=null,Qi=null,Ta=!1;function mc(t,n,o){var a=o.window===o?o.document:o.nodeType===9?o:o.ownerDocument;Ta||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(Ca,"onSelect"),0pi||(t.current=Ua[pi],Ua[pi]=null,pi--)}function nt(t,n){pi++,Ua[pi]=t.current,t.current=n}var gr={},Ot=pr(gr),Gt=pr(!1),zr=gr;function gi(t,n){var o=t.type.contextTypes;if(!o)return gr;var a=t.stateNode;if(a&&a.__reactInternalMemoizedUnmaskedChildContext===n)return a.__reactInternalMemoizedMaskedChildContext;var f={},m;for(m in o)f[m]=n[m];return a&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=n,t.__reactInternalMemoizedMaskedChildContext=f),f}function Kt(t){return t=t.childContextTypes,t!=null}function rl(){ot(Gt),ot(Ot)}function Rc(t,n,o){if(Ot.current!==gr)throw Error(r(168));nt(Ot,n),nt(Gt,o)}function Oc(t,n,o){var a=t.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(t)||"Unknown",f));return v({},o,a)}function il(t){return t=(t=t.stateNode)&&t.__reactInternalMemoizedMergedChildContext||gr,zr=Ot.current,nt(Ot,t),nt(Gt,Gt.current),!0}function Ic(t,n,o){var a=t.stateNode;if(!a)throw Error(r(169));o?(t=Oc(t,n,zr),a.__reactInternalMemoizedMergedChildContext=t,ot(Gt),ot(Ot),nt(Ot,t)):ot(Gt),nt(Gt,o)}var Yn=null,ol=!1,$a=!1;function Mc(t){Yn===null?Yn=[t]:Yn.push(t)}function Vm(t){ol=!0,Mc(t)}function mr(){if(!$a&&Yn!==null){$a=!0;var t=0,n=Ve;try{var o=Yn;for(Ve=1;t>=_,f-=_,Qn=1<<32-ut(n)+f|o<Oe?(Ct=Ne,Ne=null):Ct=Ne.sibling;var Ye=Y(D,Ne,z[Oe],oe);if(Ye===null){Ne===null&&(Ne=Ct);break}t&&Ne&&Ye.alternate===null&&n(D,Ne),I=m(Ye,I,Oe),Se===null?_e=Ye:Se.sibling=Ye,Se=Ye,Ne=Ct}if(Oe===z.length)return o(D,Ne),at&&Br(D,Oe),_e;if(Ne===null){for(;OeOe?(Ct=Ne,Ne=null):Ct=Ne.sibling;var xr=Y(D,Ne,Ye.value,oe);if(xr===null){Ne===null&&(Ne=Ct);break}t&&Ne&&xr.alternate===null&&n(D,Ne),I=m(xr,I,Oe),Se===null?_e=xr:Se.sibling=xr,Se=xr,Ne=Ct}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),Se===null?_e=Ye:Se.sibling=Ye,Se=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&&(t&&Ye.alternate!==null&&Ne.delete(Ye.key===null?Oe:Ye.key),I=m(Ye,I,Oe),Se===null?_e=Ye:Se.sibling=Ye,Se=Ye);return t&&Ne.forEach(function(Ch){return n(D,Ch)}),at&&Br(D,Oe),_e}function ht(D,I,z,oe){if(typeof z=="object"&&z!==null&&z.type===X&&z.key===null&&(z=z.props.children),typeof z=="object"&&z!==null){switch(z.$$typeof){case Z:e:{for(var _e=z.key,Se=I;Se!==null;){if(Se.key===_e){if(_e=z.type,_e===X){if(Se.tag===7){o(D,Se.sibling),I=f(Se,z.props.children),I.return=D,D=I;break e}}else if(Se.elementType===_e||typeof _e=="object"&&_e!==null&&_e.$$typeof===ue&&Bc(_e)===Se.type){o(D,Se.sibling),I=f(Se,z.props),I.ref=no(D,Se,z),I.return=D,D=I;break e}o(D,Se);break}else n(D,Se);Se=Se.sibling}z.type===X?(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 A:e:{for(Se=z.key;I!==null;){if(I.key===Se)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 Se=z._init,ht(D,I,Se(z._payload),oe)}if(bn(z))return be(D,I,z,oe);if(ae(z))return Ee(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 bi=Uc(!0),$c=Uc(!1),cl=pr(null),fl=null,Ei=null,Va=null;function qa(){Va=Ei=fl=null}function Ya(t){var n=cl.current;ot(cl),t._currentValue=n}function Qa(t,n,o){for(;t!==null;){var a=t.alternate;if((t.childLanes&n)!==n?(t.childLanes|=n,a!==null&&(a.childLanes|=n)):a!==null&&(a.childLanes&n)!==n&&(a.childLanes|=n),t===o)break;t=t.return}}function _i(t,n){fl=t,Va=Ei=null,t=t.dependencies,t!==null&&t.firstContext!==null&&((t.lanes&n)!==0&&(Wt=!0),t.firstContext=null)}function pn(t){var n=t._currentValue;if(Va!==t)if(t={context:t,memoizedValue:n,next:null},Ei===null){if(fl===null)throw Error(r(308));Ei=t,fl.dependencies={lanes:0,firstContext:t}}else Ei=Ei.next=t;return n}var Ur=null;function Za(t){Ur===null?Ur=[t]:Ur.push(t)}function Hc(t,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(t,a)}function Xn(t,n){t.lanes|=n;var o=t.alternate;for(o!==null&&(o.lanes|=n),o=t,t=t.return;t!==null;)t.childLanes|=n,o=t.alternate,o!==null&&(o.childLanes|=n),o=t,t=t.return;return o.tag===3?o.stateNode:null}var hr=!1;function Xa(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function jc(t,n){t=t.updateQueue,n.updateQueue===t&&(n.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,effects:t.effects})}function Jn(t,n){return{eventTime:t,lane:n,tag:0,payload:null,callback:null,next:null}}function yr(t,n,o){var a=t.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(t,o)}return f=a.interleaved,f===null?(n.next=n,Za(a)):(n.next=f.next,f.next=n),a.interleaved=n,Xn(t,o)}function dl(t,n,o){if(n=n.updateQueue,n!==null&&(n=n.shared,(o&4194240)!==0)){var a=n.lanes;a&=t.pendingLanes,o|=a,n.lanes=o,Bi(t,o)}}function Gc(t,n){var o=t.updateQueue,a=t.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},t.updateQueue=o;return}t=o.lastBaseUpdate,t===null?o.firstBaseUpdate=n:t.next=n,o.lastBaseUpdate=n}function pl(t,n,o,a){var f=t.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=t.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 Y=x.lane,pe=x.eventTime;if((a&Y)===Y){Q!==null&&(Q=Q.next={eventTime:pe,lane:0,tag:x.tag,payload:x.payload,callback:x.callback,next:null});e:{var be=t,Ee=x;switch(Y=n,pe=o,Ee.tag){case 1:if(be=Ee.payload,typeof be=="function"){J=be.call(pe,J,Y);break e}J=be;break e;case 3:be.flags=be.flags&-65537|128;case 0:if(be=Ee.payload,Y=typeof be=="function"?be.call(pe,J,Y):be,Y==null)break e;J=v({},J,Y);break e;case 2:hr=!0}}x.callback!==null&&x.lane!==0&&(t.flags|=64,Y=f.effects,Y===null?f.effects=[x]:Y.push(x))}else pe={eventTime:pe,lane:Y,tag:x.tag,payload:x.payload,callback:x.callback,next:null},Q===null?(F=Q=pe,R=J):Q=Q.next=pe,_|=Y;if(x=x.next,x===null){if(x=f.shared.pending,x===null)break;Y=x,x=Y.next,Y.next=null,f.lastBaseUpdate=Y,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);jr|=_,t.lanes=_,t.memoizedState=J}}function Kc(t,n,o){if(t=n.effects,n.effects=null,t!==null)for(n=0;no?o:4,t(!0);var a=rs.transition;rs.transition={};try{t(!1),n()}finally{Ve=o,rs.transition=a}}function ff(){return gn().memoizedState}function Zm(t,n,o){var a=vr(t);if(o={lane:a,action:o,hasEagerState:!1,eagerState:null,next:null},df(t))pf(n,o);else if(o=Hc(t,n,o,a),o!==null){var f=Ut();Cn(o,t,a,f),gf(o,n,a)}}function Xm(t,n,o){var a=vr(t),f={lane:a,action:o,hasEagerState:!1,eagerState:null,next:null};if(df(t))pf(n,f);else{var m=t.alternate;if(t.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(t,n,f,a),o!==null&&(f=Ut(),Cn(o,t,a,f),gf(o,n,a))}}function df(t){var n=t.alternate;return t===ft||n!==null&&n===ft}function pf(t,n){lo=hl=!0;var o=t.pending;o===null?n.next=n:(n.next=o.next,o.next=n),t.pending=n}function gf(t,n,o){if((o&4194240)!==0){var a=n.lanes;a&=t.pendingLanes,o|=a,n.lanes=o,Bi(t,o)}}var El={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(t,n){return zn().memoizedState=[t,n===void 0?null:n],t},useContext:pn,useEffect:nf,useImperativeHandle:function(t,n,o){return o=o!=null?o.concat([t]):null,yl(4194308,4,lf.bind(null,n,t),o)},useLayoutEffect:function(t,n){return yl(4194308,4,t,n)},useInsertionEffect:function(t,n){return yl(4,2,t,n)},useMemo:function(t,n){var o=zn();return n=n===void 0?null:n,t=t(),o.memoizedState=[t,n],t},useReducer:function(t,n,o){var a=zn();return n=o!==void 0?o(n):n,a.memoizedState=a.baseState=n,t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:n},a.queue=t,t=t.dispatch=Zm.bind(null,ft,t),[a.memoizedState,t]},useRef:function(t){var n=zn();return t={current:t},n.memoizedState=t},useState:ef,useDebugValue:cs,useDeferredValue:function(t){return zn().memoizedState=t},useTransition:function(){var t=ef(!1),n=t[0];return t=Qm.bind(null,t[1]),zn().memoizedState=t,[n,t]},useMutableSource:function(){},useSyncExternalStore:function(t,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,t),[t]),a.flags|=2048,uo(9,Qc.bind(null,a,m,o,n),void 0,null),o},useId:function(){var t=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>",t=t.removeChild(t.firstChild)):typeof a.is=="string"?t=_.createElement(o,{is:a.is}):(t=_.createElement(o),o==="select"&&(_=t,a.multiple?_.multiple=!0:a.size&&(_.size=a.size))):t=_.createElementNS(t,o),t[Dn]=n,t[eo]=a,Lf(t,n,!1,!1),n.stateNode=t;e:{switch(_=un(o,a),o){case"dialog":it("cancel",t),it("close",t),f=a;break;case"iframe":case"object":case"embed":it("load",t),f=a;break;case"video":case"audio":for(f=0;fSi&&(n.flags|=128,a=!0,co(m,!1),n.lanes=4194304)}else{if(!a)if(t=gl(_),t!==null){if(n.flags|=128,a=!0,o=t.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>Si&&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,t!==null&&t.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(t,n){switch(ja(n),n.tag){case 1:return Kt(n.type)&&rl(),t=n.flags,t&65536?(n.flags=t&-65537|128,n):null;case 3:return vi(),ot(Gt),ot(Ot),ns(),t=n.flags,(t&65536)!==0&&(t&128)===0?(n.flags=t&-65537|128,n):null;case 5:return es(n),null;case 13:if(ot(ct),t=n.memoizedState,t!==null&&t.dehydrated!==null){if(n.alternate===null)throw Error(r(340));yi()}return t=n.flags,t&65536?(n.flags=t&-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(t,n){var o=t.ref;if(o!==null)if(typeof o=="function")try{o(null)}catch(a){pt(t,n,a)}else o.current=null}function ks(t,n,o){try{o()}catch(a){pt(t,n,a)}}var zf=!1;function uh(t,n){if(La=jo,t=gc(),Na(t)){if("selectionStart"in t)var o={start:t.selectionStart,end:t.selectionEnd};else e:{o=(o=t.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=t,Y=null;t:for(;;){for(var pe;J!==o||f!==0&&J.nodeType!==3||(x=_+f),J!==m||a!==0&&J.nodeType!==3||(R=_+a),J.nodeType===3&&(_+=J.nodeValue.length),(pe=J.firstChild)!==null;)Y=J,J=pe;for(;;){if(J===t)break t;if(Y===o&&++F===f&&(x=_),Y===m&&++Q===a&&(R=_),(pe=J.nextSibling)!==null)break;J=Y,Y=J.parentNode}J=pe}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:t,selectionRange:o},jo=!1,ye=n;ye!==null;)if(n=ye,t=n.child,(n.subtreeFlags&1028)!==0&&t!==null)t.return=n,ye=t;else for(;ye!==null;){n=ye;try{var be=n.alternate;if((n.flags&1024)!==0)switch(n.tag){case 0:case 11:case 15:break;case 1:if(be!==null){var Ee=be.memoizedProps,ht=be.memoizedState,D=n.stateNode,I=D.getSnapshotBeforeUpdate(n.elementType===n.type?Ee:xn(n.type,Ee),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(t=n.sibling,t!==null){t.return=n.return,ye=t;break}ye=n.return}return be=zf,zf=!1,be}function fo(t,n,o){var a=n.updateQueue;if(a=a!==null?a.lastEffect:null,a!==null){var f=a=a.next;do{if((f.tag&t)===t){var m=f.destroy;f.destroy=void 0,m!==void 0&&ks(n,o,m)}f=f.next}while(f!==a)}}function xl(t,n){if(n=n.updateQueue,n=n!==null?n.lastEffect:null,n!==null){var o=n=n.next;do{if((o.tag&t)===t){var a=o.create;o.destroy=a()}o=o.next}while(o!==n)}}function ws(t){var n=t.ref;if(n!==null){var o=t.stateNode;switch(t.tag){case 5:t=o;break;default:t=o}typeof n=="function"?n(t):n.current=t}}function Ff(t){var n=t.alternate;n!==null&&(t.alternate=null,Ff(n)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(n=t.stateNode,n!==null&&(delete n[Dn],delete n[eo],delete n[Ba],delete n[Km],delete n[Wm])),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}function Bf(t){return t.tag===5||t.tag===3||t.tag===4}function Uf(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||Bf(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function xs(t,n,o){var a=t.tag;if(a===5||a===6)t=t.stateNode,n?o.nodeType===8?o.parentNode.insertBefore(t,n):o.insertBefore(t,n):(o.nodeType===8?(n=o.parentNode,n.insertBefore(t,o)):(n=o,n.appendChild(t)),o=o._reactRootContainer,o!=null||n.onclick!==null||(n.onclick=tl));else if(a!==4&&(t=t.child,t!==null))for(xs(t,n,o),t=t.sibling;t!==null;)xs(t,n,o),t=t.sibling}function Ss(t,n,o){var a=t.tag;if(a===5||a===6)t=t.stateNode,n?o.insertBefore(t,n):o.appendChild(t);else if(a!==4&&(t=t.child,t!==null))for(Ss(t,n,o),t=t.sibling;t!==null;)Ss(t,n,o),t=t.sibling}var At=null,Sn=!1;function br(t,n,o){for(o=o.child;o!==null;)$f(t,n,o),o=o.sibling}function $f(t,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=Sn;At=null,br(t,n,o),At=a,Sn=f,At!==null&&(Sn?(t=At,o=o.stateNode,t.nodeType===8?t.parentNode.removeChild(o):t.removeChild(o)):At.removeChild(o.stateNode));break;case 18:At!==null&&(Sn?(t=At,o=o.stateNode,t.nodeType===8?Fa(t.parentNode,o):t.nodeType===1&&Fa(t,o),ji(t)):Fa(At,o.stateNode));break;case 4:a=At,f=Sn,At=o.stateNode.containerInfo,Sn=!0,br(t,n,o),At=a,Sn=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)}br(t,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)}br(t,n,o);break;case 21:br(t,n,o);break;case 22:o.mode&1?(Lt=(a=Lt)||o.memoizedState!==null,br(t,n,o),Lt=a):br(t,n,o);break;default:br(t,n,o)}}function Hf(t){var n=t.updateQueue;if(n!==null){t.updateQueue=null;var o=t.stateNode;o===null&&(o=t.stateNode=new sh),n.forEach(function(a){var f=bh.bind(null,t,a);o.has(a)||(o.add(a),a.then(f,f))})}}function Nn(t,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,10t?16:t,_r===null)var a=!1;else{if(t=_r,_r=null,Al=0,(qe&6)!==0)throw Error(r(331));var f=qe;for(qe|=4,ye=t.current;ye!==null;){var m=ye,_=m.child;if((ye.flags&16)!==0){var x=m.deletions;if(x!==null){for(var R=0;Rst()-Ts?Kr(t,0):Cs|=o),qt(t,n)}function td(t,n){n===0&&((t.mode&1)===0?n=1:(n=Ir,Ir<<=1,(Ir&130023424)===0&&(Ir=4194304)));var o=Ut();t=Xn(t,n),t!==null&&(sr(t,n,o),qt(t,o))}function yh(t){var n=t.memoizedState,o=0;n!==null&&(o=n.retryLane),td(t,o)}function bh(t,n){var o=0;switch(t.tag){case 13:var a=t.stateNode,f=t.memoizedState;f!==null&&(o=f.retryLane);break;case 19:a=t.stateNode;break;default:throw Error(r(314))}a!==null&&a.delete(n),td(t,o)}var nd;nd=function(t,n,o){if(t!==null)if(t.memoizedProps!==n.pendingProps||Gt.current)Wt=!0;else{if((t.lanes&o)===0&&(n.flags&128)===0)return Wt=!1,oh(t,n,o);Wt=(t.flags&131072)!==0}else Wt=!1,at&&(n.flags&1048576)!==0&&Lc(n,al,n.index);switch(n.lanes=0,n.tag){case 2:var a=n.type;kl(t,n),t=n.pendingProps;var f=gi(n,Ot.current);_i(n,o),f=os(null,n,a,t,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,Kt(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,t,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(t,n),t=n.pendingProps,f=a._init,a=f(a._payload),n.type=a,f=n.tag=_h(a),t=xn(a,t),f){case 0:n=ms(null,n,a,t,o);break e;case 1:n=Tf(null,n,a,t,o);break e;case 11:n=wf(null,n,a,t,o);break e;case 14:n=xf(null,n,a,xn(a.type,t),o);break e}throw Error(r(306,a,""))}return n;case 0:return a=n.type,f=n.pendingProps,f=n.elementType===a?f:xn(a,f),ms(t,n,a,f,o);case 1:return a=n.type,f=n.pendingProps,f=n.elementType===a?f:xn(a,f),Tf(t,n,a,f,o);case 3:e:{if(Af(n),t===null)throw Error(r(387));a=n.pendingProps,m=n.memoizedState,f=m.element,jc(t,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(t,n,a,o,f);break e}else if(a!==f){f=ki(Error(r(424)),n),n=Rf(t,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(t,n,o);break e}Bt(t,n,a,o)}n=n.child}return n;case 5:return Wc(n),t===null&&Ka(n),a=n.type,f=n.pendingProps,m=t!==null?t.memoizedProps:null,_=f.children,Pa(a,f)?_=null:m!==null&&Pa(a,m)&&(n.flags|=32),Cf(t,n),Bt(t,n,_,o),n.child;case 6:return t===null&&Ka(n),null;case 13:return Of(t,n,o);case 4:return Ja(n,n.stateNode.containerInfo),a=n.pendingProps,t===null?n.child=bi(n,null,a,o):Bt(t,n,a,o),n.child;case 11:return a=n.type,f=n.pendingProps,f=n.elementType===a?f:xn(a,f),wf(t,n,a,f,o);case 7:return Bt(t,n,n.pendingProps,o),n.child;case 8:return Bt(t,n,n.pendingProps.children,o),n.child;case 12:return Bt(t,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(t,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(t,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(t,n,a,o),n.child;case 14:return a=n.type,f=xn(a,n.pendingProps),f=xn(a.type,f),xf(t,n,a,f,o);case 15:return Sf(t,n,n.type,n.pendingProps,o);case 17:return a=n.type,f=n.pendingProps,f=n.elementType===a?f:xn(a,f),kl(t,n),n.tag=1,Kt(a)?(t=!0,il(n)):t=!1,_i(n,o),hf(n,a,f),ds(n,a,f,o),hs(null,n,a,!0,t,o);case 19:return Mf(t,n,o);case 22:return Nf(t,n,o)}throw Error(r(156,n.tag))};function rd(t,n){return zo(t,n)}function Eh(t,n,o,a){this.tag=t,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(t,n,o,a){return new Eh(t,n,o,a)}function Ps(t){return t=t.prototype,!(!t||!t.isReactComponent)}function _h(t){if(typeof t=="function")return Ps(t)?1:0;if(t!=null){if(t=t.$$typeof,t===q)return 11;if(t===U)return 14}return 2}function wr(t,n){var o=t.alternate;return o===null?(o=hn(t.tag,n,t.key,t.mode),o.elementType=t.elementType,o.type=t.type,o.stateNode=t.stateNode,o.alternate=t,t.alternate=o):(o.pendingProps=n,o.type=t.type,o.flags=0,o.subtreeFlags=0,o.deletions=null),o.flags=t.flags&14680064,o.childLanes=t.childLanes,o.lanes=t.lanes,o.child=t.child,o.memoizedProps=t.memoizedProps,o.memoizedState=t.memoizedState,o.updateQueue=t.updateQueue,n=t.dependencies,o.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},o.sibling=t.sibling,o.index=t.index,o.ref=t.ref,o}function Ml(t,n,o,a,f,m){var _=2;if(a=t,typeof t=="function")Ps(t)&&(_=1);else if(typeof t=="string")_=5;else e:switch(t){case X:return Vr(o.children,f,m,n);case ee:_=8,f|=8;break;case re:return t=hn(12,o,n,f|2),t.elementType=re,t.lanes=m,t;case te:return t=hn(13,o,n,f),t.elementType=te,t.lanes=m,t;case L:return t=hn(19,o,n,f),t.elementType=L,t.lanes=m,t;case ce:return Ll(o,f,m,n);default:if(typeof t=="object"&&t!==null)switch(t.$$typeof){case M:_=10;break e;case W:_=9;break e;case q:_=11;break e;case U:_=14;break e;case ue:_=16,a=null;break e}throw Error(r(130,t==null?t:typeof t,""))}return n=hn(_,o,n,f),n.elementType=t,n.type=a,n.lanes=m,n}function Vr(t,n,o,a){return t=hn(7,t,a,n),t.lanes=o,t}function Ll(t,n,o,a){return t=hn(22,t,a,n),t.elementType=ce,t.lanes=o,t.stateNode={isHidden:!1},t}function zs(t,n,o){return t=hn(6,t,null,n),t.lanes=o,t}function Fs(t,n,o){return n=hn(4,t.children!==null?t.children:[],t.key,n),n.lanes=o,n.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},n}function vh(t,n,o,a,f){this.tag=n,this.containerInfo=t,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(t,n,o,a,f,m,_,x,R){return t=new vh(t,n,o,x,R),n===1?(n=1,m===!0&&(n|=8)):n=0,m=hn(3,null,null,n),t.current=m,m.stateNode=t,m.memoizedState={element:a,isDehydrated:o,cache:null,transitions:null,pendingSuspenseBoundaries:null},Xa(m),t}function kh(t,n,o){var a=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(i){console.error(i)}}return e(),Ks.exports=Ph(),Ks.exports}var yd;function Fh(){if(yd)return $l;yd=1;var e=zh();return $l.createRoot=e.createRoot,$l.hydrateRoot=e.hydrateRoot,$l}var Bh=Fh();const Uh=Ao(Bh);class $h{constructor(){Ci(this,"ws",null);Ci(this,"handlers",new Set);Ci(this,"queue",[]);Ci(this,"closedByUser",!1);Ci(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 xp="oxagenttwo.options",bd="oxagenttwo.session",Ed="oxagenttwo.systemPrompt";function Hh(){const e={think:!0,tools:!0,temperature:.7,numPredict:2048,provider:"ollama",openrouterModel:"anthropic/claude-sonnet-4.5",memorySteps:10,memoryAnchors:!0,dreamAuto:!0};try{const i=localStorage.getItem(xp);if(i)return{...e,...JSON.parse(i)}}catch{}return e}function jh(){const e=de.useRef(null),[i,r]=de.useState("connecting"),[l,s]=de.useState([]),[c,u]=de.useState(()=>localStorage.getItem(bd)),[d,p]=de.useState([]),[g,y]=de.useState(!1),[h,b]=de.useState({}),[E,k]=de.useState(Hh),[T,S]=de.useState(()=>localStorage.getItem(Ed)??""),[N,B]=de.useState(null),P=de.useRef(!1);de.useEffect(()=>{const W=new $h;e.current=W,W.onStatus=r;const q=W.subscribe(te=>{const L=te.type;if(L==="user-message"){const U=te.message;p(ue=>ue.some(ce=>ce.id===U.id)?ue:[...ue,U])}else if(L==="assistant-start"){const U=te.message;p(ue=>[...ue,{...U,content:"",thinking:""}])}else if(L==="thinking"){const U=te.text;p(ue=>ue.map(ce=>ce.id===te.messageId?{...ce,thinking:(ce.thinking??"")+U}:ce))}else if(L==="token"){const U=te.text;p(ue=>ue.map(ce=>ce.id===te.messageId?{...ce,content:ce.content+U}:ce))}else L==="tool-call"?b(U=>({...U,[te.messageId]:[...U[te.messageId]??[],{name:te.name,args:te.args}]})):L==="tool-result"?b(U=>{const ue=U[te.messageId]??[],ce=[...ue].reverse().findIndex(v=>v.name===te.name&&v.ok===void 0);if(ce===-1)return U;const G=ue.length-1-ce,ae=ue.map((v,O)=>O===G?{...v,ok:te.ok,durationMs:te.durationMs}:v);return{...U,[te.messageId]:ae}}):L==="done"||L==="error"?(P.current=!1,y(!1)):(L==="sessions-changed"||L==="session-deleted")&&j()});return W.connect(),()=>{q(),W.close()}},[]);const j=de.useCallback(async()=>{const q=await(await fetch("/api/sessions")).json();s(q),u(te=>{var L;return te??((L=q[0])==null?void 0:L.id)??null})},[]);de.useEffect(()=>{j(),fetch("/api/model").then(W=>W.json()).then(B).catch(()=>B({ok:!1,error:"Ollama nicht erreichbar"}))},[j]),de.useEffect(()=>{if(!c){p([]);return}localStorage.setItem(bd,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 Z=de.useCallback(W=>{k(q=>{const te={...q,...W};return localStorage.setItem(xp,JSON.stringify(te)),te})},[]),A=de.useCallback(W=>{S(W),localStorage.setItem(Ed,W)},[]),X=de.useCallback((W,q=[])=>{var te;!W.trim()&&q.length===0||P.current||!c||(P.current=!0,y(!0),(te=e.current)==null||te.send({type:"chat",sessionId:c,content:W,images:q,options:E,systemPrompt:T}))},[c,E,T]),ee=de.useCallback(()=>{var W;(W=e.current)==null||W.send({type:"abort"})},[]),re=de.useCallback(async()=>{const q=await(await fetch("/api/sessions",{method:"POST"})).json();await j(),u(q.id)},[j]),M=de.useCallback(async W=>{await fetch(`/api/sessions/${W}`,{method:"DELETE"}),s(q=>q.filter(te=>te.id!==W)),u(q=>q===W?null:q),await j()},[j]);return{status:i,sessions:l,activeId:c,setActiveId:u,messages:d,streaming:g,toolEvents:h,sendMessage:X,abort:ee,newSession:re,deleteSession:M,options:E,setOptions:Z,systemPrompt:T,setSystemPrompt:A,modelInfo:N}}function Gh({onTranscript:e,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([]),T=de.useRef(null),S=de.useRef(!1),N=de.useRef(null),B=de.useRef(i);B.current=i;const P=de.useRef(e);P.current=e;const j=de.useCallback(async()=>{if(S.current)return;const re=k.current.shift();if(re===void 0){d(!1),B.current();return}S.current=!0,d(!0);try{N.current=new AbortController;const M=await fetch("/api/tts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:re}),signal:N.current.signal});if(!M.ok)throw new Error(`TTS HTTP ${M.status}`);const W=await M.blob(),q=new Audio(URL.createObjectURL(W));T.current=q,await new Promise(te=>{q.onended=()=>te(),q.onerror=()=>te(),q.play().catch(()=>te())}),URL.revokeObjectURL(q.src)}catch(M){M instanceof DOMException&&M.name==="AbortError"||g(M instanceof Error?M.message:String(M))}finally{S.current=!1,N.current=null,j()}},[]),Z=de.useCallback(re=>{const M=re.trim();M&&(k.current.push(M),j())},[j]),A=de.useCallback(()=>{var re;k.current=[],(re=N.current)==null||re.abort(),T.current&&(T.current.pause(),T.current.src=""),S.current=!1,d(!1)},[]),X=de.useCallback(()=>{var re;E.current&&clearTimeout(E.current),E.current=null,((re=y.current)==null?void 0:re.state)==="recording"&&y.current.stop()},[]),ee=de.useCallback(async()=>{var re;if(((re=y.current)==null?void 0:re.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=q=>{q.data.size>0&&h.current.push(q.data)},W.onstop=async()=>{var te,L;(te=b.current)==null||te.getTracks().forEach(U=>U.stop()),b.current=null,l(!1);const q=new Blob(h.current);if(h.current=[],!(q.size<2e3)){c(!0);try{const ue=await(await fetch("/api/stt",{method:"POST",headers:{"Content-Type":"application/octet-stream"},body:q})).json();if(!ue.ok)throw new Error(ue.error??"STT fehlgeschlagen");const ce=(L=ue.text)==null?void 0:L.trim();ce?P.current(ce):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(()=>X(),3e4)}catch(M){g(M instanceof Error?M.message:String(M))}}},[e,X]);return de.useEffect(()=>()=>{var re,M;((re=y.current)==null?void 0:re.state)==="recording"&&y.current.stop(),(M=b.current)==null||M.getTracks().forEach(W=>W.stop()),A()},[]),{recording:r,transcribing:s,speaking:u,error:p,setError:g,startRecording:ee,stopRecording:X,enqueueSpeech:Z,cancelSpeech:A}}function Kh({sessions:e,activeId:i,onSelect:r,onNew:l,onDelete:s}){return K.jsxs("aside",{className:"sidebar",children:[K.jsxs("div",{className:"sidebar-header",children:[K.jsxs("div",{className:"brand",children:[K.jsx("span",{className:"brand-prompt",children:"▸"})," agenttwo-tools"]}),K.jsx("button",{className:"btn-new",onClick:l,children:"+ Neuer Chat"})]}),K.jsxs("nav",{className:"session-list",children:[e.length===0&&K.jsx("div",{className:"empty-hint",children:"Noch keine Sessions."}),e.map(c=>K.jsxs("div",{className:`session-item ${c.id===i?"active":""}`,onClick:()=>r(c.id),children:[K.jsx("span",{className:"session-title",children:c.title}),K.jsx("button",{className:"session-delete",title:"Session löschen",onClick:u=>{u.stopPropagation(),s(c.id)},children:"✕"})]},c.id))]})]})}function Wh(e,i){const r={};return(e[e.length-1]===""?[...e,""]:e).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(e,i){return(Yh.jsx?qh:Vh).test(e)}const Qh=/[ \t\n\f\r]/g;function Zh(e){return typeof e=="object"?e.type==="text"?vd(e.value):!1:vd(e)}function vd(e){return e.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 Sp(e,i){const r={},l={};for(const s of e)Object.assign(r,s.property),Object.assign(l,s.normal);return new Ro(r,l,i)}function gu(e){return e.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(),Et=Xr(),mu=Xr(),ne=Xr(),Je=Xr(),Qr=Xr(),on=Xr();function Xr(){return 2**++Xh}const hu=Object.freeze(Object.defineProperty({__proto__:null,boolean:Le,booleanish:Et,commaOrSpaceSeparated:on,commaSeparated:Qr,number:ne,overloadedBoolean:mu,spaceSeparated:Je},Symbol.toStringTag,{value:"Module"})),qs=Object.keys(hu);class Cu 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=Cu}return new s(l,i)}function oy(e){return"-"+e.toLowerCase()}function ly(e){return e.charAt(1).toUpperCase()}const ay=Sp([Np,Jh,Ap,Rp,Op],"html"),Tu=Sp([Np,ey,Ap,Rp,Op],"svg");function sy(e){return e.join(" ").trim()}var Ti={},Ys,xd;function uy(){if(xd)return Ys;xd=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//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(S,N){if(typeof S!="string")throw new TypeError("First argument must be a string");if(!S)return[];N=N||{};var B=1,P=1;function j(L){var U=L.match(i);U&&(B+=U.length);var ue=L.lastIndexOf(p);P=~ue?L.length-ue:P+L.length}function Z(){var L={line:B,column:P};return function(U){return U.position=new A(L),re(),U}}function A(L){this.start=L,this.end={line:B,column:P},this.source=N.source}A.prototype.content=S;function X(L){var U=new Error(N.source+":"+B+":"+P+": "+L);if(U.reason=L,U.filename=N.source,U.line=B,U.column=P,U.source=S,!N.silent)throw U}function ee(L){var U=L.exec(S);if(U){var ue=U[0];return j(ue),S=S.slice(ue.length),U}}function re(){ee(r)}function M(L){var U;for(L=L||[];U=W();)U!==!1&&L.push(U);return L}function W(){var L=Z();if(!(g!=S.charAt(0)||y!=S.charAt(1))){for(var U=2;h!=S.charAt(U)&&(y!=S.charAt(U)||g!=S.charAt(U+1));)++U;if(U+=2,h===S.charAt(U-1))return X("End of comment missing");var ue=S.slice(2,U-2);return P+=2,j(ue),S=S.slice(U),P+=2,L({type:b,comment:ue})}}function q(){var L=Z(),U=ee(l);if(U){if(W(),!ee(s))return X("property missing ':'");var ue=ee(c),ce=L({type:E,property:T(U[0].replace(e,h)),value:ue?T(ue[0].replace(e,h)):h});return ee(u),ce}}function te(){var L=[];M(L);for(var U;U=q();)U!==!1&&(L.push(U),M(L));return L}return re(),te()}function T(S){return S?S.replace(d,h):h}return Ys=k,Ys}var Sd;function cy(){if(Sd)return Ti;Sd=1;var e=Ti&&Ti.__importDefault||function(l){return l&&l.__esModule?l:{default:l}};Object.defineProperty(Ti,"__esModule",{value:!0}),Ti.default=r;const i=e(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 Ti}var bo={},Nd;function fy(){if(Nd)return bo;Nd=1,Object.defineProperty(bo,"__esModule",{value:!0}),bo.camelCase=void 0;var e=/^--[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)||e.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 bo.camelCase=p,bo}var Eo,Cd;function dy(){if(Cd)return Eo;Cd=1;var e=Eo&&Eo.__importDefault||function(s){return s&&s.__esModule?s:{default:s}},i=e(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,Eo=l,Eo}var py=dy();const gy=Ao(py),Ip=Mp("end"),Au=Mp("start");function Mp(e){return i;function i(r){const l=r&&r.position&&r.position[e]||{};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(e){const i=Au(e),r=Ip(e);if(i&&r)return{start:i,end:r}}function xo(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?Td(e.position):"start"in e||"end"in e?Td(e):"line"in e||"column"in e?yu(e):""}function yu(e){return Ad(e&&e.line)+":"+Ad(e&&e.column)}function Td(e){return yu(e&&e.start)+"-"+yu(e&&e.end)}function Ad(e){return e&&typeof e=="number"?e: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=xo(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,by=new Set(["table","tbody","thead","tfoot","tr"]),Ey=new Set(["td","th"]),Lp="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function _y(e,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=Ty(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=Cy(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"?Tu:ay,stylePropertyNameCase:i.stylePropertyNameCase||"dom",tableCellAlignToStyle:i.tableCellAlignToStyle!==!1},c=Dp(s,e,void 0);return c&&typeof c!="string"?c:s.create(e,s.Fragment,{children:c||void 0},void 0)}function Dp(e,i,r){if(i.type==="element")return vy(e,i,r);if(i.type==="mdxFlowExpression"||i.type==="mdxTextExpression")return ky(e,i);if(i.type==="mdxJsxFlowElement"||i.type==="mdxJsxTextElement")return xy(e,i,r);if(i.type==="mdxjsEsm")return wy(e,i);if(i.type==="root")return Sy(e,i,r);if(i.type==="text")return Ny(e,i)}function vy(e,i,r){const l=e.schema;let s=l;i.tagName.toLowerCase()==="svg"&&l.space==="html"&&(s=Tu,e.schema=s),e.ancestors.push(i);const c=zp(e,i.tagName,!1),u=Ay(e,i);let d=Iu(e,i);return by.has(i.tagName)&&(d=d.filter(function(p){return typeof p=="string"?!Zh(p):!0})),Pp(e,u,c,i),Ou(u,d),e.ancestors.pop(),e.schema=l,e.create(i,c,u,r)}function ky(e,i){if(i.data&&i.data.estree&&e.evaluater){const l=i.data.estree.body[0];return l.type,e.evaluater.evaluateExpression(l.expression)}Co(e,i.position)}function wy(e,i){if(i.data&&i.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(i.data.estree);Co(e,i.position)}function xy(e,i,r){const l=e.schema;let s=l;i.name==="svg"&&l.space==="html"&&(s=Tu,e.schema=s),e.ancestors.push(i);const c=i.name===null?e.Fragment:zp(e,i.name,!0),u=Ry(e,i),d=Iu(e,i);return Pp(e,u,c,i),Ou(u,d),e.ancestors.pop(),e.schema=l,e.create(i,c,u,r)}function Sy(e,i,r){const l={};return Ou(l,Iu(e,i)),e.create(i,e.Fragment,l,r)}function Ny(e,i){return i.value}function Pp(e,i,r,l){typeof r!="string"&&r!==e.Fragment&&e.passNode&&(i.node=l)}function Ou(e,i){if(i.length>0){const r=i.length>1?i:i[0];r&&(e.children=r)}}function Cy(e,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 Ty(e,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:e,lineNumber:p?p.line:void 0},void 0)}}function Ay(e,i){const r={};let l,s;for(s in i.properties)if(s!=="children"&&Ru.call(i.properties,s)){const c=Oy(e,s,i.properties[s]);if(c){const[u,d]=c;e.tableCellAlignToStyle&&u==="align"&&typeof d=="string"&&Ey.has(i.tagName)?l=d:r[u]=d}}if(l){const c=r.style||(r.style={});c[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=l}return r}function Ry(e,i){const r={};for(const l of i.attributes)if(l.type==="mdxJsxExpressionAttribute")if(l.data&&l.data.estree&&e.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,e.evaluater.evaluateExpression(d.argument))}else Co(e,i.position);else{const s=l.name;let c;if(l.value&&typeof l.value=="object")if(l.value.data&&l.value.data.estree&&e.evaluater){const d=l.value.data.estree.body[0];d.type,c=e.evaluater.evaluateExpression(d.expression)}else Co(e,i.position);else c=l.value===null?!0:l.value;r[s]=c}return r}function Iu(e,i){const r=[];let l=-1;const s=e.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),e.splice(...u);else for(r&&e.splice(i,r);c0?(ln(e,e.length,0,i),e):i}const Id={}.hasOwnProperty;function Bp(e){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 Tn(e){return e.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(e){return e!==null&&(e<32||e===127)}const bu=Nr(/\d/),$y=Nr(/[\dA-Fa-f]/),Hy=Nr(/[!-/:-@[-`{-~]/);function Ce(e){return e!==null&&e<-2}function et(e){return e!==null&&(e<0||e===32)}function Ue(e){return e===-2||e===-1||e===32}const ia=Nr(new RegExp("\\p{P}|\\p{S}","u")),Zr=Nr(/\s/);function Nr(e){return i;function i(r){return r!==null&&r>-1&&e.test(String.fromCharCode(r))}}function Li(e){const i=[];let r=-1,l=0,s=0;for(;++r55295&&c<57344){const d=e.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(e.slice(l,r),encodeURIComponent(u)),l=r+s+1,u=""),s&&(r+=s,s=0)}return i.join("")+e.slice(l)}function We(e,i,r,l){const s=l?l-1:Number.POSITIVE_INFINITY;let c=0;return u;function u(p){return Ue(p)?(e.enter(r),d(p)):i(p)}function d(p){return Ue(p)&&c++u))return;const X=i.events.length;let ee=X,re,M;for(;ee--;)if(i.events[ee][0]==="exit"&&i.events[ee][1].type==="chunkFlow"){if(re){M=i.events[ee][1].end;break}re=!0}for(N(l),A=X;AP;){const Z=r[j];i.containerState=Z[1],Z[0].exit.call(i,e)}r.length=P}function B(){s.write([null]),c=void 0,s=void 0,i.containerState._closeFlow=void 0}}function Vy(e,i,r){return We(e,e.attempt(this.parser.constructs.document,i,r),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Ii(e){if(e===null||et(e)||Zr(e))return 1;if(ia(e))return 2}function oa(e,i,r){const l=[];let s=-1;for(;++s1&&e[r][1].end.offset-e[r][1].start.offset>1?2:1;const h={...e[l][1].end},b={...e[r][1].start};Ld(h,-p),Ld(b,p),u={type:p>1?"strongSequence":"emphasisSequence",start:h,end:{...e[l][1].end}},d={type:p>1?"strongSequence":"emphasisSequence",start:{...e[r][1].start},end:b},c={type:p>1?"strongText":"emphasisText",start:{...e[l][1].end},end:{...e[r][1].start}},s={type:p>1?"strong":"emphasis",start:{...u.start},end:{...d.end}},e[l][1].end={...u.start},e[r][1].start={...d.end},g=[],e[l][1].end.offset-e[l][1].start.offset&&(g=yn(g,[["enter",e[l][1],i],["exit",e[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,e.slice(l+1,r),i)),g=yn(g,[["exit",c,i],["enter",d,i],["exit",d,i],["exit",s,i]]),e[r][1].end.offset-e[r][1].start.offset?(y=2,g=yn(g,[["enter",e[r][1],i],["exit",e[r][1],i]])):y=0,ln(e,l-1,r-l+3,g),r=l+g.length-y-2;break}}for(r=-1;++r0&&Ue(A)?We(e,B,"linePrefix",c+1)(A):B(A)}function B(A){return A===null||Ce(A)?e.check(Dd,T,j)(A):(e.enter("codeFlowValue"),P(A))}function P(A){return A===null||Ce(A)?(e.exit("codeFlowValue"),B(A)):(e.consume(A),P)}function j(A){return e.exit("codeFenced"),i(A)}function Z(A,X,ee){let re=0;return M;function M(U){return A.enter("lineEnding"),A.consume(U),A.exit("lineEnding"),W}function W(U){return A.enter("codeFencedFence"),Ue(U)?We(A,q,"linePrefix",l.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(U):q(U)}function q(U){return U===d?(A.enter("codeFencedFenceSequence"),te(U)):ee(U)}function te(U){return U===d?(re++,A.consume(U),te):re>=u?(A.exit("codeFencedFenceSequence"),Ue(U)?We(A,L,"whitespace")(U):L(U)):ee(U)}function L(U){return U===null||Ce(U)?(A.exit("codeFencedFence"),X(U)):ee(U)}}}function ob(e,i,r){const l=this;return s;function s(u){return u===null?r(u):(e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),c)}function c(u){return l.parser.lazy[l.now().line]?r(u):i(u)}}const Zs={name:"codeIndented",tokenize:ab},lb={partial:!0,tokenize:sb};function ab(e,i,r){const l=this;return s;function s(g){return e.enter("codeIndented"),We(e,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):Ce(g)?e.attempt(lb,u,p)(g):(e.enter("codeFlowValue"),d(g))}function d(g){return g===null||Ce(g)?(e.exit("codeFlowValue"),u(g)):(e.consume(g),d)}function p(g){return e.exit("codeIndented"),i(g)}}function sb(e,i,r){const l=this;return s;function s(u){return l.parser.lazy[l.now().line]?r(u):Ce(u)?(e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),s):We(e,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):Ce(u)?s(u):r(u)}}const ub={name:"codeText",previous:fb,resolve:cb,tokenize:db};function cb(e){let i=e.length-4,r=3,l,s;if((e[r][1].type==="lineEnding"||e[r][1].type==="space")&&(e[i][1].type==="lineEnding"||e[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):e.interrupt(l.parser.constructs.flow,r,i)(u)}}function Kp(e,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?(e.enter(l),e.enter(s),e.enter(c),e.consume(N),e.exit(c),b):N===null||N===32||N===41||Xl(N)?r(N):(e.enter(l),e.enter(u),e.enter(d),e.enter("chunkString",{contentType:"string"}),T(N))}function b(N){return N===62?(e.enter(c),e.consume(N),e.exit(c),e.exit(s),e.exit(l),i):(e.enter(d),e.enter("chunkString",{contentType:"string"}),E(N))}function E(N){return N===62?(e.exit("chunkString"),e.exit(d),b(N)):N===null||N===60||Ce(N)?r(N):(e.consume(N),N===92?k:E)}function k(N){return N===60||N===62||N===92?(e.consume(N),E):E(N)}function T(N){return!y&&(N===null||N===41||et(N))?(e.exit("chunkString"),e.exit(d),e.exit(u),e.exit(l),i(N)):y999||E===null||E===91||E===93&&!p||E===94&&!d&&"_hiddenFootnoteSupport"in u.parser.constructs?r(E):E===93?(e.exit(c),e.enter(s),e.consume(E),e.exit(s),e.exit(l),i):Ce(E)?(e.enter("lineEnding"),e.consume(E),e.exit("lineEnding"),y):(e.enter("chunkString",{contentType:"string"}),h(E))}function h(E){return E===null||E===91||E===93||Ce(E)||d++>999?(e.exit("chunkString"),y(E)):(e.consume(E),p||(p=!Ue(E)),E===92?b:h)}function b(E){return E===91||E===92||E===93?(e.consume(E),d++,h):h(E)}}function Vp(e,i,r,l,s,c){let u;return d;function d(b){return b===34||b===39||b===40?(e.enter(l),e.enter(s),e.consume(b),e.exit(s),u=b===40?41:b,p):r(b)}function p(b){return b===u?(e.enter(s),e.consume(b),e.exit(s),e.exit(l),i):(e.enter(c),g(b))}function g(b){return b===u?(e.exit(c),p(u)):b===null?r(b):Ce(b)?(e.enter("lineEnding"),e.consume(b),e.exit("lineEnding"),We(e,g,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),y(b))}function y(b){return b===u||b===null||Ce(b)?(e.exit("chunkString"),g(b)):(e.consume(b),b===92?h:y)}function h(b){return b===u||b===92?(e.consume(b),y):y(b)}}function So(e,i){let r;return l;function l(s){return Ce(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),r=!0,l):Ue(s)?We(e,l,r?"linePrefix":"lineSuffix")(s):i(s)}}const _b={name:"definition",tokenize:kb},vb={partial:!0,tokenize:wb};function kb(e,i,r){const l=this;let s;return c;function c(E){return e.enter("definition"),u(E)}function u(E){return Wp.call(l,e,d,r,"definitionLabel","definitionLabelMarker","definitionLabelString")(E)}function d(E){return s=Tn(l.sliceSerialize(l.events[l.events.length-1][1]).slice(1,-1)),E===58?(e.enter("definitionMarker"),e.consume(E),e.exit("definitionMarker"),p):r(E)}function p(E){return et(E)?So(e,g)(E):g(E)}function g(E){return Kp(e,y,r,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(E)}function y(E){return e.attempt(vb,h,h)(E)}function h(E){return Ue(E)?We(e,b,"whitespace")(E):b(E)}function b(E){return E===null||Ce(E)?(e.exit("definition"),l.parser.defined.push(s),i(E)):r(E)}}function wb(e,i,r){return l;function l(d){return et(d)?So(e,s)(d):r(d)}function s(d){return Vp(e,c,r,"definitionTitle","definitionTitleMarker","definitionTitleString")(d)}function c(d){return Ue(d)?We(e,u,"whitespace")(d):u(d)}function u(d){return d===null||Ce(d)?i(d):r(d)}}const xb={name:"hardBreakEscape",tokenize:Sb};function Sb(e,i,r){return l;function l(c){return e.enter("hardBreakEscape"),e.consume(c),s}function s(c){return Ce(c)?(e.exit("hardBreakEscape"),i(c)):r(c)}}const Nb={name:"headingAtx",resolve:Cb,tokenize:Tb};function Cb(e,i){let r=e.length-2,l=3,s,c;return e[l][1].type==="whitespace"&&(l+=2),r-2>l&&e[r][1].type==="whitespace"&&(r-=2),e[r][1].type==="atxHeadingSequence"&&(l===r-1||r-4>l&&e[r-2][1].type==="whitespace")&&(r-=l+1===r?2:4),r>l&&(s={type:"atxHeadingText",start:e[l][1].start,end:e[r][1].end},c={type:"chunkText",start:e[l][1].start,end:e[r][1].end,contentType:"text"},ln(e,l,r-l+1,[["enter",s,i],["enter",c,i],["exit",c,i],["exit",s,i]])),e}function Tb(e,i,r){let l=0;return s;function s(y){return e.enter("atxHeading"),c(y)}function c(y){return e.enter("atxHeadingSequence"),u(y)}function u(y){return y===35&&l++<6?(e.consume(y),u):y===null||et(y)?(e.exit("atxHeadingSequence"),d(y)):r(y)}function d(y){return y===35?(e.enter("atxHeadingSequence"),p(y)):y===null||Ce(y)?(e.exit("atxHeading"),i(y)):Ue(y)?We(e,d,"whitespace")(y):(e.enter("atxHeadingText"),g(y))}function p(y){return y===35?(e.consume(y),p):(e.exit("atxHeadingSequence"),d(y))}function g(y){return y===null||y===35||et(y)?(e.exit("atxHeadingText"),d(y)):(e.consume(y),g)}}const Ab=["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"],Rb={concrete:!0,name:"htmlFlow",resolveTo:Mb,tokenize:Lb},Ob={partial:!0,tokenize:Pb},Ib={partial:!0,tokenize:Db};function Mb(e){let i=e.length;for(;i--&&!(e[i][0]==="enter"&&e[i][1].type==="htmlFlow"););return i>1&&e[i-2][1].type==="linePrefix"&&(e[i][1].start=e[i-2][1].start,e[i+1][1].start=e[i-2][1].start,e.splice(i-2,2)),e}function Lb(e,i,r){const l=this;let s,c,u,d,p;return g;function g(w){return y(w)}function y(w){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(w),h}function h(w){return w===33?(e.consume(w),b):w===47?(e.consume(w),c=!0,T):w===63?(e.consume(w),s=3,l.interrupt?i:v):Ht(w)?(e.consume(w),u=String.fromCharCode(w),S):r(w)}function b(w){return w===45?(e.consume(w),s=2,E):w===91?(e.consume(w),s=5,d=0,k):Ht(w)?(e.consume(w),s=4,l.interrupt?i:v):r(w)}function E(w){return w===45?(e.consume(w),l.interrupt?i:v):r(w)}function k(w){const we="CDATA[";return w===we.charCodeAt(d++)?(e.consume(w),d===we.length?l.interrupt?i:q:k):r(w)}function T(w){return Ht(w)?(e.consume(w),u=String.fromCharCode(w),S):r(w)}function S(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):q(w)):Ab.includes(u.toLowerCase())?(s=6,we?(e.consume(w),N):l.interrupt?i(w):q(w)):(s=7,l.interrupt&&!l.parser.lazy[l.now().line]?r(w):c?B(w):P(w))}return w===45||Dt(w)?(e.consume(w),u+=String.fromCharCode(w),S):r(w)}function N(w){return w===62?(e.consume(w),l.interrupt?i:q):r(w)}function B(w){return Ue(w)?(e.consume(w),B):M(w)}function P(w){return w===47?(e.consume(w),M):w===58||w===95||Ht(w)?(e.consume(w),j):Ue(w)?(e.consume(w),P):M(w)}function j(w){return w===45||w===46||w===58||w===95||Dt(w)?(e.consume(w),j):Z(w)}function Z(w){return w===61?(e.consume(w),A):Ue(w)?(e.consume(w),Z):P(w)}function A(w){return w===null||w===60||w===61||w===62||w===96?r(w):w===34||w===39?(e.consume(w),p=w,X):Ue(w)?(e.consume(w),A):ee(w)}function X(w){return w===p?(e.consume(w),p=null,re):w===null||Ce(w)?r(w):(e.consume(w),X)}function ee(w){return w===null||w===34||w===39||w===47||w===60||w===61||w===62||w===96||et(w)?Z(w):(e.consume(w),ee)}function re(w){return w===47||w===62||Ue(w)?P(w):r(w)}function M(w){return w===62?(e.consume(w),W):r(w)}function W(w){return w===null||Ce(w)?q(w):Ue(w)?(e.consume(w),W):r(w)}function q(w){return w===45&&s===2?(e.consume(w),ue):w===60&&s===1?(e.consume(w),ce):w===62&&s===4?(e.consume(w),O):w===63&&s===3?(e.consume(w),v):w===93&&s===5?(e.consume(w),ae):Ce(w)&&(s===6||s===7)?(e.exit("htmlFlowData"),e.check(Ob,$,te)(w)):w===null||Ce(w)?(e.exit("htmlFlowData"),te(w)):(e.consume(w),q)}function te(w){return e.check(Ib,L,$)(w)}function L(w){return e.enter("lineEnding"),e.consume(w),e.exit("lineEnding"),U}function U(w){return w===null||Ce(w)?te(w):(e.enter("htmlFlowData"),q(w))}function ue(w){return w===45?(e.consume(w),v):q(w)}function ce(w){return w===47?(e.consume(w),u="",G):q(w)}function G(w){if(w===62){const we=u.toLowerCase();return zd.includes(we)?(e.consume(w),O):q(w)}return Ht(w)&&u.length<8?(e.consume(w),u+=String.fromCharCode(w),G):q(w)}function ae(w){return w===93?(e.consume(w),v):q(w)}function v(w){return w===62?(e.consume(w),O):w===45&&s===2?(e.consume(w),v):q(w)}function O(w){return w===null||Ce(w)?(e.exit("htmlFlowData"),$(w)):(e.consume(w),O)}function $(w){return e.exit("htmlFlow"),i(w)}}function Db(e,i,r){const l=this;return s;function s(u){return Ce(u)?(e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),c):r(u)}function c(u){return l.parser.lazy[l.now().line]?r(u):i(u)}}function Pb(e,i,r){return l;function l(s){return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),e.attempt(Oo,i,r)}}const zb={name:"htmlText",tokenize:Fb};function Fb(e,i,r){const l=this;let s,c,u;return d;function d(v){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(v),p}function p(v){return v===33?(e.consume(v),g):v===47?(e.consume(v),Z):v===63?(e.consume(v),P):Ht(v)?(e.consume(v),ee):r(v)}function g(v){return v===45?(e.consume(v),y):v===91?(e.consume(v),c=0,k):Ht(v)?(e.consume(v),B):r(v)}function y(v){return v===45?(e.consume(v),E):r(v)}function h(v){return v===null?r(v):v===45?(e.consume(v),b):Ce(v)?(u=h,ce(v)):(e.consume(v),h)}function b(v){return v===45?(e.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++)?(e.consume(v),c===O.length?T:k):r(v)}function T(v){return v===null?r(v):v===93?(e.consume(v),S):Ce(v)?(u=T,ce(v)):(e.consume(v),T)}function S(v){return v===93?(e.consume(v),N):T(v)}function N(v){return v===62?ue(v):v===93?(e.consume(v),N):T(v)}function B(v){return v===null||v===62?ue(v):Ce(v)?(u=B,ce(v)):(e.consume(v),B)}function P(v){return v===null?r(v):v===63?(e.consume(v),j):Ce(v)?(u=P,ce(v)):(e.consume(v),P)}function j(v){return v===62?ue(v):P(v)}function Z(v){return Ht(v)?(e.consume(v),A):r(v)}function A(v){return v===45||Dt(v)?(e.consume(v),A):X(v)}function X(v){return Ce(v)?(u=X,ce(v)):Ue(v)?(e.consume(v),X):ue(v)}function ee(v){return v===45||Dt(v)?(e.consume(v),ee):v===47||v===62||et(v)?re(v):r(v)}function re(v){return v===47?(e.consume(v),ue):v===58||v===95||Ht(v)?(e.consume(v),M):Ce(v)?(u=re,ce(v)):Ue(v)?(e.consume(v),re):ue(v)}function M(v){return v===45||v===46||v===58||v===95||Dt(v)?(e.consume(v),M):W(v)}function W(v){return v===61?(e.consume(v),q):Ce(v)?(u=W,ce(v)):Ue(v)?(e.consume(v),W):re(v)}function q(v){return v===null||v===60||v===61||v===62||v===96?r(v):v===34||v===39?(e.consume(v),s=v,te):Ce(v)?(u=q,ce(v)):Ue(v)?(e.consume(v),q):(e.consume(v),L)}function te(v){return v===s?(e.consume(v),s=void 0,U):v===null?r(v):Ce(v)?(u=te,ce(v)):(e.consume(v),te)}function L(v){return v===null||v===34||v===39||v===60||v===61||v===96?r(v):v===47||v===62||et(v)?re(v):(e.consume(v),L)}function U(v){return v===47||v===62||et(v)?re(v):r(v)}function ue(v){return v===62?(e.consume(v),e.exit("htmlTextData"),e.exit("htmlText"),i):r(v)}function ce(v){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(v),e.exit("lineEnding"),G}function G(v){return Ue(v)?We(e,ae,"linePrefix",l.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(v):ae(v)}function ae(v){return e.enter("htmlTextData"),u(v)}}const Du={name:"labelEnd",resolveAll:Hb,resolveTo:jb,tokenize:Gb},Bb={tokenize:Kb},Ub={tokenize:Wb},$b={tokenize:Vb};function Hb(e){let i=-1;const r=[];for(;++i=3&&(g===null||Ce(g))?(e.exit("thematicBreak"),i(g)):r(g)}function p(g){return g===s?(e.consume(g),l++,p):(e.exit("thematicBreakSequence"),Ue(g)?We(e,d,"whitespace")(g):d(g))}}const Qt={continuation:{tokenize:rE},exit:oE,name:"list",tokenize:nE},eE={partial:!0,tokenize:lE},tE={partial:!0,tokenize:iE};function nE(e,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:bu(E)){if(l.containerState.type||(l.containerState.type=k,e.enter(k,{_container:!0})),k==="listUnordered")return e.enter("listItemPrefix"),E===42||E===45?e.check(Zl,r,g)(E):g(E);if(!l.interrupt||E===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),p(E)}return r(E)}function p(E){return bu(E)&&++u<10?(e.consume(E),p):(!l.interrupt||u<2)&&(l.containerState.marker?E===l.containerState.marker:E===41||E===46)?(e.exit("listItemValue"),g(E)):r(E)}function g(E){return e.enter("listItemMarker"),e.consume(E),e.exit("listItemMarker"),l.containerState.marker=l.containerState.marker||E,e.check(Oo,l.interrupt?r:y,e.attempt(eE,b,h))}function y(E){return l.containerState.initialBlankLine=!0,c++,b(E)}function h(E){return Ue(E)?(e.enter("listItemPrefixWhitespace"),e.consume(E),e.exit("listItemPrefixWhitespace"),b):r(E)}function b(E){return l.containerState.size=c+l.sliceSerialize(e.exit("listItemPrefix"),!0).length,i(E)}}function rE(e,i,r){const l=this;return l.containerState._closeFlow=void 0,e.check(Oo,s,c);function s(d){return l.containerState.furtherBlankLines=l.containerState.furtherBlankLines||l.containerState.initialBlankLine,We(e,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,e.attempt(tE,i,u)(d))}function u(d){return l.containerState._closeFlow=!0,l.interrupt=void 0,We(e,e.attempt(Qt,i,r),"linePrefix",l.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(d)}}function iE(e,i,r){const l=this;return We(e,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 oE(e){e.exit(this.containerState.type)}function lE(e,i,r){const l=this;return We(e,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:aE,tokenize:sE};function aE(e,i){let r=e.length,l,s,c;for(;r--;)if(e[r][0]==="enter"){if(e[r][1].type==="content"){l=r;break}e[r][1].type==="paragraph"&&(s=r)}else e[r][1].type==="content"&&e.splice(r,1),!c&&e[r][1].type==="definition"&&(c=r);const u={type:"setextHeading",start:{...e[l][1].start},end:{...e[e.length-1][1].end}};return e[s][1].type="setextHeadingText",c?(e.splice(s,0,["enter",u,i]),e.splice(c+1,0,["exit",e[l][1],i]),e[l][1].end={...e[c][1].end}):e[l][1]=u,e.push(["exit",u,i]),e}function sE(e,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)?(e.enter("setextHeadingLine"),s=g,u(g)):r(g)}function u(g){return e.enter("setextHeadingLineSequence"),d(g)}function d(g){return g===s?(e.consume(g),d):(e.exit("setextHeadingLineSequence"),Ue(g)?We(e,p,"lineSuffix")(g):p(g))}function p(g){return g===null||Ce(g)?(e.exit("setextHeadingLine"),i(g)):r(g)}}const uE={tokenize:cE};function cE(e){const i=this,r=e.attempt(Oo,l,e.attempt(this.parser.constructs.flowInitial,s,We(e,e.attempt(this.parser.constructs.flow,s,e.attempt(mb,s)),"linePrefix")));return r;function l(c){if(c===null){e.consume(c);return}return e.enter("lineEndingBlank"),e.consume(c),e.exit("lineEndingBlank"),i.currentConstruct=void 0,r}function s(c){if(c===null){e.consume(c);return}return e.enter("lineEnding"),e.consume(c),e.exit("lineEnding"),i.currentConstruct=void 0,r}}const fE={resolveAll:Yp()},dE=qp("string"),pE=qp("text");function qp(e){return{resolveAll:Yp(e==="text"?gE:void 0),tokenize:i};function i(r){const l=this,s=this.parser.constructs[e],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(e[s].slice(0,c))}return u}function CE(e,i){let r=-1;const l=[];let s;for(;++r0){const _t=Te.tokenStack[Te.tokenStack.length-1];(_t[1]||Ud).call(Te,void 0,_t[0])}for(le.position={start:Sr(H.length>0?H[0][1].start:{line:1,column:1,offset:0}),end:Sr(H.length>0?H[H.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}),e.patch(i,c),c=e.applyData(i,c),c={type:"element",tagName:"pre",properties:{},children:[c]},e.patch(i,c),c}function $E(e,i){const r={type:"element",tagName:"del",properties:{},children:e.all(i)};return e.patch(i,r),e.applyData(i,r)}function HE(e,i){const r={type:"element",tagName:"em",properties:{},children:e.all(i)};return e.patch(i,r),e.applyData(i,r)}function jE(e,i){const r=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",l=String(i.identifier).toUpperCase(),s=Li(l.toLowerCase()),c=e.footnoteOrder.indexOf(l);let u,d=e.footnoteCounts.get(l);d===void 0?(d=0,e.footnoteOrder.push(l),u=e.footnoteOrder.length):u=c+1,d+=1,e.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)}]};e.patch(i,p);const g={type:"element",tagName:"sup",properties:{},children:[p]};return e.patch(i,g),e.applyData(i,g)}function GE(e,i){const r={type:"element",tagName:"h"+i.depth,properties:{},children:e.all(i)};return e.patch(i,r),e.applyData(i,r)}function KE(e,i){if(e.options.allowDangerousHtml){const r={type:"raw",value:i.value};return e.patch(i,r),e.applyData(i,r)}}function Xp(e,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=e.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 WE(e,i){const r=String(i.identifier).toUpperCase(),l=e.definitionById.get(r);if(!l)return Xp(e,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 e.patch(i,c),e.applyData(i,c)}function VE(e,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 e.patch(i,l),e.applyData(i,l)}function qE(e,i){const r={type:"text",value:i.value.replace(/\r?\n|\r/g," ")};e.patch(i,r);const l={type:"element",tagName:"code",properties:{},children:[r]};return e.patch(i,l),e.applyData(i,l)}function YE(e,i){const r=String(i.identifier).toUpperCase(),l=e.definitionById.get(r);if(!l)return Xp(e,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:e.all(i)};return e.patch(i,c),e.applyData(i,c)}function QE(e,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:e.all(i)};return e.patch(i,l),e.applyData(i,l)}function ZE(e,i,r){const l=e.all(i),s=r?XE(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 JE(e,i){const r={},l=e.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:e.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:e.wrap(s,!0)};return e.patch(i,c),e.applyData(i,c)}function i_(e,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(jd(i.slice(s),s>0,!1)),c.join("")}function jd(e,i,r){let l=0,s=e.length;if(i){let c=e.codePointAt(l);for(;c===$d||c===Hd;)l++,c=e.codePointAt(l)}if(r){let c=e.codePointAt(s-1);for(;c===$d||c===Hd;)s--,c=e.codePointAt(s-1)}return s>l?e.slice(l,s):""}function a_(e,i){const r={type:"text",value:l_(String(i.value))};return e.patch(i,r),e.applyData(i,r)}function s_(e,i){const r={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(i,r),e.applyData(i,r)}const u_={blockquote:FE,break:BE,code:UE,delete:$E,emphasis:HE,footnoteReference:jE,heading:GE,html:KE,imageReference:WE,image:VE,inlineCode:qE,linkReference:YE,link:QE,listItem:ZE,list:JE,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=(e,i)=>{switch(e){case"Function":case"SharedWorker":case"Worker":case"eval":case"setInterval":case"setTimeout":throw new TypeError("unable to deserialize "+e)}return new rg[e](i)},c_=(e,i)=>{const r=(s,c)=>(e.set(c,s),s),l=s=>{if(e.has(s))return e.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},Kd=e=>c_(new Map,e)(0),Yr="",{toString:f_}={},{keys:d_}=Object,vo=e=>{const i=typeof e;if(i!=="object"||!e)return[la,i];const r=f_.call(e).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]:e instanceof Error?[tg,e.name||"Error"]:[Jl,r]},jl=([e,i])=>e===la&&(i==="function"||i==="symbol"),p_=(e,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(e)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))(e||!jl(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)(e||!(jl(vo(b))||jl(vo(E))))&&y.push([c(b),c(E)]);return h}case Bu:{const y=[],h=s([d,y],u);for(const b of u)(e||!jl(vo(b)))&&y.push(c(b));return h}}const{message:g}=u;return s([d,{name:p,message:g}],u)};return c},Wd=(e,{json:i,lossy:r}={})=>{const l=[];return p_(!(i||r),!!i,new Map,l)(e),l},ea=typeof structuredClone=="function"?(e,i)=>i&&("json"in i||"lossy"in i)?Kd(Wd(e,i)):structuredClone(e):(e,i)=>Kd(Wd(e,i));function g_(e,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_(e,i){return"Back to reference "+(e+1)+(i>1?"-"+i:"")}function h_(e){const i=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=e.options.footnoteBackContent||g_,l=e.options.footnoteBackLabel||m_,s=e.options.footnoteLabel||"Footnotes",c=e.options.footnoteLabelTagName||"h2",u=e.options.footnoteLabelProperties||{className:["sr-only"]},d=[];let p=-1;for(;++p0&&k.push({type:"text",value:" "});let B=typeof r=="string"?r:r(p,E);typeof B=="string"&&(B={type:"text",value:B}),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(B)?B:[B]})}const S=y[y.length-1];if(S&&S.type==="element"&&S.tagName==="p"){const B=S.children[S.children.length-1];B&&B.type==="text"?B.value+=" ":S.children.push({type:"text",value:" "}),S.children.push(...k)}else y.push(...k);const N={type:"element",tagName:"li",properties:{id:i+"fn-"+b},children:e.wrap(y,!0)};e.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:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(d,!0)},{type:"text",value:` +`}]}}const Io=(function(e){if(e==null)return __;if(typeof e=="function")return aa(e);if(typeof e=="object")return Array.isArray(e)?y_(e):b_(e);if(typeof e=="string")return E_(e);throw new Error("Expected function, string, or object as test")});function y_(e){const i=[];let r=-1;for(;++r":""))+")"})}return b;function b(){let E=ig,k,T,S;if((!i||c(p,g,y[y.length-1]||void 0))&&(E=x_(r(p,y)),E[0]===_u))return E;if("children"in p&&p.children){const N=p;if(N.children&&E[0]!==w_)for(T=(l?N.children.length:-1)+u,S=y.concat(N);T>-1&&T0&&r.push({type:"text",value:` +`}),r}function Vd(e){let i=0,r=e.charCodeAt(i);for(;r===9||r===32;)i++,r=e.charCodeAt(i);return e.slice(i)}function qd(e,i){const r=N_(e,i),l=r.one(e,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_(e,i){return e&&"run"in e?async function(r,l){const s=qd(r,{file:l,...i});await e.run(s,l)}:function(r,l){return qd(r,{file:l,...e||i})}}function Yd(e){if(e)throw e}var Js,Qd;function I_(){if(Qd)return Js;Qd=1;var e=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=e.call(g,"constructor"),h=g.constructor&&g.constructor.prototype&&e.call(g.constructor.prototype,"isPrototypeOf");if(g.constructor&&!y&&!h)return!1;var b;for(b in g);return typeof b>"u"||e.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(e.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,T=arguments[0],S=1,N=arguments.length,B=!1;for(typeof T=="boolean"&&(B=T,T=arguments[1]||{},S=2),(T==null||typeof T!="object"&&typeof T!="function")&&(T={});Su.length;let p;d&&u.push(s);try{p=e.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_(e,i){if(i!==void 0&&typeof i!="string")throw new TypeError('"ext" argument must be a string');Mo(e);let r=0,l=-1,s=e.length,c;if(i===void 0||i.length===0||i.length>e.length){for(;s--;)if(e.codePointAt(s)===47){if(c){r=s+1;break}}else l<0&&(c=!0,l=s+1);return l<0?"":e.slice(r,l)}if(i===e)return"";let u=-1,d=i.length-1;for(;s--;)if(e.codePointAt(s)===47){if(c){r=s+1;break}}else u<0&&(c=!0,u=s+1),d>-1&&(e.codePointAt(s)===i.codePointAt(d--)?d<0&&(l=s):(d=-1,l=u));return r===l?l=u:l<0&&(l=e.length),e.slice(r,l)}function z_(e){if(Mo(e),e.length===0)return".";let i=-1,r=e.length,l;for(;--r;)if(e.codePointAt(r)===47){if(l){i=r;break}}else l||(l=!0);return i<0?e.codePointAt(0)===47?"/":".":i===1&&e.codePointAt(0)===47?"//":e.slice(0,i)}function F_(e){Mo(e);let i=e.length,r=-1,l=0,s=-1,c=0,u;for(;i--;){const d=e.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?"":e.slice(s,r)}function B_(...e){let i=-1,r;for(;++i0&&e.codePointAt(e.length-1)===47&&(r+="/"),i?"/"+r:r}function $_(e,i){let r="",l=0,s=-1,c=0,u=-1,d,p;for(;++u<=e.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+="/"+e.slice(s+1,u):r=e.slice(s+1,u),l=u-s-1;s=u,c=0}else d===46&&c>-1?c++:c=-1}return r}function Mo(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const H_={cwd:j_};function j_(){return"/"}function wu(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function G_(e){if(typeof e=="string")e=new URL(e);else if(!wu(e)){const i=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw i.code="ERR_INVALID_ARG_TYPE",i}if(e.protocol!=="file:"){const i=new TypeError("The URL must be of scheme file");throw i.code="ERR_INVALID_URL_SCHEME",i}return K_(e)}function K_(e){if(e.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=e.pathname;let r=-1;for(;++r0){let[E,...k]=y;const T=l[b][1];ku(T)&&ku(E)&&(E=eu(!0,T,E)),l[b]=[g,E,...k]}}}}const Y_=new Uu().freeze();function iu(e,i){if(typeof i!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function ou(e,i){if(typeof i!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function lu(e,i){if(i)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function Xd(e){if(!ku(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function Jd(e,i,r){if(!r)throw new Error("`"+e+"` finished async. Use `"+i+"` instead")}function Gl(e){return Q_(e)?e:new lg(e)}function Q_(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function Z_(e){return typeof e=="string"||X_(e)}function X_(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}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(e){const i=rv(e),r=iv(e);return ov(i.runSync(i.parse(r),r),e)}function rv(e){const i=e.rehypePlugins||ep,r=e.remarkPlugins||ep,l=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...tp}:tp;return Y_().use(zE).use(r).use(O_,l).use(i)}function iv(e){const i=e.children||"",r=new lg;return typeof i=="string"&&(r.value=i),r}function ov(e,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&&(e={type:"element",tagName:"div",properties:{className:i.className},children:e.type==="root"?e.children:[e]}),sa(e,g),_y(e,{Fragment:K.Fragment,components:s,ignoreInvalidStyle:!0,jsx:K.jsx,jsxs:K.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],T=Qs[E];(T===null||T.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(e){const i=e.indexOf(":"),r=e.indexOf("?"),l=e.indexOf("#"),s=e.indexOf("/");return i===-1||s!==-1&&i>s||r!==-1&&i>r||l!==-1&&i>l||ev.test(e.slice(0,i))?e:""}function np(e,i){const r=String(e);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(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function sv(e,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=j+1:(k!==j&&B.push({type:"text",value:g.value.slice(k,j)}),Array.isArray(A)?B.push(...A):A&&B.push(A),k=j+P[0].length,N=!0),!b.global)break;P=b.exec(g.value)}return N?(k?\]}]+$/.exec(e);if(!i)return[e,void 0];e=e.slice(0,i.index);let r=i[0],l=r.indexOf(")");const s=np(e,"(");let c=np(e,")");for(;l!==-1&&s>c;)e+=r.slice(0,l+1),r=r.slice(l+1),l=r.indexOf(")"),c++;return[e,r]}function ag(e,i){const r=e.input.charCodeAt(e.index-1);return(e.index===0||Zr(r)||ia(r))&&(!i||r!==47)}sg.peek=Iv;function xv(){this.buffer()}function Sv(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function Nv(){this.buffer()}function Cv(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function Tv(e){const i=this.resume(),r=this.stack[this.stack.length-1];r.type,r.identifier=Tn(this.sliceSerialize(e)).toLowerCase(),r.label=i}function Av(e){this.exit(e)}function Rv(e){const i=this.resume(),r=this.stack[this.stack.length-1];r.type,r.identifier=Tn(this.sliceSerialize(e)).toLowerCase(),r.label=i}function Ov(e){this.exit(e)}function Iv(){return"["}function sg(e,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(e),{after:"]",before:c})),d(),u(),c+=s.move("]"),c}function Mv(){return{enter:{gfmFootnoteCallString:xv,gfmFootnoteCall:Sv,gfmFootnoteDefinitionLabelString:Nv,gfmFootnoteDefinition:Cv},exit:{gfmFootnoteCallString:Tv,gfmFootnoteCall:Av,gfmFootnoteDefinitionLabelString:Rv,gfmFootnoteDefinition:Ov}}}function Lv(e){let i=!1;return e&&e.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(e,i,r){return i===0?e:ug(e,i,r)}function ug(e,i,r){return(r?"":" ")+e}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(e){this.enter({type:"delete",children:[]},e)}function Uv(e){this.exit(e)}function cg(e,i,r,l){const s=r.createTracker(l),c=r.enter("strikethrough");let u=s.move("~~");return u+=r.containerPhrasing(e,{...s.current(),before:u,after:"~"}),u+=s.move("~~"),c(),u}function $v(){return"~"}function Hv(e){return e.length}function jv(e,i){const r=i||{},l=(r.align||[]).concat(),s=r.stringLength||Hv,c=[],u=[],d=[],p=[];let g=0,y=-1;for(;++yg&&(g=e[y].length);++Np[N])&&(p[N]=P)}T.push(B)}u[y]=T,d[y]=S}let h=-1;if(typeof l=="object"&&"length"in l)for(;++hp[h]&&(p[h]=B),E[h]=B),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(e,c.current()),Wv);return s(),u}function Wv(e,i,r){return">"+(r?"":" ")+e}function Vv(e,i){return ip(e,i.inConstruct,!0)&&!ip(e,i.notInConstruct,!1)}function ip(e,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(e,i){return!!(i.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function Qv(e){const i=e.options.fence||"`";if(i!=="`"&&i!=="~")throw new Error("Cannot serialize code with `"+i+"` for `options.fence`, expected `` ` `` or `~`");return i}function Zv(e,i,r,l){const s=Qv(r),c=e.value||"",u=s==="`"?"GraveAccent":"Tilde";if(Yv(e,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(e.lang){const h=r.enter(`codeFencedLang${u}`);y+=d.move(r.safe(e.lang,{before:y,after:" ",encode:["`"],...d.current()})),h()}if(e.lang&&e.meta){const h=r.enter(`codeFencedMeta${u}`);y+=d.move(" "),y+=d.move(r.safe(e.meta,{before:y,after:` +`,encode:["`"],...d.current()})),h()}return y+=d.move(` +`),c&&(y+=d.move(c+` +`)),y+=d.move(p),g(),y}function Xv(e,i,r){return(r?"":" ")+e}function $u(e){const i=e.options.quote||'"';if(i!=='"'&&i!=="'")throw new Error("Cannot serialize title with `"+i+"` for `options.quote`, expected `\"`, or `'`");return i}function Jv(e,i,r,l){const s=$u(r),c=s==='"'?"Quote":"Apostrophe",u=r.enter("definition");let d=r.enter("label");const p=r.createTracker(l);let g=p.move("[");return g+=p.move(r.safe(r.associationId(e),{before:g,after:"]",...p.current()})),g+=p.move("]: "),d(),!e.url||/[\0- \u007F]/.test(e.url)?(d=r.enter("destinationLiteral"),g+=p.move("<"),g+=p.move(r.safe(e.url,{before:g,after:">",...p.current()})),g+=p.move(">")):(d=r.enter("destinationRaw"),g+=p.move(r.safe(e.url,{before:g,after:e.title?" ":` +`,...p.current()}))),d(),e.title&&(d=r.enter(`title${c}`),g+=p.move(" "+s),g+=p.move(r.safe(e.title,{before:g,after:s,...p.current()})),g+=p.move(s),d()),u(),g}function ek(e){const i=e.options.emphasis||"*";if(i!=="*"&&i!=="_")throw new Error("Cannot serialize emphasis with `"+i+"` for `options.emphasis`, expected `*`, or `_`");return i}function To(e){return"&#x"+e.toString(16).toUpperCase()+";"}function ta(e,i,r){const l=Ii(e),s=Ii(i);return l===void 0?s===void 0?r==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:l===1?s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:s===void 0?{inside:!1,outside:!1}:s===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}fg.peek=tk;function fg(e,i,r,l){const s=ek(r),c=r.enter("emphasis"),u=r.createTracker(l),d=u.move(s);let p=u.move(r.containerPhrasing(e,{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=To(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)+To(h));const E=u.move(s);return c(),r.attentionEncodeSurroundingInfo={after:b.outside,before:y.outside},d+p+E}function tk(e,i,r){return r.options.emphasis||"*"}function nk(e,i){let r=!1;return sa(e,function(l){if("value"in l&&/\r?\n|\r/.test(l.value)||l.type==="break")return r=!0,_u}),!!((!e.depth||e.depth<3)&&Mu(e)&&(i.options.setext||r))}function rk(e,i,r,l){const s=Math.max(Math.min(6,e.depth||1),1),c=r.createTracker(l);if(nk(e,r)){const y=r.enter("headingSetext"),h=r.enter("phrasing"),b=r.containerPhrasing(e,{...c.current(),before:` +`,after:` +`});return h(),y(),b+` +`+(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(e,{before:"# ",after:` +`,...c.current()});return/^[\t ]/.test(g)&&(g=To(g.charCodeAt(0))+g.slice(1)),g=g?u+" "+g:u,r.options.closeAtx&&(g+=" "+u),p(),d(),g}dg.peek=ik;function dg(e){return e.value||""}function ik(){return"<"}pg.peek=ok;function pg(e,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(e.alt,{before:g,after:"]",...p.current()})),g+=p.move("]("),d(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(d=r.enter("destinationLiteral"),g+=p.move("<"),g+=p.move(r.safe(e.url,{before:g,after:">",...p.current()})),g+=p.move(">")):(d=r.enter("destinationRaw"),g+=p.move(r.safe(e.url,{before:g,after:e.title?" ":")",...p.current()}))),d(),e.title&&(d=r.enter(`title${c}`),g+=p.move(" "+s),g+=p.move(r.safe(e.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(e,i,r,l){const s=e.referenceType,c=r.enter("imageReference");let u=r.enter("label");const d=r.createTracker(l);let p=d.move("![");const g=r.safe(e.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(e),{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(e,i,r){let l=e.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(e.url))}yg.peek=sk;function yg(e,i,r,l){const s=$u(r),c=s==='"'?"Quote":"Apostrophe",u=r.createTracker(l);let d,p;if(hg(e,r)){const y=r.stack;r.stack=[],d=r.enter("autolink");let h=u.move("<");return h+=u.move(r.containerPhrasing(e,{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(e,{before:g,after:"](",...u.current()})),g+=u.move("]("),p(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(p=r.enter("destinationLiteral"),g+=u.move("<"),g+=u.move(r.safe(e.url,{before:g,after:">",...u.current()})),g+=u.move(">")):(p=r.enter("destinationRaw"),g+=u.move(r.safe(e.url,{before:g,after:e.title?" ":")",...u.current()}))),p(),e.title&&(p=r.enter(`title${c}`),g+=u.move(" "+s),g+=u.move(r.safe(e.title,{before:g,after:s,...u.current()})),g+=u.move(s),p()),g+=u.move(")"),d(),g}function sk(e,i,r){return hg(e,r)?"<":"["}bg.peek=uk;function bg(e,i,r,l){const s=e.referenceType,c=r.enter("linkReference");let u=r.enter("label");const d=r.createTracker(l);let p=d.move("[");const g=r.containerPhrasing(e,{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(e),{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(e){const i=e.options.bullet||"*";if(i!=="*"&&i!=="+"&&i!=="-")throw new Error("Cannot serialize items with `"+i+"` for `options.bullet`, expected `*`, `+`, or `-`");return i}function ck(e){const i=Hu(e),r=e.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(e){const i=e.options.bulletOrdered||".";if(i!=="."&&i!==")")throw new Error("Cannot serialize items with `"+i+"` for `options.bulletOrdered`, expected `.` or `)`");return i}function Eg(e){const i=e.options.rule||"*";if(i!=="*"&&i!=="-"&&i!=="_")throw new Error("Cannot serialize rules with `"+i+"` for `options.rule`, expected `*`, `-`, or `_`");return i}function dk(e,i,r,l){const s=r.enter("list"),c=r.bulletCurrent;let u=e.ordered?fk(r):Hu(r);const d=e.ordered?u==="."?")":".":ck(r);let p=i&&r.bulletLastUsed?u===r.bulletLastUsed:!1;if(!e.ordered){const y=e.children?e.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),Eg(r)===u&&y){let h=-1;for(;++h-1?i.start:1)+(r.options.incrementListMarker===!1?0:i.children.indexOf(e))+c);let u=c.length+1;(s==="tab"||s==="mixed"&&(i&&i.type==="list"&&i.spread||e.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(e,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(e,i,r,l){const s=r.enter("paragraph"),c=r.enter("phrasing"),u=r.containerPhrasing(e,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(e,i,r,l){return(e.children.some(function(u){return hk(u)})?r.containerPhrasing:r.containerFlow).call(r,e,l)}function bk(e){const i=e.options.strong||"*";if(i!=="*"&&i!=="_")throw new Error("Cannot serialize strong with `"+i+"` for `options.strong`, expected `*`, or `_`");return i}_g.peek=Ek;function _g(e,i,r,l){const s=bk(r),c=r.enter("strong"),u=r.createTracker(l),d=u.move(s+s);let p=u.move(r.containerPhrasing(e,{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=To(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)+To(h));const E=u.move(s+s);return c(),r.attentionEncodeSurroundingInfo={after:b.outside,before:y.outside},d+p+E}function Ek(e,i,r){return r.options.strong||"*"}function _k(e,i,r,l){return r.safe(e.value,l)}function vk(e){const i=e.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(e,i,r){const l=(Eg(r)+(r.options.ruleSpaces?" ":"")).repeat(vk(r));return r.options.ruleSpaces?l.slice(0,-1):l}const vg={blockquote:Kv,break:op,code:Zv,definition:Jv,emphasis:fg,hardBreak:op,heading:rk,html:dg,image:pg,imageReference:gg,inlineCode:mg,link:yg,linkReference:bg,list:dk,listItem:gk,paragraph:mk,root:yk,strong:_g,text:_k,thematicBreak:kk};function wk(){return{enter:{table:xk,tableData:lp,tableHeader:lp,tableRow:Nk},exit:{codeText:Ck,table:Sk,tableData:cu,tableHeader:cu,tableRow:cu}}}function xk(e){const i=e._align;this.enter({type:"table",align:i.map(function(r){return r==="none"?null:r}),children:[]},e),this.data.inTable=!0}function Sk(e){this.exit(e),this.data.inTable=void 0}function Nk(e){this.enter({type:"tableRow",children:[]},e)}function cu(e){this.exit(e)}function lp(e){this.enter({type:"tableCell",children:[]},e)}function Ck(e){let i=this.resume();this.data.inTable&&(i=i.replace(/\\([\\|])/g,Tk));const r=this.stack[this.stack.length-1];r.type,r.value=i,this.exit(e)}function Tk(e,i){return i==="|"?i:e}function Ak(e){const i=e||{},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,T,S){return g(y(E,T,S),E.align)}function d(E,k,T,S){const N=h(E,T,S),B=g([N]);return B.slice(0,B.indexOf(` +`))}function p(E,k,T,S){const N=T.enter("tableCell"),B=T.enter("phrasing"),P=T.containerPhrasing(E,{...S,before:c,after:c});return B(),N(),P}function g(E,k){return jv(E,{align:k,alignDelimiters:l,padding:r,stringLength:s})}function y(E,k,T){const S=E.children;let N=-1;const B=[],P=k.enter("table");for(;++N0&&!r&&(e[e.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(e,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=Tn(l.sliceSerialize({start:u.end,end:l.now()}));return g.codePointAt(0)!==94||!c.includes(g.slice(1))?r(p):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),i(p))}}function Qk(e,i){let r=e.length;for(;r--;)if(e[r][1].type==="labelImage"&&e[r][0]==="enter"){e[r][1];break}e[r+1][1].type="data",e[r+3][1].type="gfmFootnoteCallLabelMarker";const l={type:"gfmFootnoteCall",start:Object.assign({},e[r+3][1].start),end:Object.assign({},e[e.length-1][1].end)},s={type:"gfmFootnoteCallMarker",start:Object.assign({},e[r+3][1].end),end:Object.assign({},e[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({},e[e.length-1][1].start)},u={type:"chunkString",contentType:"string",start:Object.assign({},c.start),end:Object.assign({},c.end)},d=[e[r+1],e[r+2],["enter",l,i],e[r+3],e[r+4],["enter",s,i],["exit",s,i],["enter",c,i],["enter",u,i],["exit",u,i],["exit",c,i],e[e.length-2],e[e.length-1],["exit",l,i]];return e.splice(r,e.length-r+1,...d),e}function Zk(e,i,r){const l=this,s=l.parser.gfmFootnotes||(l.parser.gfmFootnotes=[]);let c=0,u;return d;function d(h){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(h),e.exit("gfmFootnoteCallLabelMarker"),p}function p(h){return h!==94?r(h):(e.enter("gfmFootnoteCallMarker"),e.consume(h),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.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){e.exit("chunkString");const b=e.exit("gfmFootnoteCallString");return s.includes(Tn(l.sliceSerialize(b)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(h),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),i):r(h)}return et(h)||(u=!0),c++,e.consume(h),h===92?y:g}function y(h){return h===91||h===92||h===93?(e.consume(h),c++,g):g(h)}}function Xk(e,i,r){const l=this,s=l.parser.gfmFootnotes||(l.parser.gfmFootnotes=[]);let c,u=0,d;return p;function p(k){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(k),e.exit("gfmFootnoteDefinitionLabelMarker"),g}function g(k){return k===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(k),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.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){e.exit("chunkString");const T=e.exit("gfmFootnoteDefinitionLabelString");return c=Tn(l.sliceSerialize(T)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(k),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),b}return et(k)||(d=!0),u++,e.consume(k),k===92?h:y}function h(k){return k===91||k===92||k===93?(e.consume(k),u++,y):y(k)}function b(k){return k===58?(e.enter("definitionMarker"),e.consume(k),e.exit("definitionMarker"),s.includes(c)||s.push(c),We(e,E,"gfmFootnoteDefinitionWhitespace")):r(k)}function E(k){return i(k)}}function Jk(e,i,r){return e.check(Oo,i,e.attempt(Vk,i,r))}function ew(e){e.exit("gfmFootnoteDefinition")}function tw(e,i,r){const l=this;return We(e,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(e){let r=(e||{}).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 S=u.exit("strikethroughSequenceTemporary"),N=Ii(k);return S._open=!N||N===2&&!!T,S._close=!T||T===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(e,i,r,l){let s=0;if(!(r===0&&l.length===0)){for(;s-1;){const L=l.events[W][1].type;if(L==="lineEnding"||L==="linePrefix")W--;else break}const q=W>-1?l.events[W][1].type:null,te=q==="tableHead"||q==="tableRow"?A:p;return te===A&&l.parser.lazy[l.now().line]?r(M):te(M)}function p(M){return e.enter("tableHead"),e.enter("tableRow"),g(M)}function g(M){return M===124||(u=!0,c+=1),y(M)}function y(M){return M===null?r(M):Ce(M)?c>1?(c=0,l.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(M),e.exit("lineEnding"),E):r(M):Ue(M)?We(e,y,"whitespace")(M):(c+=1,u&&(u=!1,s+=1),M===124?(e.enter("tableCellDivider"),e.consume(M),e.exit("tableCellDivider"),u=!0,y):(e.enter("data"),h(M)))}function h(M){return M===null||M===124||et(M)?(e.exit("data"),y(M)):(e.consume(M),M===92?b:h)}function b(M){return M===92||M===124?(e.consume(M),h):h(M)}function E(M){return l.interrupt=!1,l.parser.lazy[l.now().line]?r(M):(e.enter("tableDelimiterRow"),u=!1,Ue(M)?We(e,k,"linePrefix",l.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(M):k(M))}function k(M){return M===45||M===58?S(M):M===124?(u=!0,e.enter("tableCellDivider"),e.consume(M),e.exit("tableCellDivider"),T):Z(M)}function T(M){return Ue(M)?We(e,S,"whitespace")(M):S(M)}function S(M){return M===58?(c+=1,u=!0,e.enter("tableDelimiterMarker"),e.consume(M),e.exit("tableDelimiterMarker"),N):M===45?(c+=1,N(M)):M===null||Ce(M)?j(M):Z(M)}function N(M){return M===45?(e.enter("tableDelimiterFiller"),B(M)):Z(M)}function B(M){return M===45?(e.consume(M),B):M===58?(u=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(M),e.exit("tableDelimiterMarker"),P):(e.exit("tableDelimiterFiller"),P(M))}function P(M){return Ue(M)?We(e,j,"whitespace")(M):j(M)}function j(M){return M===124?k(M):M===null||Ce(M)?!u||s!==c?Z(M):(e.exit("tableDelimiterRow"),e.exit("tableHead"),i(M)):Z(M)}function Z(M){return r(M)}function A(M){return e.enter("tableRow"),X(M)}function X(M){return M===124?(e.enter("tableCellDivider"),e.consume(M),e.exit("tableCellDivider"),X):M===null||Ce(M)?(e.exit("tableRow"),i(M)):Ue(M)?We(e,X,"whitespace")(M):(e.enter("data"),ee(M))}function ee(M){return M===null||M===124||et(M)?(e.exit("data"),X(M)):(e.consume(M),M===92?re:ee)}function re(M){return M===92||M===124?(e.consume(M),ee):ee(M)}}function sw(e,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,T=r[3]-r[2]-1;e.add(k,T,[])}}e.add(r[3]+1,0,[["exit",h,i]])}return s!==void 0&&(c.end=Object.assign({},Ai(i.events,s)),e.add(s,0,[["exit",c,i]]),c=void 0),c}function sp(e,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]),e.add(r+1,0,c)}function Ai(e,i){const r=e[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(e,i,r){const l=this;return s;function s(p){return l.previous!==null||!l._gfmTasklistFirstContentOfListItem?r(p):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(p),e.exit("taskListCheckMarker"),c)}function c(p){return et(p)?(e.enter("taskListCheckValueUnchecked"),e.consume(p),e.exit("taskListCheckValueUnchecked"),u):p===88||p===120?(e.enter("taskListCheckValueChecked"),e.consume(p),e.exit("taskListCheckValueChecked"),u):r(p)}function u(p){return p===93?(e.enter("taskListCheckMarker"),e.consume(p),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),d):r(p)}function d(p){return Ce(p)?i(p):Ue(p)?e.check({tokenize:dw},i,r)(p):r(p)}}function dw(e,i,r){return We(e,l,"whitespace");function l(s){return s===null?r(s):i(s)}}function pw(e){return Bp([Fk(),qk(),nw(e),lw(),cw()])}const gw={};function mw(e){const i=this,r=e||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(e,i,r){const l=Io(r);if(!e||!e.type||!e.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=e.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(e,i,r){return e.type==="element"?ww(e,i,r):e.type==="text"?r.whitespace==="normal"?Ig(e,r):xw(e):[]}function ww(e,i,r){const l=Mg(e,r),s=e.children||[];let c=-1,u=[];if(vw(e))return u;let d,p;for(Su(e)||pp(e)&&up(i,e,pp)?p=` +`:_w(e)?(d=2,p=2):Rg(e)&&(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:[e.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:"."},e.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},e.inherit(g,{className:"string"}),{className:"string",begin:/<.*?>/},r,e.C_BLOCK_COMMENT_MODE]},b={className:"title",begin:i.optional(s)+e.IDENT_RE,relevance:0},E=i.optional(s)+e.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"],T=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],S=["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"],j={type:T,keyword:k,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:S},Z={className:"function.dispatch",relevance:0,keywords:{_hint:N},begin:i.concat(/\b/,`(?!${k.join("|")})`,e.IDENT_RE,i.lookahead(/(<[^<>]+>|)\s*\(/))},A=[Z,h,d,r,e.C_BLOCK_COMMENT_MODE,y,g],X={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:j,contains:A.concat([{begin:/\(/,end:/\)/,keywords:j,contains:A.concat(["self"]),relevance:0}]),relevance:0},ee={className:"function",begin:"("+u+"[\\*&\\s]+)+"+E,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:j,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:l,keywords:j,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:j,relevance:0,contains:[r,e.C_BLOCK_COMMENT_MODE,g,y,d,{begin:/\(/,end:/\)/,keywords:j,relevance:0,contains:["self",r,e.C_BLOCK_COMMENT_MODE,g,y,d]}]},d,r,e.C_BLOCK_COMMENT_MODE,h]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:j,illegal:"",keywords:j,contains:["self",d]},{begin:e.IDENT_RE+"::",keywords:j},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function Rw(e){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(e),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(e){const i=e.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:[e.BACKSLASH_ESCAPE]},c=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),u={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},d={className:"string",begin:/"/,end:/"/,contains:[e.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"},e.NUMBER_MODE,r]},b=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],E=e.SHEBANG({binary:`(${b.join("|")})`,relevance:10}),k={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},T=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],S=["true","false"],N={match:/(\/[a-z._-]+)+/},B=["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"],j=["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"],Z=["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:T,literal:S,built_in:[...B,...P,"set","shopt",...j,...Z]},contains:[E,e.SHEBANG(),k,h,c,u,N,d,p,g,y,r]}}function Iw(e){const i=e.regex,r=e.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:[e.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:"."},e.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},e.inherit(g,{className:"string"}),{className:"string",begin:/<.*?>/},r,e.C_BLOCK_COMMENT_MODE]},b={className:"title",begin:i.optional(s)+e.IDENT_RE,relevance:0},E=i.optional(s)+e.IDENT_RE+"\\s*\\(",S={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,e.C_BLOCK_COMMENT_MODE,y,g],B={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:S,contains:N.concat([{begin:/\(/,end:/\)/,keywords:S,contains:N.concat(["self"]),relevance:0}]),relevance:0},P={begin:"("+u+"[\\*&\\s]+)+"+E,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:S,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:l,keywords:S,relevance:0},{begin:E,returnBegin:!0,contains:[e.inherit(b,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:S,relevance:0,contains:[r,e.C_BLOCK_COMMENT_MODE,g,y,d,{begin:/\(/,end:/\)/,keywords:S,relevance:0,contains:["self",r,e.C_BLOCK_COMMENT_MODE,g,y,d]}]},d,r,e.C_BLOCK_COMMENT_MODE,h]};return{name:"C",aliases:["h"],keywords:S,disableAutodetect:!0,illegal:"=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:h,strings:g,keywords:S}}}function Mw(e){const i=e.regex,r=e.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:[e.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:"."},e.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},e.inherit(g,{className:"string"}),{className:"string",begin:/<.*?>/},r,e.C_BLOCK_COMMENT_MODE]},b={className:"title",begin:i.optional(s)+e.IDENT_RE,relevance:0},E=i.optional(s)+e.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"],T=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],S=["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"],j={type:T,keyword:k,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:S},Z={className:"function.dispatch",relevance:0,keywords:{_hint:N},begin:i.concat(/\b/,`(?!${k.join("|")})`,e.IDENT_RE,i.lookahead(/(<[^<>]+>|)\s*\(/))},A=[Z,h,d,r,e.C_BLOCK_COMMENT_MODE,y,g],X={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:j,contains:A.concat([{begin:/\(/,end:/\)/,keywords:j,contains:A.concat(["self"]),relevance:0}]),relevance:0},ee={className:"function",begin:"("+u+"[\\*&\\s]+)+"+E,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:j,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:l,keywords:j,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:j,relevance:0,contains:[r,e.C_BLOCK_COMMENT_MODE,g,y,d,{begin:/\(/,end:/\)/,keywords:j,relevance:0,contains:["self",r,e.C_BLOCK_COMMENT_MODE,g,y,d]}]},d,r,e.C_BLOCK_COMMENT_MODE,h]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:j,illegal:"",keywords:j,contains:["self",d]},{begin:e.IDENT_RE+"::",keywords:j},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function Lw(e){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=e.inherit(e.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=e.inherit(y,{illegal:/\n/}),b={className:"subst",begin:/\{/,end:/\}/,keywords:u},E=e.inherit(b,{illegal:/\n/}),k={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,E]},T={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},b]},S=e.inherit(T,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},E]});b.contains=[T,k,y,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,e.C_BLOCK_COMMENT_MODE],E.contains=[S,k,h,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,p,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const N={variants:[g,T,k,y,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},B={begin:"<",end:">",contains:[{beginKeywords:"in out"},d]},P=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",j={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:u,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:""},{begin:""}]}]}),e.C_LINE_COMMENT_MODE,e.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,B,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[d,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[d,B,e.C_LINE_COMMENT_MODE,e.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+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:u,contains:[{beginKeywords:r.join(" "),relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[e.TITLE_MODE,B],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:u,relevance:0,contains:[N,p,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},j]}}const Dw=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.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:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.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 jw(e){const i=e.regex,r=Dw(e),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=[e.APOS_STRING_MODE,e.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(e){const i=e.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 Kw(e){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(e,i,r-1))}function qw(e){const i=e.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:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:p,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.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,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+l+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:p,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:p,relevance:0,contains:[g,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,gp,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.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(e){const i=e.regex,r=(G,{after:ae})=>{const v="",end:""},c=/<[A-Za-z0-9\\._:-]+\s*\/>/,u={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(G,ae)=>{const v=G[0].length+G.index,O=G.input[v];if(O==="<"||O===","){ae.ignoreMatch();return}O===">"&&(r(G,{after:v})||ae.ignoreMatch());let $;const w=G.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:[e.BACKSLASH_ESCAPE,b],subLanguage:"xml"}},k={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:"css"}},T={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:"graphql"}},S={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,b]},B={className:"comment",variants:[e.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}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},P=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,E,k,T,S,{match:/\$\d+/},h];b.contains=P.concat({begin:/\{/,end:/\}/,keywords:d,contains:["self"].concat(P)});const j=[].concat(B,b.contains),Z=j.concat([{begin:/(\s*)\(/,end:/\)/,keywords:d,contains:["self"].concat(j)}]),A={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,contains:Z},X={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]}},re={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:[A],illegal:/%/},W={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function q(G){return i.concat("(?!",G.join("|"),")")}const te={match:i.concat(/\b/,q([...zg,"super","import","await"].map(G=>`${G}\\s*\\(`)),l,i.lookahead(/\s*\(/)),className:"title.function",relevance:0},L={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:/\(\)/},A]},ue="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",ce={match:[/const|var|let/,/\s+/,l,/\s*/,/=\s*/,/(async\s*)?/,i.lookahead(ue)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[A]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:d,exports:{PARAMS_CONTAINS:Z,CLASS_REFERENCE:ee},illegal:/#(?![$_A-Za-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),re,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,E,k,T,S,B,{match:/\$\d+/},h,ee,{scope:"attr",match:l+i.lookahead(":"),relevance:0},ce,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[B,e.REGEXP_MODE,{className:"function",begin:ue,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,contains:Z}]}]},{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)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[A,e.inherit(e.TITLE_MODE,{begin:l,className:"title.function"})]},{match:/\.\.\./,relevance:0},L,{match:"\\$"+l,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[A]},te,W,X,U,{match:/\$[(.]/}]}}const ex="([-+]?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)|NaN|[-+]?Infinity",tx={scope:"number",match:ex,relevance:0};function nx(e){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,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,s,tx,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}var Oi="[0-9](_*[0-9])*",ql=`\\.(${Oi})`,Yl="[0-9a-fA-F](_*[0-9a-fA-F])*",rx={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 ix(e){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:e.UNDERSCORE_IDENT_RE+"@"},s={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},c={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},u={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[c,s]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,c,s]}]};s.contains.push(u);const d={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},p={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(u,{className:"string"}),"self"]}]},g=rx,y=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),h={variants:[{className:"type",begin:e.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:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,y,r,l,d,p,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:i,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.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,e.C_LINE_COMMENT_MODE,y],relevance:0},e.C_LINE_COMMENT_MODE,y,d,p,u,e.C_NUMBER_MODE]},y]},{begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.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 ox=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.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:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.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_-]*/}}),lx=["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"],ax=["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"],sx=[...lx,...ax],ux=["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(),cx=["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(),fx=Fg.concat(Bg).sort().reverse();function dx(e){const i=ox(e),r=fx,l="and or not only",s="[\\w-]+",c="("+s+"|@\\{"+s+"\\})",u=[],d=[],p=function(P){return{className:"string",begin:"~?"+P+".*?"+P}},g=function(P,j,Z){return{className:P,begin:j,relevance:Z}},y={$pattern:/[a-z-]+/,keyword:l,attribute:ux.join(" ")},h={begin:"\\(",end:"\\)",contains:d,keywords:y,relevance:0};d.push(e.C_LINE_COMMENT_MODE,e.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("+cx.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:d}}]},T={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}},S={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:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,E,g("keyword","all\\b"),g("variable","@\\{"+s+"\\}"),{begin:"\\b("+sx.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]},B={begin:s+`:(:)?(${r.join("|")})`,returnBegin:!0,contains:[N]};return u.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,T,S,B,k,N,E,i.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:`[=>'/<($"]`,contains:u}}function px(e){const i="\\[=*\\[",r="\\]=*\\]",l={begin:i,end:r,contains:["self"]},s=[e.COMMENT("--(?!"+i+")","$"),e.COMMENT("--"+i,r,{contains:[l],relevance:10})];return{name:"Lua",aliases:["pluto"],keywords:{$pattern:e.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:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:s}].concat(s)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:i,end:r,contains:[l],relevance:5}])}}function gx(e){const i={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.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=e.inherit(g,{contains:[]}),b=e.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 hx(e){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"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+p.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:p,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}function yx(e){const i=e.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=[e.BACKSLASH_ESCAPE,c,p],h=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],b=(T,S,N="\\1")=>{const B=N==="\\1"?N:i.concat(N,S);return i.concat(i.concat("(?:",T,")"),S,/(?:\\.|[^\\\/])*?/,B,/(?:\\.|[^\\\/])*?/,N,l)},E=(T,S,N)=>i.concat(i.concat("(?:",T,")"),S,/(?:\\.|[^\\\/])*?/,N,l),k=[p,e.HASH_COMMENT_MODE,e.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:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},g,{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.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:[e.TITLE_MODE,d]},{className:"class",beginKeywords:"class",end:"[;{]",excludeEnd:!0,relevance:5,contains:[e.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 bx(e){const i=e.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=e.inherit(e.APOS_STRING_MODE,{illegal:null}),y=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(p)}),h={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(p),"on:begin":(L,U)=>{U.data._beginMatch=L[1]||L[2]},"on:end":(L,U)=>{U.data._beginMatch!==L[1]&&U.ignoreMatch()}},b=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),E=`[ +]`,k={scope:"string",variants:[y,g,h,b]},T={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},S=["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"],B=["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"],j={keyword:N,literal:(L=>{const U=[];return L.forEach(ue=>{U.push(ue),ue.toLowerCase()===ue?U.push(ue.toUpperCase()):U.push(ue.toLowerCase())}),U})(S),built_in:B},Z=L=>L.map(U=>U.replace(/\|\d+$/,"")),A={variants:[{match:[/new/,i.concat(E,"+"),i.concat("(?!",Z(B).join("\\b|"),"\\b)"),s],scope:{1:"keyword",4:"title.class"}}]},X=i.concat(l,"\\b(?!\\()"),ee={variants:[{match:[i.concat(/::/,i.lookahead(/(?!class\b)/)),X],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[s,i.concat(/::/,i.lookahead(/(?!class\b)/)),X],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"}}]},re={scope:"attr",match:i.concat(l,i.lookahead(":"),i.lookahead(/(?!::)/))},M={relevance:0,begin:/\(/,end:/\)/,keywords:j,contains:[re,u,ee,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.HASH_COMMENT_MODE,k,T,A]},W={relevance:0,match:[/\b/,i.concat("(?!fn\\b|function\\b|",Z(N).join("\\b|"),"|",Z(B).join("\\b|"),"\\b)"),l,i.concat(E,"*"),i.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[M]};M.contains.push(W);const q=[re,ee,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.HASH_COMMENT_MODE,k,T,A],te={begin:i.concat(/#\[\s*\\?/,i.either(s,c)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:S,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:S,keyword:["new","array"]},contains:["self",...q]},...q,{scope:"meta",variants:[{match:s},{match:c}]}]};return{case_insensitive:!1,keywords:j,contains:[te,e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.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"}},A,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:j,contains:["self",te,u,ee,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.HASH_COMMENT_MODE,k,T]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},k,T]}}function Ex(e){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},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}function _x(e){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}function vx(e){const i=e.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:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,p],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,p],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,p,y,g]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.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:[e.BACKSLASH_ESCAPE,y,g]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,y,g]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},b="[0-9](_?[0-9])*",E=`(\\b(${b}))?\\.(${b})|\\b(${b})\\.`,k=`\\b|${l.join("|")}`,T={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})`}]},S={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,T,h,e.HASH_COMMENT_MODE]}]};return g.contains=[h,T,p],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:d,illegal:/(<\/|\?)|=>/,contains:[p,T,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},h,S,e.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:[T,N,h]}]}}function kx(e){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}function wx(e){const i=e.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:[e.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]+/}]}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),e.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 xx(e){const i=e.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=[e.COMMENT("#","$",{contains:[d]}),e.COMMENT("^=begin","^=end",{contains:[d],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],y={className:"subst",begin:/#\{/,end:/\}/,keywords:u},h={className:"string",contains:[e.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:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.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"}]},T={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:[T]},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.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:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.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,T.contains=A;const M=[{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:[e.SHEBANG({binary:"ruby"})].concat(M).concat(g).concat(A)}}function Sx(e){const i=e.regex,r=/(r#)?/,l=i.concat(r,e.UNDERSCORE_IDENT_RE),s=i.concat(r,e.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:e.IDENT_RE+"!?",type:y,keyword:d,literal:p,built_in:g},illegal:""},c]}}const Nx=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.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:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.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_-]*/}}),Cx=["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"],Tx=["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"],Ax=[...Cx,...Tx],Rx=["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(),Ox=["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(),Ix=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),Mx=["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 Lx(e){const i=Nx(e),r=Ix,l=Ox,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:[e.C_LINE_COMMENT_MODE,e.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("+Ax.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("+Mx.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,e.QUOTE_STRING_MODE,e.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:Rx.join(" ")},contains:[{begin:s,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},d,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,i.HEXCOLOR,i.CSS_NUMBER_MODE]},i.FUNCTION_DISPATCH]}}function Dx(e){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}function Px(e){const i=e.regex,r=e.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(Z=>!y.includes(Z)),T={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},S={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},N={match:i.concat(/\b/,i.either(...E),/\s*\(/),relevance:0,keywords:{built_in:E}};function B(Z){return i.concat(/\b/,i.either(...Z.map(A=>A.replace(/\s+/,"\\s+"))),/\b/)}const P={scope:"keyword",match:B(b),relevance:0};function j(Z,{exceptions:A,when:X}={}){const ee=X;return A=A||[],Z.map(re=>re.match(/\|\d+$/)||A.includes(re)?re:ee(re)?`${re}|0`:re)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:j(k,{when:Z=>Z.length<3}),literal:c,type:d,built_in:h},contains:[{scope:"type",match:B(u)},P,N,T,l,s,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,r,S]}}function Ug(e){return e?typeof e=="string"?e:e.source:null}function ko(e){return Ze("(?=",e,")")}function Ze(...e){return e.map(r=>Ug(r)).join("")}function zx(e){const i=e[e.length-1];return typeof i=="object"&&i.constructor===Object?(e.splice(e.length-1,1),i):{}}function $t(...e){return"("+(zx(e).capture?"":"?:")+e.map(l=>Ug(l)).join("|")+")"}const Ku=e=>Ze(/\b/,e,/\w$/.test(e)?/\b/:/\B/),Fx=["Protocol","Type"].map(Ku),hp=["init","self"].map(Ku),Bx=["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"],Ux=["assignment","associativity","higherThan","left","lowerThan","none","right"],$x=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],bp=["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,"*"),jg=$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(jg,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),Bn=Ze(jg,na,"*"),Ql=Ze(/[A-Z]/,na,"*"),Hx=["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"],jx=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function Gx(e){const i={match:/\s+/,relevance:0},r=e.COMMENT("/\\*","\\*/",{contains:["self"]}),l=[e.C_LINE_COMMENT_MODE,r],s={match:[/\./,$t(...Fx,...hp)],className:{2:"keyword"}},c={match:Ze(/\./,$t(...fu)),relevance:0},u=fu.filter(Ke=>typeof Ke=="string").concat(["_|0"]),d=fu.filter(Ke=>typeof Ke!="string").concat(Bx).map(Ku),p={variants:[{className:"keyword",match:$t(...d,...hp)}]},g={$pattern:$t(/\b\w+/,/#\w+/),keyword:u.concat($x),literal:yp},y=[s,c,p],h={match:Ze(/\./,$t(...bp)),relevance:0},b={className:"built_in",match:Ze(/\b/,$t(...bp),/(?=\()/)},E=[h,b],k={match:/->/,relevance:0},T={className:"operator",relevance:0,variants:[{match:du},{match:`\\.(\\.|${Hg})+`}]},S=[k,T],N="([0-9]_*)+",B="([0-9a-fA-F]_*)+",P={className:"number",relevance:0,variants:[{match:`\\b(${N})(\\.(${N}))?([eE][+-]?(${N}))?\\b`},{match:`\\b0x(${B})(\\.(${B}))?([pP][+-]?(${N}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},j=(Ke="")=>({className:"subst",variants:[{match:Ze(/\\/,Ke,/[0\\tnr"']/)},{match:Ze(/\\/,Ke,/u\{[0-9a-fA-F]{1,8}\}/)}]}),Z=(Ke="")=>({className:"subst",match:Ze(/\\/,Ke,/[\t ]*(?:[\r\n]|\r\n)/)}),A=(Ke="")=>({className:"subst",label:"interpol",begin:Ze(/\\/,Ke,/\(/),end:/\)/}),X=(Ke="")=>({begin:Ze(Ke,/"""/),end:Ze(/"""/,Ke),contains:[j(Ke),Z(Ke),A(Ke)]}),ee=(Ke="")=>({begin:Ze(Ke,/"/),end:Ze(/"/,Ke),contains:[j(Ke),A(Ke)]}),re={className:"string",variants:[X(),X("#"),X("##"),X("###"),ee(),ee("#"),ee("##"),ee("###")]},M=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],W={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:M},q=Ke=>{const Jt=Ze(Ke,/\//),an=Ze(/\//,Ke);return{begin:Jt,end:an,contains:[...M,{scope:"comment",begin:`#(?!.*${an})`,end:/$/}]}},te={scope:"regexp",variants:[q("###"),q("##"),q("#"),W]},L={match:Ze(/`/,Bn,/`/)},U={className:"variable",match:/\$\d+/},ue={className:"variable",match:`\\$${na}+`},ce=[L,U,ue],G={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:jx,contains:[...S,P,re]}]}},ae={scope:"keyword",match:Ze(/@/,$t(...Hx),ko($t(/\(/,/\s+/)))},v={scope:"meta",match:Ze(/@/,Bn)},O=[G,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,te,...y,...E,...S,P,re,...ce,...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,...S,P,re,...O,$,Me],endsParent:!0,illegal:/["']/},Ge={match:[/(func|macro)/,/\s+/,$t(L.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:[...Ux,...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"}},jn={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 Ke of re.variants){const Jt=Ke.contains.find(Rn=>Rn.label==="interpol");Jt.keywords=g;const an=[...y,...E,...S,P,re,...ce];Jt.contains=[...an,{begin:/\(/,end:/\)/,contains:["self",...an]}]}return{name:"Swift",keywords:g,contains:[...l,Ge,Xe,An,Hn,jn,Xt,rr,{beginKeywords:"import",end:/$/,contains:[...l],relevance:0},te,...y,...E,...S,P,re,...ce,...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"],Kg=["true","false","null","undefined","NaN","Infinity"],Wg=["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,Wg,Vg);function Kx(e){const i=e.regex,r=(G,{after:ae})=>{const v="",end:""},c=/<[A-Za-z0-9\\._:-]+\s*\/>/,u={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(G,ae)=>{const v=G[0].length+G.index,O=G.input[v];if(O==="<"||O===","){ae.ignoreMatch();return}O===">"&&(r(G,{after:v})||ae.ignoreMatch());let $;const w=G.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:Kg,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:[e.BACKSLASH_ESCAPE,b],subLanguage:"xml"}},k={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:"css"}},T={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:"graphql"}},S={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,b]},B={className:"comment",variants:[e.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}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},P=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,E,k,T,S,{match:/\$\d+/},h];b.contains=P.concat({begin:/\{/,end:/\}/,keywords:d,contains:["self"].concat(P)});const j=[].concat(B,b.contains),Z=j.concat([{begin:/(\s*)\(/,end:/\)/,keywords:d,contains:["self"].concat(j)}]),A={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,contains:Z},X={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:{_:[...Wg,...Vg]}},re={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:[A],illegal:/%/},W={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function q(G){return i.concat("(?!",G.join("|"),")")}const te={match:i.concat(/\b/,q([...qg,"super","import","await"].map(G=>`${G}\\s*\\(`)),l,i.lookahead(/\s*\(/)),className:"title.function",relevance:0},L={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:/\(\)/},A]},ue="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",ce={match:[/const|var|let/,/\s+/,l,/\s*/,/=\s*/,/(async\s*)?/,i.lookahead(ue)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[A]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:d,exports:{PARAMS_CONTAINS:Z,CLASS_REFERENCE:ee},illegal:/#(?![$_A-Za-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),re,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,E,k,T,S,B,{match:/\$\d+/},h,ee,{scope:"attr",match:l+i.lookahead(":"),relevance:0},ce,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[B,e.REGEXP_MODE,{className:"function",begin:ue,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,contains:Z}]}]},{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)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[A,e.inherit(e.TITLE_MODE,{begin:l,className:"title.function"})]},{match:/\.\.\./,relevance:0},L,{match:"\\$"+l,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[A]},te,W,X,U,{match:/\$[(.]/}]}}function Wx(e){const i=e.regex,r=Kx(e),l=ra,s=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],c={begin:[/namespace/,/\s+/,e.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:Kg,built_in:Qg.concat(s),"variable.language":Yg},y={className:"meta",begin:"@"+l},h=(T,S,N)=>{const B=T.contains.findIndex(P=>P.label===S);if(B===-1)throw new Error("can not find mode to replace");T.contains.splice(B,1,N)};Object.assign(r.keywords,g),r.exports.PARAMS_CONTAINS.push(y);const b=r.contains.find(T=>T.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",e.SHEBANG()),h(r,"use_strict",d);const k=r.contains.find(T=>T.label==="func.def");return k.relevance=0,Object.assign(r,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),r}function Vx(e){const i=e.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=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),b=e.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 qx(e){e.regex;const i=e.COMMENT(/\(;/,/;\)/);i.contains.push("self");const r=e.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,e.QUOTE_STRING_MODE,p,g,d]}}function Yx(e){const i=e.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=e.inherit(c,{begin:/\(/,end:/\)/}),d=e.inherit(e.APOS_STRING_MODE,{className:"string"}),p=e.inherit(e.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]}]}]},e.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 Qx(e){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:[e.BACKSLASH_ESCAPE,s]},d=e.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},T={begin:"\\[",end:"\\]",contains:[E],illegal:"\\n",relevance:0},S=[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:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:i,keywords:{literal:i}},b,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},k,T,c,u],N=[...S];return N.pop(),N.push(d),E.contains=N,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:S}}const Zx={arduino:Rw,bash:Ow,c:Iw,cpp:Mw,csharp:Lw,css:jw,diff:Gw,go:Kw,graphql:Ww,ini:Vw,java:qw,javascript:Jw,json:nx,kotlin:ix,less:dx,lua:px,makefile:gx,markdown:mx,objectivec:hx,perl:yx,php:bx,"php-template":Ex,plaintext:_x,python:vx,"python-repl":kx,r:wx,ruby:xx,rust:Sx,scss:Lx,shell:Dx,sql:Px,swift:Gx,typescript:Wx,vbnet:Vx,wasm:qx,xml:Yx,yaml:Qx};var pu,Ep;function Xx(){if(Ep)return pu;Ep=1;function e(C){return C instanceof Map?C.clear=C.delete=C.set=function(){throw new Error("map is read-only")}:C instanceof Set&&(C.add=C.clear=C.delete=function(){throw new Error("set is read-only")}),Object.freeze(C),Object.getOwnPropertyNames(C).forEach(V=>{const fe=C[V],Re=typeof fe;(Re==="object"||Re==="function")&&!Object.isFrozen(fe)&&e(fe)}),C}class i{constructor(V){V.data===void 0&&(V.data={}),this.data=V.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function r(C){return C.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function l(C,...V){const fe=Object.create(null);for(const Re in C)fe[Re]=C[Re];return V.forEach(function(Re){for(const rt in Re)fe[rt]=Re[rt]}),fe}const s="",c=C=>!!C.scope,u=(C,{prefix:V})=>{if(C.startsWith("language:"))return C.replace("language:","language-");if(C.includes(".")){const fe=C.split(".");return[`${V}${fe.shift()}`,...fe.map((Re,rt)=>`${Re}${"_".repeat(rt+1)}`)].join(" ")}return`${V}${C}`};class d{constructor(V,fe){this.buffer="",this.classPrefix=fe.classPrefix,V.walk(this)}addText(V){this.buffer+=r(V)}openNode(V){if(!c(V))return;const fe=u(V.scope,{prefix:this.classPrefix});this.span(fe)}closeNode(V){c(V)&&(this.buffer+=s)}value(){return this.buffer}span(V){this.buffer+=``}}const p=(C={})=>{const V={children:[]};return Object.assign(V,C),V};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(V){this.top.children.push(V)}openNode(V){const fe=p({scope:V});this.add(fe),this.stack.push(fe)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(V){return this.constructor._walk(V,this.rootNode)}static _walk(V,fe){return typeof fe=="string"?V.addText(fe):fe.children&&(V.openNode(fe),fe.children.forEach(Re=>this._walk(V,Re)),V.closeNode(fe)),V}static _collapse(V){typeof V!="string"&&V.children&&(V.children.every(fe=>typeof fe=="string")?V.children=[V.children.join("")]:V.children.forEach(fe=>{g._collapse(fe)}))}}class y extends g{constructor(V){super(),this.options=V}addText(V){V!==""&&this.add(V)}startScope(V){this.openNode(V)}endScope(){this.closeNode()}__addSublanguage(V,fe){const Re=V.root;fe&&(Re.scope=`language:${fe}`),this.add(Re)}toHTML(){return new d(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function h(C){return C?typeof C=="string"?C:C.source:null}function b(C){return T("(?=",C,")")}function E(C){return T("(?:",C,")*")}function k(C){return T("(?:",C,")?")}function T(...C){return C.map(fe=>h(fe)).join("")}function S(C){const V=C[C.length-1];return typeof V=="object"&&V.constructor===Object?(C.splice(C.length-1,1),V):{}}function N(...C){return"("+(S(C).capture?"":"?:")+C.map(Re=>h(Re)).join("|")+")"}function B(C){return new RegExp(C.toString()+"|").exec("").length-1}function P(C,V){const fe=C&&C.exec(V);return fe&&fe.index===0}const j=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function Z(C,{joinWith:V}){let fe=0;return C.map(Re=>{fe+=1;const rt=fe;let lt=h(Re),he="";for(;lt.length>0;){const ge=j.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]==="("&&fe++)}return he}).map(Re=>`(${Re})`).join(V)}const A=/\b\B/,X="[a-zA-Z]\\w*",ee="[a-zA-Z_]\\w*",re="\\b\\d+(\\.\\d+)?",M="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",W="\\b(0b[01]+)",q="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",te=(C={})=>{const V=/^#![ ]*\//;return C.binary&&(C.begin=T(V,/.*\b/,C.binary,/\b.*/)),l({scope:"meta",begin:V,end:/$/,relevance:0,"on:begin":(fe,Re)=>{fe.index!==0&&Re.ignoreMatch()}},C)},L={begin:"\\\\[\\s\\S]",relevance:0},U={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[L]},ue={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[L]},ce={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/},G=function(C,V,fe={}){const Re=l({scope:"comment",begin:C,end:V,contains:[]},fe);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:T(/[ ]+/,"(",rt,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),Re},ae=G("//","$"),v=G("/\\*","\\*/"),O=G("#","$"),$={scope:"number",begin:re,relevance:0},w={scope:"number",begin:M,relevance:0},we={scope:"number",begin:W,relevance:0},Me={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[L,{begin:/\[/,end:/\]/,relevance:0,contains:[L]}]},ke={scope:"title",begin:X,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:L,BINARY_NUMBER_MODE:we,BINARY_NUMBER_RE:W,COMMENT:G,C_BLOCK_COMMENT_MODE:v,C_LINE_COMMENT_MODE:ae,C_NUMBER_MODE:w,C_NUMBER_RE:M,END_SAME_AS_BEGIN:function(C){return Object.assign(C,{"on:begin":(V,fe)=>{fe.data._beginMatch=V[1]},"on:end":(V,fe)=>{fe.data._beginMatch!==V[1]&&fe.ignoreMatch()}})},HASH_COMMENT_MODE:O,IDENT_RE:X,MATCH_NOTHING_RE:A,METHOD_GUARD:De,NUMBER_MODE:$,NUMBER_RE:re,PHRASAL_WORDS_MODE:ce,QUOTE_STRING_MODE:ue,REGEXP_MODE:Me,RE_STARTERS_RE:q,SHEBANG:te,TITLE_MODE:ke,UNDERSCORE_IDENT_RE:ee,UNDERSCORE_TITLE_MODE:$e});function Xt(C,V){C.input[C.index-1]==="."&&V.ignoreMatch()}function rr(C,V){C.className!==void 0&&(C.scope=C.className,delete C.className)}function An(C,V){V&&C.beginKeywords&&(C.begin="\\b("+C.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",C.__beforeBegin=Xt,C.keywords=C.keywords||C.beginKeywords,delete C.beginKeywords,C.relevance===void 0&&(C.relevance=0))}function Hn(C,V){Array.isArray(C.illegal)&&(C.illegal=N(...C.illegal))}function jn(C,V){if(C.match){if(C.begin||C.end)throw new Error("begin & end are not supported with match");C.begin=C.match,delete C.match}}function Ke(C,V){C.relevance===void 0&&(C.relevance=1)}const Jt=(C,V)=>{if(!C.beforeMatch)return;if(C.starts)throw new Error("beforeMatch cannot be used with starts");const fe=Object.assign({},C);Object.keys(C).forEach(Re=>{delete C[Re]}),C.keywords=fe.keywords,C.begin=T(fe.beforeMatch,b(fe.begin)),C.starts={relevance:0,contains:[Object.assign(fe,{endsParent:!0})]},C.relevance=0,delete fe.beforeMatch},an=["of","and","for","in","not","or","if","then","parent","list","value"],Rn="keyword";function bn(C,V,fe=Rn){const Re=Object.create(null);return typeof C=="string"?rt(fe,C.split(" ")):Array.isArray(C)?rt(fe,C):Object.keys(C).forEach(function(lt){Object.assign(Re,bn(C[lt],V,lt))}),Re;function rt(lt,he){V&&(he=he.map(ge=>ge.toLowerCase())),he.forEach(function(ge){const xe=ge.split("|");Re[xe[0]]=[lt,On(xe[0],xe[1])]})}}function On(C,V){return V?Number(V):Cr(C)?0:1}function Cr(C){return an.includes(C.toLowerCase())}const Tr={},sn=C=>{console.error(C)},Ar=(C,...V)=>{console.log(`WARN: ${C}`,...V)},H=(C,V)=>{Tr[`${C}/${V}`]||(console.log(`Deprecated as of ${C}. ${V}`),Tr[`${C}/${V}`]=!0)},le=new Error;function Te(C,V,{key:fe}){let Re=0;const rt=C[fe],lt={},he={};for(let ge=1;ge<=V.length;ge++)he[ge+Re]=rt[ge],lt[ge+Re]=!0,Re+=B(V[ge-1]);C[fe]=he,C[fe]._emit=lt,C[fe]._multi=!0}function Pe(C){if(Array.isArray(C.begin)){if(C.skip||C.excludeBegin||C.returnBegin)throw sn("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),le;if(typeof C.beginScope!="object"||C.beginScope===null)throw sn("beginScope must be object"),le;Te(C,C.begin,{key:"beginScope"}),C.begin=Z(C.begin,{joinWith:""})}}function He(C){if(Array.isArray(C.end)){if(C.skip||C.excludeEnd||C.returnEnd)throw sn("skip, excludeEnd, returnEnd not compatible with endScope: {}"),le;if(typeof C.endScope!="object"||C.endScope===null)throw sn("endScope must be object"),le;Te(C,C.end,{key:"endScope"}),C.end=Z(C.end,{joinWith:""})}}function _t(C){C.scope&&typeof C.scope=="object"&&C.scope!==null&&(C.beginScope=C.scope,delete C.scope)}function En(C){_t(C),typeof C.beginScope=="string"&&(C.beginScope={_wrap:C.beginScope}),typeof C.endScope=="string"&&(C.endScope={_wrap:C.endScope}),Pe(C),He(C)}function jt(C){function V(he,ge){return new RegExp(h(he),"m"+(C.case_insensitive?"i":"")+(C.unicodeRegex?"u":"")+(ge?"g":""))}class fe{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(ge,xe){xe.position=this.position++,this.matchIndexes[this.matchAt]=xe,this.regexes.push([xe,ge]),this.matchAt+=B(ge)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const ge=this.regexes.map(xe=>xe[1]);this.matcherRe=V(Z(ge,{joinWith:"|"}),!0),this.lastIndex=0}exec(ge){this.matcherRe.lastIndex=this.lastIndex;const xe=this.matcherRe.exec(ge);if(!xe)return null;const yt=xe.findIndex((In,or)=>or>0&&In!==void 0),tt=this.matchIndexes[yt];return xe.splice(0,yt),Object.assign(xe,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 xe=new fe;return this.rules.slice(ge).forEach(([yt,tt])=>xe.addRule(yt,tt)),xe.compile(),this.multiRegexes[ge]=xe,xe}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(ge,xe){this.rules.push([ge,xe]),xe.type==="begin"&&this.count++}exec(ge){const xe=this.getMatcher(this.regexIndex);xe.lastIndex=this.lastIndex;let yt=xe.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(xe=>ge.addRule(xe.begin,{rule:xe,type:"begin"})),he.terminatorEnd&&ge.addRule(he.terminatorEnd,{type:"end"}),he.illegal&&ge.addRule(he.illegal,{type:"illegal"}),ge}function lt(he,ge){const xe=he;if(he.isCompiled)return xe;[rr,jn,En,Jt].forEach(tt=>tt(he,ge)),C.compilerExtensions.forEach(tt=>tt(he,ge)),he.__beforeBegin=null,[An,Hn,Ke].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=bn(he.keywords,C.case_insensitive)),xe.keywordPatternRe=V(yt,!0),ge&&(he.begin||(he.begin=/\B|\b/),xe.beginRe=V(xe.begin),!he.end&&!he.endsWithParent&&(he.end=/\B|\b/),he.end&&(xe.endRe=V(xe.end)),xe.terminatorEnd=h(xe.end)||"",he.endsWithParent&&ge.terminatorEnd&&(xe.terminatorEnd+=(he.end?"|":"")+ge.terminatorEnd)),he.illegal&&(xe.illegalRe=V(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,xe)}),he.starts&<(he.starts,ge),xe.matcher=rt(xe),xe}if(C.compilerExtensions||(C.compilerExtensions=[]),C.contains&&C.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return C.classNameAliases=l(C.classNameAliases||{}),lt(C)}function _n(C){return C?C.endsWithParent||_n(C.starts):!1}function Gn(C){return C.variants&&!C.cachedVariants&&(C.cachedVariants=C.variants.map(function(V){return l(C,{variants:null},V)})),C.cachedVariants?C.cachedVariants:_n(C)?l(C,{starts:C.starts?l(C.starts):null}):Object.isFrozen(C)?l(C):C}var vt="11.11.2";class un extends Error{constructor(V,fe){super(V),this.name="HTMLInjectionError",this.html=fe}}const Tt=r,ei=l,ti=Symbol("nomatch"),ir=7,Kn=function(C){const V=Object.create(null),fe=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 xe(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=>xe(Be)||vn(Be))}function tt(ie,ve,ze){let Be="",gt="";typeof ve=="object"?(Be=ie,ze=ve.ignoreIllegals,gt=ve.language):(H("10.7.0","highlight(lang, code, ...args) has been deprecated."),H("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 je=cn.case_insensitive?me[0].toLowerCase():me[0],dt=ut(Ie,je);if(dt){const[xt,ga]=dt;if(mt.addText(Ae),Ae="",gt[je]=(gt[je]||0)+1,gt[je]<=ir&&(Lr+=ga),xt.startsWith("_"))Ae+=me[0];else{const $o=cn.classNameAliases[xt]||xt;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(!V[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 je=me.length-1;for(;Ae<=je;){if(!se._emit[Ae]){Ae++;continue}const dt=cn.classNameAliases[se[Ae]]||se[Ae],xt=me[Ae];dt?Ft(xt,dt):(Qe=xt,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 je=P(se.endRe,Ae);if(je){if(se["on:end"]){const dt=new i(se);se["on:end"](me,dt),dt.isMatchIgnored&&(je=!1)}if(je){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,je=new i(Ae),dt=[Ae.__beforeBegin,Ae["on:begin"]];for(const xt of dt)if(xt&&(xt(se,je),je.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),je=Mr(Ie,se,Ae);if(!je)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!==je.parent);return je.starts&&lr(je.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 je=new Error(`0 width match regex (${ie})`);throw je.languageName=ie,je.badRule=ar.rule,je}return 1}if(ar=me,me.type==="begin")return pa(me);if(me.type==="illegal"&&!ze){const je=new Error('Illegal lexeme "'+Ae+'" for mode "'+(Ie.scope||"")+'"');throw je.mode=Ie,je}else if(me.type==="end"){const je=Fi(me);if(je!==ti)return je}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=jt(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:Tt(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:Tt(ve),illegal:!1,relevance:0,errorRaised:se,_emitter:mt,_top:Ie};throw se}}function or(ie){const ve={value:Tt(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(V);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&&fe[ve]||ze;ie.classList.add("hljs"),ie.classList.add(`language-${Be}`)}function Di(ie){let ve=null;const ze=yt(ie);if(xe(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(),H("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function Lo(){ni(),H("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(C)}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),V[ie]=ze,ze.rawDefinition=ve.bind(null,C),ze.aliases&&Fo(ze.aliases,{languageName:ie})}function Po(ie){delete V[ie];for(const ve of Object.keys(fe))fe[ve]===ie&&delete fe[ve]}function zo(){return Object.keys(V)}function vn(ie){return ie=(ie||"").toLowerCase(),V[ie]||V[fe[ie]]}function Fo(ie,{languageName:ve}){typeof ie=="string"&&(ie=[ie]),ie.forEach(ze=>{fe[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 H("10.7.0","highlightBlock will be removed entirely in v12.0"),H("10.7.0","Please use highlightElement now."),Di(ie)}Object.assign(C,{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}),C.debugMode=function(){rt=!1},C.safeMode=function(){rt=!0},C.versionString=vt,C.regex={concat:T,lookahead:b,either:N,optional:k,anyNumberOfTimes:E};for(const ie in Xe)typeof Xe[ie]=="object"&&e(Xe[ie]);return Object.assign(C,Xe),C},Wn=Kn({});return Wn.newInstance=()=>Kn({}),pu=Wn,Wn.HighlightJS=Wn,Wn.default=Wn,pu}var Jx=Xx();const eS=Ao(Jx),_p={},tS="hljs-";function nS(e){const i=eS.newInstance();return e&&c(e),{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:tS;if(!i.getLanguage(p))throw new Error("Unknown language: `"+p+"` is not registered");i.configure({__emitter:rS,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,T=k.data;return T.language=E.language,T.relevance=E.relevance,k}function l(p,g){const h=(g||_p).subset||s();let b=-1,E=0,k;for(;++bE&&(E=S.data.relevance,k=S)}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 rS{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 iS={};function oS(e){const i=e||iS,r=i.aliases,l=i.detect||!1,s=i.languages||Zx,c=i.plainText,u=i.prefix,d=i.subset;let p="hljs";const g=nS(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 T=lS(b);if(T===!1||!T&&!l||T&&c&&c.includes(T))return;Array.isArray(b.properties.className)||(b.properties.className=[]),b.properties.className.includes(p)||b.properties.className.unshift(p);const S=kw(b,{whitespace:"pre"});let N;try{N=T?g.highlight(T,S,{prefix:u}):g.highlightAuto(S,{prefix:u,subset:d})}catch(B){const P=B;if(T&&/Unknown language/.test(P.message)){h.message("Cannot highlight as `"+T+"`, it’s not registered",{ancestors:[k,b],cause:P,place:b.position,ruleId:"missing-language",source:"rehype-highlight"});return}throw P}!T&&N.data&&N.data.language&&b.properties.className.push("language-"+N.data.language),N.children.length>0&&(b.children=N.children)})}}function lS(e){const i=e.properties.className;let r=-1;if(!Array.isArray(i))return;let l;for(;++rtypeof r=="string"):[]}catch{return[]}}function uS({message:e,toolEvents:i=[]}){const[r,l]=de.useState(!1),s=e.role==="user",c=sS(e);return K.jsxs("div",{className:`msg ${s?"msg-user":"msg-assistant"}`,children:[K.jsx("div",{className:"msg-role",children:s?"du":"qwen3"}),!s&&e.thinking&&e.thinking.length>0&&K.jsxs("div",{className:`thinking ${r?"open":""}`,children:[K.jsxs("button",{className:"thinking-toggle",onClick:()=>l(u=>!u),children:[K.jsx("span",{className:`caret ${r?"rotated":""}`,children:"▸"}),e.content===""&&r===!1?"denkt nach …":`Denkprozess (${e.thinking.length.toLocaleString("de-DE")} Zeichen)`]}),r&&K.jsx("pre",{className:"thinking-body",children:e.thinking})]}),i.length>0&&K.jsx("div",{className:"tool-events",children:i.map((u,d)=>K.jsxs("div",{className:`tool-event ${u.ok===!1?"failed":""}`,children:[K.jsx("span",{className:"tool-icon",children:u.ok===void 0?"⋯":u.ok?"✓":"✗"}),K.jsx("code",{children:u.name}),K.jsx("span",{className:"tool-args",title:u.args,children:u.args}),u.durationMs!==void 0&&K.jsxs("span",{className:"tool-time",children:[u.durationMs," ms"]})]},d))}),c.length>0&&K.jsx("div",{className:"msg-images",children:c.map((u,d)=>K.jsx("img",{src:`data:${aS(u)};base64,${u}`,alt:`Anhang ${d+1}`,loading:"lazy"},d))}),s?e.content?K.jsx("div",{className:"msg-content user-content",children:e.content}):null:K.jsx("div",{className:"msg-content markdown",children:K.jsx(nv,{remarkPlugins:[mw],rehypePlugins:[oS],children:e.content||"▍"})})]})}const wo=4,vp=6*1024*1024,kp=["image/png","image/jpeg","image/gif","image/webp"];function cS(e){return new Promise((i,r)=>{const l=new FileReader;l.onerror=()=>r(new Error(`${e.name} konnte nicht gelesen werden`)),l.onload=()=>{const s=String(l.result),c=s.indexOf(",");i({id:`${e.name}-${e.size}-${Date.now()}-${Math.random()}`,base64:s.slice(c+1),dataUrl:s,name:e.name||"Bild"})},l.readAsDataURL(e)})}function fS({streaming:e,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),[T,S]=de.useState(!1),N=de.useRef(null),B=de.useRef(null);de.useEffect(()=>{s!=null&&(y(s),c(),requestAnimationFrame(()=>{var A,X;(A=N.current)==null||A.focus(),(X=N.current)==null||X.setSelectionRange(s.length,s.length)}))},[s,c]);const P=async A=>{k(null);const X=[];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}X.push(ee)}if(X.length)try{const ee=await Promise.all(X.map(cS));b(re=>{const M=wo-re.length;return ee.length>M&&k(`Maximal ${wo} Bilder pro Nachricht`),[...re,...ee.slice(0,Math.max(M,0))]})}catch(ee){k(ee instanceof Error?ee.message:"Bild konnte nicht gelesen werden")}},j=()=>{const A=g.trim();!A&&h.length===0||e||i||(u(A,h.map(X=>X.base64)),y(""),b([]),k(null),requestAnimationFrame(()=>{var X;return(X=N.current)==null?void 0:X.focus()}))},Z=(g.trim().length>0||h.length>0)&&!i;return K.jsxs("div",{className:`composer ${T?"dragging":""}`,onDragOver:A=>{i||(A.preventDefault(),S(!0))},onDragLeave:()=>S(!1),onDrop:A=>{i||(A.preventDefault(),S(!1),P([...A.dataTransfer.files]))},children:[(h.length>0||E)&&K.jsxs("div",{className:"attachments",children:[h.map(A=>K.jsxs("div",{className:"attachment",children:[K.jsx("img",{src:A.dataUrl,alt:A.name}),K.jsx("button",{className:"attachment-remove",onClick:()=>b(X=>X.filter(ee=>ee.id!==A.id)),title:`${A.name} entfernen`,children:"×"})]},A.id)),E&&K.jsx("span",{className:"attachment-error",children:E})]}),K.jsxs("div",{className:"composer-row",children:[K.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?"…":"🎙"}),K.jsx("button",{className:"btn-attach",onClick:()=>{var A;return(A=B.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:"🖼"}),K.jsx("input",{ref:B,type:"file",accept:kp.join(","),multiple:!0,hidden:!0,onChange:A=>{P([...A.target.files??[]]),A.target.value=""}}),K.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 X=[...A.clipboardData.files].filter(ee=>ee.type.startsWith("image/"));X.length&&(A.preventDefault(),P(X))},onKeyDown:A=>{A.key==="Enter"&&!A.shiftKey&&(A.preventDefault(),j())}}),e?K.jsx("button",{className:"btn-send stop",onClick:d,children:"■ Stop"}):K.jsx("button",{className:"btn-send",disabled:!Z,onClick:j,children:"Senden ▸"})]})]})}const dS={fact:"Fakt",decision:"Entscheidung",preference:"Präferenz",entity:"Entität",open_question:"Offen"};function pS({sessionId:e,onClose:i}){const[r,l]=de.useState(null),[s,c]=de.useState(null),u=de.useCallback(async()=>{try{const E=await(await fetch(`/api/sessions/${e}/memory`)).json();E.state&&l(E)}catch{l(null)}},[e]);de.useEffect(()=>{u()},[u]);const d=async()=>{c("dream");try{await fetch(`/api/sessions/${e}/dream`,{method:"POST"}),await u()}finally{c(null)}},p=async()=>{c("rebuild");try{await fetch(`/api/sessions/${e}/memory/rebuild`,{method:"POST"}),await u()}finally{c(null)}},g=async b=>{await fetch(`/api/anchors/${b.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({pinned:!b.pinned})}),await u()},y=async b=>{await fetch(`/api/anchors/${b.id}`,{method:"DELETE"}),await u()},h=r?r.state.last_seq-r.state.last_dream_seq:0;return K.jsx("div",{className:"memory-overlay",onClick:i,children:K.jsxs("section",{className:"memory-panel",onClick:b=>b.stopPropagation(),children:[K.jsxs("header",{className:"memory-header",children:[K.jsxs("div",{children:[K.jsx("div",{className:"memory-title",children:"🧠 Gedächtnis"}),K.jsx("div",{className:"memory-stats",children:r?`${r.state.last_seq} Log-Schritte · ${r.state.dream_count}× geträumt · ${h} unkonsolidiert`:"lädt …"})]}),K.jsx("button",{className:"memory-close",onClick:i,title:"Schließen",children:"✕"})]}),K.jsxs("div",{className:"memory-actions",children:[K.jsx("button",{onClick:()=>void d(),disabled:s!==null,children:s==="dream"?"… träumt":"💤 Traumphase jetzt"}),K.jsx("button",{onClick:()=>void p(),disabled:s!==null,children:s==="rebuild"?"… faltet":"↻ Aus Log rekonstruieren"})]}),r&&r.anchors.length===0&&K.jsx("div",{className:"memory-empty",children:"Noch keine Ankerpunkte. Sie entstehen durch die Traumphase (automatisch nach Inaktivität oder Manual oben) oder wenn das Modell sich etwas mit „remember“ merkt."}),r==null?void 0:r.anchors.map(b=>K.jsxs("div",{className:"anchor-row"+(b.pinned?" pinned":""),children:[K.jsxs("div",{className:"anchor-body",children:[K.jsxs("div",{className:"anchor-kind",children:[dS[b.kind]??b.kind," · ",b.origin]}),K.jsx("div",{className:"anchor-text",children:b.text}),K.jsxs("div",{className:"anchor-meta",children:["Wichtigkeit ",(b.importance*100).toFixed(0)," % · ",b.hits,"× bestätigt"]}),K.jsx("div",{className:"anchor-bar",children:K.jsx("div",{className:"anchor-bar-fill",style:{width:`${Math.round(b.importance*100)}%`}})})]}),K.jsxs("div",{className:"anchor-actions",children:[K.jsx("button",{onClick:()=>void g(b),title:b.pinned?"Pin lösen (Decay möglich)":"Pinnen (vor Decay geschützt)",children:b.pinned?"★":"☆"}),K.jsx("button",{onClick:()=>void y(b),title:"Ankerpunkt löschen",children:"✕"})]})]},b.id))]})})}const wp="oxagenttwo.voiceMode";function gS(){var W,q,te;const e=jh(),i=de.useRef(null),[r,l]=de.useState(!1),[s,c]=de.useState(!1),[u,d]=de.useState(null),[p,g]=de.useState(()=>localStorage.getItem(wp)==="1"),[y,h]=de.useState([]);de.useEffect(()=>{r&&e.options.provider==="openrouter"&&y.length===0&&fetch("/api/openrouter/models").then(L=>L.json()).then(L=>{L.ok&&L.models&&h(L.models)}).catch(()=>{})},[r,e.options.provider,y.length]);const b=de.useRef(p),E=de.useRef(!1),k=de.useRef(!1);E.current=e.streaming,b.current=p;const T=de.useCallback(L=>{g(L),localStorage.setItem(wp,L?"1":"0")},[]),S=Gh({onTranscript:L=>{b.current?(N.current.cancelSpeech(),P.current="",B.current.sendMessage(L)):d(L)},onQueueDrained:()=>{k.current&&(k.current=!1,b.current&&!E.current&&N.current.startRecording())}}),N=de.useRef(S);N.current=S;const B=de.useRef(e);B.current=e;const P=de.useRef(""),j=de.useRef({id:"",offset:0});de.useEffect(()=>{const L=i.current;L&&(L.scrollTop=L.scrollHeight)},[e.messages]),de.useEffect(()=>{if(!p)return;const L=[...e.messages].reverse().find(v=>v.role==="assistant");if(!L)return;j.current.id!==L.id&&(j.current={id:L.id,offset:0},P.current="");const U=L.content;if(U.length=40&&(ae=ce.slice(0,O))}else if(ce.length>300){const v=Math.max(ce.lastIndexOf(", "),ce.lastIndexOf(" "));ae=v>100?ce.slice(0,v+1):ce}ae&&(P.current=ce.slice(ae.length),S.enqueueSpeech(ae))});const Z=de.useRef(!1);de.useEffect(()=>{if(Z.current&&!e.streaming&&p){const L=P.current.trim();L&&(P.current="",S.enqueueSpeech(L)),(L||j.current.id)&&(k.current=!0)}Z.current=e.streaming},[e.streaming,p,S]);const[A,X]=de.useState([]);de.useEffect(()=>{fetch("/api/tools").then(L=>L.json()).then(L=>X(L.tools??[])).catch(()=>X([]))},[]);const ee=de.useCallback((L,U=[])=>{S.cancelSpeech(),P.current="",e.sendMessage(L,U)},[e,S]),re=de.useCallback(()=>{S.cancelSpeech(),P.current="",e.abort()},[e,S]),M=de.useCallback(()=>{S.recording?S.stopRecording():(S.cancelSpeech(),S.startRecording())},[S]);return K.jsxs("div",{className:"app",children:[K.jsx(Kh,{sessions:e.sessions,activeId:e.activeId,onSelect:e.setActiveId,onNew:()=>void e.newSession(),onDelete:L=>void e.deleteSession(L)}),K.jsxs("main",{className:"main",children:[K.jsxs("header",{className:"topbar",children:[K.jsxs("div",{className:"model-badge",title:(W=e.modelInfo)!=null&&W.ok||(q=e.modelInfo)==null?void 0:q.error,children:[K.jsx("span",{className:`status-dot ${e.status==="open"?"on":"off"}`}),e.options.provider==="openrouter"?`☁ ${e.options.openrouterModel}`:(te=e.modelInfo)!=null&&te.ok?`${e.modelInfo.model} · ${e.modelInfo.parameterSize} · ${e.modelInfo.quantization}`:"Ollama offline"]}),K.jsxs("div",{className:"topbar-actions",children:[p&&(S.recording||S.transcribing||S.speaking)&&K.jsx("span",{className:"voice-state",children:S.recording?"● hört zu":S.transcribing?"… transkribiert":"🔊 spricht"}),K.jsx("button",{className:`btn-settings ${p?"toggled":""}`,onClick:()=>{p&&(S.cancelSpeech(),S.stopRecording()),T(!p)},title:"Sprachmodus: Antworten werden vorgelesen, danach wird automatisch wieder zugehört",children:p?"🔊 Stimme: an":"🔇 Stimme: aus"}),K.jsx("button",{className:"btn-settings",onClick:()=>c(L=>!L),disabled:!e.activeId,title:"Gedächtnis: Ankerpunkte, Traumphase, Log-Rekonstruktion",children:"🧠 Gedächtnis"}),K.jsx("button",{className:"btn-settings",onClick:()=>l(L=>!L),children:"⚙ Einstellungen"})]})]}),r&&K.jsxs("section",{className:"settings-panel",children:[K.jsxs("label",{className:"setting-row",children:[K.jsx("span",{children:"Modell"}),K.jsxs("select",{className:"provider-select",value:e.options.provider,onChange:L=>e.setOptions({provider:L.target.value}),children:[K.jsx("option",{value:"ollama",children:"Lokal: qwen3.5 (Ollama)"}),K.jsx("option",{value:"openrouter",children:"OpenRouter (Cloud)"})]})]}),e.options.provider==="openrouter"&&K.jsxs("label",{className:"setting-row column",children:[K.jsxs("span",{children:["OpenRouter-Modell (",y.length," verfügbar)"]}),K.jsx("input",{list:"or-models",value:e.options.openrouterModel,placeholder:"z. B. anthropic/claude-sonnet-4.5",onChange:L=>e.setOptions({openrouterModel:L.target.value})}),K.jsx("datalist",{id:"or-models",children:y.map(L=>K.jsxs("option",{value:L.id,children:[L.name," · ",L.promptPrice===0?"gratis":`$${L.promptPrice.toFixed(2)}/M`]},L.id))})]}),e.options.provider==="ollama"&&K.jsxs("label",{className:"setting-row checkbox",children:[K.jsx("input",{type:"checkbox",checked:e.options.think,onChange:L=>e.setOptions({think:L.target.checked})}),K.jsx("span",{children:"Thinking-Mode (Modell denkt sichtbar vor der Antwort)"})]}),K.jsxs("label",{className:"setting-row checkbox",children:[K.jsx("input",{type:"checkbox",checked:e.options.tools,onChange:L=>e.setOptions({tools:L.target.checked})}),K.jsxs("span",{children:["Werkzeuge (",A.length>0?A.join(", "):"keine geladen",")"]})]}),K.jsxs("label",{className:"setting-row",children:[K.jsxs("span",{children:["Temperature: ",e.options.temperature.toFixed(2)]}),K.jsx("input",{type:"range",min:0,max:1.5,step:.05,value:e.options.temperature,onChange:L=>e.setOptions({temperature:Number(L.target.value)})})]}),K.jsxs("label",{className:"setting-row",children:[K.jsxs("span",{children:["Max. Tokens: ",e.options.numPredict]}),K.jsx("input",{type:"range",min:256,max:8192,step:256,value:e.options.numPredict,onChange:L=>e.setOptions({numPredict:Number(L.target.value)})})]}),K.jsxs("label",{className:"setting-row",children:[K.jsxs("span",{children:["Gedächtnis-Fenster: ",e.options.memorySteps," Schritte"]}),K.jsx("input",{type:"range",min:2,max:50,step:1,value:e.options.memorySteps,onChange:L=>e.setOptions({memorySteps:Number(L.target.value)})})]}),K.jsxs("label",{className:"setting-row checkbox",children:[K.jsx("input",{type:"checkbox",checked:e.options.memoryAnchors,onChange:L=>e.setOptions({memoryAnchors:L.target.checked})}),K.jsx("span",{children:"Ankerpunkte ins Modell einspielen (Gedächtnis als System-Kontext)"})]}),K.jsxs("label",{className:"setting-row checkbox",children:[K.jsx("input",{type:"checkbox",checked:e.options.dreamAuto,onChange:L=>e.setOptions({dreamAuto:L.target.checked})}),K.jsx("span",{children:"Auto-Traumphase (Konsolidierung nach 3 Min Inaktivität oder 10 Schritten)"})]}),K.jsxs("label",{className:"setting-row column",children:[K.jsx("span",{children:"System-Prompt"}),K.jsx("textarea",{rows:3,placeholder:"Optional: Verhalten des Modells steuern …",value:e.systemPrompt,onChange:L=>e.setSystemPrompt(L.target.value)})]})]}),s&&e.activeId&&K.jsx(pS,{sessionId:e.activeId,onClose:()=>c(!1)}),K.jsxs("div",{className:"messages",ref:i,children:[e.messages.length===0&&K.jsxs("div",{className:"welcome",children:[K.jsx("div",{className:"welcome-title",children:"▸ agenttwo-tools"}),K.jsx("p",{children:"Echtzeit-Chat mit lokalem Qwen3 über Ollama — per Tastatur oder Stimme (Whisper STT + Piper TTS, alles lokal)."}),K.jsx("p",{className:"hint",children:"🎙 für Sprachnachricht · 🔊 Stimme an für freihändigen Dialog"})]}),e.messages.map(L=>K.jsx(uS,{message:L,toolEvents:e.toolEvents[L.id]},L.id))]}),S.error&&K.jsxs("div",{className:"voice-error",children:[S.error,K.jsx("button",{onClick:()=>S.setError(null),children:"✕"})]}),K.jsx(fS,{streaming:e.streaming,disabled:!e.activeId,recording:S.recording,transcribing:S.transcribing,injectedText:u,onInjected:()=>d(null),onSend:ee,onAbort:re,onMicToggle:M})]})]})}Uh.createRoot(document.getElementById("root")).render(K.jsx(Mh.StrictMode,{children:K.jsx(gS,{})})); diff --git a/web/dist/assets/index-BvIjEji7.css b/web/dist/assets/index-CKaNlN-w.css similarity index 69% rename from web/dist/assets/index-BvIjEji7.css rename to web/dist/assets/index-CKaNlN-w.css index ff8b0a3..90db837 100644 --- a/web/dist/assets/index-BvIjEji7.css +++ b/web/dist/assets/index-CKaNlN-w.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)}.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} +*/.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{flex-direction:column;align-items:stretch}.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}.memory-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#04080699;display:flex;align-items:center;justify-content:center;z-index:50}.memory-panel{width:min(660px,92vw);max-height:80vh;overflow-y:auto;background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;padding:18px;display:flex;flex-direction:column;gap:10px}.memory-header{display:flex;justify-content:space-between;align-items:flex-start}.memory-title{color:var(--accent);font-weight:700;letter-spacing:.03em}.memory-stats{color:var(--text-dim);font-size:12px;margin-top:2px}.memory-close{background:transparent;border:none;color:var(--text-dim);font-size:15px;cursor:pointer}.memory-close:hover{color:var(--text)}.memory-actions{display:flex;gap:8px}.memory-actions button{font-family:inherit;font-size:12px;background:transparent;color:var(--accent);border:1px solid var(--accent-dim);border-radius:6px;padding:5px 10px;cursor:pointer}.memory-actions button:hover:not(:disabled){background:var(--user-bg)}.memory-actions button:disabled{opacity:.5;cursor:default}.memory-empty{color:var(--text-dim);font-size:13px;padding:14px;text-align:center;border:1px dashed var(--border);border-radius:8px}.anchor-row{display:flex;gap:10px;align-items:flex-start;padding:9px 12px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px}.anchor-row.pinned{border-color:var(--accent-dim)}.anchor-body{flex:1;min-width:0}.anchor-kind{font-size:11px;color:var(--accent-warm);text-transform:uppercase;letter-spacing:.06em}.anchor-text{font-size:13px;margin-top:3px;overflow-wrap:anywhere}.anchor-meta{font-size:11px;color:var(--text-dim);margin-top:4px}.anchor-bar{height:3px;background:var(--border);border-radius:2px;margin-top:6px;overflow:hidden}.anchor-bar-fill{height:100%;background:var(--accent);border-radius:2px}.anchor-actions{display:flex;gap:2px;flex-shrink:0}.anchor-actions button{background:transparent;border:none;color:var(--text-dim);cursor:pointer;font-size:14px;padding:2px 4px}.anchor-actions button:hover{color:var(--accent)} diff --git a/web/dist/favicon.svg b/web/dist/favicon.svg new file mode 100644 index 0000000..349f2b7 --- /dev/null +++ b/web/dist/favicon.svg @@ -0,0 +1,7 @@ + + + + + + diff --git a/web/dist/index.html b/web/dist/index.html index 6a98efb..6613430 100644 --- a/web/dist/index.html +++ b/web/dist/index.html @@ -3,9 +3,11 @@ + + agenttwo-tools — qwen3 mit Vision - - + +
diff --git a/web/src/App.tsx b/web/src/App.tsx index 1c48756..4289fd2 100644 --- a/web/src/App.tsx +++ b/web/src/App.tsx @@ -4,6 +4,7 @@ import { useVoice } from "./useVoice"; import { Sidebar } from "./components/Sidebar"; import { ChatMessage } from "./components/ChatMessage"; import { Composer } from "./components/Composer"; +import { MemoryPanel } from "./components/MemoryPanel"; import type { OpenRouterModel } from "./types"; const VOICE_KEY = "oxagenttwo.voiceMode"; @@ -12,6 +13,7 @@ export default function App() { const chat = useChat(); const scrollRef = useRef(null); const [settingsOpen, setSettingsOpen] = useState(false); + const [memoryOpen, setMemoryOpen] = useState(false); const [injectedText, setInjectedText] = useState(null); const [voiceMode, setVoiceModeState] = useState( () => localStorage.getItem(VOICE_KEY) === "1", @@ -209,6 +211,14 @@ export default function App() { > {voiceMode ? "🔊 Stimme: an" : "🔇 Stimme: aus"} +