agent-workbench 0.5.2 → 0.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/server.js CHANGED
@@ -15748,6 +15748,15 @@ function draftOwnerOf(descriptor) {
15748
15748
  if (descriptor.sessionId.length === 0) return null;
15749
15749
  return { agent: descriptor.agent, sessionId: descriptor.sessionId };
15750
15750
  }
15751
+ function draftEntriesOf(descriptors, store, owner) {
15752
+ const entries = [];
15753
+ for (const descriptor of descriptors) {
15754
+ const tabOwner = draftOwnerOf(descriptor);
15755
+ if (tabOwner === null || owner !== void 0 && keyOf(tabOwner) !== keyOf(owner)) continue;
15756
+ entries.push({ terminalId: descriptor.terminalId, draft: store.get(tabOwner) ?? { text: "", pasted: [] } });
15757
+ }
15758
+ return entries;
15759
+ }
15751
15760
  function workspaceDraftOwners(state) {
15752
15761
  const owners = state.tabs.map(({ agent, sessionId }) => ({ agent, sessionId }));
15753
15762
  for (const { raw } of state.foreignTabs) {
@@ -17281,7 +17290,7 @@ import { WebSocketServer } from "ws";
17281
17290
 
17282
17291
  // packages/server/src/directory-picker.ts
17283
17292
  import { randomUUID as randomUUID6 } from "node:crypto";
17284
- import { mkdir as mkdir14, readdir as readdir11, stat as stat24 } from "node:fs/promises";
17293
+ import { lstat, mkdir as mkdir14, readdir as readdir11, stat as stat24 } from "node:fs/promises";
17285
17294
  import { homedir as homedir11 } from "node:os";
17286
17295
  import path44 from "node:path";
17287
17296
  var MAX_ENTRIES = 500;
@@ -17296,6 +17305,16 @@ function isInsideProtected(target, dirs) {
17296
17305
  return resolved === protectedDir || resolved.startsWith(protectedDir + path44.sep);
17297
17306
  });
17298
17307
  }
17308
+ async function isListedDirectory(parent, entry, readLink = lstat) {
17309
+ if (entry.isDirectory()) return true;
17310
+ if (!entry.isSymbolicLink()) return false;
17311
+ try {
17312
+ const info = await readLink(path44.join(parent, entry.name));
17313
+ return info.isDirectory() && !info.isSymbolicLink();
17314
+ } catch {
17315
+ return false;
17316
+ }
17317
+ }
17299
17318
  async function listRoots() {
17300
17319
  const roots = [];
17301
17320
  const home = homedir11();
@@ -17441,7 +17460,8 @@ var DirectoryPickers = class {
17441
17460
  let truncated = false;
17442
17461
  try {
17443
17462
  const found = await readdir11(picker.current, { withFileTypes: true });
17444
- const dirs = found.filter((entry) => entry.isDirectory()).map((entry) => entry.name).filter((name) => !SKIPPED.has(name)).filter((name) => !isInsideProtected(path44.join(picker.current, name), this.protectedDirs)).sort((a, b) => a.localeCompare(b));
17463
+ const listed = await Promise.all(found.map((entry) => isListedDirectory(picker.current, entry)));
17464
+ const dirs = found.filter((_, index) => listed[index] === true).map((entry) => entry.name).filter((name) => !SKIPPED.has(name)).filter((name) => !isInsideProtected(path44.join(picker.current, name), this.protectedDirs)).sort((a, b) => a.localeCompare(b));
17445
17465
  truncated = dirs.length > MAX_ENTRIES;
17446
17466
  names = dirs.slice(0, MAX_ENTRIES);
17447
17467
  } catch {
@@ -18312,14 +18332,14 @@ import path49 from "node:path";
18312
18332
 
18313
18333
  // packages/server/src/vault/move.ts
18314
18334
  import { constants } from "node:fs";
18315
- import { copyFile as copyFile2, lstat, mkdir as mkdir15, readdir as readdir13, rm as rm5, stat as stat26, utimes, writeFile as writeFile9 } from "node:fs/promises";
18335
+ import { copyFile as copyFile2, lstat as lstat2, mkdir as mkdir15, readdir as readdir13, rm as rm5, stat as stat26, utimes, writeFile as writeFile9 } from "node:fs/promises";
18316
18336
  import path46 from "node:path";
18317
18337
  var MOVED_ENTRIES = ["vault.json", "sessions", "memory"];
18318
18338
  var OWN_TEMP_FILE = /\.\d+\.[0-9a-f]{12}\.tmp$/;
18319
18339
  async function copyTree(source, target, result) {
18320
18340
  let info;
18321
18341
  try {
18322
- info = await lstat(source);
18342
+ info = await lstat2(source);
18323
18343
  } catch {
18324
18344
  return;
18325
18345
  }
@@ -19795,15 +19815,6 @@ function attachTerminalSocket(options) {
19795
19815
  }
19796
19816
  return false;
19797
19817
  };
19798
- const draftEntriesOf = (descriptors) => {
19799
- const entries = [];
19800
- for (const descriptor of descriptors) {
19801
- const owner = draftOwnerOf(descriptor);
19802
- const draft = owner === null ? null : drafts.get(owner);
19803
- if (draft !== null) entries.push({ terminalId: descriptor.terminalId, draft });
19804
- }
19805
- return entries;
19806
- };
19807
19818
  const draftTabs = new DraftTabs();
19808
19819
  draftTabs.update(registry.list());
19809
19820
  const onRegistryChanged = () => {
@@ -19811,7 +19822,7 @@ function attachTerminalSocket(options) {
19811
19822
  broadcast({ type: "terminal.list", terminals, order: registry.getOrder() });
19812
19823
  const { appeared, moved } = draftTabs.update(terminals);
19813
19824
  for (const { from, to } of moved) drafts.move(from, to);
19814
- const entries = draftEntriesOf(appeared);
19825
+ const entries = draftEntriesOf(appeared, drafts).filter((entry) => !isEmptyComposerDraft(entry.draft));
19815
19826
  if (entries.length > 0) broadcast({ type: "composer.drafts", drafts: entries });
19816
19827
  };
19817
19828
  const onRegistryExit = (terminalId, exitCode, signal) => broadcast({ type: "terminal.exit", terminalId, exitCode, signal });
@@ -20045,7 +20056,7 @@ function attachTerminalSocket(options) {
20045
20056
  send(socket, { type: "index.status", status: index.getStatus() });
20046
20057
  send(socket, { type: "index.projects", projects: index.getProjects(), replace: true });
20047
20058
  send(socket, { type: "notes.list", notes: notes.list() });
20048
- send(socket, { type: "composer.drafts", drafts: draftEntriesOf(registry.list()) });
20059
+ send(socket, { type: "composer.drafts", drafts: draftEntriesOf(registry.list(), drafts) });
20049
20060
  send(socket, { type: "vault.status", status: vault.status() });
20050
20061
  if (deviceId === null) send(socket, { type: "remote.status", status: remote.status() });
20051
20062
  send(socket, { type: "settings.status", settings: appSettings.status() });
@@ -20089,8 +20100,15 @@ function attachTerminalSocket(options) {
20089
20100
  settled = true;
20090
20101
  send(socket, { type: "agent.submitted", terminalId, requestId: message.requestId, delivered });
20091
20102
  };
20092
- const submittedOwner = draftOwnerOf(registry.get(terminalId));
20103
+ const submittedTab = registry.get(terminalId);
20104
+ const submittedOwner = draftOwnerOf(submittedTab);
20093
20105
  if (submittedOwner !== null) drafts.delete(submittedOwner);
20106
+ if (submittedTab !== null) {
20107
+ broadcast({
20108
+ type: "composer.drafts",
20109
+ drafts: submittedOwner === null ? [{ terminalId, draft: { text: "", pasted: [] } }] : draftEntriesOf(registry.list(), drafts, submittedOwner)
20110
+ });
20111
+ }
20094
20112
  const files = message.files ?? [];
20095
20113
  if (files.length > MAX_FILES_PER_SUBMIT) {
20096
20114
  sendError(
@@ -20816,6 +20834,9 @@ function attachTerminalSocket(options) {
20816
20834
  if (owner === null) break;
20817
20835
  const outcome = drafts.save(owner, message.draft);
20818
20836
  debugLog("drafts", `${message.terminalId.slice(0, 8)}: ${outcome}`);
20837
+ const update = { type: "composer.drafts", drafts: draftEntriesOf(registry.list(), drafts, owner) };
20838
+ if (outcome === "unchanged") send(socket, update);
20839
+ else broadcast(update);
20819
20840
  break;
20820
20841
  }
20821
20842
  /*
@@ -1,4 +1,4 @@
1
- import{g as vt}from"./index-CrEDljyV.js";var dn,kn;function Mt(){if(kn)return dn;kn=1;function e(n){return n instanceof Map?n.clear=n.delete=n.set=function(){throw new Error("map is read-only")}:n instanceof Set&&(n.add=n.clear=n.delete=function(){throw new Error("set is read-only")}),Object.freeze(n),Object.getOwnPropertyNames(n).forEach(a=>{const c=n[a],w=typeof c;(w==="object"||w==="function")&&!Object.isFrozen(c)&&e(c)}),n}class t{constructor(a){a.data===void 0&&(a.data={}),this.data=a.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function i(n){return n.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}function r(n,...a){const c=Object.create(null);for(const w in n)c[w]=n[w];return a.forEach(function(w){for(const Z in w)c[Z]=w[Z]}),c}const d="</span>",y=n=>!!n.scope,l=(n,{prefix:a})=>{if(n.startsWith("language:"))return n.replace("language:","language-");if(n.includes(".")){const c=n.split(".");return[`${a}${c.shift()}`,...c.map((w,Z)=>`${w}${"_".repeat(Z+1)}`)].join(" ")}return`${a}${n}`};class o{constructor(a,c){this.buffer="",this.classPrefix=c.classPrefix,a.walk(this)}addText(a){this.buffer+=i(a)}openNode(a){if(!y(a))return;const c=l(a.scope,{prefix:this.classPrefix});this.span(c)}closeNode(a){y(a)&&(this.buffer+=d)}value(){return this.buffer}span(a){this.buffer+=`<span class="${a}">`}}const _=(n={})=>{const a={children:[]};return Object.assign(a,n),a};class u{constructor(){this.rootNode=_(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(a){this.top.children.push(a)}openNode(a){const c=_({scope:a});this.add(c),this.stack.push(c)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(a){return this.constructor._walk(a,this.rootNode)}static _walk(a,c){return typeof c=="string"?a.addText(c):c.children&&(a.openNode(c),c.children.forEach(w=>this._walk(a,w)),a.closeNode(c)),a}static _collapse(a){typeof a!="string"&&a.children&&(a.children.every(c=>typeof c=="string")?a.children=[a.children.join("")]:a.children.forEach(c=>{u._collapse(c)}))}}class b extends u{constructor(a){super(),this.options=a}addText(a){a!==""&&this.add(a)}startScope(a){this.openNode(a)}endScope(){this.closeNode()}__addSublanguage(a,c){const w=a.root;c&&(w.scope=`language:${c}`),this.add(w)}toHTML(){return new o(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function h(n){return n?typeof n=="string"?n:n.source:null}function f(n){return S("(?=",n,")")}function N(n){return S("(?:",n,")*")}function A(n){return S("(?:",n,")?")}function S(...n){return n.map(c=>h(c)).join("")}function M(n){const a=n[n.length-1];return typeof a=="object"&&a.constructor===Object?(n.splice(n.length-1,1),a):{}}function v(...n){return"("+(M(n).capture?"":"?:")+n.map(w=>h(w)).join("|")+")"}function D(n){return new RegExp(n.toString()+"|").exec("").length-1}function U(n,a){const c=n&&n.exec(a);return c&&c.index===0}const k=new RegExp(v(/\[(?:[^\\\]]|\\.)*\]/,/\(\?<(?![=!])[^>]+>/,/\(\?'[^']+'/,/\(\??/,/\\([1-9][0-9]*)/,/\\./));function C(n,{joinWith:a}){let c=0;return n.map(w=>{c+=1;const Z=c;let q=h(w),E="";for(;q.length>0;){const p=k.exec(q);if(!p){E+=q;break}E+=q.substring(0,p.index),q=q.substring(p.index+p[0].length),p[0][0]==="\\"&&p[1]?E+="\\"+String(Number(p[1])+Z):(E+=p[0],(p[0]==="("||/^\(\?[<']/.test(p[0]))&&c++)}return E}).map(w=>`(${w})`).join(a)}const x=/\b\B/,P="[a-zA-Z]\\w*",W="[a-zA-Z_]\\w*",$="\\b\\d+(\\.\\d+)?",te="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",ce="\\b(0b[01]+)",de="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",ue=(n={})=>{const a=/^#![ ]*\//;return n.binary&&(n.begin=S(a,/.*\b/,n.binary,/\b.*/)),r({scope:"meta",begin:a,end:/$/,relevance:0,"on:begin":(c,w)=>{c.index!==0&&w.ignoreMatch()}},n)},Y={begin:"\\\\[\\s\\S]",relevance:0},V={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[Y]},se={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[Y]},Ee={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/},B=function(n,a,c={}){const w=r({scope:"comment",begin:n,end:a,contains:[]},c);w.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 Z=v("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 w.contains.push({begin:S(/[ ]+/,"(",Z,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),w},j=B("//","$"),oe=B("/\\*","\\*/"),ie=B("#","$"),ee={scope:"number",begin:$,relevance:0},fe={scope:"number",begin:te,relevance:0},qe={scope:"number",begin:ce,relevance:0},xe={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[Y,{begin:/\[/,end:/\]/,relevance:0,contains:[Y]}]},Ce={scope:"title",begin:P,relevance:0},Xe={scope:"title",begin:W,relevance:0},De={begin:"\\.\\s*"+W,relevance:0};var Oe=Object.freeze({__proto__:null,APOS_STRING_MODE:V,BACKSLASH_ESCAPE:Y,BINARY_NUMBER_MODE:qe,BINARY_NUMBER_RE:ce,COMMENT:B,C_BLOCK_COMMENT_MODE:oe,C_LINE_COMMENT_MODE:j,C_NUMBER_MODE:fe,C_NUMBER_RE:te,END_SAME_AS_BEGIN:function(n){return Object.assign(n,{"on:begin":(a,c)=>{c.data._beginMatch=a[1]},"on:end":(a,c)=>{c.data._beginMatch!==a[1]&&c.ignoreMatch()}})},HASH_COMMENT_MODE:ie,IDENT_RE:P,MATCH_NOTHING_RE:x,METHOD_GUARD:De,NUMBER_MODE:ee,NUMBER_RE:$,PHRASAL_WORDS_MODE:Ee,QUOTE_STRING_MODE:se,REGEXP_MODE:xe,RE_STARTERS_RE:de,SHEBANG:ue,TITLE_MODE:Ce,UNDERSCORE_IDENT_RE:W,UNDERSCORE_TITLE_MODE:Xe});function Ve(n,a){n.input[n.index-1]==="."&&a.ignoreMatch()}function Qe(n,a){n.className!==void 0&&(n.scope=n.className,delete n.className)}function Je(n,a){a&&n.beginKeywords&&(n.begin="\\b("+n.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",n.__beforeBegin=Ve,n.keywords=n.keywords||n.beginKeywords,delete n.beginKeywords,n.relevance===void 0&&(n.relevance=0))}function je(n,a){Array.isArray(n.illegal)&&(n.illegal=v(...n.illegal))}function en(n,a){if(n.match){if(n.begin||n.end)throw new Error("begin & end are not supported with match");n.begin=n.match,delete n.match}}function z(n,a){n.relevance===void 0&&(n.relevance=1)}const Ae=(n,a)=>{if(!n.beforeMatch)return;if(n.starts)throw new Error("beforeMatch cannot be used with starts");const c=Object.assign({},n);Object.keys(n).forEach(w=>{delete n[w]}),n.keywords=c.keywords,n.begin=S(c.beforeMatch,f(c.begin)),n.starts={relevance:0,contains:[Object.assign(c,{endsParent:!0})]},n.relevance=0,delete c.beforeMatch},Te=["of","and","for","in","not","or","if","then","parent","list","value"],nn="keyword";function En(n,a,c=nn){const w=Object.create(null);return typeof n=="string"?Z(c,n.split(" ")):Array.isArray(n)?Z(c,n):Object.keys(n).forEach(function(q){Object.assign(w,En(n[q],a,q))}),w;function Z(q,E){a&&(E=E.map(p=>p.toLowerCase())),E.forEach(function(p){const O=p.split("|");w[O[0]]=[q,jn(O[0],O[1])]})}}function jn(n,a){return a?Number(a):et(n)?0:1}function et(n){return Te.includes(n.toLowerCase())}const fn={},Se=n=>{console.error(n)},mn=(n,...a)=>{console.log(`WARN: ${n}`,...a)},we=(n,a)=>{fn[`${n}/${a}`]||(console.log(`Deprecated as of ${n}. ${a}`),fn[`${n}/${a}`]=!0)},Le=new Error;function hn(n,a,{key:c}){let w=0;const Z=n[c],q={},E={};for(let p=1;p<=a.length;p++)E[p+w]=Z[p],q[p+w]=!0,w+=D(a[p-1]);n[c]=E,n[c]._emit=q,n[c]._multi=!0}function nt(n){if(Array.isArray(n.begin)){if(n.skip||n.excludeBegin||n.returnBegin)throw Se("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),Le;if(typeof n.beginScope!="object"||n.beginScope===null)throw Se("beginScope must be object"),Le;hn(n,n.begin,{key:"beginScope"}),n.begin=C(n.begin,{joinWith:""})}}function tt(n){if(Array.isArray(n.end)){if(n.skip||n.excludeEnd||n.returnEnd)throw Se("skip, excludeEnd, returnEnd not compatible with endScope: {}"),Le;if(typeof n.endScope!="object"||n.endScope===null)throw Se("endScope must be object"),Le;hn(n,n.end,{key:"endScope"}),n.end=C(n.end,{joinWith:""})}}function it(n){n.scope&&typeof n.scope=="object"&&n.scope!==null&&(n.beginScope=n.scope,delete n.scope)}function at(n){it(n),typeof n.beginScope=="string"&&(n.beginScope={_wrap:n.beginScope}),typeof n.endScope=="string"&&(n.endScope={_wrap:n.endScope}),nt(n),tt(n)}function rt(n){function a(E,p){return new RegExp(h(E),"m"+(n.case_insensitive?"i":"")+(n.unicodeRegex?"u":"")+(p?"g":""))}class c{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(p,O){O.position=this.position++,this.matchIndexes[this.matchAt]=O,this.regexes.push([O,p]),this.matchAt+=D(p)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const p=this.regexes.map(O=>O[1]);this.matcherRe=a(C(p,{joinWith:"|"}),!0),this.lastIndex=0}exec(p){this.matcherRe.lastIndex=this.lastIndex;const O=this.matcherRe.exec(p);if(!O)return null;const J=O.findIndex((Ie,an)=>an>0&&Ie!==void 0),X=this.matchIndexes[J];return O.splice(0,J),Object.assign(O,X)}}class w{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(p){if(this.multiRegexes[p])return this.multiRegexes[p];const O=new c;return this.rules.slice(p).forEach(([J,X])=>O.addRule(J,X)),O.compile(),this.multiRegexes[p]=O,O}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(p,O){this.rules.push([p,O]),O.type==="begin"&&this.count++}exec(p){const O=this.getMatcher(this.regexIndex);O.lastIndex=this.lastIndex;let J=O.exec(p);if(this.resumingScanAtSamePosition()&&!(J&&J.index===this.lastIndex)){const X=this.getMatcher(0);X.lastIndex=this.lastIndex+1,J=X.exec(p)}return J&&(this.regexIndex+=J.position+1,this.regexIndex===this.count&&this.considerAll()),J}}function Z(E){const p=new w;return E.contains.forEach(O=>p.addRule(O.begin,{rule:O,type:"begin"})),E.terminatorEnd&&p.addRule(E.terminatorEnd,{type:"end"}),E.illegal&&p.addRule(E.illegal,{type:"illegal"}),p}function q(E,p){const O=E;if(E.isCompiled)return O;[Qe,en,at,Ae].forEach(X=>X(E,p)),n.compilerExtensions.forEach(X=>X(E,p)),E.__beforeBegin=null,[Je,je,z].forEach(X=>X(E,p)),E.isCompiled=!0;let J=null;return typeof E.keywords=="object"&&E.keywords.$pattern&&(E.keywords=Object.assign({},E.keywords),J=E.keywords.$pattern,delete E.keywords.$pattern),J=J||/\w+/,E.keywords&&(E.keywords=En(E.keywords,n.case_insensitive)),O.keywordPatternRe=a(J,!0),p&&(E.begin||(E.begin=/\B|\b/),O.beginRe=a(O.begin),!E.end&&!E.endsWithParent&&(E.end=/\B|\b/),E.end&&(O.endRe=a(O.end)),O.terminatorEnd=h(O.end)||"",E.endsWithParent&&p.terminatorEnd&&(O.terminatorEnd+=(E.end?"|":"")+p.terminatorEnd)),E.illegal&&(O.illegalRe=a(E.illegal)),E.contains||(E.contains=[]),E.contains=[].concat(...E.contains.map(function(X){return st(X==="self"?E:X)})),E.contains.forEach(function(X){q(X,O)}),E.starts&&q(E.starts,p),O.matcher=Z(O),O}if(n.compilerExtensions||(n.compilerExtensions=[]),n.contains&&n.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return n.classNameAliases=r(n.classNameAliases||{}),q(n)}function Nn(n){return n?n.endsWithParent||Nn(n.starts):!1}function st(n){return n.variants&&!n.cachedVariants&&(n.cachedVariants=n.variants.map(function(a){return r(n,{variants:null},a)})),n.cachedVariants?n.cachedVariants:Nn(n)?r(n,{starts:n.starts?r(n.starts):null}):Object.isFrozen(n)?r(n):n}var ot="11.12.0";class ct extends Error{constructor(a,c){super(a),this.name="HTMLInjectionError",this.html=c}}const tn=i,Tn=r,Sn=Symbol("nomatch"),lt=7,yn=function(n){const a=Object.create(null),c=Object.create(null),w=[];let Z=!0;const q="Could not find the language '{}', did you forget to load/include a language module?",E={disableAutodetect:!0,name:"Plain text",contains:[]};let p={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:b};function O(s){return p.noHighlightRe.test(s)}function J(s){let T=s.className+" ";T+=s.parentNode?s.parentNode.className:"";const L=p.languageDetectRe.exec(T);if(L){const G=he(L[1]);return G||(mn(q.replace("{}",L[1])),mn("Falling back to no-highlight mode for this block.",s)),G?L[1]:"no-highlight"}return T.split(/\s+/).find(G=>O(G)||he(G))}function X(s,T,L){let G="",Q="";typeof T=="object"?(G=s,L=T.ignoreIllegals,Q=T.language):(we("10.7.0","highlight(lang, code, ...args) has been deprecated."),we("10.7.0",`Please use highlight(code, options) instead.
1
+ import{g as vt}from"./index-CdIu6CiS.js";var dn,kn;function Mt(){if(kn)return dn;kn=1;function e(n){return n instanceof Map?n.clear=n.delete=n.set=function(){throw new Error("map is read-only")}:n instanceof Set&&(n.add=n.clear=n.delete=function(){throw new Error("set is read-only")}),Object.freeze(n),Object.getOwnPropertyNames(n).forEach(a=>{const c=n[a],w=typeof c;(w==="object"||w==="function")&&!Object.isFrozen(c)&&e(c)}),n}class t{constructor(a){a.data===void 0&&(a.data={}),this.data=a.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function i(n){return n.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}function r(n,...a){const c=Object.create(null);for(const w in n)c[w]=n[w];return a.forEach(function(w){for(const Z in w)c[Z]=w[Z]}),c}const d="</span>",y=n=>!!n.scope,l=(n,{prefix:a})=>{if(n.startsWith("language:"))return n.replace("language:","language-");if(n.includes(".")){const c=n.split(".");return[`${a}${c.shift()}`,...c.map((w,Z)=>`${w}${"_".repeat(Z+1)}`)].join(" ")}return`${a}${n}`};class o{constructor(a,c){this.buffer="",this.classPrefix=c.classPrefix,a.walk(this)}addText(a){this.buffer+=i(a)}openNode(a){if(!y(a))return;const c=l(a.scope,{prefix:this.classPrefix});this.span(c)}closeNode(a){y(a)&&(this.buffer+=d)}value(){return this.buffer}span(a){this.buffer+=`<span class="${a}">`}}const _=(n={})=>{const a={children:[]};return Object.assign(a,n),a};class u{constructor(){this.rootNode=_(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(a){this.top.children.push(a)}openNode(a){const c=_({scope:a});this.add(c),this.stack.push(c)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(a){return this.constructor._walk(a,this.rootNode)}static _walk(a,c){return typeof c=="string"?a.addText(c):c.children&&(a.openNode(c),c.children.forEach(w=>this._walk(a,w)),a.closeNode(c)),a}static _collapse(a){typeof a!="string"&&a.children&&(a.children.every(c=>typeof c=="string")?a.children=[a.children.join("")]:a.children.forEach(c=>{u._collapse(c)}))}}class b extends u{constructor(a){super(),this.options=a}addText(a){a!==""&&this.add(a)}startScope(a){this.openNode(a)}endScope(){this.closeNode()}__addSublanguage(a,c){const w=a.root;c&&(w.scope=`language:${c}`),this.add(w)}toHTML(){return new o(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function h(n){return n?typeof n=="string"?n:n.source:null}function f(n){return S("(?=",n,")")}function N(n){return S("(?:",n,")*")}function A(n){return S("(?:",n,")?")}function S(...n){return n.map(c=>h(c)).join("")}function M(n){const a=n[n.length-1];return typeof a=="object"&&a.constructor===Object?(n.splice(n.length-1,1),a):{}}function v(...n){return"("+(M(n).capture?"":"?:")+n.map(w=>h(w)).join("|")+")"}function D(n){return new RegExp(n.toString()+"|").exec("").length-1}function U(n,a){const c=n&&n.exec(a);return c&&c.index===0}const k=new RegExp(v(/\[(?:[^\\\]]|\\.)*\]/,/\(\?<(?![=!])[^>]+>/,/\(\?'[^']+'/,/\(\??/,/\\([1-9][0-9]*)/,/\\./));function C(n,{joinWith:a}){let c=0;return n.map(w=>{c+=1;const Z=c;let q=h(w),E="";for(;q.length>0;){const p=k.exec(q);if(!p){E+=q;break}E+=q.substring(0,p.index),q=q.substring(p.index+p[0].length),p[0][0]==="\\"&&p[1]?E+="\\"+String(Number(p[1])+Z):(E+=p[0],(p[0]==="("||/^\(\?[<']/.test(p[0]))&&c++)}return E}).map(w=>`(${w})`).join(a)}const x=/\b\B/,P="[a-zA-Z]\\w*",W="[a-zA-Z_]\\w*",$="\\b\\d+(\\.\\d+)?",te="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",ce="\\b(0b[01]+)",de="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",ue=(n={})=>{const a=/^#![ ]*\//;return n.binary&&(n.begin=S(a,/.*\b/,n.binary,/\b.*/)),r({scope:"meta",begin:a,end:/$/,relevance:0,"on:begin":(c,w)=>{c.index!==0&&w.ignoreMatch()}},n)},Y={begin:"\\\\[\\s\\S]",relevance:0},V={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[Y]},se={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[Y]},Ee={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/},B=function(n,a,c={}){const w=r({scope:"comment",begin:n,end:a,contains:[]},c);w.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 Z=v("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 w.contains.push({begin:S(/[ ]+/,"(",Z,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),w},j=B("//","$"),oe=B("/\\*","\\*/"),ie=B("#","$"),ee={scope:"number",begin:$,relevance:0},fe={scope:"number",begin:te,relevance:0},qe={scope:"number",begin:ce,relevance:0},xe={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[Y,{begin:/\[/,end:/\]/,relevance:0,contains:[Y]}]},Ce={scope:"title",begin:P,relevance:0},Xe={scope:"title",begin:W,relevance:0},De={begin:"\\.\\s*"+W,relevance:0};var Oe=Object.freeze({__proto__:null,APOS_STRING_MODE:V,BACKSLASH_ESCAPE:Y,BINARY_NUMBER_MODE:qe,BINARY_NUMBER_RE:ce,COMMENT:B,C_BLOCK_COMMENT_MODE:oe,C_LINE_COMMENT_MODE:j,C_NUMBER_MODE:fe,C_NUMBER_RE:te,END_SAME_AS_BEGIN:function(n){return Object.assign(n,{"on:begin":(a,c)=>{c.data._beginMatch=a[1]},"on:end":(a,c)=>{c.data._beginMatch!==a[1]&&c.ignoreMatch()}})},HASH_COMMENT_MODE:ie,IDENT_RE:P,MATCH_NOTHING_RE:x,METHOD_GUARD:De,NUMBER_MODE:ee,NUMBER_RE:$,PHRASAL_WORDS_MODE:Ee,QUOTE_STRING_MODE:se,REGEXP_MODE:xe,RE_STARTERS_RE:de,SHEBANG:ue,TITLE_MODE:Ce,UNDERSCORE_IDENT_RE:W,UNDERSCORE_TITLE_MODE:Xe});function Ve(n,a){n.input[n.index-1]==="."&&a.ignoreMatch()}function Qe(n,a){n.className!==void 0&&(n.scope=n.className,delete n.className)}function Je(n,a){a&&n.beginKeywords&&(n.begin="\\b("+n.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",n.__beforeBegin=Ve,n.keywords=n.keywords||n.beginKeywords,delete n.beginKeywords,n.relevance===void 0&&(n.relevance=0))}function je(n,a){Array.isArray(n.illegal)&&(n.illegal=v(...n.illegal))}function en(n,a){if(n.match){if(n.begin||n.end)throw new Error("begin & end are not supported with match");n.begin=n.match,delete n.match}}function z(n,a){n.relevance===void 0&&(n.relevance=1)}const Ae=(n,a)=>{if(!n.beforeMatch)return;if(n.starts)throw new Error("beforeMatch cannot be used with starts");const c=Object.assign({},n);Object.keys(n).forEach(w=>{delete n[w]}),n.keywords=c.keywords,n.begin=S(c.beforeMatch,f(c.begin)),n.starts={relevance:0,contains:[Object.assign(c,{endsParent:!0})]},n.relevance=0,delete c.beforeMatch},Te=["of","and","for","in","not","or","if","then","parent","list","value"],nn="keyword";function En(n,a,c=nn){const w=Object.create(null);return typeof n=="string"?Z(c,n.split(" ")):Array.isArray(n)?Z(c,n):Object.keys(n).forEach(function(q){Object.assign(w,En(n[q],a,q))}),w;function Z(q,E){a&&(E=E.map(p=>p.toLowerCase())),E.forEach(function(p){const O=p.split("|");w[O[0]]=[q,jn(O[0],O[1])]})}}function jn(n,a){return a?Number(a):et(n)?0:1}function et(n){return Te.includes(n.toLowerCase())}const fn={},Se=n=>{console.error(n)},mn=(n,...a)=>{console.log(`WARN: ${n}`,...a)},we=(n,a)=>{fn[`${n}/${a}`]||(console.log(`Deprecated as of ${n}. ${a}`),fn[`${n}/${a}`]=!0)},Le=new Error;function hn(n,a,{key:c}){let w=0;const Z=n[c],q={},E={};for(let p=1;p<=a.length;p++)E[p+w]=Z[p],q[p+w]=!0,w+=D(a[p-1]);n[c]=E,n[c]._emit=q,n[c]._multi=!0}function nt(n){if(Array.isArray(n.begin)){if(n.skip||n.excludeBegin||n.returnBegin)throw Se("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),Le;if(typeof n.beginScope!="object"||n.beginScope===null)throw Se("beginScope must be object"),Le;hn(n,n.begin,{key:"beginScope"}),n.begin=C(n.begin,{joinWith:""})}}function tt(n){if(Array.isArray(n.end)){if(n.skip||n.excludeEnd||n.returnEnd)throw Se("skip, excludeEnd, returnEnd not compatible with endScope: {}"),Le;if(typeof n.endScope!="object"||n.endScope===null)throw Se("endScope must be object"),Le;hn(n,n.end,{key:"endScope"}),n.end=C(n.end,{joinWith:""})}}function it(n){n.scope&&typeof n.scope=="object"&&n.scope!==null&&(n.beginScope=n.scope,delete n.scope)}function at(n){it(n),typeof n.beginScope=="string"&&(n.beginScope={_wrap:n.beginScope}),typeof n.endScope=="string"&&(n.endScope={_wrap:n.endScope}),nt(n),tt(n)}function rt(n){function a(E,p){return new RegExp(h(E),"m"+(n.case_insensitive?"i":"")+(n.unicodeRegex?"u":"")+(p?"g":""))}class c{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(p,O){O.position=this.position++,this.matchIndexes[this.matchAt]=O,this.regexes.push([O,p]),this.matchAt+=D(p)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const p=this.regexes.map(O=>O[1]);this.matcherRe=a(C(p,{joinWith:"|"}),!0),this.lastIndex=0}exec(p){this.matcherRe.lastIndex=this.lastIndex;const O=this.matcherRe.exec(p);if(!O)return null;const J=O.findIndex((Ie,an)=>an>0&&Ie!==void 0),X=this.matchIndexes[J];return O.splice(0,J),Object.assign(O,X)}}class w{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(p){if(this.multiRegexes[p])return this.multiRegexes[p];const O=new c;return this.rules.slice(p).forEach(([J,X])=>O.addRule(J,X)),O.compile(),this.multiRegexes[p]=O,O}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(p,O){this.rules.push([p,O]),O.type==="begin"&&this.count++}exec(p){const O=this.getMatcher(this.regexIndex);O.lastIndex=this.lastIndex;let J=O.exec(p);if(this.resumingScanAtSamePosition()&&!(J&&J.index===this.lastIndex)){const X=this.getMatcher(0);X.lastIndex=this.lastIndex+1,J=X.exec(p)}return J&&(this.regexIndex+=J.position+1,this.regexIndex===this.count&&this.considerAll()),J}}function Z(E){const p=new w;return E.contains.forEach(O=>p.addRule(O.begin,{rule:O,type:"begin"})),E.terminatorEnd&&p.addRule(E.terminatorEnd,{type:"end"}),E.illegal&&p.addRule(E.illegal,{type:"illegal"}),p}function q(E,p){const O=E;if(E.isCompiled)return O;[Qe,en,at,Ae].forEach(X=>X(E,p)),n.compilerExtensions.forEach(X=>X(E,p)),E.__beforeBegin=null,[Je,je,z].forEach(X=>X(E,p)),E.isCompiled=!0;let J=null;return typeof E.keywords=="object"&&E.keywords.$pattern&&(E.keywords=Object.assign({},E.keywords),J=E.keywords.$pattern,delete E.keywords.$pattern),J=J||/\w+/,E.keywords&&(E.keywords=En(E.keywords,n.case_insensitive)),O.keywordPatternRe=a(J,!0),p&&(E.begin||(E.begin=/\B|\b/),O.beginRe=a(O.begin),!E.end&&!E.endsWithParent&&(E.end=/\B|\b/),E.end&&(O.endRe=a(O.end)),O.terminatorEnd=h(O.end)||"",E.endsWithParent&&p.terminatorEnd&&(O.terminatorEnd+=(E.end?"|":"")+p.terminatorEnd)),E.illegal&&(O.illegalRe=a(E.illegal)),E.contains||(E.contains=[]),E.contains=[].concat(...E.contains.map(function(X){return st(X==="self"?E:X)})),E.contains.forEach(function(X){q(X,O)}),E.starts&&q(E.starts,p),O.matcher=Z(O),O}if(n.compilerExtensions||(n.compilerExtensions=[]),n.contains&&n.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return n.classNameAliases=r(n.classNameAliases||{}),q(n)}function Nn(n){return n?n.endsWithParent||Nn(n.starts):!1}function st(n){return n.variants&&!n.cachedVariants&&(n.cachedVariants=n.variants.map(function(a){return r(n,{variants:null},a)})),n.cachedVariants?n.cachedVariants:Nn(n)?r(n,{starts:n.starts?r(n.starts):null}):Object.isFrozen(n)?r(n):n}var ot="11.12.0";class ct extends Error{constructor(a,c){super(a),this.name="HTMLInjectionError",this.html=c}}const tn=i,Tn=r,Sn=Symbol("nomatch"),lt=7,yn=function(n){const a=Object.create(null),c=Object.create(null),w=[];let Z=!0;const q="Could not find the language '{}', did you forget to load/include a language module?",E={disableAutodetect:!0,name:"Plain text",contains:[]};let p={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:b};function O(s){return p.noHighlightRe.test(s)}function J(s){let T=s.className+" ";T+=s.parentNode?s.parentNode.className:"";const L=p.languageDetectRe.exec(T);if(L){const G=he(L[1]);return G||(mn(q.replace("{}",L[1])),mn("Falling back to no-highlight mode for this block.",s)),G?L[1]:"no-highlight"}return T.split(/\s+/).find(G=>O(G)||he(G))}function X(s,T,L){let G="",Q="";typeof T=="object"?(G=s,L=T.ignoreIllegals,Q=T.language):(we("10.7.0","highlight(lang, code, ...args) has been deprecated."),we("10.7.0",`Please use highlight(code, options) instead.
2
2
  https://github.com/highlightjs/highlight.js/issues/2277`),Q=s,G=T),L===void 0&&(L=!0);const ge={code:G,language:Q};Pe("before:highlight",ge);const Ne=ge.result?ge.result:Ie(ge.language,ge.code,L);return Ne.code=ge.code,Pe("after:highlight",Ne),Ne}function Ie(s,T,L,G){const Q=Object.create(null);function ge(g,m){return g.keywords[m]}function Ne(){if(!R.keywords){ne.addText(H);return}let g=0;R.keywordPatternRe.lastIndex=0;let m=R.keywordPatternRe.exec(H),I="";for(;m;){I+=H.substring(g,m.index);const F=pe.case_insensitive?m[0].toLowerCase():m[0],ae=ge(R,F);if(ae){const[me,wt]=ae;if(ne.addText(I),I="",Q[F]=(Q[F]||0)+1,Q[F]<=lt&&($e+=wt),me.startsWith("_"))I+=m[0];else{const Rt=pe.classNameAliases[me]||me;be(m[0],Rt)}}else I+=m[0];g=R.keywordPatternRe.lastIndex,m=R.keywordPatternRe.exec(H)}I+=H.substring(g),ne.addText(I)}function Ue(){if(H==="")return;let g=null;if(typeof R.subLanguage=="string"){if(!a[R.subLanguage]){ne.addText(H);return}g=Ie(R.subLanguage,H,!0,In[R.subLanguage]),In[R.subLanguage]=g._top}else g=rn(H,R.subLanguage.length?R.subLanguage:null);R.relevance>0&&($e+=g.relevance),ne.__addSublanguage(g._emitter,g.language)}function le(){R.subLanguage!=null?Ue():Ne(),H=""}function be(g,m){g!==""&&(ne.startScope(m),ne.addText(g),ne.endScope())}function Rn(g,m){let I=1;const F=m.length-1;for(;I<=F;){if(!g._emit[I]){I++;continue}const ae=pe.classNameAliases[g[I]]||g[I],me=m[I];ae?be(me,ae):(H=me,Ne(),H=""),I++}}function vn(g,m){return g.scope&&typeof g.scope=="string"&&ne.openNode(pe.classNameAliases[g.scope]||g.scope),g.beginScope&&(g.beginScope._wrap?(be(H,pe.classNameAliases[g.beginScope._wrap]||g.beginScope._wrap),H=""):g.beginScope._multi&&(Rn(g.beginScope,m),H="")),R=Object.create(g,{parent:{value:R}}),R}function Mn(g,m,I){let F=U(g.endRe,I);if(F){if(g["on:end"]){const ae=new t(g);g["on:end"](m,ae),ae.isMatchIgnored&&(F=!1)}if(F){for(;g.endsParent&&g.parent;)g=g.parent;return g}}if(g.endsWithParent)return Mn(g.parent,m,I)}function Tt(g){return R.matcher.regexIndex===0?(H+=g[0],1):(ln=!0,0)}function St(g){const m=g[0],I=g.rule,F=new t(I),ae=[I.__beforeBegin,I["on:begin"]];for(const me of ae)if(me&&(me(g,F),F.isMatchIgnored))return Tt(m);return I.skip?H+=m:(I.excludeBegin&&(H+=m),le(),!I.returnBegin&&!I.excludeBegin&&(H=m)),vn(I,g),I.returnBegin?0:m.length}function yt(g){const m=g[0],I=T.substring(g.index),F=Mn(R,g,I);if(!F)return Sn;const ae=R;R.endScope&&R.endScope._wrap?(le(),be(m,R.endScope._wrap)):R.endScope&&R.endScope._multi?(le(),Rn(R.endScope,g)):ae.skip?H+=m:(ae.returnEnd||ae.excludeEnd||(H+=m),le(),ae.excludeEnd&&(H=m));do R.scope&&ne.closeNode(),!R.skip&&!R.subLanguage&&($e+=R.relevance),R=R.parent;while(R!==F.parent);return F.starts&&vn(F.starts,g),ae.returnEnd?0:m.length}function Ot(){const g=[];for(let m=R;m!==pe;m=m.parent)m.scope&&g.unshift(m.scope);g.forEach(m=>ne.openNode(m))}let Fe={};function Cn(g,m){const I=m&&m[0];if(H+=g,I==null)return le(),0;if(Fe.type==="begin"&&m.type==="end"&&Fe.index===m.index&&I===""){if(H+=T.slice(m.index,m.index+1),!Z){const F=new Error(`0 width match regex (${s})`);throw F.languageName=s,F.badRule=Fe.rule,F}return 1}if(Fe=m,m.type==="begin")return St(m);if(m.type==="illegal"&&!L){const F=new Error('Illegal lexeme "'+I+'" for mode "'+(R.scope||"<unnamed>")+'"');throw F.mode=R,F}else if(m.type==="end"){const F=yt(m);if(F!==Sn)return F}if(m.type==="illegal"&&I==="")return m.index===T.length||(H+=`
3
3
  `),1;if(cn>1e5&&cn>m.index*3)throw new Error("potential infinite loop, way more iterations than matches");return H+=I,I.length}const pe=he(s);if(!pe)throw Se(q.replace("{}",s)),new Error('Unknown language: "'+s+'"');const At=rt(pe);let on="",R=G||At;const In={},ne=new p.__emitter(p);Ot();let H="",$e=0,ye=0,cn=0,ln=!1;try{if(pe.__emitTokens)pe.__emitTokens(T,ne);else{for(R.matcher.considerAll();;){cn++,ln?ln=!1:R.matcher.considerAll(),R.matcher.lastIndex=ye;const g=R.matcher.exec(T);if(!g)break;const m=T.substring(ye,g.index),I=Cn(m,g);ye=g.index+I}Cn(T.substring(ye))}return ne.finalize(),on=ne.toHTML(),{language:s,value:on,relevance:$e,illegal:!1,_emitter:ne,_top:R}}catch(g){if(g.message&&g.message.includes("Illegal"))return{language:s,value:tn(T),illegal:!0,relevance:0,_illegalBy:{message:g.message,index:ye,context:T.slice(ye-100,ye+100),mode:g.mode,resultSoFar:on},_emitter:ne};if(Z)return{language:s,value:tn(T),illegal:!1,relevance:0,errorRaised:g,_emitter:ne,_top:R};throw g}}function an(s){const T={value:tn(s),illegal:!1,relevance:0,_top:E,_emitter:new p.__emitter(p)};return T._emitter.addText(s),T}function rn(s,T){T=T||p.languages||Object.keys(a);const L=an(s),G=T.filter(he).filter(wn).map(le=>Ie(le,s,!1));G.unshift(L);const Q=G.sort((le,be)=>{if(le.relevance!==be.relevance)return be.relevance-le.relevance;if(le.language&&be.language){if(he(le.language).supersetOf===be.language)return 1;if(he(be.language).supersetOf===le.language)return-1}return 0}),[ge,Ne]=Q,Ue=ge;return Ue.secondBest=Ne,Ue}function dt(s,T,L){const G=T&&c[T]||L;s.classList.add("hljs"),s.classList.add(`language-${G}`)}function sn(s){let T=null;const L=J(s);if(O(L))return;if(Pe("before:highlightElement",{el:s,language:L}),s.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",s);return}if(s.children.length>0&&(p.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(s)),p.throwUnescapedHTML))throw new ct("One of your code blocks includes unescaped HTML.",s.innerHTML);T=s;const G=T.textContent,Q=L?X(G,{language:L,ignoreIllegals:!0}):rn(G);s.innerHTML=Q.value,s.dataset.highlighted="yes",dt(s,L,Q.language),s.result={language:Q.language,re:Q.relevance,relevance:Q.relevance},Q.secondBest&&(s.secondBest={language:Q.secondBest.language,relevance:Q.secondBest.relevance}),Pe("after:highlightElement",{el:s,result:Q,text:G})}function ut(s){p=Tn(p,s)}const gt=()=>{Be(),we("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function bt(){Be(),we("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let On=!1;function Be(){function s(){Be()}if(document.readyState==="loading"){On||window.addEventListener("DOMContentLoaded",s,!1),On=!0;return}document.querySelectorAll(p.cssSelector).forEach(sn)}function pt(s,T){let L=null;try{L=T(n)}catch(G){if(Se("Language definition for '{}' could not be registered.".replace("{}",s)),Z)Se(G);else throw G;L=E}L.name||(L.name=s),a[s]=L,L.rawDefinition=T.bind(null,n),L.aliases&&An(L.aliases,{languageName:s})}function _t(s){delete a[s];for(const T of Object.keys(c))c[T]===s&&delete c[T]}function Et(){return Object.keys(a)}function he(s){return s=(s||"").toLowerCase(),a[s]||a[c[s]]}function An(s,{languageName:T}){typeof s=="string"&&(s=[s]),s.forEach(L=>{c[L.toLowerCase()]=T})}function wn(s){const T=he(s);return T&&!T.disableAutodetect}function ft(s){s["before:highlightBlock"]&&!s["before:highlightElement"]&&(s["before:highlightElement"]=T=>{s["before:highlightBlock"](Object.assign({block:T.el},T))}),s["after:highlightBlock"]&&!s["after:highlightElement"]&&(s["after:highlightElement"]=T=>{s["after:highlightBlock"](Object.assign({block:T.el},T))})}function mt(s){ft(s),w.push(s)}function ht(s){const T=w.indexOf(s);T!==-1&&w.splice(T,1)}function Pe(s,T){const L=s;w.forEach(function(G){G[L]&&G[L](T)})}function Nt(s){return we("10.7.0","highlightBlock will be removed entirely in v12.0"),we("10.7.0","Please use highlightElement now."),sn(s)}Object.assign(n,{highlight:X,highlightAuto:rn,highlightAll:Be,highlightElement:sn,highlightBlock:Nt,configure:ut,initHighlighting:gt,initHighlightingOnLoad:bt,registerLanguage:pt,unregisterLanguage:_t,listLanguages:Et,getLanguage:he,registerAliases:An,autoDetection:wn,inherit:Tn,addPlugin:mt,removePlugin:ht}),n.debugMode=function(){Z=!1},n.safeMode=function(){Z=!0},n.versionString=ot,n.regex={concat:S,lookahead:f,either:v,optional:A,anyNumberOfTimes:N};for(const s in Oe)typeof Oe[s]=="object"&&e(Oe[s]);return Object.assign(n,Oe),n},Re=yn({});return Re.newInstance=()=>yn({}),dn=Re,Re.HighlightJS=Re,Re.default=Re,dn}var Ct=Mt();const bn=vt(Ct);function It(e){const t=e.regex,i={},r={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[i]}]};Object.assign(i,{className:"variable",variants:[{begin:t.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},r]});const d={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},y=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),l={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},o={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,i,d]};d.contains.push(o);const _={match:/\\"/},u={className:"string",begin:/'/,end:/'/},b={match:/\\'/},h={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,i]},f=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],N=e.SHEBANG({binary:`(${f.join("|")})`,relevance:10}),A={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},S=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],M=["true","false"],v={match:/(\/[a-z._-]+)+/},D=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],U=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],k=["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"],C=["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:S,literal:M,built_in:[...D,...U,"set","shopt",...k,...C]},contains:[N,e.SHEBANG(),A,h,y,l,v,o,_,u,b,i]}}function kt(e){const t=e.regex,i=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",d="[a-zA-Z_]\\w*::",l="("+r+"|"+t.optional(d)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",o=t.concat(/\batomic_/,t.either("bool","char","schar","uchar","short","ushort","int","uint","long","ulong","llong","ullong","char16_t","char32_t","wchar_t","int_least8_t","uint_least8_t","int_least16_t","uint_least16_t","int_least32_t","uint_least32_t","int_least64_t","uint_least64_t","int_fast8_t","uint_fast8_t","int_fast16_t","uint_fast16_t","int_fast32_t","uint_fast32_t","int_fast64_t","uint_fast64_t","intptr_t","uintptr_t","size_t","ptrdiff_t","intmax_t","uintmax_t"),/\b/),_={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:o}]},b={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"([^()\\\s"]{0,16})\(/,end:/\)([^()\\\s"]{0,16})"/})]},h={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},f={scope:"meta",begin:/#\s*include\b/,end:/$/,keywords:{keyword:"include"},contains:[{begin:/\\\n/},b,{scope:"string",begin:/<.*?>/},i,e.C_BLOCK_COMMENT_MODE]},N={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(b,{className:"string"}),i,e.C_BLOCK_COMMENT_MODE]},A=[f,N],S={className:"title",begin:t.optional(d)+e.IDENT_RE,relevance:0},M=t.optional(d)+e.IDENT_RE+"\\s*\\(",v=12,k={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"},C=[...A,_,i,e.C_BLOCK_COMMENT_MODE,h,b],x={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:k,contains:C.concat([{begin:/\(/,end:/\)/,keywords:k,contains:C.concat(["self"]),relevance:0}]),relevance:0},P={begin:"("+l+"[\\*&\\s]+){1,"+v+"}"+M,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:k,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:k,relevance:0},{begin:M,returnBegin:!0,contains:[e.inherit(S,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:k,relevance:0,contains:[i,e.C_BLOCK_COMMENT_MODE,b,h,_,{begin:/\(/,end:/\)/,keywords:k,relevance:0,contains:["self",i,e.C_BLOCK_COMMENT_MODE,b,h,_]}]},_,i,e.C_BLOCK_COMMENT_MODE,...A]};return{name:"C",aliases:["h"],keywords:k,disableAutodetect:!0,illegal:"</",contains:[].concat(x,P,C,[...A,{begin:e.IDENT_RE+"::",keywords:k},{className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:N,strings:b,keywords:k}}}function xt(e){const t=e.regex,i=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",d="[a-zA-Z_]\\w*::",l="(?!struct)("+r+"|"+t.optional(d)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",o={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},u={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"([^()\\\s"]{0,16})\(/,end:/\)([^()\\\s"]{0,16})"/})]},b={className:"number",variants:[{begin:"[+-]?(?:(?:\\b[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|\\b[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|\\b0[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={scope:"meta",begin:/#\s*include\b/,end:/$/,keywords:{keyword:"include"},contains:[{begin:/\\\n/},u,{scope:"string",begin:/<.*?>/},i,e.C_BLOCK_COMMENT_MODE]},f={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(u,{className:"string"}),i,e.C_BLOCK_COMMENT_MODE]},N=[h,f],A={className:"title",begin:t.optional(d)+e.IDENT_RE,relevance:0},S=t.optional(d)+e.IDENT_RE+"\\s*\\(",M=12,v=["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"],D=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],U=["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"],k=["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"],P={type:D,keyword:v,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:U},W={className:"function.dispatch",relevance:0,keywords:{_hint:k},begin:t.concat(/\b/,`(?!${v.join("|")})`,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},$=[W,...N,o,i,e.C_BLOCK_COMMENT_MODE,b,u],te={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:P,contains:$.concat([{begin:/\(/,end:/\)/,keywords:P,contains:$.concat(["self"]),relevance:0}]),relevance:0},ce={className:"function",begin:"("+l+"[\\*&\\s]+){1,"+M+"}"+S,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:P,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:P,relevance:0},{begin:S,returnBegin:!0,contains:[A],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[u,b]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:P,relevance:0,contains:[i,e.C_BLOCK_COMMENT_MODE,u,b,o,{begin:/\(/,end:/\)/,keywords:P,relevance:0,contains:["self",i,e.C_BLOCK_COMMENT_MODE,u,b,o]}]},o,i,e.C_BLOCK_COMMENT_MODE,...N]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:P,illegal:"</",classNameAliases:{"function.dispatch":"built_in"},contains:[].concat(te,ce,W,$,[...N,{begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function|flat_map|flat_set)\\s*<(?!<)",end:">",keywords:P,contains:["self",o]},{begin:e.IDENT_RE+"::",keywords:P},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function Dt(e){const t=["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],i=["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"],r=["default","false","null","true"],d=["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"],y=["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"],l={keyword:d.concat(y),built_in:t,literal:r},o=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),_="\\d(_*\\d)*",u="([uU][lL]?|[lL][uU]?)?",h={className:"number",variants:[{begin:"\\b0[bB]_*[01](_*[01])*"+u},{begin:"(-?)\\b0[xX]_*[a-fA-F0-9](_*[a-fA-F0-9])*"+u},{begin:"(-?)(\\b"+_+"(\\.("+_+")?)?|\\."+_+")([eE][-+]?"+_+")?"+"([fFdDmM]|[uU][lL]?|[lL][uU]?)?"}],relevance:0},f={className:"string",begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1},N={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},A=e.inherit(N,{illegal:/\n/}),S={className:"subst",begin:/\{/,end:/\}/,keywords:l},M=e.inherit(S,{illegal:/\n/}),v={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,M]},D={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},S]},U=e.inherit(D,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},M]});S.contains=[D,v,N,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,h,e.C_BLOCK_COMMENT_MODE],M.contains=[U,v,A,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,h,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const k={variants:[f,D,v,N,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},C={begin:"<",end:">",contains:[{beginKeywords:"in out"},o]},x=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",P={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:l,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:"<!--|-->"},{begin:"</?",end:">"}]}]}),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"}},k,h,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},o,C,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[o,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[o,C,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:"("+x+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:l,contains:[{beginKeywords:i.join(" "),relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[e.TITLE_MODE,C],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,relevance:0,contains:[k,h,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},P]}}const Lt=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,5}(-[0-9A-Fa-f][0-9A-Fa-f]{0,5})?/},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_-]*/}}),Bt=["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"],Pt=["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"],Ut=[...Bt,...Pt],Ft=["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(),$t=["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(),zt=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),Kt=["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","corner-bottom-left-shape","corner-bottom-right-shape","corner-shape","corner-top-left-shape","corner-top-right-shape","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 Gt(e){const t=e.regex,i=Lt(e),r={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},d="and or not only",y=/@-?\w[\w]*(-\w+)*/,l="[a-zA-Z-][a-zA-Z0-9_-]*",o=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[i.BLOCK_COMMENT,r,i.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+l,relevance:0},i.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+$t.join("|")+")"},{begin:":(:)?("+zt.join("|")+")"}]},i.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Kt.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[i.BLOCK_COMMENT,i.HEXCOLOR,i.IMPORTANT,i.CSS_NUMBER_MODE,i.UNICODE_RANGE,...o,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...o,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},i.FUNCTION_DISPATCH]},{begin:t.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:y},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:d,attribute:Ft.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...o,i.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+Ut.join("|")+")\\b"}]}}function Ht(e){return{name:"Dockerfile",aliases:["docker"],case_insensitive:!0,keywords:["from","maintainer","expose","env","arg","user","onbuild","stopsignal"],contains:[e.HASH_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{beginKeywords:"run cmd entrypoint volume add copy workdir label healthcheck shell",starts:{end:/[^\\]$/,subLanguage:"bash"}}],illegal:"</"}}function Wt(e){const y={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:y,illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",variants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:"number",variants:[{match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0},{match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{match:/-?\b0[bB](_?[01])*i?/,relevance:0},{match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{begin:/:=/},{className:"function",beginKeywords:"func",end:"\\s*(\\{|$)",excludeEnd:!0,contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:y,illegal:/["']/}]}]}}function Yt(e){const t=e.regex,i={className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:e.NUMBER_RE}]},r=e.COMMENT();r.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];const d={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},y={className:"literal",begin:/\bon|off|true|false|yes|no\b/},l={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]},o={begin:/\[/,end:/\]/,contains:[r,y,d,l,i,"self"],relevance:0},_=/[A-Za-z0-9_-]+/,u=/"(\\"|[^"])*"/,b=/'[^']*'/,h=t.either(_,u,b),f=t.concat(h,"(\\s*\\.\\s*",h,")*",t.lookahead(/\s*=\s*[^#\s]/));return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[r,{className:"section",begin:/\[+/,end:/\]+/},{begin:f,className:"attr",starts:{end:/$/,contains:[r,o,y,d,l,i]}}]}}var ve="[0-9](_*[0-9])*",ze=`\\.(${ve})`,Ke="[0-9a-fA-F](_*[0-9a-fA-F])*",xn={className:"number",variants:[{begin:`(\\b(${ve})((${ze})|\\.)?|(${ze}))[eE][+-]?(${ve})[fFdD]?\\b`},{begin:`\\b(${ve})((${ze})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${ze})[fFdD]?\\b`},{begin:`\\b(${ve})[fFdD]\\b`},{begin:`\\b0[xX]((${Ke})\\.?|(${Ke})?\\.(${Ke}))[pP][+-]?(${ve})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${Ke})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function Un(e,t,i){return i===-1?"":e.replace(t,r=>Un(e,t,i-1))}function Zt(e){const t=e.regex,i="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",r="(?:(?:\\s*\\[\\s*])+)?",d=i+"<@@@>"+r,l="(?:"+("\\?(?:\\s+(?:extends|super)\\s+"+d+")?")+"|"+d+")",o=Un("(?:\\s*<\\s*"+l+"(?:\\s*,\\s*"+l+")*\\s*>)?",/<@@@>/g,2),f={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"]},N={className:"meta",begin:"@"+i,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},A={className:"params",begin:/\(/,end:/\)/,keywords:f,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:f,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+/,i],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{beginKeywords:"new throw return else yield assert",relevance:0},{begin:[i,t.concat(o,r,/\s+/),i,r,/\s*/,/=(?!=)/],className:{1:"type",3:"variable",6:"operator"}},{begin:[/record/,/\s+/,i],className:{1:"keyword",3:"title.class"},contains:[A,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{begin:[i,t.concat(o,r,/\s+/),i,/\s*(?=\()/],className:{1:"type",3:"title.function"},keywords:f,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:f,relevance:0,contains:[N,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,xn,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},xn,N]}}const Dn="[A-Za-z$_][0-9A-Za-z$_]*",qt=["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"],Xt=["true","false","null","undefined","NaN","Infinity"],Fn=["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"],$n=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],zn=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Vt=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","self","global"],Qt=[].concat(zn,Fn,$n);function Jt(e){const t=e.regex,i=(B,{after:j})=>{const oe="</"+B[0].slice(1);return B.input.indexOf(oe,j)!==-1},r=Dn,d={begin:"<>",end:"</>"},y=/<[A-Za-z0-9\\._:-]+\s*\/>/,l={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(B,j)=>{const oe=B[0].length+B.index,ie=B.input[oe];if(ie==="<"||ie===","){j.ignoreMatch();return}ie===">"&&(i(B,{after:oe})||j.ignoreMatch());let ee;const fe=B.input.substring(oe);if(ee=fe.match(/^\s*=/)){j.ignoreMatch();return}if((ee=fe.match(/^\s+extends\s+/))&&ee.index===0){j.ignoreMatch();return}}},o={$pattern:Dn,keyword:qt,literal:Xt,built_in:Qt,"variable.language":Vt},_="[0-9](_?[0-9])*",u=`\\.(${_})`,b="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",h={className:"number",variants:[{begin:`(\\b(${b})((${u})|\\.)?|(${u}))[eE][+-]?(${_})\\b`},{begin:`\\b(${b})\\b((${u})\\b|\\.)?|(${u})\\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},f={className:"subst",begin:"\\$\\{",end:"\\}",keywords:o,contains:[]},N={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,f],subLanguage:"xml"}},A={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,f],subLanguage:"css"}},S={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,f],subLanguage:"graphql"}},M={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,f]},D={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:r+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},U=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,N,A,S,M,{match:/\$\d+/},h];f.contains=U.concat({begin:/\{/,end:/\}/,keywords:o,contains:["self"].concat(U)});const k=[].concat(D,f.contains),C=k.concat([{begin:/(\s*)\(/,end:/\)/,keywords:o,contains:["self"].concat(k)}]),x={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,contains:C},P={variants:[{match:[/class/,/\s+/,r,/\s+/,/extends/,/\s+/,t.concat(r,"(",t.concat(/\./,r),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,r],scope:{1:"keyword",3:"title.class"}}]},W={relevance:0,match:t.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:{_:[...Fn,...$n]}},$={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},te={variants:[{match:[/function/,/\s+/,r,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[x],illegal:/%/},ce={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function de(B){return t.concat("(?!",B.join("|"),")")}const ue={match:t.concat(/\b/,de([...zn,"super","import","await"].map(B=>`${B}\\s*\\(`)),r,t.lookahead(/\s*\(/)),className:"title.function",relevance:0},Y={begin:t.concat(/\./,t.lookahead(t.concat(r,/(?![0-9A-Za-z$_(])/))),end:r,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},V={match:[/get|set/,/\s+/,r,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},x]},se="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",Ee={match:[/const|var|let/,/\s+/,r,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(se)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[x]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:o,exports:{PARAMS_CONTAINS:C,CLASS_REFERENCE:W},illegal:/#(?![$_A-Za-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),$,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,N,A,S,M,D,{match:/\$\d+/},h,W,{scope:"attr",match:r+t.lookahead(":"),relevance:0},Ee,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[D,e.REGEXP_MODE,{className:"function",begin:se,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:o,contains:C}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:d.begin,end:d.end},{match:y},{begin:l.begin,"on:begin":l.isTrulyOpeningTag,end:l.end}],subLanguage:"xml",contains:[{begin:l.begin,end:l.end,skip:!0,contains:["self"]}]}]},te,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[x,e.inherit(e.TITLE_MODE,{begin:r,className:"title.function"})]},{match:/\.\.\./,relevance:0},Y,{match:"\\$"+r,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[x]},ue,ce,P,V,{match:/\$[(.]/}]}}const jt="([-+]?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)|NaN|[-+]?Infinity",ei={scope:"number",match:jt,relevance:0};function ni(e){const t={className:"attr",begin:/(("(\\.|[^\\"\r\n])*")|('(\\.|[^\\'\r\n])*'))(?=\s*:)/,relevance:1.01},i={match:/[{}[\],:]/,className:"punctuation",relevance:0},r=["true","false","null"],d={scope:"literal",beginKeywords:r.join(" ")};return{name:"JSON",aliases:["jsonc","json5"],keywords:{literal:r},contains:[t,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,d,ei,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}var Me="[0-9](_*[0-9])*",Ge=`\\.(${Me})`,He="[0-9a-fA-F](_*[0-9a-fA-F])*",ti={className:"number",variants:[{begin:`(\\b(${Me})((${Ge})|\\.)?|(${Ge}))[eE][+-]?(${Me})[fFdD]?\\b`},{begin:`\\b(${Me})((${Ge})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${Ge})[fFdD]?\\b`},{begin:`\\b(${Me})[fFdD]\\b`},{begin:`\\b0[xX]((${He})\\.?|(${He})?\\.(${He}))[pP][+-]?(${Me})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${He})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function ii(e){const t={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"},i={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},r={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},d={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},y={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},l={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[y,d]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,y,d]}]};d.contains.push(l);const o={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},_={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(l,{className:"string"}),"self"]}]},u=ti,b=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),h={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},f=h;return f.variants[1].contains=[h],h.variants[1].contains=[f],{name:"Kotlin",aliases:["kt","kts","ktm","ktx"],keywords:t,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,b,i,r,o,_,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:t,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[h,e.C_LINE_COMMENT_MODE,b],relevance:0},e.C_LINE_COMMENT_MODE,b,o,_,l,e.C_NUMBER_MODE]},b]},{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:/</,end:/>/,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},o,_]},l,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:`
4
4
  `},u]}}function ai(e){const t={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%<?\^\+\*]/}]},i={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,t]},r={className:"variable",begin:/\$\([\w-]+\s/,end:/\)/,keywords:{built_in:"subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value"},contains:[t,i]},d={begin:"^"+e.UNDERSCORE_IDENT_RE+"\\s*(?=[:+?]?=)"},y={className:"meta",begin:/^\.PHONY:/,end:/$/,keywords:{$pattern:/[\.\w]+/,keyword:".PHONY"}},l={className:"section",begin:/^[^\s]+:/,end:/$/,contains:[t]};return{name:"Makefile",aliases:["mk","mak","make"],keywords:{$pattern:/[\w-]+/,keyword:"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath"},contains:[e.HASH_COMMENT_MODE,t,i,r,d,y,l]}}function ri(e){const t=e.regex,i={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},r={match:/^ {0,3}([-*_])[ \t]*(?:\1[ \t]*){2,}$/},d={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}]},y={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},l={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},o=/[A-Za-z][A-Za-z0-9+.-]*/,_={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:t.concat(/\[.+?\]\(/,o,/:\/\/.*?\)/),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}]},u={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},b={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},h=e.inherit(u,{contains:[]}),f=e.inherit(b,{contains:[]});u.contains.push(f),b.contains.push(h);let N=[i,_];return[u,b,h,f].forEach(v=>{v.contains=v.contains.concat(N)}),N=N.concat(u,b),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:N},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:N}]}]},i,y,r,u,b,{className:"quote",begin:"^>\\s+",contains:N,end:"$"},d,_,l,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function si(e){const t=e.regex,i=/(?![A-Za-z0-9])(?![$])/,r=t.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,i),d=t.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,i),y=t.concat(/[A-Z]+/,i),l={scope:"variable",match:"\\$+"+r},o={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},_={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},u=e.inherit(e.APOS_STRING_MODE,{illegal:null}),b=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(_)}),h={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(_),"on:begin":(Y,V)=>{V.data._beginMatch=Y[1]||Y[2]},"on:end":(Y,V)=>{V.data._beginMatch!==Y[1]&&V.ignoreMatch()}},f=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),N=`[