{"mappings":"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ChB,CACD,EACA,UAAa,CACZ,QAAS,KACT,MAAO,aACR,CACD,CACD,EACA,SAAY,oBACZ,QAAW,CACV,QAAS,oEACT,WAAY,GACZ,OAAQR,CACT,EACA,wBAAyB,CACxB,QAAS,4DACT,WAAY,GACZ,MAAO,YACR,EACA,sBAAuB,CACtB,QAAS,qCACT,WAAY,GACZ,MAAO,UACR,EACA,QAAW,CACV,CACC,QAAS,+EACT,WAAY,GACZ,MAAO,cACR,EACA,CACC,QAAS,uIACT,WAAY,GACZ,MAAO,WACR,EACA,CACC,QAAS,oJACT,WAAY,GACZ,MAAO,aACR,EACA,CACC,QAAS,8HACT,WAAY,GACZ,MAAO,kBACR,EACA,CACC,QAAS,sCACT,MAAO,gBACR,EACA,CAGC,QAAS,iCACT,WAAY,EACb,EACA,CAKC,QAAS,0iBACT,WAAY,EACb,CACD,EACA,gBAAiB,CAChB,QAAS,qCACT,WAAY,EACb,EACA,aAAc,CACb,CACC,QAAS,sGACT,WAAY,EACb,EACA,CACC,QAAS,4DACT,WAAY,EACb,EACA,CACC,QAAS,gEACT,WAAY,GACZ,MAAO,6BACP,OAAQA,CACT,EACA,CACC,QAAS,kHACT,WAAY,GACZ,MAAO,6BACP,OAAQA,CACT,EACA,CACC,QAAS,yBACT,MAAO,kBACR,EACA,CACC,QAAS,iCACT,MAAO,8CACP,OAAQA,CACT,EACA,CACC,QAAS,yBACT,MAAO,gBACR,EACA,CACC,QAAS,iCACT,MAAO,4CACP,OAAQA,CACT,EACA,CACC,QAAS,iCACT,WAAY,GACZ,MAAO,WACR,EACA,CACC,QAAS,2CACT,WAAY,GACZ,MAAO,uCACP,OAAQA,CACT,EACA,CACC,QAAS,6CACT,MAAO,cACP,WAAY,EACb,EACA,CACC,QAAS,qDACT,WAAY,GACZ,MAAO,yCACP,OAAQA,CACT,CACD,EACA,SAAYE,GACZ,SAAY,CACX,QAAS,+CACT,WAAY,GACZ,OAAQF,CACT,EACA,SAAY,CACX,QAAS,aACT,WAAY,EACb,EACA,OAAUG,GACV,SAAYC,GACZ,YAAeI,CAChB,EAEIC,GAAWC,GAAW,MAAM,E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","names":["globalKey","prismGlobal","plainTextGrammar","rest","tokenize","resolve","id","languages","tokenizeText","text","grammar","withoutTokenizer","startNode","restGrammar","array","i","matchGrammar","matchGrammar","text","grammar","startNode","startPos","rematch","token","j","p","patternObj","patterns","pattern","inside","resolve","lookbehind","greedy","alias","currentNode","pos","str","removeCount","match","Token","lookbehindLength","from","matchStr","to","k","after","reach","newToken","tokenizeText","next","i","nestedRematch","type","content","matchedStr","clikeComment","clikeString","clikeNumber","clikePunctuation","boolean","dotPunctuation","maybeClassName","languages","clikeComment","rest","clikeString","dotPunctuation","pattern","boolean","embeddedIn","hostGrammar","code","templateGrammar","host","resolve","hostCode","tokenStack","stackLength","templateTokens","withoutTokenizer","token","i","j","position","walkTokens","tokens","result","content","omit","length","replacement","old","pos","offset","t","type","tokenizeText","js","languages","templateString","templateLiteralPattern","interpolationPattern","createTemplate","language","tag","rest","tokenize","embeddedIn","clikeClass","languages","clikeComment","clikeString","clikeClass","boolean","clikeNumber","clikePunctuation","languages","char","comment","string","macroExpression","languages","clikePunctuation","_clone","o","visited","copy","t","toString","key","rest","tokenize","i","l","clone","extend","id","redef","languages","insertBefore","grammar","before","insert","temp","token","nested","pattern","depthLog2","i","replace","replacements","m","index","re","flags","keyword","cpp","languages","extend","boolean","insertBefore","re","baseClauseInside","insertBefore","languages","extend","boolean","attributes","entity","xmlComment","tag","languages","xmlComment","tag","entity","addLang","grammar","lang","addInlined","tagName","addAttribute","attrName","alias","markup","languages","clone","insertBefore","keywordsToPattern","words","typeKeyword","typeDeclarationKeyword","contextualKeyword","otherKeyword","typeDeclarationKeywords","keywords","nonTypeKeywords","nonContextualKeywords","generic","nested","nestedRound","name","genericName","replace","identifier","array","typeExpressionWithoutTuple","typeExpression","typeInside","character","regularString","verbatimString","regularStringOrCharacter","regularStringCharacterOrComment","roundExpression","attrTarget","attr","formatString","mInterpolationRound","mInterpolation","sInterpolationRound","sInterpolation","createInterpolationInside","interpolation","interpolationRound","re","languages","clikeComment","dotPunctuation","boolean","envVars","commandAfterHeredoc","variableInside","insideString","bash","languages","copied","languages","interpolationContent","percentExpression","symbolName","interpolation","languages","boolean","clikeNumber","string","stringSrc","atruleInside","rest","languages","css","languages","insertBefore","diff","languages","PREFIXES","name","prefix","languages","languages","clikeComment","clikePunctuation","languages","boolean","tokenize","code","grammar","tokens","withoutTokenizer","validTokens","type","l","currentIndex","isNotTokenType","types","i","findClosingBracket","open","close","stackHeight","token","content","startToken","inputVariables","definitionEnd","t","mutationEnd","varToken","languages","clikeComment","boolean","languages","keywords","classNamePrefix","namespace","dotPunctuation","classInside","className","languages","clikeComment","boolean","clikePunctuation","className","ts","languages","extend","insertBefore","typeInside","space","braces","tokenizer","code","grammar","position","tokens","withoutTokenizer","i","openedTags","l","token","j","textStartPos","content","last","addStoredText","Token","length","isNeverText","tag","start","addJsxTag","name","insertBefore","languages","clone","re","clikeComment","tokenize","addJsxTag","languages","interpolationInside","languages","clikeComment","boolean","clikePunctuation","backslashPunctuation","comment","constant","number","operator","stringInterpolation","string","php","clikePunctuation","embedded","embeddedIn","languages","tokenize","code","grammar","tokenizeText","insertBefore","languages","insertBefore","languages","extend","clikeComment","languages","clikeString","inner","createInline","pattern","re","tableCell","tableRow","replace","tableLine","markdown","languages","clone","insertBefore","tokenize","code","grammar","tokens","withoutTokenizer","language","tokenizeText","token","inside","languages","extend","brackets","a","languages","inside","rest","languages","dotPunctuation","clikePunctuation","languages","specialEscape","escape","charSet","charSetWithoutDot","rangeChar","range","groupName","languages","multilineComment","nested","string","paramsInside","rest","languages","boolean","variable","scss","languages","extend","clikeComment","rest","insertBefore","boolean","swift","languages","boolean","rule","languages","extend","anchorOrAlias","tag","properties","plainKey","replace","string","createValuePattern","value","flags","re","languages","tsx","addJsxTag","languages","tag","bracket","space","insertBefore","re","languages","dotPunctuation"],"sources":["../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/core.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/utils/patterns.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/javascript.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/utils/templating.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/js-templates.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/utils/clike-class.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/clike.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/sql.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/c.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/utils/language.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/utils/shared.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/cpp.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/opencl.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/utils/xml-shared.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/xml.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/markup.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/csharp.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/bash.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/basic.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/ruby.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/css.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/css-extras.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/diff.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/lua.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/go.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/graphql.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/json.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/ini.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/java.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/typescript.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/utils/jsx-shared.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/jsx.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/kotlin.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/php.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/php-extras.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/less.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/makefile.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/markdown.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/objectivec.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/perl.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/python.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/r.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/regex.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/rust.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/scss.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/swift.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/vbnet.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/yaml.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/tsx.js","../esm/npm/@cyfung1031/prism-code-editor@5.2.0-cdn-esm.2/node_modules/@cyfung1031/prism-code-editor/src/prism/languages/wasm.js"],"sourcesContent":["// Slimmed down Prism core with most high level functions removed\n\nvar globalKey = Symbol.for(\"prism-code-editor.prism\");\nvar prismGlobal = globalThis[globalKey] || (globalThis[globalKey] = {});\n\nvar plainTextGrammar = prismGlobal.plainTextGrammar || (prismGlobal.plainTextGrammar = {});\nvar rest = prismGlobal.rest || (prismGlobal.rest = Symbol.for(\"prism-code-editor.prism.rest\"));\nvar tokenize =\n\tprismGlobal.tokenize || (prismGlobal.tokenize = Symbol.for(\"prism-code-editor.prism.tokenize\"));\n\n/** @param {*} id */\nvar resolve = id =\u003e typeof id == 'string' ? languages[id] : id;\n\n/** @type {Record\u003cstring, any\u003e} */\nvar languages =\n\tprismGlobal.languages ||\n\t(prismGlobal.languages = {\n\t\tplain: plainTextGrammar,\n\t\tplaintext: plainTextGrammar,\n\t\ttext: plainTextGrammar,\n\t\ttxt: plainTextGrammar,\n\t});\n\n/**\n * @param {string} text\n * @param {any} grammar\n */\nvar tokenizeText = (text, grammar) =\u003e (grammar[tokenize] || withoutTokenizer)(text, grammar);\n\n/**\n * @param {string} text\n * @param {any} grammar\n */\nvar withoutTokenizer = (text, grammar) =\u003e {\n\t/** @type {LinkedListNode} */\n\tvar startNode = [text];\n\tvar restGrammar;\n\t/** @type {(string | Token)[]} */\n\tvar array = [], i = 0;\n\twhile (restGrammar = resolve(grammar[rest])) {\n\t\tdelete grammar[rest];\n\t\tObject.assign(grammar, restGrammar);\n\t}\n\n\tmatchGrammar(text, grammar, startNode, 0);\n\n\twhile (array[i++] = startNode[0], startNode = startNode[1]);\n\treturn array;\n};\n\n/**\n * @param {string} string\n * @param {RegExp} pattern\n * @param {string} replacement\n */\nvar escapeHtml = (string, pattern, replacement) =\u003e {\n\treturn string.replace(/\u0026/g, '\u0026amp;').replace(pattern, replacement);\n};\n\nvar closingTag = '\u003c/span\u003e';\nvar openingTags = '';\nvar closingTags = '';\n\n/** @param {(string | Token)[]} tokens */\nvar highlightTokens = tokens =\u003e {\n\tvar str = '', token, i = 0;\n\twhile (token = tokens[i++]) str += stringify(token);\n\treturn str;\n};\n\n/**\n * @param {string | Token | (string | Token)[]} token\n * @returns {string}\n */\nvar stringify = token =\u003e {\n\tif (token instanceof Token) {\n\t\tvar { type, alias, content } = token;\n\t\tvar prevOpening = openingTags;\n\t\tvar prevClosing = closingTags;\n\t\tvar opening = `\u003cspan class=\"token ${\n\t\t\ttype + (alias ? ' ' + alias : '') +\n\t\t\t(type == 'keyword' \u0026\u0026 typeof content == 'string' ? ' keyword-' + content : '')\n\t\t}\"\u003e`;\n\n\t\tclosingTags += closingTag;\n\t\topeningTags += opening;\n\t\tvar contentStr = stringify(content);\n\t\topeningTags = prevOpening;\n\t\tclosingTags = prevClosing;\n\t\treturn opening + contentStr + closingTag;\n\t}\n\n\tif (typeof token != 'string') return highlightTokens(token);\n\n\ttoken = escapeHtml(token, /\u003c/g, '\u0026lt;');\n\tif (closingTags \u0026\u0026 token.includes('\\n')) {\n\t\treturn token.replace(/\\n/g, closingTags + '\\n' + openingTags);\n\t}\n\treturn token;\n};\n\n/**\n * @param {string} text\n * @param {*} ref\n */\nvar highlightText = (text, ref) =\u003e highlightTokens(tokenizeText(text, resolve(ref)));\n\n/**\n * @param {string} text\n * @param {any} grammar\n * @param {LinkedListNode} startNode\n * @param {number} startPos\n * @param {[string, number, number]} [rematch]\n *\n * @typedef {[string | Token, LinkedListNode?]} LinkedListNode\n */\nvar matchGrammar = (text, grammar, startNode, startPos, rematch) =\u003e {\n\tfor (var token in grammar) {\n\t\tif (grammar[token]) for (var j = 0, p = grammar[token], patternObj, patterns = Array.isArray(p) ? p : [p]; patternObj = patterns[j]; j++) {\n\t\t\tif (rematch \u0026\u0026 rematch[0] == token \u0026\u0026 rematch[1] == j) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t/** @type {RegExp} */\n\t\t\tvar pattern = patternObj.pattern || patternObj;\n\t\t\tvar inside = resolve(patternObj.inside);\n\t\t\tvar lookbehind = patternObj.lookbehind;\n\t\t\tvar greedy = pattern.global;\n\t\t\tvar alias = patternObj.alias;\n\n\t\t\tfor ( // iterate the token list and keep track of the current token/string position\n\t\t\t\tvar currentNode = startNode, pos = startPos;\n\t\t\t\tcurrentNode \u0026\u0026 (!rematch || pos \u003c rematch[2]);\n\t\t\t\tpos += currentNode[0].length, currentNode = currentNode[1]\n\t\t\t) {\n\t\t\t\tvar str = currentNode[0];\n\t\t\t\tvar removeCount = 0;\n\t\t\t\tvar match;\n\n\t\t\t\tif (str instanceof Token) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tpattern.lastIndex = greedy ? pos : 0;\n\t\t\t\tmatch = pattern.exec(greedy ? text : str);\n\n\t\t\t\tif (!match \u0026\u0026 greedy) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (!(match \u0026\u0026 match[0])) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// change the match to remove the text matched by the Prism lookbehind group\n\t\t\t\tvar lookbehindLength = lookbehind \u0026\u0026 match[1] ? match[1].length : 0;\n\t\t\t\tvar from = match.index + lookbehindLength;\n\t\t\t\tvar matchStr = match[0].slice(lookbehindLength);\n\t\t\t\tvar to = from + matchStr.length;\n\t\t\t\tvar k, p;\n\n\t\t\t\tif (greedy) {\n\t\t\t\t\t// find the node that contains the match\n\t\t\t\t\tfor (\n\t\t\t\t\t\t;\n\t\t\t\t\t\tp = pos + currentNode[0].length, from \u003e= p;\n\t\t\t\t\t\tcurrentNode = currentNode[1], pos = p\n\t\t\t\t\t);\n\n\t\t\t\t\t// the current node is a Token, then the match starts inside another Token, which is invalid\n\t\t\t\t\tif (currentNode[0] instanceof Token) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\t// find the last node which is affected by this match\n\t\t\t\t\tfor (\n\t\t\t\t\t\tk = currentNode, p = pos;\n\t\t\t\t\t\t(p += k[0].length) \u003c to;\n\t\t\t\t\t\tk = k[1], removeCount++\n\t\t\t\t\t);\n\n\t\t\t\t\t// replace with the new match\n\t\t\t\t\tstr = text.slice(pos, p);\n\t\t\t\t\tfrom -= pos;\n\t\t\t\t\tto -= pos;\n\t\t\t\t}\n\n\t\t\t\tvar after = str.slice(to);\n\t\t\t\tvar reach = pos + str.length;\n\t\t\t\tvar newToken = new Token(token, inside ? tokenizeText(matchStr, inside) : matchStr, matchStr, alias);\n\t\t\t\tvar next = currentNode, i = 0;\n\t\t\t\tvar nestedRematch;\n\n\t\t\t\twhile (next = next[1], i++ \u003c removeCount);\n\n\t\t\t\tif (after) {\n\t\t\t\t\tif (!next || next[0] instanceof Token) next = [after, next];\n\t\t\t\t\telse next[0] = after + next[0];\n\t\t\t\t};\n\n\t\t\t\tpos += from;\n\t\t\t\tcurrentNode[0] = from ? str.slice(0, from) : newToken;\n\n\t\t\t\tif (from) currentNode = currentNode[1] = [newToken, next];\n\t\t\t\telse currentNode[1] = next;\n\n\t\t\t\tif (removeCount) {\n\t\t\t\t\t// at least one Token object was removed, so we have to do some rematching\n\t\t\t\t\t// this can only happen if the current pattern is greedy\n\n\t\t\t\t\tmatchGrammar(text, grammar, currentNode, pos, nestedRematch = [token, j, reach]);\n\t\t\t\t\treach = nestedRematch[2];\n\t\t\t\t}\n\n\t\t\t\tif (rematch \u0026\u0026 reach \u003e rematch[2]) rematch[2] = reach;\n\t\t\t}\n\t\t}\n\t}\n};\n\n/**\n * Creates a new token.\n *\n * @param {string} type\n * @param {string | any[]} content\n * @param {string} matchedStr\n * @param {string} alias\n * @class\n */\nfunction Token(type, content, matchedStr, alias) {\n\tthis.type = type;\n\tthis.content = content;\n\tthis.alias = alias;\n\tthis.length = matchedStr.length;\n}\n\nexport {\n\trest,\n\ttokenize,\n\tToken,\n\tlanguages,\n\ttokenizeText,\n\twithoutTokenizer,\n\tresolve,\n\tescapeHtml,\n\thighlightTokens,\n\thighlightText\n};\n","var clikeComment = /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/g;\n\nvar clikeString = /([\"'])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\\\n])*\\1/g;\n\nvar clikeNumber = /\\b0x[a-f\\d]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i;\n\nvar clikePunctuation = /[()[\\]{}.,:;]/;\n\nvar boolean = /\\b(?:false|true)\\b/;\n\nvar dotPunctuation = {\n\t'punctuation': /\\./\n};\n\nexport { clikeComment, clikeString, clikeNumber, clikePunctuation, boolean, dotPunctuation }\n","import { languages, rest } from '../core.js';\nimport { boolean, clikeComment, clikeString, dotPunctuation } from '../utils/patterns.js';\n\nvar maybeClassName = {\n\t'maybe-class-name': /^[A-Z].*/\n};\n\nlanguages.js = languages.javascript = {\n\t'doc-comment': {\n\t\tpattern: /\\/\\*\\*(?!\\/)[\\s\\S]*?(?:\\*\\/|$)/g,\n\t\talias: 'comment',\n\t\tinside: 'jsdoc'\n\t},\n\t'comment': clikeComment,\n\t'hashbang': {\n\t\tpattern: /^#!.*/g,\n\t\talias: 'comment'\n\t},\n\t'template-string': {\n\t\tpattern: /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})*\\}|(?!\\$\\{)[^\\\\`])*`/g,\n\t\tinside: {\n\t\t\t'template-punctuation': {\n\t\t\t\tpattern: /^`|`$/,\n\t\t\t\talias: 'string'\n\t\t\t},\n\t\t\t'interpolation': {\n\t\t\t\tpattern: /((?:^|[^\\\\])(?:\\\\\\\\)*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})*\\}/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation-punctuation': {\n\t\t\t\t\t\tpattern: /^..|\\}$/g,\n\t\t\t\t\t\talias: 'punctuation'\n\t\t\t\t\t},\n\t\t\t\t\t[rest]: 'js'\n\t\t\t\t}\n\t\t\t},\n\t\t\t'string': /[\\s\\S]+/\n\t\t}\n\t},\n\t'string-property': {\n\t\tpattern: /((?:^|[,{])[ \\t]*)([\"'])(?:\\\\[\\s\\S]|(?!\\2)[^\\\\\\n])*\\2(?=\\s*:)/mg,\n\t\tlookbehind: true,\n\t\talias: 'property'\n\t},\n\t'string': clikeString,\n\t'regex': {\n\t\tpattern: /((?:^|[^$\\w\\xa0-\\uffff\"'`.)\\]\\s]|\\b(?:return|yield))\\s*)\\/(?:(?:\\[(?:\\\\.|[^\\\\\\n\\]])*\\]|\\\\.|[^\\\\\\n/[])+\\/[dgimyus]{0,7}|(?:\\[(?:\\\\.|[^\\\\\\n[\\]]|\\[(?:\\\\.|[^\\\\\\n[\\]]|\\[(?:\\\\.|[^\\\\\\n[\\]])*\\])*\\])*\\]|\\\\.|[^\\\\\\n/[])+\\/[dgimyus]{0,7}v[dgimyus]{0,7})(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?!\\/\\*|[^()[\\]{}.,:;?`\\n%\u0026|^!=\u003c\u003e/*+-]))/g,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'regex-flags': /\\w+$/,\n\t\t\t'regex-delimiter': /^\\/|\\/$/,\n\t\t\t'regex-source': {\n\t\t\t\tpattern: /.+/,\n\t\t\t\talias: 'language-regex',\n\t\t\t\tinside: 'regex'\n\t\t\t}\n\t\t}\n\t},\n\t'class-name': [\n\t\t{\n\t\t\tpattern: /(\\b(?:class|extends|implements|instanceof|interface|new)\\s+)(?!\\d)(?:(?!\\s)[$\\w\\xa0-\\uffff.])+/,\n\t\t\tlookbehind: true,\n\t\t\tinside: dotPunctuation\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^$\\w\\xa0-\\uffff]|\\s)(?![a-z\\d])(?:(?!\\s)[$\\w\\xa0-\\uffff])+(?=\\.(?:constructor|prototype)\\b)/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t// This must be declared before keyword because we use \"function\" inside the look-forward\n\t'function-variable': {\n\t\tpattern: /#?(?!\\d)(?:(?!\\s)[$\\w\\xa0-\\uffff])+(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^)]*\\))*\\)|(?!\\d)(?:(?!\\s)[$\\w\\xa0-\\uffff])+)\\s*=\u003e))/,\n\t\talias: 'function',\n\t\tinside: maybeClassName\n\t},\n\t'parameter': [\n\t\t/(function(?:\\s+(?!\\d)(?:(?!\\s)[$\\w\\xa0-\\uffff])+)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/,\n\t\t/(^|[^$\\w\\xa0-\\uffff]|\\s)(?!\\d)(?:(?!\\s)[$\\w\\xa0-\\uffff])+(?=\\s*=\u003e)/,\n\t\t/(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=\u003e)/,\n\t\t/((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|continue|default|do|else|finally|for|if|return|switch|throw|try|while|yield|class|const|debugger|delete|enum|extends|function|[gs]et|export|from|import|implements|in|instanceof|interface|let|new|null|of|package|private|protected|public|static|super|this|typeof|undefined|var|void|with)(?![$\\w\\xa0-\\uffff]))(?:(?!\\d)(?:(?!\\s)[$\\w\\xa0-\\uffff])+\\s*)\\(\\s*|\\]\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*\\{)/\n\t].map(pattern =\u003e ({\n\t\tpattern,\n\t\tlookbehind: true,\n\t\tinside: 'js'\n\t})),\n\t'constant': /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/,\n\t'keyword': [\n\t\t{\n\t\t\tpattern: /(^|[^.]|\\.{3}\\s*)\\b(?:as|assert(?=\\s*\\{)|export|from(?!\\s*[^\\s\"'])|import)\\b/,\n\t\t\talias: 'module',\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^.]|\\.{3}\\s*)\\b(?:await|break|case|catch|continue|default|do|else|finally|for|if|return|switch|throw|try|while|yield)\\b/,\n\t\t\talias: 'control-flow',\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^.]|\\.{3}\\s*)\\b(?:async(?!\\s*[^\\s($\\w\\xa0-\\uffff])|class|const|debugger|delete|enum|extends|function|[gs]et(?!\\s*[^\\s#[$\\w\\xa0-\\uffff])|implements|in|instanceof|interface|let|new|null|of|package|private|protected|public|static|super|this|typeof|undefined|var|void|with)\\b/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'boolean': boolean,\n\t// Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n\t'function': {\n\t\tpattern: /#?(?!\\d)(?:(?!\\s)[$\\w\\xa0-\\uffff])+(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,\n\t\tinside: maybeClassName\n\t},\n\t'number': {\n\t\tpattern: /(^|[^$\\w])(?:NaN|Infinity|0[bB][01]+(?:_[01]+)*n?|0[oO][0-7]+(?:_[0-7]+)*n?|0[xX][a-fA-F\\d]+(?:_[a-fA-F\\d]+)*n?|\\d+(?:_\\d+)*n|(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?)(?![$\\w])/,\n\t\tlookbehind: true\n\t},\n\t'literal-property': {\n\t\tpattern: /([\\n,{][ \\t]*)(?!\\d)(?:(?!\\s)[$\\w\\xa0-\\uffff])+(?=\\s*:)/,\n\t\tlookbehind: true,\n\t\talias: 'property'\n\t},\n\t'operator': [\n\t\t{\n\t\t\tpattern: /=\u003e/,\n\t\t\talias: 'arrow'\n\t\t},\n\t\t/--|\\+\\+|(?:\\*\\*|\u0026\u0026|\\|\\||[!=]=|\u003e\u003e\u003e?|\u003c\u003c|[%\u0026|^!=\u003c\u003e/*+-]|\\?\\?)=?|\\.{3}|\\?(?!\\.)|~|:/\n\t],\n\t'property-access': {\n\t\tpattern: /(\\.\\s*)#?(?!\\d)(?:(?!\\s)[$\\w\\xa0-\\uffff])+/,\n\t\tlookbehind: true,\n\t\tinside: maybeClassName\n\t},\n\t'maybe-class-name': {\n\t\tpattern: /(^|[^$\\w\\xa0-\\uffff])[A-Z][$\\w\\xa0-\\uffff]+/,\n\t\tlookbehind: true\n\t},\n\t'punctuation': /\\?\\.|[()[\\]{}.,:;]/\n};\n","import { tokenizeText, Token, resolve, withoutTokenizer } from \"../core.js\";\n\nvar embeddedIn = hostGrammar =\u003e (code, templateGrammar) =\u003e {\n\tvar host = resolve(hostGrammar);\n\tvar hostCode = '';\n\tvar tokenStack = [];\n\tvar stackLength = 0;\n\tvar templateTokens = withoutTokenizer(code, templateGrammar);\n\tvar token;\n\tvar i = 0\n\tvar j = 0;\n\tvar position = 0;\n\n\t/** @param {(string | Token)[]} tokens */\n\tvar walkTokens = tokens =\u003e {\n\t\tvar result = [];\n\t\tvar token;\n\t\tvar i = 0;\n\t\twhile (token = tokens[i++]) {\n\t\t\tvar content = token.content;\n\t\t\tvar omit = false;\n\n\t\t\tif (j \u003c stackLength) {\n\t\t\t\tif (Array.isArray(content)) {\n\t\t\t\t\ttoken.content = walkTokens(content);\n\t\t\t\t} else {\n\t\t\t\t\tvar length = token.length;\n\t\t\t\t\tvar replacement = content ? [] : result;\n\t\t\t\t\tvar old = j;\n\t\t\t\t\tvar pos = position;\n\t\t\t\t\tvar offset, t;\n\t\t\t\t\tposition += length;\n\n\t\t\t\t\twhile ([offset, t] = tokenStack[j], offset \u003c position) {\n\t\t\t\t\t\tif (pos \u003c offset) replacement.push(hostCode.slice(pos, offset));\n\t\t\t\t\t\tpos = offset + t.length;\n\t\t\t\t\t\treplacement.push(t);\n\t\t\t\t\t\tif (++j == stackLength) break;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (j \u003e old) {\n\t\t\t\t\t\tif (pos \u003c position) replacement.push(hostCode.slice(pos, position));\n\t\t\t\t\t\tif (content) token.content = replacement;\n\t\t\t\t\t\telse omit = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!omit) result.push(token);\n\t\t}\n\t\treturn result;\n\t}\n\n\twhile (token = templateTokens[i++]) {\n\t\tvar length = token.length;\n\t\tvar type = token.type;\n\t\tif (type \u0026\u0026 type.slice(0, 6) != 'ignore') {\n\t\t\ttokenStack[stackLength++] = [position, token];\n\t\t\thostCode += ' '.repeat(length);\n\t\t}\n\t\telse {\n\t\t\thostCode += code.slice(position, position + length);\n\t\t}\n\t\tposition += length;\n\t}\n\n\tposition = 0;\n\n\treturn walkTokens(host ? tokenizeText(hostCode, host) : [hostCode]);\n}\n\nexport { embeddedIn }\n","import { languages, tokenize, rest } from '../core.js';\nimport { embeddedIn } from '../utils/templating.js';\nimport './javascript.js';\n\nvar js = languages.js;\nvar templateString = js['template-string'];\n\n// see the pattern in prism-javascript.js\nvar templateLiteralPattern = templateString.pattern.source;\nvar interpolationPattern = templateString.inside.interpolation.pattern;\n\n/**\n * Creates a new pattern to match a template string with a special tag.\n *\n * This will return `undefined` if there is no grammar with the given language id.\n *\n * @param {string} language The language id of the embedded language. E.g. `markdown`.\n * @param {string} tag The regex pattern to match the tag.\n * @returns {object | undefined}\n * @example\n * createTemplate('css', /\\bcss/.source);\n */\nvar createTemplate = (language, tag) =\u003e ({\n\tpattern: RegExp('(\\\\b(?:' + tag + ')\\\\s*)' + templateLiteralPattern, 'g'),\n\tlookbehind: true,\n\tinside: {\n\t\t'template-punctuation': {\n\t\t\tpattern: /^`|`$/,\n\t\t\talias: 'string'\n\t\t},\n\t\t['language-' + language]: {\n\t\t\tpattern: /[\\s\\S]+/,\n\t\t\tinside: {\n\t\t\t\t'interpolation': {\n\t\t\t\t\tpattern: interpolationPattern,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\talias: 'language-javascript',\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'interpolation-punctuation': {\n\t\t\t\t\t\t\tpattern: /^..|\\}$/g,\n\t\t\t\t\t\t\talias: 'punctuation'\n\t\t\t\t\t\t},\n\t\t\t\t\t\t[rest]: 'js'\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t[tokenize]: embeddedIn(language)\n\t\t\t}\n\t\t}\n\t}\n});\n\njs['template-string'] = [\n\t// styled-jsx:\n\t//   css`a { color: #25F; }`\n\t// styled-components:\n\t//   styled.h1`color: red;`\n\tcreateTemplate('css', /styled(?:\\([^)]*\\))?(?:\\s*\\.\\s*\\w+(?:\\([^)]*\\))*)*|css(?:\\s*\\.\\s*(?:global|resolve))?|createGlobalStyle|keyframes/.source),\n\n\t// html`\u003cp\u003e\u003c/p\u003e`\n\t// div.innerHTML = `\u003cp\u003e\u003c/p\u003e`\n\tcreateTemplate('html', /html|\\.\\s*(?:inner|outer)HTML\\s*\\+?=/.source),\n\n\t// svg`\u003cpath fill=\"#fff\" d=\"M55.37 ...\"/\u003e`\n\tcreateTemplate('svg', /svg/.source),\n\n\t// md`# h1`, markdown`## h2`\n\tcreateTemplate('markdown', /markdown|md/.source),\n\n\t// gql`...`, graphql`...`, graphql.experimental`...`\n\tcreateTemplate('graphql', /gql|graphql(?:\\s*\\.\\s*experimental)?/.source),\n\n\t// sql`...`\n\tcreateTemplate('sql', /sql/.source),\n\n\t// vanilla template string\n\ttemplateString\n];\n","var clikeClass = () =\u003e ({\n\tpattern: /(\\b(?:class|extends|implements|instanceof|interface|new|trait)\\s+|\\bcatch\\s+\\()[\\\\\\w.]+/i,\n\tlookbehind: true,\n\tinside: {\n\t\t'punctuation': /[\\\\.]/\n\t}\n});\n\nexport { clikeClass }\n","import { languages } from '../core.js';\nimport { clikeClass } from '../utils/clike-class.js';\nimport { clikeComment, clikeString, clikeNumber, boolean, clikePunctuation } from '../utils/patterns.js';\n\nlanguages.clike = {\n\t'comment': clikeComment,\n\t'string': clikeString,\n\t'class-name': clikeClass(),\n\t'keyword': /\\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\\b/,\n\t'boolean': boolean,\n\t'function': /\\b\\w+(?=\\()/,\n\t'number': clikeNumber,\n\t'operator': /[!=]==|[!=\u003c\u003e]=?|--?|\\+\\+?|\u0026\u0026?|\\|\\|?|[?*/~^%]/,\n\t'punctuation': clikePunctuation\n};\n","import { languages } from '../core.js';\n\nlanguages.sql = {\n\t'comment': /\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/|#).*/,\n\t'variable': /@([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1|@[\\w.$]+/g,\n\t'string': {\n\t\tpattern: /(^|[^\\\\@])([\"'])(?:\\\\[\\s\\S]|(?!\\2)[^\\\\]|\\2\\2)*\\2/g,\n\t\tlookbehind: true\n\t},\n\t'identifier': {\n\t\tpattern: /(^|[^\\\\@])`(?:\\\\[\\s\\S]|[^\\\\`]|``)*`/g,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'punctuation': /^`|`$/g\n\t\t}\n\t},\n\t'function': /\\b(?:avg|count|first|format|last|[lu]case|len|max|mi[dn]|mod|now|round|sum)(?=\\s*\\()/i, // Should we highlight user defined functions too?\n\t'keyword': /\\b(?:action|add|after|algorithm|alter|analyze|any|apply|asc?|authorization|auto_increment|backup|bdb|begin|berkeleydb|bigint|binary|bit|blob|bool|boolean|break|browse|[br]tree|bulk|by|c?all|cascaded?|case|chain|character|charset|check(?:point)?|close|clustered|coalesce|collate|columns?|comment|commit(?:ted)?|compute|connect|consistent|constraint|contains(?:table)?|continue|convert|create|cross|current(?:_date|_time|_timestamp|_user)?|cursor|cycle|data(?:bases?)?|date(?:time)?|day|dbcc|deallocate|dec|decimal|declare|default|definer|delayed|delete|delimiters?|deny|desc|describe|deterministic|disable|discard|disk|distinct|distinctrow|distributed|do|double|drop|dummy|dump(?:file)?|duplicate|else(?:if)?|enable|enclosed|end|engine|enum|errlvl|errors|escaped?|except|exec(?:ute)?|exists|exit|explain|extended|fetch|fields|file|fillfactor|first|fixed|float|following|for each row|for|force|foreign|freetexttable|freetext|from|full|function|geometry(?:collection)?|global|goto|grant|group|handler|hash|having|holdlock|hour|identity(?:col|_insert)?|if|ignore|import|index|infile|inner|innodb|inout|insert|integer|intersect|interval|into?|invoker|isolation|iterate|join|keys?|kill|language|last|leave|left|level|limit|lineno|lines|linestring|load|local|lock|long(?:blob|text)|loop|matched|match|(?:medium|tiny)(?:blob|int|text)|merge|middleint|minute|mode|modifies|modify|month|multi(?:linestring|point|polygon)|national|natural|n?char|next|no|nonclustered|nullif|numeric|off?|offsets?|on|open(?:datasource|query|rowset)?|optimize|option(?:ally)?|order|out(?:er|file)?|over|partial|partition|percent|pivot|plan|point|polygon|preceding|precision|prepare|prev|primary|print|privileges|proc(?:edure)?|public|purge|quick|raiserror|reads?|real|reconfigure|references|release|rename|repeat(?:able)?|replace|replication|require|resignal|restore|restrict|returning|returns?|revoke|right|rollback|routine|row(?:count|guidcol|s)?|rule|savepoint|save|schema|second|select|serializable|serial|session_user|session|setuser|set|share|show|shutdown|simple|smallint|snapshot|some|soname|sql|start(?:ing)?|statistics|status|striped|system_user|tables?|tablespace|temp(?:orary|table)?|terminated|textsize|text|[tw]hen|timestamp|time|top?|transactions?|tran|trigger|truncate|tsequal|types?|unbounded|uncommitted|undefined|union|unique|unlock|unpivot|unsigned|updatetext|update|usage|user?|using|values?|var(?:binary|char|character|ying)|view|waitfor|warnings|where|while|with(?: rollup|in)?|work|writetext|write|year)\\b/i,\n\t'boolean': /\\b(?:false|true|null)\\b/i,\n\t'number': /\\b0x[a-f\\d]+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/i,\n\t'operator': /[=%~^/*+-]|\u0026\u0026?|\\|\\|?|!=?|\u003c\u003c|\u003c=?\u003e?|\u003e[\u003e=]?|\\b(?:and|between|div|[ir]?like|in|is|not|x?or|regexp|sounds like)\\b/i,\n\t'punctuation': /[()[\\].,;`]/\n};\n","import { languages } from '../core.js';\nimport { clikePunctuation } from '../utils/patterns.js';\n\n// https://en.cppreference.com/w/c/language/character_constant\nvar char = /'(?:\\\\[\\s\\S]|[^\\\\\\n']){0,32}'/g;\n\nvar comment = /\\/\\/(?:[^\\\\\\n]|\\\\\\n?)*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/g;\n\n// https://en.cppreference.com/w/c/language/string_literal\nvar string = /\"(?:\\\\[\\s\\S]|[^\\\\\\n\"])*\"/g;\n\nvar macroExpression = {\n\tpattern: /\\S[\\s\\S]*/\n};\n\nmacroExpression.inside = languages.c = {\n\t'comment': comment,\n\t'char': char,\n\t'macro': {\n\t\t// allow for multiline macro definitions\n\t\t// spaces after the # character compile fine with gcc\n\t\tpattern: /(^[ \\t]*)#\\s*[a-z](?:[^\\\\\\n/]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\\\\[\\s\\S])*/img,\n\t\tlookbehind: true,\n\t\talias: 'property',\n\t\tinside: {\n\t\t\t'string': [\n\t\t\t\t{\n\t\t\t\t\t// highlight the path of the include statement as a string\n\t\t\t\t\tpattern: /^(#\\s*include\\s*)\u003c[^\u003e]+\u003e/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\tstring\n\t\t\t],\n\t\t\t'char': char,\n\t\t\t'comment': comment,\n\t\t\t'macro-name': [\n\t\t\t\t{\n\t\t\t\t\tpattern: /(^#\\s*define\\s+)\\w+\\b(?!\\()/i,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpattern: /(^#\\s*define\\s+)\\w+/i,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\talias: 'function'\n\t\t\t\t}\n\t\t\t],\n\t\t\t// highlight macro directives as keywords\n\t\t\t'directive': {\n\t\t\t\tpattern: /^(#\\s*)[a-z]+/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'keyword'\n\t\t\t},\n\t\t\t'directive-hash': /^#/g,\n\t\t\t'punctuation': /##|\\\\(?=\\n)/,\n\t\t\t'expression': macroExpression\n\t\t}\n\t},\n\t'string': string,\n\t'class-name': {\n\t\tpattern: /(\\b(?:enum|struct)\\s+(?:__attribute__\\s*\\(\\([\\s\\S]*?\\)\\)\\s*)?)\\w+|\\b[a-z]\\w*_t\\b/,\n\t\tlookbehind: true\n\t},\n\t'keyword': /\\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\\b/,\n\t// highlight predefined macros as constants\n\t'constant': /\\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\\b/,\n\t'function': /\\b[a-z_]\\w*(?=\\s*\\()/i,\n\t'number': /(?:\\b0x(?:[a-f\\d]+(?:\\.[a-f\\d]*)?|\\.[a-f\\d]+)(?:p[+-]?\\d+)?|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ful]{0,4}/i,\n\t'operator': /-\u003e|([\u0026|:+-])\\1|[?:~]|\u003e\u003e=?|\u003c\u003c=?|[%\u0026|^!=\u003c\u003e/*+-]=?/,\n\t'punctuation': clikePunctuation\n};\n","import { languages, rest, tokenize } from \"../core.js\";\n\nvar _clone = (o, visited) =\u003e {\n\tif (visited.has(o)) return visited.get(o);\n\tvar copy = o, t = toString.call(o).slice(8, -1);\n\n\tif (t == \"Object\") {\n\t\tvisited.set(o, copy = {});\n\t\tfor (var key in o) {\n\t\t\tcopy[key] = _clone(o[key], visited);\n\t\t}\n\t\tif (o[rest]) copy[rest] = _clone(o[rest], visited);\n\t\tif (o[tokenize]) copy[tokenize] = o[tokenize];\n\t}\n\telse if (t == \"Array\") {\n\t\tvisited.set(o, copy = []);\n\t\tfor (var i = 0, l = o.length; i \u003c l; i++) {\n\t\t\tcopy[i] = _clone(o[i], visited);\n\t\t}\n\t}\n\n\treturn copy;\n}\n\nvar clone = o =\u003e _clone(o, new Map);\n\nvar extend = (id, redef) =\u003e Object.assign(clone(languages[id]), redef);\n\nvar insertBefore = (grammar, before, insert) =\u003e {\n\tvar temp = {};\n\n\tfor (var token in grammar) {\n\t\ttemp[token] = grammar[token];\n\t\tdelete grammar[token];\n\t}\n\n\tfor (var token in temp) {\n\t\tif (token == before) Object.assign(grammar, insert);\n\n\t\t// Do not insert token which also occur in insert. See #1525\n\t\tif (!insert.hasOwnProperty(token)) {\n\t\t\tgrammar[token] = temp[token];\n\t\t}\n\t}\n}\n\nvar toString = {}.toString;\n\nexport { clone, insertBefore, extend }\n","/**\n * Creates a nested pattern where all occurrences of the string `\u003cself\u003e` are replaced with the pattern itself.\n *\n * @param {string} pattern\n * @param {number} depthLog2\n */\nvar nested = (pattern, depthLog2) =\u003e {\n\tfor (var i = 0; i \u003c depthLog2; i++) {\n\t\tpattern = pattern.replace(/\u003cself\u003e/g, `(?:${pattern})`);\n\t}\n\treturn pattern.replace(/\u003cself\u003e/g, '[]');\n}\n\n/**\n * Replaces all placeholders \"\u003cn\u003e\" of given pattern with the n-th replacement (zero based).\n *\n * Note: This is a simple text based replacement. Be careful when using backreferences!\n *\n * @param {string} pattern the given pattern.\n * @param {string[]} replacements a list of replacement which can be inserted into the given pattern.\n * @returns the pattern with all placeholders replaced with their corresponding replacements.\n * @example replace(/a\u003c0\u003ea/.source, [/b+/.source]) === /a(?:b+)a/.source\n */\nvar replace = (pattern, replacements) =\u003e\n\tpattern.replace(/\u003c(\\d+)\u003e/g, (m, index) =\u003e `(?:${replacements[+index]})`);\n\n/**\n * @param {string} pattern \n * @param {string[]} replacements \n * @param {string=} flags\n */\nvar re = (pattern, replacements, flags) =\u003e RegExp(replace(pattern, replacements), flags);\n\nexport { nested, replace, re }\n","import { languages } from '../core.js';\nimport { extend, insertBefore } from '../utils/language.js';\nimport { boolean } from '../utils/patterns.js';\nimport { re } from '../utils/shared.js';\nimport './c.js';\n\nvar keyword = /\\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\\b/;\n\nvar cpp = languages.cpp = extend('c', {\n\t'class-name': [\n\t\t{\n\t\t\tpattern: RegExp(`(\\\\b(?:class|concept|enum|struct|typename)\\\\s+)(?!${keyword.source})\\\\w+`),\n\t\t\tlookbehind: true\n\t\t},\n\t\t// This is intended to capture the class name of method implementations like:\n\t\t//   void foo::bar() const {}\n\t\t// However! The `foo` in the above example could also be a namespace, so we only capture the class name if\n\t\t// it starts with an uppercase letter. This approximation should give decent results.\n\t\t/\\b[A-Z]\\w*(?=\\s*::\\s*\\w+\\s*\\()/,\n\t\t// This will capture the class name before destructors like:\n\t\t//   Foo::~Foo() {}\n\t\t/\\b[a-z_]\\w*(?=\\s*::\\s*~\\w+\\s*\\()/i,\n\t\t// This also intends to capture the class name of method implementations but here the class has template\n\t\t// parameters, so it can't be a namespace (until C++ adds generic namespaces).\n\t\t/\\b\\w+(?=\\s*\u003c(?:[^\u003c\u003e]|\u003c(?:[^\u003c\u003e]|\u003c[^\u003c\u003e]*\u003e)*\u003e)*\u003e\\s*::\\s*\\w+\\s*\\()/\n\t],\n\t'keyword': keyword,\n\t'number': /(?:\\b0b[01']+|\\b0x(?:[a-f\\d']+(?:\\.[a-f\\d']*)?|\\.[a-f\\d']+)(?:p[+-]?[\\d']+)?|(?:\\b[\\d']+(?:\\.[\\d']*)?|\\B\\.[\\d']+)(?:e[+-]?[\\d']+)?)[ful]{0,4}/gi,\n\t'operator': /-\u003e|--|\\+\\+|\u0026\u0026|\\|\\||[?:~]|\u003c=\u003e|\u003e\u003e=?|\u003c\u003c=?|[%\u0026|^!=\u003c\u003e/*+-]=?|\\b(?:and|and_eq|bitand|bitor|not|not_eq|x?or|x?or_eq)\\b/,\n\t'boolean': boolean\n});\n\ninsertBefore(cpp, 'string', {\n\t'module': {\n\t\t// https://en.cppreference.com/w/cpp/language/modules\n\t\tpattern: re(\n\t\t\t/(\\b(?:import|module)\\s+)(?:\"(?:\\\\[\\s\\S]|[^\\\\\\n\"])*\"|\u003c[^\u003c\u003e\\n]*\u003e|\u003c0\u003e(?:\\s*:\\s*\u003c0\u003e)?|:\\s*\u003c0\u003e)/.source, [`\\\\b(?!${keyword.source})\\\\w+(?:\\\\s*\\\\.\\\\s*\\\\w+)*\\\\b`], 'g'\n\t\t),\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'string': /^[\u003c\"][\\s\\S]+/,\n\t\t\t'operator': /:/,\n\t\t\t'punctuation': /\\./\n\t\t}\n\t},\n\t'raw-string': {\n\t\tpattern: /R\"([^\\\\() ]{0,16})\\([\\s\\S]*?\\)\\1\"/g,\n\t\talias: 'string'\n\t}\n});\n\ninsertBefore(cpp, 'keyword', {\n\t'generic-function': {\n\t\tpattern: /\\b(?!operator\\b)[a-z_]\\w*\\s*\u003c(?:[^\u003c\u003e]|\u003c[^\u003c\u003e]*\u003e)*\u003e(?=\\s*\\()/i,\n\t\tinside: {\n\t\t\t'function': /^\\w+/,\n\t\t\t'generic': {\n\t\t\t\tpattern: /\u003c[\\s\\S]+/,\n\t\t\t\talias: 'class-name',\n\t\t\t\tinside: cpp\n\t\t\t}\n\t\t}\n\t}\n});\n\ninsertBefore(cpp, 'operator', {\n\t'double-colon': {\n\t\tpattern: /::/,\n\t\talias: 'punctuation'\n\t}\n});\n\nvar baseClauseInside = Object.assign({}, cpp);\n\ninsertBefore(cpp, 'class-name', {\n\t// the base clause is an optional list of parent classes\n\t// https://en.cppreference.com/w/cpp/language/class\n\t'base-clause': {\n\t\tpattern: /(\\b(?:class|struct)\\s+\\w+\\s*:\\s*)[^;{}\"'\\s]+(?:\\s+[^;{}\"'\\s]+)*(?=\\s*[;{])/g,\n\t\tlookbehind: true,\n\t\tinside: baseClauseInside\n\t}\n});\n\ninsertBefore(baseClauseInside, 'double-colon', {\n\t// All untokenized words that are not namespaces should be class names\n\t'class-name': /\\b[a-z_]\\w*\\b(?!\\s*::)/i\n});\n","import { languages } from '../core.js';\nimport { extend, insertBefore } from '../utils/language.js';\nimport { boolean } from '../utils/patterns.js';\nimport './c.js';\n\n/* OpenCL kernel language */\n\ninsertBefore(\n\tlanguages.opencl = extend('c', {\n\t\t// Extracted from the official specs (2.0) and http://streamcomputing.eu/downloads/?opencl.lang (opencl-keywords, opencl-types) and http://sourceforge.net/tracker/?func=detail\u0026aid=2957794\u0026group_id=95717\u0026atid=612384 (Words2, partly Words3)\n\t\t'keyword': /\\b(?:(?:__)?(?:constant|global|kernel|local|private|read_only|read_write|write_only)|__attribute__|auto|(?:bool|u?(?:char|int|long|short)|half|quad)(?:2|3|4|8|16)?|break|case|complex|const|continue|(?:double|float)(?:16(?:x(?:1|2|4|8|16))?|1x(?:1|2|4|8|16)|2(?:x(?:1|2|4|8|16))?|3|4(?:x(?:1|2|4|8|16))?|8(?:x(?:1|2|4|8|16))?)?|default|do|else|enum|extern|for|goto|if|imaginary|inline|packed|pipe|register|restrict|return|signed|sizeof|static|struct|switch|typedef|uniform|union|unsigned|void|volatile|while)\\b/,\n\t\t// Extracted from http://streamcomputing.eu/downloads/?opencl.lang (opencl-const)\n\t\t// Math Constants: https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/mathConstants.html\n\t\t// Macros and Limits: https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/macroLimits.html\n\t\t'number': /(?:\\b0x(?:[a-f\\d]+(?:\\.[a-f\\d]*)?|\\.[a-f\\d]+)(?:p[+-]?\\d+)?|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[fuhl]{0,4}/i,\n\t\t'boolean': boolean,\n\t\t'constant-opencl-kernel': {\n\t\t\tpattern: /\\b(?:CHAR_(?:BIT|MAX|MIN)|CLK_(?:ADDRESS_(?:CLAMP(?:_TO_EDGE)?|NONE|REPEAT)|FILTER_(?:LINEAR|NEAREST)|(?:GLOBAL|LOCAL)_MEM_FENCE|NORMALIZED_COORDS_(?:FALSE|TRUE))|CL_(?:BGRA|(?:HALF_)?FLOAT|INTENSITY|LUMINANCE|A?R?G?B?[Ax]?|(?:(?:UN)?SIGNED|[US]NORM)_(?:INT(?:8|16|32))|UNORM_(?:INT_101010|SHORT_(?:555|565)))|(?:DBL|FLT|HALF)_(?:DIG|EPSILON|(?:MAX|MIN)(?:(?:_10)?_EXP)?|MANT_DIG)|FLT_RADIX|HUGE_VALF?|(?:INT|LONG|SCHAR|SHRT)_(?:MAX|MIN)|INFINITY|MAXFLOAT|M_(?:[12]_PI|2_SQRTPI|E|LN2|LN10|LOG2E?|LOG10E?|PI(?:_[24])?|SQRT(?:1_2|2))(?:_F|_H)?|NAN|(?:UCHAR|UINT|ULONG|USHRT)_MAX)\\b/,\n\t\t\talias: 'constant'\n\t\t}\n\t}),\n\t'class-name', {\n\t\t// https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/scalarDataTypes.html\n\t\t// https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/otherDataTypes.html\n\t\t'builtin-type': {\n\t\t\tpattern: /\\b(?:_cl_(?:command_queue|context|device_id|event|kernel|mem|platform_id|program|sampler)|cl_(?:image_format|mem_fence_flags)|clk_event_t|event_t|image(?:1d_(?:array_|buffer_)?t|2d_(?:array_(?:depth_|msaa_depth_|msaa_)?|depth_|msaa_depth_|msaa_)?t|3d_t)|ndrange_t|ptrdiff_t|queue_t|reserve_id_t|sampler_t|size_t|u?intptr_t)\\b/,\n\t\t\talias: 'keyword'\n\t\t}\n\t}\n);\n\nvar attributes = {\n\t// Extracted from http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-types and opencl-host)\n\t'type-opencl-host': {\n\t\tpattern: /\\b(?:cl_(?:GLenum|GLint|GLuin|addressing_mode|bitfield|bool|buffer_create_type|build_status|channel_(?:order|type)|(?:u?(?:char|int|long|short)|double|float)(?:[2348]|16)?|command_(?:queue(?:_info|_properties)?|type)|context(?:_info|_properties)?|device_(?:exec_capabilities|fp_config|id|info|local_mem_type|mem_cache_type|type)|(?:event|sampler)(?:_info)?|filter_mode|half|image_info|kernel(?:_info|_work_group_info)?|map_flags|mem(?:_flags|_info|_object_type)?|platform_(?:id|info)|profiling_info|program(?:_build_info|_info)?))\\b/,\n\t\talias: 'keyword'\n\t},\n\t'boolean-opencl-host': {\n\t\tpattern: /\\bCL_(?:FALSE|TRUE)\\b/,\n\t\talias: 'boolean'\n\t},\n\t// Extracted from cl.h (2.0) and http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-const)\n\t'constant-opencl-host': {\n\t\tpattern: /\\bCL_(?:A|ABGR|ADDRESS_(?:CLAMP(?:_TO_EDGE)?|MIRRORED_REPEAT|NONE|REPEAT)|ARGB|BLOCKING|BUFFER_CREATE_TYPE_REGION|BUILD_(?:ERROR|IN_PROGRESS|NONE|PROGRAM_FAILURE|SUCCESS)|COMMAND_(?:ACQUIRE_GL_OBJECTS|BARRIER|COPY_(?:BUFFER(?:_RECT|_TO_IMAGE)?|IMAGE(?:_TO_BUFFER)?)|FILL_(?:BUFFER|IMAGE)|MAP(?:_BUFFER|_IMAGE)|MARKER|MIGRATE(?:_SVM)?_MEM_OBJECTS|NATIVE_KERNEL|NDRANGE_KERNEL|READ_(?:BUFFER(?:_RECT)?|IMAGE)|RELEASE_GL_OBJECTS|SVM_(?:FREE|MAP|MEMCPY|MEMFILL|UNMAP)|TASK|UNMAP_MEM_OBJECT|USER|WRITE_(?:BUFFER(?:_RECT)?|IMAGE))|COMPILER_NOT_AVAILABLE|COMPILE_PROGRAM_FAILURE|COMPLETE|CONTEXT_(?:DEVICES|INTEROP_USER_SYNC|NUM_DEVICES|PLATFORM|PROPERTIES|REFERENCE_COUNT)|DEPTH(?:_STENCIL)?|DEVICE_(?:ADDRESS_BITS|AFFINITY_DOMAIN_(?:L[1-4]_CACHE|NEXT_PARTITIONABLE|NUMA)|AVAILABLE|BUILT_IN_KERNELS|COMPILER_AVAILABLE|DOUBLE_FP_CONFIG|ENDIAN_LITTLE|ERROR_CORRECTION_SUPPORT|EXECUTION_CAPABILITIES|EXTENSIONS|GLOBAL_(?:MEM_(?:CACHELINE_SIZE|CACHE_SIZE|CACHE_TYPE|SIZE)|VARIABLE_PREFERRED_TOTAL_SIZE)|HOST_UNIFIED_MEMORY|IL_VERSION|IMAGE(?:2D_MAX_(?:HEIGHT|WIDTH)|3D_MAX_(?:DEPTH|HEIGHT|WIDTH)|_BASE_ADDRESS_ALIGNMENT|_MAX_ARRAY_SIZE|_MAX_BUFFER_SIZE|_PITCH_ALIGNMENT|_SUPPORT)|LINKER_AVAILABLE|LOCAL_MEM_SIZE|LOCAL_MEM_TYPE|MAX_(?:CLOCK_FREQUENCY|COMPUTE_UNITS|CONSTANT_ARGS|CONSTANT_BUFFER_SIZE|GLOBAL_VARIABLE_SIZE|MEM_ALLOC_SIZE|NUM_SUB_GROUPS|ON_DEVICE_(?:EVENTS|QUEUES)|PARAMETER_SIZE|PIPE_ARGS|READ_IMAGE_ARGS|READ_WRITE_IMAGE_ARGS|SAMPLERS|WORK_GROUP_SIZE|WORK_ITEM_DIMENSIONS|WORK_ITEM_SIZES|WRITE_IMAGE_ARGS)|MEM_BASE_ADDR_ALIGN|MIN_DATA_TYPE_ALIGN_SIZE|NAME|NATIVE_VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT)|NOT_(?:AVAILABLE|FOUND)|OPENCL_C_VERSION|PARENT_DEVICE|PARTITION_(?:AFFINITY_DOMAIN|BY_AFFINITY_DOMAIN|BY_COUNTS|BY_COUNTS_LIST_END|EQUALLY|FAILED|MAX_SUB_DEVICES|PROPERTIES|TYPE)|PIPE_MAX_(?:ACTIVE_RESERVATIONS|PACKET_SIZE)|PLATFORM|PREFERRED_(?:GLOBAL_ATOMIC_ALIGNMENT|INTEROP_USER_SYNC|LOCAL_ATOMIC_ALIGNMENT|PLATFORM_ATOMIC_ALIGNMENT|VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT))|PRINTF_BUFFER_SIZE|PROFILE|PROFILING_TIMER_RESOLUTION|QUEUE_(?:ON_(?:DEVICE_(?:MAX_SIZE|PREFERRED_SIZE|PROPERTIES)|HOST_PROPERTIES)|PROPERTIES)|REFERENCE_COUNT|SINGLE_FP_CONFIG|SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS|SVM_(?:ATOMICS|CAPABILITIES|COARSE_GRAIN_BUFFER|FINE_GRAIN_BUFFER|FINE_GRAIN_SYSTEM)|TYPE(?:_ACCELERATOR|_ALL|_CPU|_CUSTOM|_DEFAULT|_GPU)?|VENDOR(?:_ID)?|VERSION)|DRIVER_VERSION|EVENT_(?:COMMAND_(?:EXECUTION_STATUS|QUEUE|TYPE)|CONTEXT|REFERENCE_COUNT)|EXEC_(?:KERNEL|NATIVE_KERNEL|STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST)|FILTER_(?:LINEAR|NEAREST)|FLOAT|FP_(?:CORRECTLY_ROUNDED_DIVIDE_SQRT|DENORM|FMA|INF_NAN|ROUND_TO_INF|ROUND_TO_NEAREST|ROUND_TO_ZERO|SOFT_FLOAT)|GLOBAL|HALF_FLOAT|IMAGE_(?:ARRAY_SIZE|BUFFER|DEPTH|ELEMENT_SIZE|FORMAT|FORMAT_MISMATCH|FORMAT_NOT_SUPPORTED|HEIGHT|NUM_MIP_LEVELS|NUM_SAMPLES|ROW_PITCH|SLICE_PITCH|WIDTH)|INTENSITY|INVALID_(?:ARG_INDEX|ARG_SIZE|ARG_VALUE|BINARY|BUFFER_SIZE|BUILD_OPTIONS|COMMAND_QUEUE|COMPILER_OPTIONS|CONTEXT|DEVICE|DEVICE_PARTITION_COUNT|DEVICE_QUEUE|DEVICE_TYPE|EVENT|EVENT_WAIT_LIST|GLOBAL_OFFSET|GLOBAL_WORK_SIZE|GL_OBJECT|HOST_PTR|IMAGE_DESCRIPTOR|IMAGE_FORMAT_DESCRIPTOR|IMAGE_SIZE|KERNEL|KERNEL_ARGS|KERNEL_DEFINITION|KERNEL_NAME|LINKER_OPTIONS|MEM_OBJECT|MIP_LEVEL|OPERATION|PIPE_SIZE|PLATFORM|PROGRAM|PROGRAM_EXECUTABLE|PROPERTY|QUEUE_PROPERTIES|SAMPLER|VALUE|WORK_DIMENSION|WORK_GROUP_SIZE|WORK_ITEM_SIZE)|KERNEL_(?:ARG_(?:ACCESS_(?:NONE|QUALIFIER|READ_ONLY|READ_WRITE|WRITE_ONLY)|ADDRESS_(?:CONSTANT|GLOBAL|LOCAL|PRIVATE|QUALIFIER)|INFO_NOT_AVAILABLE|NAME|TYPE_(?:CONST|NAME|NONE|PIPE|QUALIFIER|RESTRICT|VOLATILE))|ATTRIBUTES|COMPILE_NUM_SUB_GROUPS|COMPILE_WORK_GROUP_SIZE|CONTEXT|EXEC_INFO_SVM_FINE_GRAIN_SYSTEM|EXEC_INFO_SVM_PTRS|FUNCTION_NAME|GLOBAL_WORK_SIZE|LOCAL_MEM_SIZE|LOCAL_SIZE_FOR_SUB_GROUP_COUNT|MAX_NUM_SUB_GROUPS|MAX_SUB_GROUP_SIZE_FOR_NDRANGE|NUM_ARGS|PREFERRED_WORK_GROUP_SIZE_MULTIPLE|PRIVATE_MEM_SIZE|PROGRAM|REFERENCE_COUNT|SUB_GROUP_COUNT_FOR_NDRANGE|WORK_GROUP_SIZE)|LINKER_NOT_AVAILABLE|LINK_PROGRAM_FAILURE|LOCAL|LUMINANCE|MAP_(?:FAILURE|READ|WRITE|WRITE_INVALIDATE_REGION)|MEM_(?:ALLOC_HOST_PTR|ASSOCIATED_MEMOBJECT|CONTEXT|COPY_HOST_PTR|COPY_OVERLAP|FLAGS|HOST_NO_ACCESS|HOST_PTR|HOST_READ_ONLY|HOST_WRITE_ONLY|KERNEL_READ_AND_WRITE|MAP_COUNT|OBJECT_(?:ALLOCATION_FAILURE|BUFFER|IMAGE1D|IMAGE1D_ARRAY|IMAGE1D_BUFFER|IMAGE2D|IMAGE2D_ARRAY|IMAGE3D|PIPE)|OFFSET|READ_ONLY|READ_WRITE|REFERENCE_COUNT|SIZE|SVM_ATOMICS|SVM_FINE_GRAIN_BUFFER|TYPE|USES_SVM_POINTER|USE_HOST_PTR|WRITE_ONLY)|MIGRATE_MEM_OBJECT_(?:CONTENT_UNDEFINED|HOST)|MISALIGNED_SUB_BUFFER_OFFSET|NONE|NON_BLOCKING|OUT_OF_(?:HOST_MEMORY|RESOURCES)|PIPE_(?:MAX_PACKETS|PACKET_SIZE)|PLATFORM_(?:EXTENSIONS|HOST_TIMER_RESOLUTION|NAME|PROFILE|VENDOR|VERSION)|PROFILING_(?:COMMAND_(?:COMPLETE|END|QUEUED|START|SUBMIT)|INFO_NOT_AVAILABLE)|PROGRAM_(?:BINARIES|BINARY_SIZES|BINARY_TYPE(?:_COMPILED_OBJECT|_EXECUTABLE|_LIBRARY|_NONE)?|BUILD_(?:GLOBAL_VARIABLE_TOTAL_SIZE|LOG|OPTIONS|STATUS)|CONTEXT|DEVICES|IL|KERNEL_NAMES|NUM_DEVICES|NUM_KERNELS|REFERENCE_COUNT|SOURCE)|QUEUED|QUEUE_(?:CONTEXT|DEVICE|DEVICE_DEFAULT|ON_DEVICE|ON_DEVICE_DEFAULT|OUT_OF_ORDER_EXEC_MODE_ENABLE|PROFILING_ENABLE|PROPERTIES|REFERENCE_COUNT|SIZE)|RA?|READ_(?:ONLY|WRITE)_CACHE|RG|RGB[Ax]?|RG?x|RUNNING|SAMPLER_(?:ADDRESSING_MODE|CONTEXT|FILTER_MODE|LOD_MAX|LOD_MIN|MIP_FILTER_MODE|NORMALIZED_COORDS|REFERENCE_COUNT)|(?:UN)?SIGNED_INT(?:8|16|32)|SNORM_INT(?:8|16)|SUBMITTED|SUCCESS|UNORM_INT(?:8|16|24|_101010|_101010_2)|UNORM_SHORT_5[56]5|VERSION_(?:1_[012]|2_[01])|s?BGRA|sRGB[Ax]?)\\b/,\n\t\talias: 'constant'\n\t},\n\t// Extracted from cl.h (2.0) and http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-host)\n\t'function-opencl-host': {\n\t\tpattern: /\\bcl(?:BuildProgram|CloneKernel|CompileProgram|Create(?:Buffer|CommandQueue(?:WithProperties)?|Context|ContextFromType|Image|Image[23]D|Kernel|KernelsInProgram|Pipe|ProgramWith(?:Binary|BuiltInKernels|IL|Source)|Sampler|SamplerWithProperties|SubBuffer|SubDevices|UserEvent)|Enqueue(?:(?:Barrier|Marker)(?:WithWaitList)?|Copy(?:Buffer(?:Rect|ToImage)?|Image(?:ToBuffer)?)|(?:Fill|Map)(?:Buffer|Image)|MigrateMemObjects|NDRangeKernel|NativeKernel|(?:Read|Write)(?:Buffer(?:Rect)?|Image)|SVM(?:Free|Map|MemFill|Memcpy|MigrateMem|Unmap)|Task|UnmapMemObject|WaitForEvents)|Finish|Flush|Get(?:CommandQueueInfo|ContextInfo|Device(?:AndHostTimer|IDs|Info)|Event(?:Profiling)?Info|ExtensionFunctionAddress(?:ForPlatform)?|HostTimer|ImageInfo|Kernel(?:ArgInfo|Info|SubGroupInfo|WorkGroupInfo)|MemObjectInfo|PipeInfo|Platform(?:IDs|Info)|Program(?:Build)?Info|SamplerInfo|SupportedImageFormats)|LinkProgram|(?:Release|Retain)(?:CommandQueue|Context|Device|Event|Kernel|MemObject|Program|Sampler)|SVM(?:Alloc|Free)|Set(?:CommandQueueProperty|DefaultDeviceCommandQueue|EventCallback|Kernel|Kernel(?:Arg(?:SVMPointer)?|ExecInfo)|MemObjectDestructorCallback|UserEventStatus)|Unload(?:Platform)?Compiler|WaitForEvents)\\b/,\n\t\talias: 'function'\n\t}\n};\n\n/* OpenCL host API */\ninsertBefore(languages.c, 'keyword', attributes);\n\n// C++ includes everything from the OpenCL C host API plus the classes defined in cl2.h\nif (languages.cpp) {\n\t// Extracted from doxygen class list http://github.khronos.org/OpenCL-CLHPP/annotated.html\n\tattributes['type-opencl-host-cpp'] = {\n\t\tpattern: /\\b(?:Buffer|BufferGL|BufferRenderGL|CommandQueue|Context|Device|DeviceCommandQueue|EnqueueArgs|Event|Image(?:[123]D|[12]DArray|1DBuffer|[23]DGL|Format|GL)?|Kernel|KernelFunctor|LocalSpaceArg|Memory|NDRange|Pipe|Platform|Program|SVMAllocator|SVMTrait(?:Atomic|Coarse|Fine|ReadOnly|ReadWrite|WriteOnly)|Sampler|UserEvent)\\b/,\n\t\talias: 'keyword'\n\t};\n\n\tinsertBefore(languages.cpp, 'keyword', attributes);\n}\n","var entity = [\n\t{\n\t\tpattern: /\u0026[a-z\\d]{1,8};/i,\n\t\talias: 'named-entity'\n\t},\n\t/\u0026#x?[a-f\\d]{1,8};/i\n];\n\nvar xmlComment = /\u003c!--(?:(?!\u003c!--)[\\s\\S])*?--\u003e/g;\n\nvar tag = {\n\tpattern: /\u003c\\/?(?!\\d)[^\\s/=\u003e$\u003c%]+(?:\\s(?:\\s*[^\\s/=\u003e]+(?:\\s*=\\s*(?!\\s)(?:\"[^\"]*\"|'[^']*'|[^\\s\"'=\u003e]+(?=[\\s\u003e]))?|(?=[\\s/\u003e])))+)?\\s*\\/?\u003e/g,\n\tinside: {\n\t\t'punctuation': /^\u003c\\/?|\\/?\u003e$/,\n\t\t'tag': {\n\t\t\tpattern: /^\\S+/,\n\t\t\tinside: {\n\t\t\t\t'namespace': /^[^:]+:/\n\t\t\t}\n\t\t},\n\t\t'attr-value': [{\n\t\t\tpattern: /(=\\s*)(?:\"[^\"]*\"|'[^']*'|[^\\s\"'\u003e]+)/g,\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'punctuation': /^[\"']|[\"']$/g,\n\t\t\t\tentity\n\t\t\t}\n\t\t}],\n\t\t'attr-equals': /=/,\n\t\t'attr-name': {\n\t\t\tpattern: /\\S+/,\n\t\t\tinside: {\n\t\t\t\t'namespace': /^[^:]+:/\n\t\t\t}\n\t\t}\n\t}\n};\n\nexport { entity, tag, xmlComment }\n","import { languages } from '../core.js';\nimport { xmlComment, entity, tag } from '../utils/xml-shared.js';\n\nlanguages.rss = languages.atom = languages.ssml = languages.xml = {\n\t'comment': xmlComment,\n\t'prolog': /\u003c\\?[\\s\\S]+?\\?\u003e/g,\n\t'doctype': {\n\t\t// https://www.w3.org/TR/xml/#NT-doctypedecl\n\t\tpattern: /\u003c!DOCTYPE(?:[^\u003e\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:[^\u003c\"'\\]]|\"[^\"]*\"|'[^']*'|\u003c(?!!--)|\u003c!--(?:[^-]|-(?!-\u003e))*--\u003e)*\\]\\s*)?\u003e/gi,\n\t\tinside: {\n\t\t\t'internal-subset': {\n\t\t\t\tpattern: /(\\[)[\\s\\S]+(?=\\]\\s*\u003e$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: 'xml'\n\t\t\t},\n\t\t\t'string': /\"[^\"]*\"|'[^']*'/,\n\t\t\t'punctuation': /^\u003c!|[\u003e[\\]]/,\n\t\t\t'doctype-tag': /^DOCTYPE/i,\n\t\t\t'name': /\\S+/\n\t\t}\n\t},\n\t'cdata': /\u003c!\\[CDATA\\[[\\s\\S]*?\\]\\]\u003e/gi,\n\t'tag': tag,\n\t'entity': entity,\n\t'markup-bracket': {\n\t\tpattern: /[()[\\]{}]/,\n\t\talias: 'punctuation'\n\t}\n};\n","import { languages } from '../core.js';\nimport { clone, insertBefore } from '../utils/language.js';\nimport './xml.js';\n\nvar addLang = (grammar, lang) =\u003e {\n\tgrammar['language-' + lang] = {\n\t\tpattern: /[\\s\\S]+/,\n\t\tinside: lang\n\t};\n\treturn grammar;\n};\n\nvar addInlined = (tagName, lang) =\u003e ({\n\tpattern: RegExp(`(\u003c${tagName}[^\u003e]*\u003e)(?!\u003c/${tagName}\u003e)(?:\u003c!\\\\[CDATA\\\\[(?:[^\\\\]]|\\\\](?!\\\\]\u003e))*\\\\]\\\\]\u003e|(?!\u003c!\\\\[CDATA\\\\[)[\\\\s\\\\S])+?(?=\u003c/${tagName}\u003e)`, 'gi'),\n\tlookbehind: true,\n\tinside: addLang({\n\t\t'included-cdata': {\n\t\t\tpattern: /\u003c!\\[CDATA\\[[\\s\\S]*?\\]\\]\u003e/i,\n\t\t\tinside: addLang({\n\t\t\t\t'cdata': /^\u003c!\\[CDATA\\[|\\]\\]\u003e$/i\n\t\t\t}, lang)\n\t\t}\n\t}, lang)\n});\n\nvar addAttribute = (attrName, lang, alias = attrName) =\u003e ({\n\tpattern: RegExp(`([\\\\s\"']${attrName}\\\\s*=\\\\s*)(?:\"[^\"]*\"|'[^']*'|[^\\\\s\u003e]+)`, 'gi'),\n\tlookbehind: true,\n\talias: alias,\n\tinside: addLang({\n\t\t'punctuation': /^[\"']|[\"']$/g,\n\t}, lang)\n});\n\nvar markup = languages.svg = languages.mathml = languages.html = languages.markup = clone(languages.xml);\n\nmarkup.tag.inside['attr-value'].unshift(\n\taddAttribute('style', 'css'),\n\taddAttribute(/on[a-z]+/.source, 'javascript', 'script')\n);\n\ninsertBefore(markup, 'cdata', {\n\t'style': addInlined('style', 'css'),\n\t'script': addInlined('script', 'javascript')\n});\n","import { languages } from '../core.js';\nimport { boolean, clikeComment, dotPunctuation } from '../utils/patterns.js';\nimport { nested, re, replace } from '../utils/shared.js';\n\nvar keywordsToPattern = words =\u003e `\\\\b(?:${words})\\\\b`;\n\n// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/\nvar typeKeyword = 'bool|char|decimal|double|dynamic|float|object|s?byte|string|u?int|u?long|u?short|var|void'\nvar typeDeclarationKeyword = 'class|enum|interface|record|struct'\nvar contextualKeyword = 'add|alias|and|ascending|async|await|by|descending|from(?!\\\\s*[^\\\\s\\\\w])|[gls]et|global|group|into|init(?=\\\\s*;)|join|nameof|not|notnull|on|or|orderby|partial|remove|select|unmanaged|value|when|where|with(?=\\\\s*{)'\nvar otherKeyword = 'abstract|as|[bc]ase|break|catch|checked|const|continue|default|delegate|do|else|event|explicit|extern|finally|fixed|for|foreach|goto|i[fns]|implicit|internal|lock|namespace|new|null|operator|out|override|params|private|protected|public|readonly|ref|return|sealed|sizeof|stackalloc|static|switch|this|throw|try|typeof|unchecked|unsafe|using|virtual|volatile|while|yield'\n\n// keywords\nvar typeDeclarationKeywords = keywordsToPattern(typeDeclarationKeyword);\nvar keywords = RegExp(keywordsToPattern(typeKeyword + '|' + typeDeclarationKeyword + '|' + contextualKeyword + '|' + otherKeyword));\nvar nonTypeKeywords = keywordsToPattern(typeDeclarationKeyword + '|' + contextualKeyword + '|' + otherKeyword);\nvar nonContextualKeywords = keywordsToPattern(typeKeyword + '|' + typeDeclarationKeyword + '|' + otherKeyword);\n\n// types\nvar generic = nested(/\u003c(?:[^\u003c\u003e;=*/%\u0026|^+-]|\u003cself\u003e)*\u003e/.source, 2); // the idea behind the other forbidden characters is to prevent false positives. Same for tupleElement.\nvar nestedRound = nested(/\\((?:[^()]|\u003cself\u003e)*\\)/.source, 2);\nvar name = /@?\\b(?!\\d)\\w+\\b/.source;\nvar genericName = replace(/\u003c0\u003e(?:\\s*\u003c1\u003e)?/.source, [name, generic]);\nvar identifier = replace(/(?!\u003c0\u003e)\u003c1\u003e(?:\\s*\\.\\s*\u003c1\u003e)*/.source, [nonTypeKeywords, genericName]);\nvar array = /\\[\\s*(?:,\\s*)*\\]/.source;\nvar typeExpressionWithoutTuple = replace(/\u003c0\u003e(?:\\s*(?:\\?\\s*)?\u003c1\u003e)*(?:\\s*\\?)?/.source, [identifier, array]);\nvar tupleElement = replace(/[^()[\\],;%\u0026|^=\u003c\u003e/*+-]|\u003c0\u003e|\u003c1\u003e|\u003c2\u003e/.source, [generic, nestedRound, array]);\nvar tuple = replace(/\\(\u003c0\u003e+(?:,\u003c0\u003e+)+\\)/.source, [tupleElement]);\nvar typeExpression = replace(/(?:\u003c0\u003e|\u003c1\u003e)(?:\\s*(?:\\?\\s*)?\u003c2\u003e)*(?:\\s*\\?)?/.source, [tuple, identifier, array]);\n\nvar typeInside = {\n\t'keyword': keywords,\n\t'punctuation': /[()[\\].,:\u003c\u003e?]/\n};\n\n// strings \u0026 characters\n// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#character-literals\n// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#string-literals\nvar character = /'(?:\\\\.|[^\\n'\\\\]|\\\\[Uux][a-fA-F\\d]{1,8})'/.source; // simplified pattern\nvar regularString = /\"(?:\\\\.|[^\\\\\\n\"])*\"/.source;\nvar verbatimString = /@\"(?:\"\"|\\\\[\\s\\S]|[^\\\\\"])*\"(?!\")/.source;\n\n// attributes\nvar regularStringOrCharacter = regularString + '|' + character;\nvar regularStringCharacterOrComment = replace(/\\/(?![*/])|\\/\\/[^\\n]*\\n|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\u003c0\u003e/.source, [regularStringOrCharacter]);\nvar roundExpression = nested(replace(/[^()\"'/]|\u003c0\u003e|\\(\u003cself\u003e*\\)/.source, [regularStringCharacterOrComment]), 2);\n\n// https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/attributes/#attribute-targets\nvar attrTarget = /\\b(?:assembly|event|field|method|module|param|property|return|type)\\b/.source;\nvar attr = replace(/\u003c0\u003e(?:\\s*\\(\u003c1\u003e*\\))?/.source, [identifier, roundExpression]);\n\n// string interpolation\nvar formatString = /:[^\\n}]+/.source;\n// multi line\nvar mInterpolationRound = nested(replace(/[^()\"'/]|\u003c0\u003e|\\(\u003cself\u003e*\\)/.source, [regularStringCharacterOrComment]), 2);\nvar mInterpolation = replace(/\\{(?!\\{)(?:(?![}:])\u003c0\u003e)*\u003c1\u003e?\\}/.source, [mInterpolationRound, formatString]);\n// single line\nvar sInterpolationRound = nested(replace(/[^()\"'/]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\u003c0\u003e|\\(\u003cself\u003e*\\)/.source, [regularStringOrCharacter]), 2);\nvar sInterpolation = replace(/\\{(?!\\{)(?:(?![}:])\u003c0\u003e)*\u003c1\u003e?\\}/.source, [sInterpolationRound, formatString]);\n\nvar createInterpolationInside = (interpolation, interpolationRound) =\u003e ({\n\t'interpolation': {\n\t\tpattern: re(/((?:^|[^{])(?:\\{\\{)*)\u003c0\u003e/.source, [interpolation]),\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'format-string': {\n\t\t\t\tpattern: re(/(^\\{(?:(?![}:])\u003c0\u003e)*)\u003c1\u003e(?=\\}$)/.source, [interpolationRound, formatString]),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /^:/\n\t\t\t\t}\n\t\t\t},\n\t\t\t'punctuation': /^\\{|\\}$/,\n\t\t\t'expression': {\n\t\t\t\tpattern: /[\\s\\S]+/,\n\t\t\t\talias: 'language-csharp',\n\t\t\t\tinside: 'cs'\n\t\t\t}\n\t\t}\n\t},\n\t'string': /[\\s\\S]+/\n});\n\nlanguages.dotnet = languages.cs = languages.csharp = {\n\t'comment': clikeComment,\n\t'interpolation-string': [\n\t\t{\n\t\t\tpattern: re(/(^|[^\\\\])(?:\\$@|@\\$)\"(?:\"\"|\\\\[\\s\\S]|\\{\\{|\u003c0\u003e|[^\\\\{\"])*\"/.source, [mInterpolation], 'g'),\n\t\t\tlookbehind: true,\n\t\t\tinside: createInterpolationInside(mInterpolation, mInterpolationRound),\n\t\t},\n\t\t{\n\t\t\tpattern: re(/(^|[^\\\\@])\\$\"(?:\\\\.|\\{\\{|\u003c0\u003e|[^\\\\\"{])*\"/.source, [sInterpolation], 'g'),\n\t\t\tlookbehind: true,\n\t\t\tinside: createInterpolationInside(sInterpolation, sInterpolationRound),\n\t\t}\n\t],\n\t'char': RegExp(character, 'g'),\n\t'string': [\n\t\t{\n\t\t\tpattern: re(/(^|[^\\\\$])\u003c0\u003e/.source, [verbatimString], 'g'),\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: re(/(^|[^\\\\@$])\u003c0\u003e/.source, [regularString], 'g'),\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'namespace': {\n\t\t// namespace Foo.Bar {}\n\t\t// using Foo.Bar;\n\t\tpattern: re(/(\\b(?:namespace|using)\\s+)\u003c0\u003e(?:\\s*\\.\\s*\u003c0\u003e)*(?=\\s*[;{])/.source, [name]),\n\t\tlookbehind: true,\n\t\tinside: dotPunctuation\n\t},\n\t'type-expression': {\n\t\t// default(Foo), typeof(Foo\u003cBar\u003e), sizeof(int)\n\t\tpattern: re(/(\\b(?:default|sizeof|typeof)\\s*\\(\\s*(?!\\s))(?:[^()\\s]|\\s(?!\\s)|\u003c0\u003e)+(?=\\s*\\))/.source, [nestedRound]),\n\t\tlookbehind: true,\n\t\talias: 'class-name',\n\t\tinside: typeInside\n\t},\n\t'return-type': {\n\t\t// Foo\u003cBar\u003e ForBar(); Foo IFoo.Bar() =\u003e 0\n\t\t// int this[int index] =\u003e 0; T IReadOnlyList\u003cT\u003e.this[int index] =\u003e this[index];\n\t\t// int Foo =\u003e 0; int Foo { get; set } = 0;\n\t\tpattern: re(/\u003c0\u003e(?=\\s+(?:\u003c1\u003e\\s*(?:=\u003e|[({]|\\.\\s*this\\s*\\[)|this\\s*\\[))/.source, [typeExpression, identifier]),\n\t\talias: 'class-name',\n\t\tinside: typeInside\n\t},\n\t'constructor-invocation': {\n\t\t// new List\u003cFoo\u003cBar[]\u003e\u003e { }\n\t\tpattern: re(/(\\bnew\\s+)\u003c0\u003e(?=\\s*[[({])/.source, [typeExpression]),\n\t\tlookbehind: true,\n\t\talias: 'class-name',\n\t\tinside: typeInside\n\t},\n\t/*'explicit-implementation': {\n\t\t// int IFoo\u003cFoo\u003e.Bar =\u003e 0; void IFoo\u003cFoo\u003cFoo\u003e\u003e.Foo\u003cT\u003e();\n\t\tpattern: replace(/\\b\u003c0\u003e(?=\\.\u003c1\u003e)/, className, methodOrPropertyDeclaration),\n\t\tinside: classNameInside,\n\t\talias: 'class-name'\n\t},*/\n\t'generic-method': {\n\t\t// foo\u003cBar\u003e()\n\t\tpattern: re(/\u003c0\u003e\\s*\u003c1\u003e(?=\\s*\\()/.source, [name, generic]),\n\t\tinside: {\n\t\t\t'function': re(/^\u003c0\u003e/.source, [name]),\n\t\t\t'generic': {\n\t\t\t\tpattern: RegExp(generic),\n\t\t\t\talias: 'class-name',\n\t\t\t\tinside: typeInside\n\t\t\t}\n\t\t}\n\t},\n\t'type-list': {\n\t\t// The list of types inherited or of generic constraints\n\t\t// class Foo\u003cF\u003e : Bar, IList\u003cFooBar\u003e\n\t\t// where F : Bar, IList\u003cint\u003e\n\t\tpattern: re(\n\t\t\t/\\b((?:\u003c0\u003e\\s+\u003c1\u003e|record\\s+\u003c1\u003e\\s*\u003c5\u003e|where\\s+\u003c2\u003e)\\s*:\\s*)(?:\u003c3\u003e|\u003c4\u003e|\u003c1\u003e\\s*\u003c5\u003e|\u003c6\u003e)(?:\\s*,\\s*(?:\u003c3\u003e|\u003c4\u003e|\u003c6\u003e))*(?=\\s*(?:where|[{;]|=\u003e|$))/.source,\n\t\t\t[typeDeclarationKeywords, genericName, name, typeExpression, keywords.source, nestedRound, /\\bnew\\s*\\(\\s*\\)/.source]\n\t\t),\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'record-arguments': {\n\t\t\t\tpattern: re(/(^(?!new\\s*\\()\u003c0\u003e\\s*)\u003c1\u003e/.source, [genericName, nestedRound], 'g'),\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: 'cs'\n\t\t\t},\n\t\t\t'keyword': keywords,\n\t\t\t'class-name': {\n\t\t\t\tpattern: RegExp(typeExpression, 'g'),\n\t\t\t\tinside: typeInside\n\t\t\t},\n\t\t\t'punctuation': /[(),]/\n\t\t}\n\t},\n\t'preprocessor': {\n\t\tpattern: /(^[ \\t]*)#.*/m,\n\t\tlookbehind: true,\n\t\talias: 'property',\n\t\tinside: {\n\t\t\t// highlight preprocessor directives as keywords\n\t\t\t'directive': {\n\t\t\t\tpattern: /(#)\\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\\b/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'keyword'\n\t\t\t}\n\t\t}\n\t},\n\t'attribute': {\n\t\t// Attributes\n\t\t// [Foo], [Foo(1), Bar(2, Prop = \"foo\")], [return: Foo(1), Bar(2)], [assembly: Foo(Bar)]\n\t\tpattern: re(/((?:^|[^\\s\\w\u003e)?])\\s*\\[\\s*)(?:\u003c0\u003e\\s*:\\s*)?\u003c1\u003e(?:\\s*,\\s*\u003c1\u003e)*(?=\\s*\\])/.source, [attrTarget, attr], 'g'),\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'target': {\n\t\t\t\tpattern: re(/^\u003c0\u003e(?=\\s*:)/.source, [attrTarget]),\n\t\t\t\talias: 'keyword'\n\t\t\t},\n\t\t\t'attribute-arguments': {\n\t\t\t\tpattern: re(/\\(\u003c0\u003e*\\)/.source, [roundExpression]),\n\t\t\t\tinside: 'cs'\n\t\t\t},\n\t\t\t'class-name': {\n\t\t\t\tpattern: RegExp(identifier),\n\t\t\t\tinside: dotPunctuation\n\t\t\t},\n\t\t\t'punctuation': /[,:]/\n\t\t}\n\t},\n\t'class-name': [\n\t\t{\n\t\t\t// Using static\n\t\t\t// using static System.Math;\n\t\t\tpattern: re(/(\\busing\\s+static\\s+)\u003c0\u003e(?=\\s*;)/.source, [identifier]),\n\t\t\tlookbehind: true,\n\t\t\tinside: typeInside\n\t\t},\n\t\t{\n\t\t\t// Using alias (type)\n\t\t\t// using Project = PC.MyCompany.Project;\n\t\t\tpattern: re(/(\\busing\\s+\u003c0\u003e\\s*=\\s*)\u003c1\u003e(?=\\s*;)/.source, [name, typeExpression]),\n\t\t\tlookbehind: true,\n\t\t\tinside: typeInside\n\t\t},\n\t\t{\n\t\t\t// Using alias (alias)\n\t\t\t// using Project = PC.MyCompany.Project;\n\t\t\tpattern: re(/(\\busing\\s+)\u003c0\u003e(?=\\s*=)/.source, [name]),\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\t// Type declarations\n\t\t\t// class Foo\u003cA, B\u003e\n\t\t\t// interface Foo\u003cout A, B\u003e\n\t\t\tpattern: re(/(\\b\u003c0\u003e\\s+)\u003c1\u003e/.source, [typeDeclarationKeywords, genericName]),\n\t\t\tlookbehind: true,\n\t\t\tinside: typeInside\n\t\t},\n\t\t{\n\t\t\t// Single catch exception declaration\n\t\t\t// catch(Foo)\n\t\t\t// (things like catch(Foo e) is covered by variable declaration)\n\t\t\tpattern: re(/(\\bcatch\\s*\\(\\s*)\u003c0\u003e/.source, [identifier]),\n\t\t\tlookbehind: true,\n\t\t\tinside: typeInside\n\t\t},\n\t\t{\n\t\t\t// Name of the type parameter of generic constraints\n\t\t\t// where Foo : class\n\t\t\tpattern: re(/(\\bwhere\\s+)\u003c0\u003e/.source, [name]),\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\t// Casts and checks via as and is.\n\t\t\t// as Foo\u003cA\u003e, is Bar\u003cB\u003e\n\t\t\t// (things like if(a is Foo b) is covered by variable declaration)\n\t\t\tpattern: re(/(\\b(?:is(?:\\s+not)?|as)\\s+)\u003c0\u003e/.source, [typeExpressionWithoutTuple]),\n\t\t\tlookbehind: true,\n\t\t\tinside: typeInside\n\t\t},\n\t\t{\n\t\t\t// Variable, field and parameter declaration\n\t\t\t// (Foo bar, Bar baz, Foo[,,] bay, Foo\u003cBar, FooBar\u003cBar\u003e\u003e bax)\n\t\t\tpattern: re(/\\b\u003c0\u003e(?=\\s+(?!\u003c1\u003e|with\\s*\\{)\u003c2\u003e(?:\\s*[=,:;{)\\]]|\\s+(?:in|when)\\b))/.source, [typeExpression, nonContextualKeywords, name]),\n\t\t\tinside: typeInside\n\t\t}\n\t],\n\t'keyword': keywords,\n\t'boolean': boolean,\n\t'function': /\\b\\w+(?=\\()/,\n\t'range': {\n\t\tpattern: /\\.\\./,\n\t\talias: 'operator'\n\t},\n\t// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#literals\n\t'number': /(?:\\b0(?:x[a-f\\d_]*[a-f\\d]|b[01_]*[01])|(?:\\B\\.\\d+(?:_+\\d+)*|\\b\\d+(?:_+\\d+)*(?:\\.\\d+(?:_+\\d+)*)?)(?:e[+-]?\\d+(?:_+\\d+)*)?)(?:[dflmu]|lu|ul)?\\b/i,\n\t'operator': /[=-]\u003e|([\u0026|+-])\\1|~|\\?\\?=?|\u003e\u003e=?|\u003c\u003c=?|[%\u0026|^!=\u003c\u003e/*+-]=?/,\n\t'named-parameter': {\n\t\tpattern: re(/([(,]\\s*)\u003c0\u003e(?=\\s*:)/.source, [name]),\n\t\tlookbehind: true,\n\t\talias: 'punctuation'\n\t},\n\t'punctuation': /\\?\\.?|::|[()[\\]{}.,:;]/\n};\n","import { languages } from '../core.js';\n\n// $ set | grep '^[A-Z][^[:space:]]*=' | cut -d= -f1 | tr '\\n' '|'\n// + LC_ALL, RANDOM, REPLY, SECONDS.\n// + make sure PS1..4 are here as they are not always set,\n// - some useless things.\nvar envVars = '\\\\b(?:BASH(?:OPTS|_ALIASES|_ARG[CV]|_CMDS|_COMPLETION_COMPAT_DIR|_LINENO|_REMATCH|_SOURCE|_VERSINFO|_VERSION)?|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|E?UID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_(?:ADDRESS|ALL|IDENTIFICATION|MEASUREMENT|MONETARY|NAME|NUMERIC|PAPER|TELEPHONE|TIME)|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS[1-4]|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_(?:CONFIG_DIRS|CURRENT_DESKTOP|DATA_DIRS|GREETER_DATA_DIR|MENU_PREFIX|RUNTIME_DIR|SEAT|SEAT_PATH|SESSION_DESKTOP|SESSION_ID|SESSION_PATH|SESSION_TYPE|VTNR)|XMODIFIERS)\\\\b';\n\nvar commandAfterHeredoc = {\n\tpattern: /(^([\"']?)\\w+\\2)[ \\t]+\\S.*/,\n\tlookbehind: true,\n\talias: 'punctuation', // this looks reasonably well in all themes\n};\n\nvar variableInside = {\n\t'variable': /^\\$\\(|^`|[`)]$/g\n};\n\nvar insideString = {\n\t'bash': commandAfterHeredoc,\n\t'environment': {\n\t\tpattern: RegExp('\\\\$' + envVars),\n\t\talias: 'constant'\n\t},\n\t'variable': [\n\t\t// [0]: Arithmetic Environment\n\t\t{\n\t\t\tpattern: /\\$?\\(\\([\\s\\S]*?\\)\\)/g,\n\t\t\tinside: {\n\t\t\t\t// If there is a $ sign at the beginning highlight $(( and )) as variable\n\t\t\t\t'variable': [\n\t\t\t\t\t{\n\t\t\t\t\t\tpattern: /(^\\$[\\s\\S]+)../,\n\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t},\n\t\t\t\t\t/^\\$../g\n\t\t\t\t],\n\t\t\t\t'number': /\\b0x[a-fA-F\\d]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n\t\t\t\t// Operators according to https://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic\n\t\t\t\t'operator': /--|\\+\\+|\u0026\u0026|\\|\\||(?:\\*\\*|\u003c\u003c|\u003e\u003e|[%\u0026|^!=\u003c\u003e/*+-])=?|[?:~]/,\n\t\t\t\t// If there is no $ sign at the beginning highlight (( and )) as punctuation\n\t\t\t\t'punctuation': /\\(\\(?|\\)\\)?|,|;/\n\t\t\t}\n\t\t},\n\t\t// [1]: Command Substitution\n\t\t{\n\t\t\tpattern: /\\$\\((?:[^()]|\\([^)]*\\))*\\)|`[^`]+`/g,\n\t\t\tinside: variableInside\n\t\t},\n\t\t// [2]: Brace expansion\n\t\t{\n\t\t\tpattern: /\\$\\{[^}]*\\}/g,\n\t\t\tinside: {\n\t\t\t\t'operator': /:[?=+-]?|[!/]|##?|%%?|\\^\\^?|,,?/,\n\t\t\t\t'punctuation': /[[\\]]/,\n\t\t\t\t'environment': {\n\t\t\t\t\tpattern: RegExp('(\\\\{)' + envVars),\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\talias: 'constant'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t/\\$(?:\\w+|[#?*!@$])/\n\t],\n\t// Escape sequences from echo and printf's manuals, and escaped quotes.\n\t'entity': /\\\\(?:[abceEfnrtv\\\\\"]|O?[0-7]{1,3}|U[a-fA-F\\d]{8}|u[a-fA-F\\d]{4}|x[a-fA-F\\d]{1,2})/\n};\n\nvar bash = commandAfterHeredoc.inside = languages.sh = languages.shell = languages.bash = {\n\t'shebang': {\n\t\tpattern: /^#!\\s*\\/.*/,\n\t\talias: 'important'\n\t},\n\t'comment': {\n\t\tpattern: /(^|[^\\\\\"{$])#.*/,\n\t\tlookbehind: true\n\t},\n\t'function-name': [\n\t\t// a) function foo {\n\t\t// b) foo() {\n\t\t// c) function foo() {\n\t\t// but not “foo {”\n\t\t{\n\t\t\t// a) and c)\n\t\t\tpattern: /(\\bfunction\\s+)[\\w-]+(?=(?:\\s*\\(?:\\s*\\))?\\s*\\{)/,\n\t\t\tlookbehind: true,\n\t\t\talias: 'function'\n\t\t},\n\t\t{\n\t\t\t// b)\n\t\t\tpattern: /\\b[\\w-]+(?=\\s*\\(\\s*\\)\\s*\\{)/,\n\t\t\talias: 'function'\n\t\t}\n\t],\n\t// Highlight variable names as variables in for and select beginnings.\n\t'for-or-select': {\n\t\tpattern: /(\\b(?:for|select)\\s+)\\w+(?=\\s+in\\s)/,\n\t\tlookbehind: true,\n\t\talias: 'variable'\n\t},\n\t// Highlight variable names as variables in the left-hand part\n\t// of assignments (“=” and “+=”).\n\t'assign-left': {\n\t\tpattern: /(^|[\\s;|\u0026]|[\u003c\u003e]\\()\\w+(?:\\.\\w+)*(?=\\+?=)/,\n\t\tlookbehind: true,\n\t\talias: 'variable',\n\t\tinside: {\n\t\t\t'environment': {\n\t\t\t\tpattern: RegExp('(^|[\\\\s;|\u0026]|[\u003c\u003e]\\\\()' + envVars),\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'constant'\n\t\t\t}\n\t\t}\n\t},\n\t// Highlight parameter names as variables\n\t'parameter': {\n\t\tpattern: /(^|\\s)-{1,2}(?:\\w+:[+-]?)?\\w+(?:\\.\\w+)*(?![^\\s=])/,\n\t\tlookbehind: true,\n\t\talias: 'variable'\n\t},\n\t'string': [\n\t\t// Support for Here-documents https://en.wikipedia.org/wiki/Here_document\n\t\t{\n\t\t\tpattern: /((?:^|[^\u003c])\u003c\u003c-?\\s*)(\\w+)\\s[\\s\\S]*?\\n\\2/g,\n\t\t\tlookbehind: true,\n\t\t\tinside: insideString\n\t\t},\n\t\t// Here-document with quotes around the tag\n\t\t// → No expansion (so no “inside”).\n\t\t{\n\t\t\tpattern: /((?:^|[^\u003c])\u003c\u003c-?\\s*)([\"'])(\\w+)\\2\\s[\\s\\S]*?\\n\\3/g,\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'bash': commandAfterHeredoc\n\t\t\t}\n\t\t},\n\t\t// “Normal” string\n\t\t{\n\t\t\t// https://www.gnu.org/software/bash/manual/html_node/Double-Quotes.html\n\t\t\tpattern: /(^|[^\\\\](?:\\\\\\\\)*)\"(?:\\\\[\\s\\S]|\\$\\([^)]+\\)|\\$(?!\\()|`[^`]+`|[^\\\\\"`$])*\"/g,\n\t\t\tlookbehind: true,\n\t\t\tinside: insideString\n\t\t},\n\t\t{\n\t\t\t// https://www.gnu.org/software/bash/manual/html_node/Single-Quotes.html\n\t\t\tpattern: /(^|[^\\\\$])'[^']*'/g,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\t// https://www.gnu.org/software/bash/manual/html_node/ANSI_002dC-Quoting.html\n\t\t\tpattern: /\\$'(?:\\\\[\\s\\S]|[^\\\\'])*'/g,\n\t\t\tinside: {\n\t\t\t\t'entity': insideString.entity\n\t\t\t}\n\t\t}\n\t],\n\t'environment': {\n\t\tpattern: RegExp('\\\\$?' + envVars),\n\t\talias: 'constant'\n\t},\n\t'variable': insideString.variable,\n\t'function': {\n\t\tpattern: /(^|[\\s;|\u0026]|[\u003c\u003e]\\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|c?fdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cron|crontab|c?split|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff3?|dig|dircolors|dirname|dirs?|dmesg|docker|docker-compose|du|[ef]?grep|eject|env|ethtool|expand|expect|expr|fdformat|fg|file|find|fmt|fold|format|free|fsck|fuser|g?awk|git|g?parted|groupadd|groupdel|groupmod|groups|grub-mkconfig|halt|head|hg|history|host|hostname|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|killall|less|link|ln|logname|logrotate|look|lpc|lprint[dq]?|lprm?|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mm?v|more|most|mtools|m?tr|mutt|nano|nc|netstat|nice|nl|node|nohup|notify-send|nslookup|op|open|passwd|paste|pathchk|ping|p?kill|p?npm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ra[mr]|reboot|remsync|rename|renice|rev|rmdir|rp?m|r?sync|[sr]?cp|screen|sdiff|se[dq]|sendmail|service|s?ftp|shellcheck|shuf|shutdown|sleep|s?locate|[sz]?sh|stat|strace|sudo|sum?|suspend|swapon|sysctl|tac|tail|tar|tee|time|timeout|h?top|touch|traceroute|t?sort|tty|u?mount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vim?|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|g?zip|zsh|zypper)(?=$|[)\\s;|\u0026])/,\n\t\tlookbehind: true\n\t},\n\t'keyword': {\n\t\tpattern: /(^|[\\s;|\u0026]|[\u003c\u003e]\\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\\s;|\u0026])/,\n\t\tlookbehind: true\n\t},\n\t// https://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html\n\t'builtin': {\n\t\tpattern: /(^|[\\s;|\u0026]|[\u003c\u003e]\\()(?:\\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|[ls]et|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\\s;|\u0026])/,\n\t\tlookbehind: true,\n\t\t// Alias added to make those easier to distinguish from strings.\n\t\talias: 'class-name'\n\t},\n\t'boolean': {\n\t\tpattern: /(^|[\\s;|\u0026]|[\u003c\u003e]\\()(?:false|true)(?=$|[)\\s;|\u0026])/,\n\t\tlookbehind: true\n\t},\n\t'file-descriptor': {\n\t\tpattern: /\\B\u0026\\d\\b/,\n\t\talias: 'important'\n\t},\n\t'operator': {\n\t\t// Lots of redirections here, but not just that.\n\t\tpattern: /\\d?\u003c\u003e|\u003e\\||\\+=|=[=~]?|!=?|\u003c\u003c[\u003c-]?|[\u0026\\d]?\u003e\u003e|\\d[\u003c\u003e]\u0026?|[\u003c\u003e][\u0026=]?|\u0026[\u003e\u0026]?|\\|[\u0026|]?/,\n\t\tinside: {\n\t\t\t'file-descriptor': {\n\t\t\t\tpattern: /^\\d/,\n\t\t\t\talias: 'important'\n\t\t\t}\n\t\t}\n\t},\n\t'punctuation': /\\$?\\(\\(?|\\)\\)?|\\.\\.|[[\\]{};\\\\]/,\n\t'number': {\n\t\tpattern: /(^|\\s)(?:[1-9]\\d*|0)(?:[.,]\\d+)?\\b/,\n\t\tlookbehind: true\n\t}\n};\n\n/* Patterns in command substitution. */\n[\n\t'comment',\n\t'function-name',\n\t'for-or-select',\n\t'assign-left',\n\t'parameter',\n\t'string',\n\t'environment',\n\t'function',\n\t'keyword',\n\t'builtin',\n\t'boolean',\n\t'file-descriptor',\n\t'operator',\n\t'punctuation',\n\t'number'\n].forEach(copied =\u003e variableInside[copied] = bash[copied]);\n","import { languages } from '../core.js';\n\nlanguages.basic = {\n\t'comment': {\n\t\tpattern: /(?:!|rem\\b).+/i,\n\t\tinside: {\n\t\t\t'keyword': /^rem/i\n\t\t}\n\t},\n\t'string': /\"(?:\"\"|[#$%\u0026'().,:;\\w ?^!=\u003c\u003e/*+-])*\"/g,\n\t'number': /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n\t'keyword': /\\b(?:as|beep|bload|bsave|call absolute|call|case|chain|chdir|clear|close|cls|com|common|const|data|declare|def(?: fn| seg|dbl|int|[ls]ng|str)|dim|do|double|else|elseif|environ|erase|error|exit|field|files|for|function|get|gosub|goto|if|input|integer|ioctl|key|kill|line input|locate|lock|long|loop|[lr]set|mkdir|name|next|off|on(?: com| error| key| timer)?|open|option base|[op]ut|poke|read|redim|rem|restore|resume|return|rmdir|run|select case|shared|shell|single|sleep|static|step|stop|string|sub|swap|system|then|timer|to|troff|tron|type|unlock|until|using|view print|wait|w?end|while|write)(?:\\$|\\b)/i,\n\t'function': /\\b(?:abs|access|a?cos|angle|area|arithmetic|array|a?sin|ask|atn?|base|begin|break|cause|ceil|chr|clip|collate|color|co[nst]|cosh|csc|date|datum|debug|decimal|de[fgt]|degrees|delete|device|display|dot|elapsed|eps|erasable|exline|exp|external|extype|filetype|fixed|fp|go|graph|handler|idn|image|int?|internal|ip|is|keyed|[lu]bound|[lu]case|left|le[nt]|length|lines?|log2?|log10|[lr]trim|margin|ma[tx]|maxnum|mi[dn]|missing|mod|native|nul|numeric|of|option|ord|organization|outin|output|pi|pointer|points?|pos|print|program|prompt|rad|radians|randomize|record|recsize|rectype|relative|remainder|repeat|rest|retry|rewrite|right|rnd|round|same|se[ct]|select|sequential|setter|sgn|sinh|size|skip|s[qt]r|standard|status|stream|style|tab|tanh?|template|text|there|time|timeout|trace|transform|truncate|use|val|variable|viewport|when|window|with|zer|zonewidth)(?:\\$|\\b)/i,\n\t'operator': /\u003c=|\u003c\u003e|\u003e=|[\u0026^=\u003c\u003e/*+-]|\\b(?:and|eqv|imp|not|x?or)\\b/i,\n\t'punctuation': /[(),:;]/\n};\n","import { languages } from '../core.js';\nimport { boolean, clikeNumber } from '../utils/patterns.js';\n\nvar interpolationContent = {\n\tpattern: /[\\s\\S]+/\n};\n\nvar percentExpression = /(?:([^a-zA-Z\\d\\s{([\u003c=])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|\\((?:\\\\[\\s\\S]|[^\\\\()]|\\((?:\\\\[\\s\\S]|[^\\\\()])*\\))*\\)|\\{(?:\\\\[\\s\\S]|[^\\\\{}]|\\{(?:\\\\[\\s\\S]|[^\\\\{}])*\\})*\\}|\\[(?:\\\\[\\s\\S]|[^\\\\[\\]]|\\[(?:\\\\[\\s\\S]|[^\\\\[\\]])*\\])*\\]|\u003c(?:\\\\[\\s\\S]|[^\\\\\u003c\u003e]|\u003c(?:\\\\[\\s\\S]|[^\\\\\u003c\u003e])*\u003e)*\u003e)/.source;\n\nvar symbolName = /(?:\"(?:\\\\.|[^\\\\\\n\"])*\"|(?:\\b(?!\\d)\\w+|[^\\s\\0-\\x7f]+)[?!]?|\\$.)/.source;\n\nvar interpolation = {\n\tpattern: /((?:^|[^\\\\])(?:\\\\\\\\)*)#\\{(?:[^{}]|\\{[^}]*\\})*\\}/,\n\tlookbehind: true,\n\tinside: {\n\t\t'delimiter': {\n\t\t\tpattern: /^..|\\}$/g,\n\t\t\talias: 'punctuation'\n\t\t},\n\t\t'content': interpolationContent\n\t}\n}\n\ninterpolationContent.inside = languages.rb = languages.ruby = {\n\t'comment': /#.*|^=begin\\s[\\s\\S]*?^=end/mg,\n\t'string-literal': [\n\t\t{\n\t\t\tpattern: RegExp(/%[qQiIwWs]?/.source + percentExpression + '|' + /([\"'])(?:#\\{[^}]+\\}|#(?!\\{)|\\\\[\\s\\S]|(?!\\2)[^\\\\#\\n])*\\2/.source, 'g'),\n\t\t\tinside: {\n\t\t\t\t'interpolation': interpolation,\n\t\t\t\t'string': /[\\s\\S]+/\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tpattern: /\u003c\u003c[-~]?([a-z_]\\w*)\\n(?:.*\\n)*?[ \\t]*\\1/gi,\n\t\t\talias: 'heredoc-string',\n\t\t\tinside: {\n\t\t\t\t'delimiter': {\n\t\t\t\t\tpattern: /^\u003c\u003c[-~]?[a-z_]\\w*|\\b[a-z_]\\w*$/i,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'symbol': /\\w+/,\n\t\t\t\t\t\t'punctuation': /^\u003c\u003c[-~]?/\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'interpolation': interpolation,\n\t\t\t\t'string': /[\\s\\S]+/\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tpattern: /\u003c\u003c[-~]?'([a-z_]\\w*)'\\n(?:.*\\n)*?[ \\t]*\\1/gi,\n\t\t\talias: 'heredoc-string',\n\t\t\tinside: {\n\t\t\t\t'delimiter': {\n\t\t\t\t\tpattern: /^\u003c\u003c[-~]?'[a-z_]\\w*'|\\b[a-z_]\\w*$/i,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'symbol': /\\w+/,\n\t\t\t\t\t\t'punctuation': /^\u003c\u003c[-~]?'|'$/,\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'string': /[\\s\\S]+/\n\t\t\t}\n\t\t}\n\t],\n\t'command-literal': {\n\t\tpattern: RegExp(/%x/.source + percentExpression + '|' + /`(?:#\\{[^}]+\\}|#(?!\\{)|\\\\[\\s\\S]|[^\\\\`#\\n])*`/.source, 'g'),\n\t\tinside: {\n\t\t\t'interpolation': interpolation,\n\t\t\t'command': {\n\t\t\t\tpattern: /[\\s\\S]+/,\n\t\t\t\talias: 'string'\n\t\t\t}\n\t\t}\n\t},\n\t'class-name': {\n\t\tpattern: /(\\b(?:class|module)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+|\\b[A-Z_]\\w*(?=\\s*\\.\\s*new\\b)/,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'punctuation': /[\\\\.]/\n\t\t}\n\t},\n\t'regex-literal': {\n\t\tpattern: RegExp(\n\t\t\t/(^|[^/])\\/(?!\\/)(?:\\[[^\\n\\]]+\\]|\\\\.|[^\\\\\\n/[])+\\/[egimnosux]{0,6}(?=\\s*(?:$|[\\n,.;})#]))/.source + '|' +\n\t\t\t`%r${percentExpression.replace(/\\\\1/g, \"\\\\2\")}[egimnosux]{0,6}`, 'g'\n\t\t),\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'interpolation': interpolation,\n\t\t\t'regex': /[\\s\\S]+/\n\t\t}\n\t},\n\t'variable': /[@$]+(?!\\d)\\w+(?:[?!]|\\b)/,\n\t'symbol': [\n\t\t{\n\t\t\tpattern: RegExp(/(^|[^:]):/.source + symbolName, 'g'),\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: RegExp(/([\\n{(,][ \\t]*)/.source + symbolName + /(?=:(?!:))/.source, 'g'),\n\t\t\tlookbehind: true\n\t\t},\n\t],\n\t'method-definition': {\n\t\tpattern: /(\\bdef\\s+)\\w+(?:\\s*\\.\\s*\\w+)?/,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'function': /\\b\\w+$/,\n\t\t\t'keyword': /^self\\b/,\n\t\t\t'class-name': /^\\w+/,\n\t\t\t'punctuation': /\\./\n\t\t}\n\t},\n\t'keyword': /\\b(?:BEGIN|END|alias|and|begin|break|case|class|def|define_method|defined|do|each|else|elsif|end|ensure|extend|f?or|if|in|include|module|new|next|nil|not|prepend|private|protected|public|raise|redo|require|rescue|retry|return|self|super|[tw]hen|throw|undef|unless|until|while|yield)\\b/,\n\t'boolean': boolean,\n\t'builtin': /\\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Fixnum|Float|Hash|IO|Integer|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|Stat|String|Struct|Symbol|TMS|Thread|ThreadGroup|Time|TrueClass)\\b/,\n\t'constant': /\\b[A-Z][A-Z\\d_]*(?:[?!]|\\b)/,\n\t'number': clikeNumber,\n\t'double-colon': {\n\t\tpattern: /::/,\n\t\talias: 'punctuation'\n\t},\n\t'operator': /\\.{2,3}|\u0026\\.|===|\u003c?=\u003e|[!=]?~|(?:\u0026\u0026|\\|\\||\u003c\u003c|\u003e\u003e|\\*\\*|[%\u0026|^!=\u003c\u003e/*+-])=?|[?:]/,\n\t'punctuation': /[()[\\]{}.,;]/,\n};\n","import { languages, rest } from '../core.js';\n\nvar string = /\"(?:\\\\[\\s\\S]|[^\\\\\\n\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\\\n'])*'/g;\nvar stringSrc = string.source;\n\nvar atruleInside = {\n\t'rule': /^@[\\w-]+/,\n\t'selector-function-argument': {\n\t\tpattern: /(\\bselector\\s*\\(\\s*(?![\\s)]))(?:[^()\\s]|\\s+(?![\\s)])|\\((?:[^()]|\\([^)]*\\))*\\))+(?=\\s*\\))/,\n\t\tlookbehind: true,\n\t\talias: 'selector'\n\t},\n\t'keyword': {\n\t\tpattern: /(^|[^\\w-])(?:and|not|only|or)(?![\\w-])/,\n\t\tlookbehind: true\n\t}\n\t// See rest below\n};\n\natruleInside[rest] = languages.css = {\n\t'comment': /\\/\\*[\\s\\S]*?\\*\\//,\n\t'atrule': {\n\t\tpattern: RegExp(`@[\\\\w-](?:[^\\\\s;{\"']|\\\\s+(?!\\\\s)|${stringSrc})*?(?:;|(?=\\\\s*\\\\{))`),\n\t\tinside: atruleInside\n\t},\n\t'url': {\n\t\t// https://drafts.csswg.org/css-values-3/#urls\n\t\tpattern: RegExp(`\\\\burl\\\\((?:${stringSrc}|(?:[^\\\\\\\\\\n\"')=]|\\\\\\\\[\\\\s\\\\S])*)\\\\)`, 'gi'),\n\t\tinside: {\n\t\t\t'function': /^url/i,\n\t\t\t'punctuation': /^\\(|\\)$/,\n\t\t\t'string': {\n\t\t\t\tpattern: /^[\"'][\\s\\S]+/,\n\t\t\t\talias: 'url'\n\t\t\t}\n\t\t}\n\t},\n\t'selector': {\n\t\tpattern: RegExp(`(^|[{}\\\\s])[^\\\\s{}](?:[^\\\\s{};\"']|\\\\s+(?![\\\\s{])|${stringSrc})*(?=\\\\s*\\\\{)`),\n\t\tlookbehind: true\n\t},\n\t'string': string,\n\t'variable': {\n\t\tpattern: /(^|[^-\\w\\xa0-\\uffff])--(?:(?!\\s)[-\\w\\xa0-\\uffff])*/,\n\t\tlookbehind: true\n\t},\n\t'property': {\n\t\tpattern: /(^|[^-\\w\\xa0-\\uffff])(?!\\d)(?:(?!\\s)[-\\w\\xa0-\\uffff])+(?=\\s*:)/,\n\t\tlookbehind: true\n\t},\n\t'important': /!important\\b/i,\n\t'function': {\n\t\tpattern: /(^|[^-a-z\\d])[-a-z\\d]+(?=\\()/i,\n\t\tlookbehind: true\n\t},\n\t'punctuation': /[(){},:;]/\n};\n","import { languages } from '../core.js';\nimport { insertBefore } from '../utils/language.js';\nimport './css.js';\n\nvar css = languages.css;\n\ncss.selector.inside = css['atrule'].inside['selector-function-argument'].inside = {\n\t'pseudo-element': /:(?:after|before|first-letter|first-line|selection)|::[-\\w]+/,\n\t'pseudo-class': /:[-\\w]+/,\n\t'class': /\\.[-\\w]+/,\n\t'id': /#[-\\w]+/,\n\t'attribute': {\n\t\tpattern: /\\[(?:[^[\\]\"']|([\"'])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\\\n])*\\1)*\\]/g,\n\t\tinside: {\n\t\t\t'punctuation': /^\\[|\\]$/,\n\t\t\t'case-sensitivity': {\n\t\t\t\tpattern: /(\\s)[si]$/i,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'keyword'\n\t\t\t},\n\t\t\t'namespace': {\n\t\t\t\tpattern: /^(\\s*)(?:(?!\\s)[-*\\w\\xa0-\\uffff])*\\|(?!=)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /\\|$/\n\t\t\t\t}\n\t\t\t},\n\t\t\t'attr-name': {\n\t\t\t\tpattern: /^(\\s*)(?:(?!\\s)[-\\w\\xa0-\\uffff])+/,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t'attr-value': {\n\t\t\t\tpattern: /(=\\s*)(?:(?!\\s)[-\\w\\xa0-\\uffff])+(?=\\s*$)|([\"'])(?:\\\\[\\s\\S]|(?!\\2)[^\\\\\\n])*\\2/,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t'operator': /[|~*^$]?=/\n\t\t}\n\t},\n\t'n-th': [\n\t\t{\n\t\t\tpattern: /(\\(\\s*)[+-]?\\d*[\\dn](?:\\s*[+-]\\s*\\d+)?(?=\\s*\\))/,\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'number': /[\\dn]+/,\n\t\t\t\t'operator': /[+-]/\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tpattern: /(\\(\\s*)(?:even|odd)(?=\\s*\\))/i,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'combinator': /[\u003e+~]|\\|\\|/,\n\n\t// the `tag` token has been existed and removed.\n\t// because we can't find a perfect tokenize to match it.\n\t// if you want to add it, please read https://github.com/PrismJS/prism/pull/2373 first.\n\n\t'punctuation': /[(),]/\n};\n\ninsertBefore(css, 'function', {\n\t'operator': {\n\t\tpattern: /(\\s)[/*+-](?!\\S)/,\n\t\tlookbehind: true\n\t},\n\t'hexcode': {\n\t\tpattern: /\\B#[a-f\\d]{3,8}\\b/i,\n\t\talias: 'color'\n\t},\n\t// it's important that there is no boundary assertion after the hex digits\n\t'entity': /\\\\[a-f\\d]{1,8}/i,\n\t'unit': {\n\t\tpattern: /(\\b\\d+)(?:%|[a-z]+(?![\\w-]))/,\n\t\tlookbehind: true\n\t},\n\t// 123 -123 .123 -.123 12.3 -12.3\n\t'number': {\n\t\tpattern: /(^|[^\\w.-])-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/,\n\t\tlookbehind: true\n\t}\n});\n","import { languages } from '../core.js';\n\nvar diff = languages.diff = {\n\t// Match all kinds of coord lines (prefixed by \"+++\", \"---\" or \"***\").\n\t// Match \"@@ ... @@\" coord lines in unified diff.\n\t// Match coord lines in normal diff (starts with a number).\n\t'coord': /^(?:\\*{3}|-{3}|\\+{3}|\\d).*$|^@@.*@@$/m\n\n\t// deleted, inserted, unchanged, diff\n};\n\n/**\n * A map from the name of a block to its line prefix.\n *\n * @type {Object\u003cstring, string\u003e}\n */\nvar PREFIXES = {\n\t'deleted-sign': '-',\n\t'deleted-arrow': '\u003c',\n\t'inserted-sign': '\\\\+',\n\t'inserted-arrow': '\u003e',\n\t'unchanged': ' ',\n\t'diff': '!',\n};\n\n// add a token for each prefix\nfor (var name in PREFIXES) {\n\n\tvar prefix = name.split('-')[0];\n\n\tdiff[name] = {\n\t\tpattern: RegExp('(?:^' + PREFIXES[name] + '.*\\n?)+', 'm'),\n\t\talias: prefix != name ? prefix : name == 'diff' ? 'bold' : undefined,\n\t\tinside: {\n\t\t\t'prefix': {\n\t\t\t\tpattern: RegExp('^' + PREFIXES[name], 'mg'),\n\t\t\t\talias: prefix\n\t\t\t}\n\t\t}\n\t};\n\n};\n","import { languages } from '../core.js';\n\nlanguages.lua = {\n\t'comment': /^#!.+|--(?:\\[(=*)\\[[\\s\\S]*?\\]\\1\\]|.*)/m,\n\t// \\z may be used to skip the following space\n\t'string': /([\"'])(?:(?!\\1)[^\\\\\\n]|\\\\z\\s|\\\\[^z])*\\1|\\[(=*)\\[[\\s\\S]*?\\]\\2\\]/g,\n\t'number': /\\b0x[a-f\\d]+(?:\\.[a-f\\d]*)?(?:p[+-]?\\d+)?\\b|\\b\\d+(?:\\.\\B|(?:\\.\\d*)?(?:e[+-]?\\d+)?\\b)|\\B\\.\\d+(?:e[+-]?\\d+)?\\b/i,\n\t'keyword': /\\b(?:and|break|do|else|elseif|end|false|true|f?or|function|goto|if|in|local|nil|not|repeat|return|then|until|while)\\b/,\n\t'function': /(?!\\d)\\w+(?=\\s*(?:[({]))/,\n\t// Match \"..\" but don't break \"...\"\n\t'operator': {\n\t\tpattern: /[%\u0026|^#*+-]|\\/\\/?|\u003c[\u003c=]?|\u003e[\u003e=]?|[=~]=?|(^|[^.])\\.\\.(?!\\.)/,\n\t\tlookbehind: true\n\t},\n\t'punctuation': /[()[\\]{},;]|\\.+|:+/\n};\n","import { languages } from '../core.js';\nimport { clikeComment, clikePunctuation } from '../utils/patterns.js';\n\nlanguages.go = {\n\t'comment': clikeComment,\n\t'char': /'(?:\\\\.|[^\\\\\\n']){0,10}'/g,\n\t'string': {\n\t\tpattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\\n\"])*\"|`[^`]*`/g,\n\t\tlookbehind: true\n\t},\n\t'keyword': /\\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\\b/,\n\t'boolean': /\\b(?:_|false|true|iota|nil)\\b/,\n\t'function': /\\b\\w+(?=\\()/,\n\t'number': [\n\t\t// binary and octal integers\n\t\t/\\b0(?:b[01_]+|o[0-7_]+)i?\\b/i,\n\t\t// hexadecimal integers and floats\n\t\t/\\b0x(?:[a-f\\d_]+(?:\\.[a-f\\d_]*)?|\\.[a-f\\d_]+)(?:p[+-]?\\d+(?:_\\d+)*)?i?(?!\\w)/i,\n\t\t// decimal integers and floats\n\t\t/(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?[\\d_]+)?i?(?!\\w)/i\n\t],\n\t'operator': /--|\\+\\+|\u0026\u0026|\\|\\||\u0026\\^=?|\u003c-|\u003c\u003c=?|\u003e\u003e=?|[%\u0026|^!=\u003c\u003e/*+-]=?|:=|\\.{3}/,\n\t'punctuation': clikePunctuation,\n\t'builtin': /\\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\\b/\n};\n","import { languages, tokenize, withoutTokenizer } from '../core.js';\nimport { boolean } from '../utils/patterns.js';\n\nlanguages.graphql = {\n\t'comment': /#.*/,\n\t'description': {\n\t\tpattern: /(?:\"\"\"(?:[^\"]|\"(?!\"\"))*\"\"\"|\"(?:\\\\.|[^\\\\\\n\"])*\")(?=\\s*[a-z_])/gi,\n\t\talias: 'string',\n\t\tinside: {\n\t\t\t'language-markdown': {\n\t\t\t\tpattern: /(\"(?!\")|\"\"\")[\\s\\S]+(?=\\1)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: 'md'\n\t\t\t}\n\t\t}\n\t},\n\t'string': /\"\"\"[\\s\\S]*?\"\"\"|\"(?:\\\\.|[^\\\\\\n\"])*\"/g,\n\t'number': /(?:\\B-|\\b)\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n\t'boolean': boolean,\n\t'variable': /\\$[a-z_]\\w*/i,\n\t'directive': {\n\t\tpattern: /@[a-z_]\\w*/i,\n\t\talias: 'function'\n\t},\n\t'attr-name': /\\b[a-z_]\\w*(?=\\s*(?:\\((?:[^()\"]|\"(?:\\\\.|[^\\\\\\n\"])*\")*\\))?:)/gi,\n\t'atom-input': {\n\t\tpattern: /\\b[A-Z]\\w*Input\\b/,\n\t\talias: 'class-name'\n\t},\n\t'scalar': /\\b(?:Boolean|Float|ID|Int|String)\\b/,\n\t'constant': /\\b[A-Z][A-Z_\\d]*\\b/,\n\t'class-name': {\n\t\tpattern: /(\\b(?:enum|implements|interface|on|scalar|type|union)\\s+|\u0026\\s*|:\\s*|\\[)[A-Z_]\\w*/,\n\t\tlookbehind: true\n\t},\n\t'fragment': {\n\t\tpattern: /(\\bfragment\\s+|\\.{3}\\s*(?!on\\b))(?!\\d)\\w+/,\n\t\tlookbehind: true,\n\t\talias: 'function'\n\t},\n\t'definition-mutation': {\n\t\tpattern: /(\\bmutation\\s+)(?!\\d)\\w+/,\n\t\tlookbehind: true,\n\t\talias: 'function'\n\t},\n\t'definition-query': {\n\t\tpattern: /(\\bquery\\s+)(?!\\d)\\w+/,\n\t\tlookbehind: true,\n\t\talias: 'function'\n\t},\n\t'keyword': /\\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\\b/,\n\t'operator': /[\u0026|!=]|\\.{3}/,\n\t'property-query': /\\w+(?=\\s*\\()/,\n\t'object': /\\w+(?=\\s*\\{)/,\n\t'punctuation': /[()[\\]{},:!=]/,\n\t'property': /\\w+/,\n\t[tokenize](code, grammar) {\n\t\tvar tokens = withoutTokenizer(code, grammar);\n\n\t\t/**\n\t\t * get the graphql token stream that we want to customize\n\t\t *\n\t\t * @typedef {InstanceType\u003cimport(\"../core.js\")[\"Token\"]\u003e} Token\n\t\t * @type {Token[]}\n\t\t */\n\t\tvar validTokens = tokens.filter(({type}) =\u003e type \u0026\u0026 type != 'comment' \u0026\u0026 type != 'scalar');\n\t\tvar l = validTokens.length;\n\t\tvar currentIndex = 0;\n\n\t\t/**\n\t\t * Returns whether the token relative to the current index has the given type.\n\t\t *\n\t\t * @param {readonly string[]} types\n\t\t * @returns {boolean}\n\t\t */\n\t\tvar isNotTokenType = types =\u003e {\n\t\t\tfor (var i = 0; i \u003c types.length; i++) {\n\t\t\t\tif (currentIndex + i == l || validTokens[currentIndex + i].type != types[i]) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Returns the index of the closing bracket to an opening bracket.\n\t\t *\n\t\t * It is assumed that `token[currentIndex - 1]` is an opening bracket.\n\t\t *\n\t\t * If no closing bracket could be found, `-1` will be returned.\n\t\t *\n\t\t * @param {string} open\n\t\t * @param {string} close\n\t\t * @returns {number | void}\n\t\t */\n\t\tvar findClosingBracket = (open, close) =\u003e {\n\t\t\tvar stackHeight = 1;\n\n\t\t\tfor (var i = currentIndex; i \u003c l; i++) {\n\t\t\t\tvar token = validTokens[i];\n\t\t\t\tvar content = token.content;\n\n\t\t\t\tif (token.type == 'punctuation') {\n\t\t\t\t\tif (open == content) {\n\t\t\t\t\t\tstackHeight++;\n\t\t\t\t\t} else if (close == content \u0026\u0026 !--stackHeight) {\n\t\t\t\t\t\treturn i;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\twhile (currentIndex \u003c l) {\n\t\t\tvar startToken = validTokens[currentIndex++];\n\n\t\t\t// add special aliases for mutation tokens\n\t\t\tif (startToken.type == 'keyword' \u0026\u0026 startToken.content == 'mutation') {\n\t\t\t\t// any array of the names of all input variables (if any)\n\t\t\t\tvar inputVariables = [];\n\n\t\t\t\tif (!isNotTokenType(['definition-mutation', 'punctuation']) \u0026\u0026 validTokens[currentIndex + 1].content == '(') {\n\t\t\t\t\t// definition\n\n\t\t\t\t\tcurrentIndex += 2; // skip 'definition-mutation' and 'punctuation'\n\n\t\t\t\t\tvar definitionEnd = findClosingBracket(\"(\", \")\");\n\t\t\t\t\tif (!definitionEnd) continue;\n\n\t\t\t\t\t// find all input variables\n\t\t\t\t\tfor (; currentIndex \u003c definitionEnd; currentIndex++) {\n\t\t\t\t\t\tvar t = validTokens[currentIndex];\n\t\t\t\t\t\tif (t.type == 'variable') {\n\t\t\t\t\t\t\tt.alias = 'variable-input';\n\t\t\t\t\t\t\tinputVariables.push(t.content);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrentIndex = definitionEnd + 1;\n\t\t\t\t}\n\n\t\t\t\tif (!isNotTokenType(['punctuation', 'property-query']) \u0026\u0026 validTokens[currentIndex].content == '{') {\n\t\t\t\t\t// skip opening bracket\n\t\t\t\t\tvalidTokens[++currentIndex].alias = 'property-mutation';\n\n\t\t\t\t\tif (inputVariables[0]) {\n\t\t\t\t\t\tvar mutationEnd = findClosingBracket(\"{\", \"}\");\n\t\t\t\t\t\t// give references to input variables a special alias\n\t\t\t\t\t\tif (mutationEnd) for (var i = currentIndex; i \u003c mutationEnd; i++) {\n\t\t\t\t\t\t\tvar varToken = validTokens[i];\n\t\t\t\t\t\t\tif (varToken.type == 'variable' \u0026\u0026 inputVariables.indexOf(varToken.content) \u003e= 0) {\n\t\t\t\t\t\t\t\tvarToken.alias = 'variable-input';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn tokens;\n\t}\n};\n","import { languages } from '../core.js';\nimport { boolean, clikeComment } from '../utils/patterns.js';\n\n// https://www.json.org/json-en.html\nlanguages.webmanifest = languages.json = {\n\t'property': /\"(?:\\\\.|[^\\\\\\n\"])*\"(?=\\s*:)/g,\n\t'string': /\"(?:\\\\.|[^\\\\\\n\"])*\"/g,\n\t'comment': clikeComment,\n\t'number': /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n\t'operator': /:/,\n\t'punctuation': /[[\\]{},]/,\n\t'boolean': boolean,\n\t'null': {\n\t\tpattern: /\\bnull\\b/,\n\t\talias: 'keyword'\n\t}\n};\n","import { languages } from '../core.js';\n\nlanguages.ini = {\n\n\t/**\n\t * The component mimics the behavior of the Win32 API parser.\n\t *\n\t * @see {@link https://github.com/PrismJS/prism/issues/2775#issuecomment-787477723}\n\t */\n\n\t'comment': {\n\t\tpattern: /(^[ \\f\\t\\v]*)[#;].*/m,\n\t\tlookbehind: true\n\t},\n\t'section': {\n\t\tpattern: /(^[ \\f\\t\\v]*)\\[[^\\n\\]]*\\]?/m,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'section-name': {\n\t\t\t\tpattern: /(^\\[[ \\f\\t\\v]*)[^ \\f\\t\\v\\]]+(?:[ \\f\\t\\v]+[^ \\f\\t\\v\\]]+)*/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'selector'\n\t\t\t},\n\t\t\t'punctuation': /[[\\]]/\n\t\t}\n\t},\n\t'key': {\n\t\tpattern: /(^[ \\f\\t\\v]*)[^ \\f\\n\\t\\v=]+(?:[ \\f\\t\\v]+[^ \\f\\n\\t\\v=]+)*(?=[ \\f\\t\\v]*=)/m,\n\t\tlookbehind: true,\n\t\talias: 'attr-name'\n\t},\n\t'value': {\n\t\tpattern: /(=[ \\f\\t\\v]*)[^ \\f\\n\\t\\v]+(?:[ \\f\\t\\v]+[^ \\f\\n\\t\\v]+)*/,\n\t\tlookbehind: true,\n\t\talias: 'attr-value',\n\t\tinside: {\n\t\t\t'inner-value': {\n\t\t\t\tpattern: /^([\"']).+(?=\\1$)/,\n\t\t\t\tlookbehind: true\n\t\t\t}\n\t\t}\n\t},\n\t'punctuation': /=/\n};\n","import { languages } from '../core.js';\nimport { boolean, clikeComment, clikePunctuation, dotPunctuation } from '../utils/patterns.js';\n\nvar keywords = /\\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|opens?|package|permits|private|protected|provides|public|record(?!\\s*[()[\\]{}%~.,:;?%\u0026|^=\u003c\u003e/*+-])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throws?|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\\b/;\n\n// full package (optional) + parent classes (optional)\nvar classNamePrefix = /(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*/.source;\n\nvar namespace = {\n\tpattern: /^[a-z]\\w*(?:\\s*\\.\\s*[a-z]\\w*)*(?:\\s*\\.)?/,\n\tinside: dotPunctuation\n};\n\nvar classInside = {\n\t'namespace': namespace,\n\t'punctuation': /\\./\n};\n\n// based on the java naming conventions\nvar className = {\n\tpattern: RegExp(`(^|[^\\\\w.])${classNamePrefix}[A-Z](?:[\\\\d_A-Z]*[a-z]\\\\w*)?\\\\b`),\n\tlookbehind: true,\n\tinside: classInside\n};\n\nlanguages.java = {\n\t'doc-comment': {\n\t\tpattern: /\\/\\*\\*(?!\\/)[\\s\\S]*?(?:\\*\\/|$)/g,\n\t\talias: 'comment',\n\t\tinside: 'javadoc'\n\t},\n\t'comment': clikeComment,\n\t'triple-quoted-string': {\n\t\t// http://openjdk.java.net/jeps/355#Description\n\t\tpattern: /\"\"\"[ \\t]*\\n(?:\\\\.|[^\\\\])*?\"\"\"/g,\n\t\talias: 'string'\n\t},\n\t'char': /'(?:\\\\.|[^\\\\\\n']){1,6}'/g,\n\t'string': {\n\t\tpattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\\n\"])*\"/g,\n\t\tlookbehind: true\n\t},\n\t'annotation': {\n\t\tpattern: /(^|[^.])@\\w+(?:\\s*\\.\\s*\\w+)*/,\n\t\tlookbehind: true,\n\t\talias: 'punctuation'\n\t},\n\t'generics': {\n\t\tpattern: /\u003c(?:[\\w\\s,.?]|\u0026(?!\u0026)|\u003c(?:[\\w\\s,.?]|\u0026(?!\u0026)|\u003c(?:[\\w\\s,.?]|\u0026(?!\u0026)|\u003c(?:[\\w\\s,.?]|\u0026(?!\u0026))*\u003e)*\u003e)*\u003e)*\u003e/,\n\t\tinside: {\n\t\t\t'class-name': className,\n\t\t\t'keyword': keywords,\n\t\t\t'punctuation': /[().,:\u003c\u003e]/,\n\t\t\t'operator': /[?\u0026|]/\n\t\t}\n\t},\n\t'import': [\n\t\t{\n\t\t\tpattern: RegExp(`(\\\\bimport\\\\s+)${classNamePrefix}(?:[A-Z]\\\\w*|\\\\*)(?=\\\\s*;)`),\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'namespace': namespace,\n\t\t\t\t'punctuation': /\\./,\n\t\t\t\t'operator': /\\*/,\n\t\t\t\t'class-name': /\\w+/\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tpattern: RegExp(`(\\\\bimport\\\\s+static\\\\s+)${classNamePrefix}(?:\\\\w+|\\\\*)(?=\\\\s*;)`),\n\t\t\tlookbehind: true,\n\t\t\talias: 'static',\n\t\t\tinside: {\n\t\t\t\t'namespace': namespace,\n\t\t\t\t'static': /\\b\\w+$/,\n\t\t\t\t'punctuation': /\\./,\n\t\t\t\t'operator': /\\*/,\n\t\t\t\t'class-name': /\\w+/\n\t\t\t}\n\t\t}\n\t],\n\t'namespace': {\n\t\tpattern: RegExp(\n\t\t\t`(\\\\b(?:exports|import(?:\\\\s+static)?|module|opens?|package|provides|requires|to|transitive|uses|with)\\\\s+)(?!${keywords.source})[a-z]\\\\w*(?:\\\\.[a-z]\\\\w*)*\\\\.?`\n\t\t),\n\t\tlookbehind: true,\n\t\tinside: dotPunctuation\n\t},\n\t'class-name': [\n\t\tclassName,\n\t\t{\n\t\t\t// variables, parameters, and constructor references\n\t\t\t// this to support class names (or generic parameters) which do not contain a lower case letter (also works for methods)\n\t\t\tpattern: RegExp(`(^|[^\\\\w.])${classNamePrefix}[A-Z]\\\\w*(?=\\\\s+\\\\w+\\\\s*[;,=()]|\\\\s*(?:\\\\[[\\\\s,]*\\\\]\\\\s*)?::\\\\s*new\\\\b)`),\n\t\t\tlookbehind: true,\n\t\t\tinside: classInside\n\t\t},\n\t\t{\n\t\t\t// class names based on keyword\n\t\t\t// this to support class names (or generic parameters) which do not contain a lower case letter (also works for methods)\n\t\t\tpattern: RegExp(`(\\\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\\\s+)${classNamePrefix}[A-Z]\\\\w*\\\\b`),\n\t\t\tlookbehind: true,\n\t\t\tinside: classInside\n\t\t}\n\t],\n\t'keyword': keywords,\n\t'boolean': boolean,\n\t'function': {\n\t\tpattern: /\\b\\w+(?=\\()|(::\\s*)[a-z_]\\w*/,\n\t\tlookbehind: true\n\t},\n\t'number': /\\b0b[01][01_]*l?\\b|\\b0x(?:\\.[a-f\\d_p+-]+|[a-f\\d_]+(?:\\.[a-f\\d_p+-]+)?)\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[dfl]?/i,\n\t'constant': /\\b[A-Z][A-Z_\\d]+\\b/,\n\t'operator': {\n\t\tpattern: /(^|[^.])(?:\u003c\u003c=?|\u003e\u003e\u003e?=?|-\u003e|--|\\+\\+|\u0026\u0026|\\|\\||::|[?:~]|[%\u0026|^!=\u003c\u003e/*+-]=?)/m,\n\t\tlookbehind: true\n\t},\n\t'punctuation': clikePunctuation\n};\n","import { languages } from '../core.js';\nimport { extend, insertBefore } from '../utils/language.js';\nimport './javascript.js';\n\nvar className = {\n\tpattern: /(\\b(?:class|extends|implements|instanceof|interface|new|type)\\s+)(?!keyof\\b)(?!\\d)(?:(?!\\s)[$\\w\\xa0-\\uffff])+(?:\\s*\u003c(?:[^\u003c\u003e]|\u003c(?:[^\u003c\u003e]|\u003c[^\u003c\u003e]*\u003e)*\u003e)*\u003e)?/g,\n\tlookbehind: true\n};\nvar ts = languages.ts = languages.typescript = extend('js', {\n\t'class-name': className\n});\n\ninsertBefore(ts, 'operator', {\n\t'builtin': /\\b(?:Array|Function|Promise|any|boolean|never|number|string|symbol|unknown)\\b/\n});\n\n// The keywords TypeScript adds to JavaScript\nts.keyword.push(\n\t/\\b(?:abstract|declare|is|keyof|readonly|require)\\b|\\b(?:asserts|infer|interface|module|namespace|type)\\b(?!\\s*[^\\s{_$a-zA-Z\\xa0-\\uffff])|\\btype(?=\\s*\\*)/\n);\n\n// doesn't work with TS because TS is too complex\ndelete ts['parameter'];\ndelete ts['literal-property'];\n\n// a version of typescript specifically for highlighting types\nvar typeInside = className.inside = Object.assign({}, ts);\ndelete typeInside['class-name'];\ndelete typeInside['maybe-class-name'];\n\ninsertBefore(ts, 'constant', {\n\t'decorator': {\n\t\tpattern: /@[$\\w\\xa0-\\uffff]+/,\n\t\tinside: {\n\t\t\t'at': {\n\t\t\t\tpattern: /^@/,\n\t\t\t\talias: 'operator'\n\t\t\t},\n\t\t\t'function': /.+/\n\t\t}\n\t},\n\t'generic-function': {\n\t\t// e.g. foo\u003cT extends \"bar\" | \"baz\"\u003e( ...\n\t\tpattern: /#?(?!\\d)(?:(?!\\s)[$\\w\\xa0-\\uffff])+\\s*\u003c(?:[^\u003c\u003e=]|=[^\u003c]|=?\u003c(?:[^\u003c\u003e]|\u003c[^\u003c\u003e]*\u003e)*\u003e)*\u003e(?=\\s*\\()/g,\n\t\tinside: {\n\t\t\t'generic': {\n\t\t\t\tpattern: /\u003c[\\s\\S]+/, // everything after the first \u003c\n\t\t\t\talias: 'class-name',\n\t\t\t\tinside: typeInside\n\t\t\t},\n\t\t\t'function': /\\S+/\n\t\t}\n\t}\n});\n","import { Token, languages, tokenize, withoutTokenizer } from '../core.js';\nimport { clone, insertBefore } from './language.js';\nimport { clikeComment } from './patterns.js';\nimport { replace, re } from './shared.js';\n\nvar space = /\\s|\\/\\/.*(?!.)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\//.source;\nvar braces = /\\{(?:[^{}]|\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})*\\})*\\}/.source;\n\n/**\n * @param {string} code\n * @param {*} grammar\n */\nvar tokenizer = (code, grammar) =\u003e {\n\tvar position = 0, tokens = withoutTokenizer(code, grammar);\n\tvar i = 0, openedTags = [], l = 0;\n\tvar token;\n\tvar j = 0;\n\tvar textStartPos;\n\tvar content;\n\tvar last;\n\tvar addStoredText = () =\u003e {\n\t\tif (textStartPos) {\n\t\t\tcontent = code.slice(textStartPos, position);\n\t\t\ttokens[j++] = new Token('plain-text', content, content);\n\t\t\ttextStartPos = 0;\n\t\t}\n\t};\n\n\tfor ( ; token = tokens[i]; i++, position += length) {\n\t\tvar length = token.length;\n\t\tvar isNeverText = token.type;\n\t\tvar tag, start;\n\n\t\tif (isNeverText) {\n\t\t\tcontent = token.content;\n\t\t\tif (isNeverText == 'tag') {\n\t\t\t\t// We found a tag, now find its kind\n\t\t\t\tstart = content[0].length;\n\t\t\t\ttag = content[2] ? code.substr(position + start, content[1].length) : '';\n\t\t\t\tif (start \u003e 1) {\n\t\t\t\t\t// Closing tag\n\t\t\t\t\tif (l \u0026\u0026 last[0] == tag) {\n\t\t\t\t\t\t// Pop matching opening tag\n\t\t\t\t\t\tlast = openedTags[--l - 1];\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (content[content.length - 1].length \u003c 2) {\n\t\t\t\t\t\t// Opening tag\n\t\t\t\t\t\topenedTags[l++] = last = [tag, 0];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (l \u0026\u0026 isNeverText == 'punctuation') {\n\t\t\t\tif (content == '{') last[1]++;\n\t\t\t\telse if (last[1] \u0026\u0026 content == '}') last[1]--;\n\t\t\t\telse {\n\t\t\t\t\tisNeverText = \"}()[]\".includes(content);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisNeverText = false;\n\t\t\t}\n\t\t}\n\t\tif (!isNeverText \u0026\u0026 l \u0026\u0026 !last[1]) {\n\t\t\t// Here we are inside a tag, and not inside a JSX context.\n\t\t\t// That's plain text: drop any tokens matched.\n\t\t\tif (!textStartPos) {\n\t\t\t\ttextStartPos = position;\n\t\t\t}\n\t\t} else {\n\t\t\taddStoredText();\n\t\t\ttokens[j++] = token;\n\t\t}\n\t}\n\taddStoredText();\n\ttokens.length = j;\n\treturn tokens;\n};\n\n/**\n * Adds JSX tags along with the custom tokenizer to the grammar\n * @param {any} grammar\n * @param {string} name\n */\nvar addJsxTag = (grammar, name) =\u003e {\n\tinsertBefore(languages[name] = grammar = clone(grammar), 'regex', {\n\t\t'tag': {\n\t\t\tpattern: re(\n\t\t\t\t/\u003c\\/?(?:(?!\\d)[^\\s%=\u003c\u003e/]+(?:\u003c0\u003e(?:\u003c0\u003e*(?:[^\\s{=\u003c\u003e/*]+(?:\u003c0\u003e*=\u003c0\u003e*(?!\\s)(?:\"[^\"]*\"|'[^']*'|\u003c1\u003e)?|(?=[\\s/\u003e]))|\u003c1\u003e))*)?\u003c0\u003e*\\/?)?\u003e/.source, [space, braces], 'g'\n\t\t\t),\n\t\t\tinside: {\n\t\t\t\t'punctuation': /^\u003c\\/?|\\/?\u003e$/,\n\t\t\t\t'tag': {\n\t\t\t\t\tpattern: /^[^\\s/\u003c]+/,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'namespace': /^[^:]+:/,\n\t\t\t\t\t\t'class-name': /^[A-Z]\\w*(?:\\.[A-Z]\\w*)*$/\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'attr-value': {\n\t\t\t\t\tpattern: re(/(=\u003c0\u003e*)(?:\"[^\"]*\"|'[^']*')/.source, [space]),\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'punctuation': /^[\"']|[\"']$/g\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'expression': {\n\t\t\t\t\tpattern: RegExp(braces, 'g'),\n\t\t\t\t\talias: 'language-' + name,\n\t\t\t\t\tinside: grammar\n\t\t\t\t},\n\t\t\t\t'comment': clikeComment,\n\t\t\t\t'attr-equals': /=/,\n\t\t\t\t'attr-name': {\n\t\t\t\t\tpattern: /\\S+/,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'namespace': /^[^:]+:/\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\tgrammar[tokenize] = tokenizer;\n\treturn grammar;\n};\n\nexport { addJsxTag, space, braces };\n","import { languages } from '../core.js';\nimport { addJsxTag } from '../utils/jsx-shared.js';\nimport './javascript.js';\n\naddJsxTag(languages.js, 'jsx');\n","import { languages } from '../core.js';\nimport { boolean, clikeComment, clikePunctuation } from '../utils/patterns.js';\n\nvar interpolationInside = {\n\t'interpolation-punctuation': {\n\t\tpattern: /^.\\{?|\\}$/g,\n\t\talias: 'punctuation'\n\t},\n\t'expression': {\n\t\tpattern: /[\\s\\S]+/,\n\t}\n};\n\ninterpolationInside.expression.inside = languages.kts = languages.kt = languages.kotlin = {\n\t// https://kotlinlang.org/spec/expressions.html#string-interpolation-expressions\n\t'string-literal': [\n\t\t{\n\t\t\tpattern: /\"\"\"(?:[^$]|\\$(?:(?!\\{)|\\{[^{}]*\\}))*?\"\"\"/,\n\t\t\talias: 'multiline',\n\t\t\tinside: {\n\t\t\t\t'interpolation': {\n\t\t\t\t\tpattern: /\\$(?:[a-z_]\\w*|\\{[^{}]*\\})/i,\n\t\t\t\t\tinside: interpolationInside\n\t\t\t\t},\n\t\t\t\t'string': /[\\s\\S]+/\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tpattern: /\"(?:\\\\.|[^\\\\\\n\"$]|\\$(?:(?!\\{)|\\{[^{}]*\\}))*\"/,\n\t\t\talias: 'singleline',\n\t\t\tinside: {\n\t\t\t\t'interpolation': {\n\t\t\t\t\tpattern: /((?:^|[^\\\\])(?:\\\\\\\\)*)\\$(?:[a-z_]\\w*|\\{[^{}]*\\})/i,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\tinside: interpolationInside\n\t\t\t\t},\n\t\t\t\t'string': /[\\s\\S]+/\n\t\t\t}\n\t\t}\n\t],\n\t// https://kotlinlang.org/spec/expressions.html#character-literals\n\t'char': /'(?:[^\\\\\\n']|\\\\(?:.|u[a-fA-F\\d]{0,4}))'/g,\n\t'comment': clikeComment,\n\t'annotation': {\n\t\tpattern: /\\B@(?:\\w+:)?(?:[A-Z]\\w*|\\[[^\\]]+\\])/,\n\t\talias: 'builtin'\n\t},\n\t'keyword': {\n\t\t// The lookbehind prevents wrong highlighting of e.g. kotlin.properties.get\n\t\tpattern: /(^|[^.])\\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\\b/,\n\t\tlookbehind: true\n\t},\n\t'boolean': boolean,\n\t'label': {\n\t\tpattern: /\\b\\w+@|@\\w+/,\n\t\talias: 'symbol'\n\t},\n\t'function': {\n\t\tpattern: /(?:`[^\\n`]+`|\\b\\w+)(?=\\s*\\()|(\\.)(?:`[^\\n`]+`|\\w+)(?=\\s*\\{)/g,\n\t\tlookbehind: true\n\t},\n\t'number': /\\b(?:0[xX][a-fA-F\\d]+(?:_[a-fA-F\\d]+)*|0[bB][01]+(?:_[01]+)*|\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?(?:[eE][+-]?\\d+(?:_\\d+)*)?[fFL]?)\\b/,\n\t'operator': /--|\\+\\+|\u0026\u0026|\\|\\||-\u003e|[!=]==|!!|[%!=\u003c\u003e/*+-]=?|[?:]:?|\\.\\.|\\b(?:and|inv|shl|u?shr|x?or)\\b/,\n\t'punctuation': clikePunctuation\n};\n","import { languages, tokenize, tokenizeText } from '../core.js';\nimport { clikePunctuation } from '../utils/patterns.js';\nimport { embeddedIn } from '../utils/templating.js';\nimport './markup.js';\n\nvar backslashPunctuation = {\n\t'punctuation': /\\\\/\n};\nvar comment = /\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*|#(?!\\[).*/;\nvar constant = [\n\t{\n\t\tpattern: /\\b(?:false|true)\\b/i,\n\t\talias: 'boolean'\n\t},\n\t{\n\t\tpattern: /(::\\s*)\\b[a-z_]\\w*\\b(?!\\s*\\()/gi,\n\t\tlookbehind: true\n\t},\n\t{\n\t\tpattern: /(\\b(?:case|const)\\s+)\\b[a-z_]\\w*(?=\\s*[;=])/gi,\n\t\tlookbehind: true\n\t},\n\t/\\b(?:null)\\b/i,\n\t/\\b[A-Z_][A-Z\\d_]*\\b(?!\\s*\\()/,\n];\nvar number = /\\b0b[01]+(?:_[01]+)*\\b|\\b0o[0-7]+(?:_[0-7]+)*\\b|\\b0x[a-f\\d]+(?:_[a-f\\d]+)*\\b|(?:\\b\\d+(?:_\\d+)*\\.?(?:\\d+(?:_\\d+)*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i;\nvar operator = /\u003c?=\u003e|\\?\\?=?|\\.{3}|\\??-\u003e|[!=]==|::|--|\\+\\+|\u0026\u0026|\\*\\*=?|\\|\\||\u003e\u003e|\u003c\u003c|[?~]|[.%\u0026|^!=\u003c\u003e/*+-]=?/;\nvar stringInterpolation = {\n\tpattern: /\\{\\$(?:[^{}]|\\{(?:[^{}]|\\{[^}]+\\})*\\})*\\}|(^|[^\\\\{])\\$+(?:\\w+(?:\\[[^\\n[\\]]*\\]|-\u003e\\w+)?)/,\n\tlookbehind: true\n};\nvar string = [\n\t{\n\t\tpattern: /\u003c\u003c\u003c'([^']+)'\\n(?:.*\\n)*?\\1;/g,\n\t\talias: 'nowdoc-string',\n\t\tinside: {\n\t\t\t'delimiter': {\n\t\t\t\tpattern: /^\u003c\u003c\u003c'[^']+'|[a-z_]\\w*;$/i,\n\t\t\t\talias: 'symbol',\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /^\u003c\u003c\u003c'?|[';]$/\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tpattern: /\u003c\u003c\u003c(?:\"([^\"]+)\"\\n(?:.*\\n)*?\\1;|([a-z_]\\w*)\\n(?:.*\\n)*?\\2;)/gi,\n\t\talias: 'heredoc-string',\n\t\tinside: {\n\t\t\t'delimiter': {\n\t\t\t\tpattern: /^\u003c\u003c\u003c(?:\"[^\"]+\"|[a-z_]\\w*)|[a-z_]\\w*;$/i,\n\t\t\t\talias: 'symbol',\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /^\u003c\u003c\u003c\"?|[\";]$/\n\t\t\t\t}\n\t\t\t},\n\t\t\t'interpolation': stringInterpolation\n\t\t}\n\t},\n\t{\n\t\tpattern: /`(?:\\\\[\\s\\S]|[^\\\\`])*`/g,\n\t\talias: 'backtick-quoted-string',\n\t},\n\t{\n\t\tpattern: /'(?:\\\\[\\s\\S]|[^\\\\'])*'/g,\n\t\talias: 'single-quoted-string',\n\t},\n\t{\n\t\tpattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/g,\n\t\talias: 'double-quoted-string',\n\t\tinside: {\n\t\t\t'interpolation': stringInterpolation\n\t\t}\n\t}\n];\n\nvar php = stringInterpolation.inside = {\n\t'delimiter': {\n\t\tpattern: /^\u003c\\?(?:php(?=\\s)|=)?|\\?\u003e$/gi,\n\t\talias: 'important'\n\t},\n\t'doc-comment': {\n\t\tpattern: /\\/\\*\\*(?!\\/)[\\s\\S]*?\\*\\//g,\n\t\talias: 'comment',\n\t\tinside: 'phpdoc'\n\t},\n\t'comment': comment,\n\t'string': string,\n\t'attribute': {\n\t\tpattern: /#\\[(?:[^\"'\\/#]|\\/(?![*/])|\\/\\/.*$|#(?!\\[).*$|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*')+\\](?=\\s*[a-z$#])/img,\n\t\tinside: {\n\t\t\t'attribute-content': {\n\t\t\t\tpattern: /^(..)[\\s\\S]+(?=.)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\t// inside can appear subset of php\n\t\t\t\tinside: {\n\t\t\t\t\t'comment': comment,\n\t\t\t\t\t'string': string,\n\t\t\t\t\t'attribute-class-name': [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpattern: /([^:]|^)\\b[a-z_]\\w*(?!\\\\)\\b/gi,\n\t\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\t\talias: 'class-name'\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpattern: /([^:]|^)(?:\\\\?\\b[a-z_]\\w*)+/gi,\n\t\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\t\talias: 'class-name class-name-fully-qualified',\n\t\t\t\t\t\t\tinside: backslashPunctuation\n\t\t\t\t\t\t}\n\t\t\t\t\t],\n\t\t\t\t\t'constant': constant,\n\t\t\t\t\t'number': number,\n\t\t\t\t\t'operator': operator,\n\t\t\t\t\t'punctuation': clikePunctuation\n\t\t\t\t}\n\t\t\t},\n\t\t\t'delimiter': {\n\t\t\t\tpattern: /.+/,\n\t\t\t\talias: 'punctuation'\n\t\t\t}\n\t\t}\n\t},\n\t'variable': /\\$+(?:\\w+|(?=\\{))/,\n\t'package': {\n\t\tpattern: /(namespace\\s+|use\\s+(?:function\\s+)?)(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n\t\tlookbehind: true,\n\t\tinside: backslashPunctuation\n\t},\n\t'class-name-definition': {\n\t\tpattern: /(\\b(?:class|enum|interface|trait)\\s+)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n\t\tlookbehind: true,\n\t\talias: 'class-name'\n\t},\n\t'function-definition': {\n\t\tpattern: /(\\bfunction\\s+)[a-z_]\\w*(?=\\s*\\()/i,\n\t\tlookbehind: true,\n\t\talias: 'function'\n\t},\n\t'keyword': [\n\t\t{\n\t\t\tpattern: /(\\(\\s*)\\b(?:array|bool|boolean|float|int|integer|object|string)\\b(?=\\s*\\))/gi,\n\t\t\tlookbehind: true,\n\t\t\talias: 'type-casting'\n\t\t},\n\t\t{\n\t\t\tpattern: /([(,?]\\s*)\\b(?:array(?!\\s*\\()|bool|callable|(?:false|null)(?=\\s*\\|)|float|int|iterable|mixed|object|self|static|string)\\b(?=\\s*\\$)/gi,\n\t\t\tlookbehind: true,\n\t\t\talias: 'type-hint'\n\t\t},\n\t\t{\n\t\t\tpattern: /(\\)\\s*:\\s*(?:\\?\\s*)?)\\b(?:array(?!\\s*\\()|bool|callable|(?:false|null)(?=\\s*\\|)|float|int|iterable|mixed|never|object|self|static|string|void)\\b/gi,\n\t\t\tlookbehind: true,\n\t\t\talias: 'return-type'\n\t\t},\n\t\t{\n\t\t\tpattern: /\\b(?:array(?!\\s*\\()|bool|float|int|iterable|mixed|object|string|void)\\b|(\\|\\s*)(?:false|null)\\b|\\b(?:false|null)(?=\\s*\\|)/gi,\n\t\t\tlookbehind: true,\n\t\t\talias: 'type-declaration'\n\t\t},\n\t\t{\n\t\t\tpattern: /\\b(?:parent|self|static)(?=\\s*::)/gi,\n\t\t\talias: 'static-context'\n\t\t},\n\t\t{\n\t\t\t// yield from\n\t\t\t// `class` is always a keyword unlike other keywords\n\t\t\tpattern: /(\\byield\\s+)from\\b|\\bclass\\b/gi,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\t// https://www.php.net/manual/en/reserved.keywords.php\n\t\t\t//\n\t\t\t// keywords cannot be preceded by \"-\u003e\"\n\t\t\t// the complex lookbehind means `(?\u003c!(?:-\u003e|::)\\s*)`\n\t\t\tpattern: /((?:^|[^\\s\u003e:]|(?:^|[^-])\u003e|(?:^|[^:]):)\\s*)\\b(?:abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|[fx]?or|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|never|new|parent|print|private|protected|public|readonly|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|yield|__halt_compiler)\\b/i,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'argument-name': {\n\t\tpattern: /([(,]\\s*)\\b[a-z_]\\w*(?=\\s*:(?!:))/i,\n\t\tlookbehind: true\n\t},\n\t'class-name': [\n\t\t{\n\t\t\tpattern: /(\\b(?:extends|implements|instanceof|new(?!\\s+self|\\s+static))\\s+|\\bcatch\\s*\\()\\b[a-z_]\\w*(?!\\\\)\\b/gi,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(\\|\\s*)\\b[a-z_]\\w*(?!\\\\)\\b|\\b[a-z_]\\w*(?!\\\\)\\b(?=\\s*\\|)/gi,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(\\|\\s*)(?:\\\\?\\b[a-z_]\\w*)+\\b|(?:\\\\?\\b[a-z_]\\w*)+\\b(?=\\s*\\|)/gi,\n\t\t\tlookbehind: true,\n\t\t\talias: 'class-name-fully-qualified',\n\t\t\tinside: backslashPunctuation\n\t\t},\n\t\t{\n\t\t\tpattern: /(\\b(?:extends|implements|instanceof|new(?!\\s+self\\b|\\s+static\\b))\\s+|\\bcatch\\s*\\()(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/gi,\n\t\t\tlookbehind: true,\n\t\t\talias: 'class-name-fully-qualified',\n\t\t\tinside: backslashPunctuation\n\t\t},\n\t\t{\n\t\t\tpattern: /\\b[a-z_]\\w*(?=\\s*\\$)/gi,\n\t\t\talias: 'type-declaration',\n\t\t},\n\t\t{\n\t\t\tpattern: /(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*\\$)/gi,\n\t\t\talias: 'class-name-fully-qualified type-declaration',\n\t\t\tinside: backslashPunctuation\n\t\t},\n\t\t{\n\t\t\tpattern: /\\b[a-z_]\\w*(?=\\s*::)/gi,\n\t\t\talias: 'static-context'\n\t\t},\n\t\t{\n\t\t\tpattern: /(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*::)/gi,\n\t\t\talias: 'class-name-fully-qualified static-context',\n\t\t\tinside: backslashPunctuation\n\t\t},\n\t\t{\n\t\t\tpattern: /([(,?]\\s*)[a-z_]\\w*(?=\\s*\\$)/gi,\n\t\t\tlookbehind: true,\n\t\t\talias: 'type-hint',\n\t\t},\n\t\t{\n\t\t\tpattern: /([(,?]\\s*)(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*\\$)/gi,\n\t\t\tlookbehind: true,\n\t\t\talias: 'class-name-fully-qualified type-hint',\n\t\t\tinside: backslashPunctuation\n\t\t},\n\t\t{\n\t\t\tpattern: /(\\)\\s*:\\s*(?:\\?\\s*)?)\\b[a-z_]\\w*(?!\\\\)\\b/gi,\n\t\t\talias: 'return-type',\n\t\t\tlookbehind: true,\n\t\t},\n\t\t{\n\t\t\tpattern: /(\\)\\s*:\\s*(?:\\?\\s*)?)(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/gi,\n\t\t\tlookbehind: true,\n\t\t\talias: 'class-name-fully-qualified return-type',\n\t\t\tinside: backslashPunctuation\n\t\t}\n\t],\n\t'constant': constant,\n\t'function': {\n\t\tpattern: /(^|[^\\\\\\w])\\\\?[a-z_](?:[\\w\\\\]*\\w)?(?=\\s*\\()/i,\n\t\tlookbehind: true,\n\t\tinside: backslashPunctuation\n\t},\n\t'property': {\n\t\tpattern: /(-\u003e\\s*)\\w+/,\n\t\tlookbehind: true\n\t},\n\t'number': number,\n\t'operator': operator,\n\t'punctuation': clikePunctuation\n};\n\nvar embedded = embeddedIn('html');\n\nlanguages.php = {\n\t'php': {\n\t\tpattern: /\u003c\\?(?:[^\"'/#]|\\/(?![*/])|([\"'])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|(?:\\/\\/|#(?!\\[))(?:[^\\n?]|\\?(?!\u003e))*(?=$|\\?\u003e|\\n)|#\\[|\\/\\*(?:[^*]|\\*(?!\\/))*(?:\\*\\/|$))*?(?:\\?\u003e|$)/,\n\t\talias: 'language-php',\n\t\tinside: php,\n\t},\n\t[tokenize]: (code, grammar) =\u003e {\n\t\tif (code.includes(\"\u003c?\")) return embedded(code, grammar);\n\t\treturn tokenizeText(code, php);\n\t}\n};\n","import { languages } from '../core.js';\nimport { insertBefore } from '../utils/language.js';\nimport './php.js';\n\ninsertBefore(languages.php.php.inside, 'variable', {\n\t'this': {\n\t\tpattern: /\\$this\\b/,\n\t\talias: 'keyword'\n\t},\n\t'global': /\\$(?:GLOBALS|HTTP_RAW_POST_DATA|_COOKIE|_ENV|_FILES|_GET|_POST|_REQUEST|_SERVER|_SESSION|arg[cv]|http_response_header|php_errormsg)\\b/,\n\t'scope': {\n\t\tpattern: /\\b[\\w\\\\]+::/,\n\t\tinside: {\n\t\t\t'keyword': /\\b(?:parent|self|static)\\b/,\n\t\t\t'punctuation': /::|\\\\/\n\t\t}\n\t}\n});\n","import { languages } from '../core.js';\nimport { extend, insertBefore } from '../utils/language.js';\nimport { clikeComment } from '../utils/patterns.js';\nimport './css.js';\n\n/* FIXME :\n :extend() is not handled specifically : its highlighting is buggy.\n Mixin usage must be inside a ruleset to be highlighted.\n At-rules (e.g. import) containing interpolations are buggy.\n Detached rulesets are highlighted as at-rules.\n A comment before a mixin usage prevents the latter to be properly highlighted.\n */\n\ninsertBefore(\n\tlanguages.less = extend('css', {\n\t\t'comment': clikeComment,\n\t\t'atrule': {\n\t\t\tpattern: /@[\\w-](?:\\((?:[^(){}]|\\([^(){}]*\\))*\\)|[^(){};\\s]|\\s+(?!\\s))*?(?=\\s*\\{)/,\n\t\t\tinside: {\n\t\t\t\t'punctuation': /[():]/\n\t\t\t}\n\t\t},\n\t\t// selectors and mixins are considered the same\n\t\t'selector': {\n\t\t\tpattern: /(?:@\\{[\\w-]+\\}|[^{};\\s@])(?:@\\{[\\w-]+\\}|\\((?:[^(){}]|\\([^(){}]*\\))*\\)|[^(){};@\\s]|\\s+(?!\\s))*?(?=\\s*\\{)/,\n\t\t\tinside: {\n\t\t\t\t// mixin parameters\n\t\t\t\t'variable': /@+[\\w-]+/\n\t\t\t}\n\t\t},\n\t\t'variable': [\n\t\t\t// Variable declaration (the colon must be consumed!)\n\t\t\t{\n\t\t\t\tpattern: /@[\\w-]+\\s*:/,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /:/\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// Variable usage\n\t\t\t/@@?[\\w-]+/\n\t\t],\n\t\t'property': /(?:@\\{[\\w-]+\\}|[\\w-])+(?:\\+_?)?(?=\\s*:)/,\n\t\t'operator': /[/*+-]/\n\t}),\n\t'property', {\n\t\t'mixin-usage': {\n\t\t\tpattern: /([{;]\\s*)[.#](?!\\d)[\\w-].*?(?=[(;])/,\n\t\t\tlookbehind: true,\n\t\t\talias: 'function'\n\t\t}\n\t}\n);\n","import { languages } from '../core.js';\nimport { clikeString } from '../utils/patterns.js';\n\nlanguages.makefile = {\n\t'comment': /#(?:\\\\[\\s\\S]|[^\\\\\\n])*/,\n\t'string': clikeString,\n\n\t'builtin-target': {\n\t\tpattern: /\\.[A-Z][^:#=\\s]+(?=\\s*:(?!=))/,\n\t\talias: 'builtin'\n\t},\n\n\t'target': {\n\t\tpattern: /^(?:[^:=\\s]|[ \\t]+(?![\\s:]))+(?=\\s*:(?!=))/m,\n\t\talias: 'symbol',\n\t\tinside: {\n\t\t\t'variable': /\\$+(?:(?!\\$)[^(){}:#=\\s]+|(?=[({]))/\n\t\t}\n\t},\n\t'variable': /\\$+(?:(?!\\$)[^(){}:#=\\s]+|\\([@*%\u003c^+?][DF]\\)|(?=[({]))/,\n\n\t// Directives\n\t'keyword': /-include\\b|\\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|override|private|s?include|undefine|unexport|vpath)\\b/,\n\n\t'function': {\n\t\tpattern: /(\\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \\t])/,\n\t\tlookbehind: true\n\t},\n\t'operator': /(?:::|[?:+!])?=|[|@]/,\n\t'punctuation': /[:;(){}]/\n};\n","import { languages, tokenizeText, tokenize, withoutTokenizer } from '../core.js';\nimport { clone, insertBefore } from '../utils/language.js';\nimport { re, replace } from '../utils/shared.js';\nimport './markup.js';\n\n// Allow only one line break\nvar inner = [/(?:\\\\.|[^\\\\\\n]|\\n(?!\\n))/.source];\n\n/**\n * This function is intended for the creation of the bold or italic pattern.\n *\n * This also adds a lookbehind group to the given pattern to ensure that the pattern is not backslash-escaped.\n *\n * _Note:_ Keep in mind that this adds a capturing group.\n *\n * @param {string} pattern\n * @returns {RegExp}\n */\nvar createInline = pattern =\u003e re(`((?:^|[^\\\\\\\\])(?:\\\\\\\\\\\\\\\\)*)(?:${pattern})`, inner, 'g');\nvar tableCell = /(?:\\\\.|``(?:[^\\n`]|`(?!`))+``|`[^\\n`]+`|[^\\\\\\n|`])+/;\nvar tableRow = replace(/\\|?\u003c0\u003e(?:\\|\u003c0\u003e)+\\|?(?:\\n|(?![\\s\\S]))/.source, [tableCell.source]);\nvar tableLine = /\\|?[ \\t]*:?-{3,}:?[ \\t]*(?:\\|[ \\t]*:?-{3,}:?[ \\t]*)+\\|?\\n/.source;\nvar markdown = languages.md = languages.markdown = clone(languages.html);\n\ninsertBefore(markdown, 'prolog', {\n\t'front-matter-block': {\n\t\tpattern: /(^(?:\\s*\\n)?)---(?!.)[\\s\\S]*?\\n---(?!.)/g,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'punctuation': /^---|---$/,\n\t\t\t'front-matter': {\n\t\t\t\tpattern: /\\S(?:[\\s\\S]*\\S)?/,\n\t\t\t\talias: 'language-yaml',\n\t\t\t\tinside: 'yaml'\n\t\t\t}\n\t\t}\n\t},\n\t'blockquote': {\n\t\t// \u003e ...\n\t\tpattern: /^\u003e(?:[ \\t]*\u003e)*/m,\n\t\talias: 'punctuation'\n\t},\n\t'table': {\n\t\tpattern: RegExp('^' + tableRow + tableLine + '(?:' + tableRow + ')*', 'm'),\n\t\tinside: {\n\t\t\t'table-header-row': {\n\t\t\t\tpattern: /^.+/,\n\t\t\t\tinside: {\n\t\t\t\t\t'table-header': {\n\t\t\t\t\t\tpattern: tableCell,\n\t\t\t\t\t\talias: 'important',\n\t\t\t\t\t\tinside: markdown\n\t\t\t\t\t},\n\t\t\t\t\t'punctuation': /\\|/\n\t\t\t\t}\n\t\t\t},\n\t\t\t'table-data-rows': {\n\t\t\t\tpattern: /(.+\\n)[\\s\\S]+/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'table-data': {\n\t\t\t\t\t\tpattern: tableCell,\n\t\t\t\t\t\tinside: markdown\n\t\t\t\t\t},\n\t\t\t\t\t'punctuation': /\\|/\n\t\t\t\t}\n\t\t\t},\n\t\t\t'table-line': {\n\t\t\t\tpattern: /.+/,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /\\S+/\n\t\t\t\t}\n\t\t\t},\n\t\t}\n\t},\n\t'code': [\n\t\t{\n\t\t\t// Prefixed by 4 spaces or 1 tab and preceded by an empty line\n\t\t\tpattern: /(^[ \\t]*\\n)(?:    |\\t).+(?:\\n(?:    |\\t).+)*/m,\n\t\t\tlookbehind: true,\n\t\t\talias: 'keyword'\n\t\t},\n\t\t{\n\t\t\t// ```optional language\n\t\t\t// code block\n\t\t\t// ```\n\t\t\tpattern: /^(```+)[^`][\\s\\S]*?^\\1`*$/mg,\n\t\t\tinside: {\n\t\t\t\t'punctuation': /^`+|`+$/,\n\t\t\t\t'code-language': /^.+/,\n\t\t\t\t'code-block': /(?!^)[\\s\\S]+(?=\\n)/,\n\t\t\t\t[tokenize](code, grammar) {\n\t\t\t\t\tvar tokens = withoutTokenizer(code, grammar);\n\t\t\t\t\tvar language;\n\n\t\t\t\t\tif (tokens[5]) {\n\t\t\t\t\t\tlanguage = (/[a-z][\\w-]*/i.exec(\n\t\t\t\t\t\t\ttokens[1].content.replace(/\\b#/g, 'sharp').replace(/\\b\\+\\+/g, 'pp')\n\t\t\t\t\t\t) || [''])[0].toLowerCase();\n\n\t\t\t\t\t\ttokens[3].alias = 'language-' + language;\n\t\n\t\t\t\t\t\tif (grammar = languages[language]) {\n\t\t\t\t\t\t\ttokens[3].content = tokenizeText(tokens[3].content, grammar);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn tokens;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t],\n\t'title': [\n\t\t{\n\t\t\t// title 1\n\t\t\t// =======\n\n\t\t\t// title 2\n\t\t\t// -------\n\t\t\tpattern: /\\S.*\\n(?:==+|--+)(?=[ \\t]*$)/m,\n\t\t\talias: 'important',\n\t\t\tinside: {\n\t\t\t\tpunctuation: /=+$|-+$/\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t// # title 1\n\t\t\t// ###### title 6\n\t\t\tpattern: /(^\\s*)#.+/m,\n\t\t\tlookbehind: true,\n\t\t\talias: 'important',\n\t\t\tinside: {\n\t\t\t\tpunctuation: /^#+|#+$/\n\t\t\t}\n\t\t}\n\t],\n\t'hr': {\n\t\t// ***\n\t\t// ---\n\t\t// * * *\n\t\t// -----------\n\t\tpattern: /(^\\s*)([*-])(?:[ \\t]*\\2){2,}(?=\\s*$)/m,\n\t\tlookbehind: true,\n\t\talias: 'punctuation'\n\t},\n\t'list': {\n\t\t// * item\n\t\t// + item\n\t\t// - item\n\t\t// 1. item\n\t\tpattern: /(^\\s*)(?:[*+-]|\\d+\\.)(?=[ \\t].)/m,\n\t\tlookbehind: true,\n\t\talias: 'punctuation'\n\t},\n\t'url-reference': {\n\t\t// [id]: http://example.com \"Optional title\"\n\t\t// [id]: http://example.com 'Optional title'\n\t\t// [id]: http://example.com (Optional title)\n\t\t// [id]: \u003chttp://example.com\u003e \"Optional title\"\n\t\tpattern: /!?\\[[^\\]]+\\]:[ \\t]+(?:\\S+|\u003c(?:\\\\.|[^\\\\\u003e])+\u003e)(?:[ \\t]+(?:\"(?:\\\\.|[^\\\\\"])*\"|'(?:\\\\.|[^\\\\'])*'|\\((?:\\\\.|[^\\\\)])*\\)))?/,\n\t\tinside: {\n\t\t\t'variable': {\n\t\t\t\tpattern: /^(!?\\[)[^\\]]+/,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t'string': /(?:\"(?:\\\\.|[^\\\\\"])*\"|'(?:\\\\.|[^\\\\'])*'|\\((?:\\\\.|[^\\\\)])*\\))$/,\n\t\t\t'punctuation': /^[[\\]!:]|\u003c|\u003e/\n\t\t},\n\t\talias: 'url'\n\t},\n\t'bold': {\n\t\t// **strong**\n\t\t// __strong__\n\n\t\t// allow one nested instance of italic text using the same delimiter\n\t\tpattern: createInline(/\\b__(?:(?!_)\u003c0\u003e|_(?:(?!_)\u003c0\u003e)+_)+__\\b|\\*\\*(?:(?!\\*)\u003c0\u003e|\\*(?:(?!\\*)\u003c0\u003e)+\\*)+\\*\\*/.source),\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'content': {\n\t\t\t\tpattern: /(^..)[\\s\\S]+(?=..)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {} // see below\n\t\t\t},\n\t\t\t'punctuation': /../\n\t\t}\n\t},\n\t'italic': {\n\t\t// *em*\n\t\t// _em_\n\n\t\t// allow one nested instance of bold text using the same delimiter\n\t\tpattern: createInline(/\\b_(?:(?!_)\u003c0\u003e|__(?:(?!_)\u003c0\u003e)+__)+_\\b|\\*(?:(?!\\*)\u003c0\u003e|\\*\\*(?:(?!\\*)\u003c0\u003e)+\\*\\*)+\\*/.source),\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'content': {\n\t\t\t\tpattern: /(?!^)[\\s\\S]+(?=.)/,\n\t\t\t\tinside: {} // see below\n\t\t\t},\n\t\t\t'punctuation': /./\n\t\t}\n\t},\n\t'strike': {\n\t\t// ~~strike through~~\n\t\t// ~strike~\n\t\t// eslint-disable-next-line regexp/strict\n\t\tpattern: createInline(/(~~?)(?:(?!~)\u003c0\u003e)+\\2/.source),\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'punctuation': /^~~?|~~?$/,\n\t\t\t'content': {\n\t\t\t\tpattern: /[\\s\\S]+/,\n\t\t\t\tinside: {} // see below\n\t\t\t},\n\t\t}\n\t},\n\t'code-snippet': {\n\t\t// `code`\n\t\t// ``code``\n\t\tpattern: /(^|[^\\\\`])(`+)[^\\n`](?:|.*?[^\\n`])\\2(?!`)/g,\n\t\tlookbehind: true,\n\t\talias: 'code keyword'\n\t},\n\t'url': {\n\t\t// [example](http://example.com \"Optional title\")\n\t\t// [example][id]\n\t\t// [example] [id]\n\t\tpattern: createInline(/!?\\[(?:(?!\\])\u003c0\u003e)+\\](?:\\([^\\s)]+(?:[ \\t]+\"(?:\\\\.|[^\\\\\"])*\")?\\)|[ \\t]?\\[(?:(?!\\])\u003c0\u003e)+\\])/.source),\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'operator': /^!/,\n\t\t\t'content': {\n\t\t\t\tpattern: /(^\\[)[^\\]]+(?=\\])/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {} // see below\n\t\t\t},\n\t\t\t'variable': {\n\t\t\t\tpattern: /(^\\][ \\t]?\\[)[^\\]]+(?=\\]$)/,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t'url': {\n\t\t\t\tpattern: /(^\\]\\()[^\\s)]+/,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t'string': {\n\t\t\t\tpattern: /(^[ \\t]+)\"(?:\\\\.|[^\\\\\"])*\"(?=\\)$)/,\n\t\t\t\tlookbehind: true\n\t\t\t},\n\t\t\t'markup-bracket': markdown['markup-bracket']\n\t\t}\n\t}\n});\n\n['url', 'bold', 'italic', 'strike'].forEach(token =\u003e {\n\t['url', 'bold', 'italic', 'strike', 'code-snippet', 'markup-bracket'].forEach(inside =\u003e {\n\t\tif (token != inside) {\n\t\t\tmarkdown[token].inside.content.inside[inside] = markdown[inside];\n\t\t}\n\t});\n});\n","import { languages } from '../core.js';\nimport { extend } from '../utils/language.js';\nimport './c.js';\n\nlanguages.objc = languages.objectivec = extend('c', {\n\t'string': /@?\"(?:\\\\[\\s\\S]|[^\\\\\\n\"])*\"/g,\n\t'keyword': /\\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int?|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\\b/,\n\t'operator': /-[-\u003e]?|\\+\\+?|!=?|==?|\u003e\u003e?=?|\u003c\u003c?=?|\u0026\u0026?|\\|\\|?|[~^@%?/*]/\n});\n\ndelete languages.objc['class-name'];\n","import { languages } from '../core.js';\n\nvar brackets = /(?:\\((?:\\\\[\\s\\S]|[^\\\\()])*\\)|\\{(?:\\\\[\\s\\S]|[^\\\\{}])*\\}|\\[(?:\\\\[\\s\\S]|[^\\\\[\\]])*\\]|\u003c(?:\\\\[\\s\\S]|[^\\\\\u003c\u003e])*\u003e)/.source;\n\nvar a = `(?![a-zA-Z\\\\d])\\\\s*(?:([^\\\\sa-zA-Z\\\\d{([\u003c])(?:\\\\\\\\[\\\\s\\\\S]|(?!\\\\1)[^\\\\\\\\])*\\\\1|([a-zA-Z\\\\d])(?:\\\\\\\\[\\\\s\\\\S]|(?!\\\\2)[^\\\\\\\\])*\\\\2|${brackets})`;\n\nlanguages.perl = {\n\t'comment': [\n\t\t{\n\t\t\t// POD\n\t\t\tpattern: /(^\\s*)=\\w[\\s\\S]*?=cut.*/mg,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^\\\\$])#.*/g,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t// TODO Could be nice to handle Heredoc too.\n\t'string': RegExp(\n\t\t`\\\\bq[qwx]?${a}|(\"|\\`)(?:\\\\\\\\[\\\\s\\\\S]|(?!\\\\3)[^\\\\\\\\])*\\\\3|'(?:\\\\\\\\.|[^\\\\\\\\\\n'])*'`, 'g'\n\t),\n\t// The lookbehinds prevent -s from breaking\n\t'regex': [\n\t\tRegExp(`\\\\b(?:m|qr)${a}[msixpodualngc]*`, 'g'),\n\t\t{\n\t\t\tpattern: RegExp(\n\t\t\t\t`(^|[^-])\\\\b(?:s|tr|y)(?![a-zA-Z\\\\d])\\\\s*(?:([^\\\\sa-zA-Z\\\\d{([\u003c])(?:\\\\\\\\[\\\\s\\\\S]|(?!\\\\2)[^\\\\\\\\])*\\\\2(?:\\\\\\\\[\\\\s\\\\S]|(?!\\\\2)[^\\\\\\\\])*\\\\2|([a-zA-Z\\\\d])(?:\\\\\\\\[\\\\s\\\\S]|(?!\\\\3)[^\\\\\\\\])*\\\\3(?:\\\\\\\\[\\\\s\\\\S]|(?!\\\\3)[^\\\\\\\\])*\\\\3|${brackets}\\\\s*${brackets})[msixpodualngcer]*|/(?:\\\\\\\\.|[^\\\\\\\\\\n/])*/[msixpodualngc]*(?=\\\\s*(?:$|[\\n,.;})\u0026|*~\u003c\u003e!?^+-]|(?:and|cmp|eq|[gl][et]|ne|not|x|x?or)\\\\b))`, 'g'\n\t\t\t),\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\n\t// FIXME Not sure about the handling of ::, ', and #\n\t'variable': /[\u0026*$@%](?:\\{\\^[A-Z]+\\}|\\^[A-Z_]|#?(?=\\{)|#?(?:(?:::)*'?(?!\\d)[$\\w]+(?![$\\w]))+(?:::)*|\\d+)|(?!%=)[$@%][!\"#$%\u0026'*,./:;\u003c=\u003e?@()[\\]{}||^_`|~+-]/,\n\t'filehandle': {\n\t\t// \u003c\u003e, \u003cFOO\u003e, _\n\t\tpattern: /\u003c(?![\u003c=])\\S*?\u003e|\\b_\\b/,\n\t\talias: 'symbol'\n\t},\n\t'v-string': {\n\t\t// v1.2, 1.2.3\n\t\tpattern: /v\\d+(?:\\.\\d+)*|\\d+(?:\\.\\d+){2,}/,\n\t\talias: 'string'\n\t},\n\t'function': {\n\t\tpattern: /(\\bsub[ \\t]+)\\w+/,\n\t\tlookbehind: true\n\t},\n\t'keyword': /\\b(?:any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|return|say|state|sub|switch|undef|unless|until|use|when|while)\\b/,\n\t'number': /\\b(?:0x[a-fA-F\\d](?:_?[a-fA-F\\d])*|0b[01](?:_?[01])*|(?:(?:\\d(?:_?\\d)*)?\\.)?\\d(?:_?\\d)*(?:[Ee][+-]?\\d+)?)\\b/,\n\t'operator': /-[rwxoRWXOezsfdlpSbctugkTBMAC]\\b|-\u003e|=\u003e|=~|~~|\u003c=\u003e?|!~|--|\\+\\+|(?:\\*\\*|\\/\\/|\u0026\u0026|\\|\\||\u003c\u003c|\u003e\u003e|[~%\u0026|^!=\u003c\u003e/*+-])=?|\\.(?:=|\\.\\.?)?|[\\\\?]|\\bx(?:=|\\b)|\\b(?:and|cmp|eq|[gl][et]|ne|not|x?or)\\b/,\n\t'punctuation': /[()[\\]{},:;]/\n};\n","import { languages, rest } from '../core.js';\nimport { clikePunctuation, dotPunctuation } from '../utils/patterns.js';\n\nvar inside = {\n\t'format-spec': {\n\t\tpattern: /(:)[^(){}:]+(?=\\}$)/,\n\t\tlookbehind: true\n\t},\n\t'conversion-option': {\n\t\tpattern: /![sra](?=[:}]$)/,\n\t\talias: 'punctuation'\n\t}\n};\n\ninside[rest] = languages.py = languages.python = {\n\t'comment': /#.*/g,\n\t'string-interpolation': {\n\t\tpattern: /(?:fr?|rf)(?:(\"\"\"|''')[\\s\\S]*?\\1|([\"'])(?:\\\\[\\s\\S]|(?!\\2)[^\\\\\\n])*\\2)/gi,\n\t\tinside: {\n\t\t\t'interpolation': {\n\t\t\t\t// \"{\" \u003cexpression\u003e \u003coptional \"!s\", \"!r\", or \"!a\"\u003e \u003coptional \":\" format specifier\u003e \"}\"\n\t\t\t\tpattern: /((?:^|[^{])(?:\\{\\{)*)\\{(?!\\{)(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})*\\}/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: inside\n\t\t\t},\n\t\t\t'string': /[\\s\\S]+/\n\t\t}\n\t},\n\t'triple-quoted-string': {\n\t\tpattern: /(?:br?|rb?|u)?(\"\"\"|''')[\\s\\S]*?\\1/gi,\n\t\talias: 'string'\n\t},\n\t'string': /(?:br?|rb?|u)?([\"'])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\\\n])*\\1/gi,\n\t'function': {\n\t\tpattern: /((?:^|\\s)def[ \\t]+)(?!\\d)\\w+(?=\\s*\\()/,\n\t\tlookbehind: true\n\t},\n\t'class-name': {\n\t\tpattern: /(\\bclass\\s+)\\w+/i,\n\t\tlookbehind: true\n\t},\n\t'decorator': {\n\t\tpattern: /(^[ \\t]*)@\\w+(?:\\.\\w+)*/m,\n\t\tlookbehind: true,\n\t\talias: 'annotation punctuation',\n\t\tinside: dotPunctuation\n\t},\n\t'keyword': /\\b(?:_(?=\\s*:)|and|as|assert|async|await|break|case|class|continue|de[fl]|elif|else|except|exec|finally|f?or|from|global|i[fns]|import|lambda|match|nonlocal|not|pass|print|raise|return|try|while|with|yield)\\b/,\n\t'builtin': /\\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|ma[px]|memoryview|min|next|object|oct|open|ord|pow|property|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|x?range|zip)\\b/,\n\t'boolean': /\\b(?:False|True|None)\\b/,\n\t'number': /\\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f\\d])+)\\b|(?:\\b\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\B\\.\\d+(?:_\\d+)*)(?:e[+-]?\\d+(?:_\\d+)*)?j?(?!\\w)/i,\n\t'operator': /!=|:=|\\*\\*=?|\\/\\/=?|\u003c\u003e|\u003e\u003e|\u003c\u003c|[%=\u003c\u003e/*+-]=?|[\u0026|^~]/,\n\t'punctuation': clikePunctuation\n};\n","import { languages } from '../core.js';\n\nlanguages.r = {\n\t'comment': /#.*/,\n\t'string': /([\"'])(?:\\\\.|(?!\\1)[^\\\\\\n])*\\1/g,\n\t'percent-operator': {\n\t\t// Includes user-defined operators\n\t\t// and %%, %*%, %/%, %in%, %o%, %x%\n\t\tpattern: /%[^%\\s]*%/,\n\t\talias: 'operator'\n\t},\n\t'boolean': /\\b(?:FALSE|TRUE)\\b/,\n\t'ellipsis': /\\.\\.(?:\\.|\\d+)/,\n\t'number': [\n\t\t/\\b(?:Inf|NaN)\\b/,\n\t\t/(?:\\b0x[a-fA-F\\d]+(?:\\.\\d*)?|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[EePp][+-]?\\d+)?[iL]?/\n\t],\n\t'keyword': /\\b(?:NA|NA_character_|NA_complex_|NA_integer_|NA_real_|NULL|break|else|for|function|if|in|next|repeat|while)\\b/,\n\t'operator': /-\u003e\u003e?|\u003c=|\u003c\u003c?-|[!=\u003c\u003e]=?|::?|\u0026\u0026?|\\|\\|?|[~^$@/*+-]/,\n\t'punctuation': /[()[\\]{},;]/\n};\n","import { languages } from '../core.js';\n\nvar specialEscape = {\n\tpattern: /\\\\[\\\\()[\\]{}^$+*?|.]/,\n\talias: 'escape'\n};\nvar escape = /\\\\(?:x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}|u\\{[a-fA-F\\d]+\\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/;\nvar charSet = {\n\tpattern: /\\.|\\\\[wsd]|\\\\p\\{[^{}]+\\}/i,\n\talias: 'class-name'\n};\nvar charSetWithoutDot = {\n\tpattern: /\\\\[wsd]|\\\\p\\{[^{}]+\\}/i,\n\talias: 'class-name'\n};\n\nvar rangeChar = '(?:[^\\\\\\\\-]|' + escape.source + ')';\nvar range = RegExp(rangeChar + '-' + rangeChar);\n\n// the name of a capturing group\nvar groupName = {\n\tpattern: /(\u003c|')[^\u003c\u003e']+(?=[\u003e']$)/,\n\tlookbehind: true,\n\talias: 'variable'\n};\n\nlanguages.regex = {\n\t'char-class': {\n\t\tpattern: /((?:^|[^\\\\])(?:\\\\\\\\)*)\\[(?:\\\\[\\s\\S]|[^\\\\\\]])*\\]/,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'char-class-punctuation': {\n\t\t\t\tpattern: /^.|.$/g,\n\t\t\t\talias: 'punctuation'\n\t\t\t},\n\t\t\t'char-class-negation': {\n\t\t\t\tpattern: /^\\^/,\n\t\t\t\talias: 'operator'\n\t\t\t},\n\t\t\t'range': {\n\t\t\t\tpattern: range,\n\t\t\t\tinside: {\n\t\t\t\t\t'escape': escape,\n\t\t\t\t\t'range-punctuation': {\n\t\t\t\t\t\tpattern: /-/,\n\t\t\t\t\t\talias: 'operator'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t'special-escape': specialEscape,\n\t\t\t'char-set': charSetWithoutDot,\n\t\t\t'escape': escape\n\t\t}\n\t},\n\t'special-escape': specialEscape,\n\t'char-set': charSet,\n\t'backreference': [\n\t\t{\n\t\t\t// a backreference which is not an octal escape\n\t\t\tpattern: /\\\\(?![123][0-7]{2})[1-9]/,\n\t\t\talias: 'keyword'\n\t\t},\n\t\t{\n\t\t\tpattern: /\\\\k\u003c[^\u003c\u003e']+\u003e/,\n\t\t\talias: 'keyword',\n\t\t\tinside: {\n\t\t\t\t'group-name': groupName\n\t\t\t}\n\t\t}\n\t],\n\t'anchor': {\n\t\tpattern: /[$^]|\\\\[ABbGZz]/,\n\t\talias: 'function'\n\t},\n\t'escape': escape,\n\t'group': [\n\t\t{\n\t\t\t// https://docs.oracle.com/javase/10/docs/api/java/util/regex/Pattern.html\n\t\t\t// https://docs.microsoft.com/en-us/dotnet/standard/base-types/regular-expression-language-quick-reference?view=netframework-4.7.2#grouping-constructs\n\n\t\t\t// (), (?\u003cname\u003e), (?'name'), (?\u003e), (?:), (?=), (?!), (?\u003c=), (?\u003c!), (?is-m), (?i-m:)\n\t\t\tpattern: /(\\()\\?(?:\u003c[^\u003c\u003e']+\u003e|'[^\u003c\u003e']+'|[\u003e:]|\u003c?[!=]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?)/,\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'group-name': groupName\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tpattern: /[()]/,\n\t\t\talias: 'punctuation'\n\t\t}\n\t],\n\t'quantifier': {\n\t\tpattern: /(?:[+*?]|\\{\\d+(?:,\\d*)?\\})[?+]?/,\n\t\talias: 'number'\n\t},\n\t'alternation': {\n\t\tpattern: /\\|/,\n\t\talias: 'keyword'\n\t}\n};\n","import { languages, rest } from '../core.js';\nimport { boolean } from '../utils/patterns.js';\nimport { nested } from '../utils/shared.js';\n\nvar multilineComment = nested(/\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|\u003cself\u003e)*\\*\\//.source, 2);\nvar string = /b?\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|b?r(#*)\"(?:[^\"]|\"(?!\\1))*\"\\1/g;\nvar paramsInside = {\n\t'closure-punctuation': {\n\t\tpattern: /^\\||\\|$/,\n\t\talias: 'punctuation'\n\t}\n};\n\nparamsInside[rest] = languages.rust = {\n\t'comment': RegExp(\"//.*|\" + multilineComment, 'g'),\n\t'string': string,\n\t'char': /b?'(?:\\\\(?:x[0-7][a-fA-F\\d]|u\\{(?:[a-fA-F\\d]_*){1,6}\\}|.)|[^\\\\\\n\\t'])'/g,\n\t'attribute': {\n\t\tpattern: /#!?\\[(?:[^[\\]\"]|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")*\\]/g,\n\t\talias: 'attr-name',\n\t\tinside: {\n\t\t\t'string': string\n\t\t}\n\t},\n\n\t// Closure params should not be confused with bitwise OR |\n\t'closure-params': {\n\t\tpattern: /([=(,:]\\s*|\\bmove\\s*)\\|[^|]*\\||\\|[^|]*\\|(?=\\s*(?:\\{|-\u003e))/g,\n\t\tlookbehind: true,\n\t\tinside: paramsInside\n\t},\n\n\t'lifetime-annotation': {\n\t\tpattern: /'\\w+/,\n\t\talias: 'symbol'\n\t},\n\n\t'fragment-specifier': {\n\t\tpattern: /(\\$\\w+:)[a-z]+/,\n\t\tlookbehind: true,\n\t\talias: 'punctuation'\n\t},\n\t'variable': /\\$\\w+/,\n\n\t'function-definition': {\n\t\tpattern: /(\\bfn\\s+)\\w+/,\n\t\tlookbehind: true,\n\t\talias: 'function'\n\t},\n\t'type-definition': {\n\t\tpattern: /(\\b(?:enum|struct|trait|type|union)\\s+)\\w+/,\n\t\tlookbehind: true,\n\t\talias: 'class-name'\n\t},\n\t'module-declaration': [\n\t\t{\n\t\t\tpattern: /(\\b(?:crate|mod)\\s+)[a-z][a-z_\\d]*/,\n\t\t\tlookbehind: true,\n\t\t\talias: 'namespace'\n\t\t},\n\t\t{\n\t\t\tpattern: /(\\b(?:crate|self|super)\\s*)::\\s*[a-z][a-z_\\d]*\\b(?:\\s*::(?:\\s*[a-z][a-z_\\d]*\\s*::)*)?/,\n\t\t\tlookbehind: true,\n\t\t\talias: 'namespace',\n\t\t\tinside: {\n\t\t\t\t'punctuation': /::/\n\t\t\t}\n\t\t}\n\t],\n\t// https://github.com/rust-lang/reference/blob/master/src/keywords.md\n\t// primitives and str\n\t// https://doc.rust-lang.org/stable/rust-by-example/primitives.html\n\t'keyword': /\\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield|bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\\b/,\n\t// functions can technically start with an upper-case letter, but this will introduce a lot of false positives\n\t// and Rust's naming conventions recommend snake_case anyway.\n\t// https://doc.rust-lang.org/1.0.0/style/style/naming/README.html\n\t'function': /\\b[a-z_]\\w*(?=\\s*(?:::\\s*\u003c|\\())/,\n\t'macro': {\n\t\tpattern: /\\b\\w+!/,\n\t\talias: 'property'\n\t},\n\t'constant': /\\b[A-Z_][A-Z_\\d]+\\b/,\n\t'class-name': /\\b[A-Z]\\w*\\b/,\n\n\t'namespace': {\n\t\tpattern: /(?:\\b[a-z][a-z_\\d]*\\s*::\\s*)*\\b[a-z][a-z_\\d]*\\s*::(?!\\s*\u003c)/,\n\t\tinside: {\n\t\t\t'punctuation': /::/\n\t\t}\n\t},\n\n\t// Hex, oct, bin, dec numbers with visual separators and type suffix\n\t'number': /\\b(?:0x[a-fA-F\\d](?:_?[a-fA-F\\d])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\\d(?:_?\\d)*)?\\.)?\\d(?:_?\\d)*(?:[Ee][+-]?\\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\\b/,\n\t'boolean': boolean,\n\t'punctuation': /-\u003e|\\.\\.=|\\.{1,3}|::|[()[\\]{},:;]/,\n\t'operator': /\u0026\u0026|\\|\\||=\u003e|\u003e\u003e=?|\u003c\u003c=?|[%\u0026|^!=\u003c\u003e/*+-]=?|[@?]/\n};\n","import { languages, rest } from '../core.js';\nimport { extend, insertBefore } from '../utils/language.js';\nimport { boolean, clikeComment } from '../utils/patterns.js';\nimport './css.js';\n\nvar variable = /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/;\n\nvar scss = languages.scss = extend('css', {\n\t'comment': clikeComment,\n\t'atrule': {\n\t\tpattern: /@[\\w-](?:\\([^()]+\\)|[^()\\s]|\\s+(?!\\s))*?(?=\\s+[{;])/,\n\t\tinside: {\n\t\t\t'rule': /@[\\w-]+/,\n\t\t\t[rest]: 'scss'\n\t\t}\n\t},\n\t// url, compassified\n\t'url': /(?:[-a-z]+-)?url(?=\\()/i,\n\t// CSS selector regex is not appropriate for Sass\n\t// since there can be lot more things (var, @ directive, nesting..)\n\t// a selector must start at the end of a property or after a brace (end of other rules or nesting)\n\t// it can contain some characters that aren't used for defining rules or end of selector, \u0026 (parent selector), or interpolated variable\n\t// the end of a selector is found when there is no rules in it ( {} or {\\s}) or if there is a property (because an interpolated var\n\t// can \"pass\" as a selector- e.g: proper#{$erty})\n\t// this one was hard to do, so please be careful if you edit this one :)\n\t'selector': {\n\t\t// Initial look-ahead is used to prevent matching of blank selectors\n\t\tpattern: /(?!\\s)[^@;(){}]?(?:[^@;(){}\\s]|\\s+(?!\\s)|#\\{\\$[-\\w]+\\})+(?=\\s*\\{(?:\\}|\\s|[^}][^:{}]*[:{][^}]))/,\n\t\tinside: {\n\t\t\t'parent': {\n\t\t\t\tpattern: /\u0026/,\n\t\t\t\talias: 'important'\n\t\t\t},\n\t\t\t'placeholder': /%[-\\w]+/,\n\t\t\t'variable': variable\n\t\t}\n\t},\n\t'property': {\n\t\tpattern: /(?:[-\\w]|\\$[-\\w]|#\\{\\$[-\\w]+\\})+(?=\\s*:)/,\n\t\tinside: {\n\t\t\t'variable': variable\n\t\t}\n\t}\n});\n\ninsertBefore(scss, 'atrule', {\n\t'keyword': [\n\t\t/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\\b/i,\n\t\t{\n\t\t\tpattern: /( )(?:from|through)(?= )/,\n\t\t\tlookbehind: true\n\t\t}\n\t]\n});\n\ninsertBefore(scss, 'important', {\n\t// var and interpolated vars\n\t'variable': variable\n});\n\ninsertBefore(scss, 'function', {\n\t'module-modifier': {\n\t\tpattern: /\\b(?:as|hide|show|with)\\b/i,\n\t\talias: 'keyword'\n\t},\n\t'placeholder': {\n\t\tpattern: /%[-\\w]+/,\n\t\talias: 'selector'\n\t},\n\t'statement': {\n\t\tpattern: /\\B!(?:default|optional)\\b/i,\n\t\talias: 'keyword'\n\t},\n\t'boolean': boolean,\n\t'null': {\n\t\tpattern: /\\bnull\\b/,\n\t\talias: 'keyword'\n\t},\n\t'operator': {\n\t\tpattern: /(\\s)(?:[%/*+-]|[!=]=|[\u003c\u003e]=?|and|not|or)(?!\\S)/,\n\t\tlookbehind: true\n\t}\n});\n","import { languages } from '../core.js';\nimport { boolean } from '../utils/patterns.js';\n\nvar swift = languages.swift = {\n\t// Nested comments are supported up to 2 levels\n\t'comment': /\\/\\/.*|\\/\\*(?:[^/*]|\\/(?!\\*)|\\*(?!\\/)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*\\*\\//g,\n\t'string-literal': [\n\t\t// https://docs.swift.org/swift-book/LanguageGuide/StringsAndCharacters.html\n\t\t{\n\t\t\tpattern: /(^|[^\"#])(?:\"(?:\\\\(?:\\((?:[^()]|\\([^)]*\\))*\\)|[^(])|[^\\\\\\n\"])*\"|\"\"\"(?:\\\\(?:\\((?:[^()]|\\([^)]*\\))*\\)|[^(])|[^\\\\\"]|\"(?!\"\"))*\"\"\")(?![\"#])/g,\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'interpolation': {\n\t\t\t\t\tpattern: /(\\\\\\()(?:[^()]|\\([^()]*\\))+(?=\\))/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\t'interpolation-punctuation': {\n\t\t\t\t\tpattern: /^\\)|\\\\\\($/,\n\t\t\t\t\talias: 'punctuation'\n\t\t\t\t},\n\t\t\t\t'punctuation': /\\\\(?=\\n)/,\n\t\t\t\t'string': /[\\s\\S]+/\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^\"#])(#+)(?:\"(?:\\\\(?:#+\\((?:[^()]|\\([^)]*\\))*\\)|[^#])|[^\\\\\\n])*?\"|\"\"\"(?:\\\\(?:#+\\((?:[^()]|\\([^)]*\\))*\\)|[^#])|[^\\\\])*?\"\"\")\\2/g,\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'interpolation': {\n\t\t\t\t\tpattern: /(\\\\#+\\()(?:[^()]|\\([^()]*\\))+(?=\\))/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\t'interpolation-punctuation': {\n\t\t\t\t\tpattern: /^\\)|\\\\#+\\($/,\n\t\t\t\t\talias: 'punctuation'\n\t\t\t\t},\n\t\t\t\t'string': /[\\s\\S]+/\n\t\t\t}\n\t\t},\n\t],\n\n\t'directive': {\n\t\t// directives with conditions\n\t\tpattern: /#(?:(?:elseif|if)\\b(?:[ \\t]*(?:![ \\t]*)?(?:\\b\\w+\\b(?:[ \\t]*\\((?:[^()]|\\([^)]*\\))*\\))?|\\((?:[^()]|\\([^)]*\\))*\\))(?:[ \\t]*(?:\u0026\u0026|\\|\\|))?)+|(?:else|endif)\\b)/,\n\t\talias: 'property',\n\t\tinside: {\n\t\t\t'directive-name': /^#\\w+/,\n\t\t\t'boolean': boolean,\n\t\t\t'number': /\\b\\d+(?:\\.\\d+)*\\b/,\n\t\t\t'operator': /!|\u0026\u0026|\\|\\||[\u003c\u003e]=?/,\n\t\t\t'punctuation': /[(),]/\n\t\t}\n\t},\n\t'literal': {\n\t\tpattern: /#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\\b/,\n\t\talias: 'constant'\n\t},\n\t'other-directive': {\n\t\tpattern: /#\\w+/,\n\t\talias: 'property'\n\t},\n\n\t'attribute': {\n\t\tpattern: /@\\w+/,\n\t\talias: 'atrule'\n\t},\n\n\t'function-definition': {\n\t\tpattern: /(\\bfunc\\s+)\\w+/,\n\t\tlookbehind: true,\n\t\talias: 'function'\n\t},\n\t'label': {\n\t\t// https://docs.swift.org/swift-book/LanguageGuide/ControlFlow.html#ID141\n\t\tpattern: /\\b(break|continue)\\s+\\w+|\\b(?!\\d)\\w+(?=\\s*:\\s*(?:for|repeat|while)\\b)/,\n\t\tlookbehind: true,\n\t\talias: 'important'\n\t},\n\n\t'keyword': /\\b(?:Any|[Pp]rotocol|[Ss]elf|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|[gs]et|guard|higherThan|i[fns]|import|indirect|infix|init|inout|internal|isolated|lazy|lef?t|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|public|repeat|required|rethrows|return|right|safe|some|static|struct|subscript|super|switch|throws?|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\\b/,\n\t'boolean': boolean,\n\t'nil': {\n\t\tpattern: /\\bnil\\b/,\n\t\talias: 'constant'\n\t},\n\n\t'short-argument': /\\$\\d+\\b/,\n\t'omit': {\n\t\tpattern: /\\b_\\b/,\n\t\talias: 'keyword'\n\t},\n\t'number': /\\b(?:[\\d_]+(?:\\.[\\de_]+)?|0x[a-f\\d_]+(?:\\.[a-f\\dp_]+)?|0b[01_]+|0o[0-7_]+)\\b/i,\n\n\t// A class name must start with an upper-case letter and be either 1 letter long or contain a lower-case letter.\n\t'class-name': /\\b[A-Z](?:[A-Z_\\d]*[a-z]\\w*)?\\b/,\n\t'function': /\\b[a-z_]\\w*(?=\\s*\\()/i,\n\t'constant': /\\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\\b/,\n\n\t// Operators are generic in Swift. Developers can even create new operators (e.g. +++).\n\t// https://docs.swift.org/swift-book/ReferenceManual/zzSummaryOfTheGrammar.html#ID481\n\t// This regex only supports ASCII operators.\n\t'operator': /[~?%\u0026|^!=\u003c\u003e/*+-]+|\\.[.~?%\u0026|^!=\u003c\u003e/*+-]+/,\n\t'punctuation': /[()[\\]{}.,:;\\\\]/\n};\n\nswift['string-literal'].forEach(rule =\u003e {\n\trule.inside['interpolation'].inside = swift;\n});\n","import { languages } from '../core.js';\nimport { extend } from '../utils/language.js';\nimport './basic.js';\n\nlanguages.vbnet = extend('basic', {\n\t'comment': {\n\t\tpattern: /(?:!|'|rem\\b).*/i,\n\t\tinside: {\n\t\t\t'keyword': /^rem/i\n\t\t}\n\t},\n\t'string': {\n\t\tpattern: /(^|[^\"])\"(?:\"\"|[^\"])*\"(?!\")/g,\n\t\tlookbehind: true\n\t},\n\t'keyword': /(?:\\b(?:addhandler|addressof|alias|and|andalso|as|beep|bload|boolean|bsave|byref|byval|call absolute|call|case|catch|cbool|c?byte|cc?har|c?date|cdbl|cdec|chain|chdir|cu?int|class|clear|close|cls|cobj|com|common|const|continue|c?sbyte|c?u?short|c?sng|cstr|c?type|cu?lng|data|decimal|declare|def(?: fn| seg|dbl|int|lng|sng|str)|default|delegate|dim|directcast|do|double|else|elseif|enum|environ|erase|error|event|exit|false|true|field|files|finally|for each|for|friend|function|[gls]et|gettype|getxmlnamespace|global|gosub|goto|handles|i[fns]|implements|imports|inherits|input|interface|ioctl|isnot|key|kill|lib|like|line input|locate|lock|loop|[lr]set|me|mkdir|mod|module|mustinherit|mustoverride|mybase|myclass|name|namespace|narrowing|new|next|not|nothing|notinheritable|notoverridable|object|off?|on (?:com|error|key|timer)|on|open|operator|option base|option|optional|orelse|out|overloads|overridable|overrides|paramarray|partial|poke|private|property|protected|public|put|raiseevent|read|readonly|redim|removehandler|restore|resume|return|rmdir|run|select case|select|shadows|shared|shell|single|sleep|static|step|stop|string|structure|sub|swap|synclock|system|[tw]hen|throw|timer|to|troff|tron|try|trycast|typeof|u?integer|u?long|unlock|until|using|view print|wait|w?end|while|widening|with|withevents|write|writeonly|x?or)|\\B#(?:const|else|elseif|end|if))(?:\\$|\\b)/i,\n\t'punctuation': /[(){},:;]/\n});\n","import { languages } from '../core.js';\nimport { re, replace } from '../utils/shared.js';\n\n// https://yaml.org/spec/1.2/spec.html#c-ns-anchor-property\n// https://yaml.org/spec/1.2/spec.html#c-ns-alias-node\nvar anchorOrAlias = /[*\u0026][^\\s[\\]{},]+/;\n// https://yaml.org/spec/1.2/spec.html#c-ns-tag-property\nvar tag = /!(?:\u003c[\\w%#;/?:@\u0026=$,.!~*'()[\\]+-]+\u003e|(?:[a-zA-Z\\d-]*!)?[\\w%#;/?:@\u0026=$.~*'()+-]+)?/;\n// https://yaml.org/spec/1.2/spec.html#c-ns-properties(n,c)\nvar properties = `(?:${tag.source}(?:[ \\t]+${anchorOrAlias.source})?|${anchorOrAlias.source}(?:[ \\t]+${tag.source})?)`;\n// https://yaml.org/spec/1.2/spec.html#ns-plain(n,c)\n// This is a simplified version that doesn't support \"#\" and multiline keys\n// All these long scarry character classes are simplified versions of YAML's characters\nvar plainKey = replace(\n\t/(?:[^\\s\\0-\\x08\\x0e-\\x1f!\"#%\u0026'*,:\u003e?@[\\]{}`|\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff-]|[?:-]\u003c0\u003e)(?:[ \\t]*(?:(?![#:])\u003c0\u003e|:\u003c0\u003e))*/.source,\n\t[/[^\\s\\0-\\x08\\x0e-\\x1f,[\\]{}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]/.source]\n);\nvar string = /\"(?:\\\\.|[^\\\\\\n\"])*\"|'(?:\\\\.|[^\\\\\\n'])*'/.source;\n\n/**\n * @param {string} value\n * @param {string} [flags]\n */\nvar createValuePattern = (value, flags) =\u003e re(\n\t/([:,[{-]\\s*(?:\\s\u003c0\u003e[ \\t]+)?)\u003c1\u003e(?=[ \\t]*(?:$|,|\\]|\\}|(?:\\n\\s*)?#))/.source,\n\t[properties, value], flags\n);\n\nlanguages.yml = languages.yaml = {\n\t'scalar': {\n\t\tpattern: re(/([:-]\\s*(?:\\s\u003c0\u003e[ \\t]+)?[|\u003e])[ \\t]*(?:(\\n[ \\t]+)\\S.*(?:\\2.+)*)/.source, [properties]),\n\t\tlookbehind: true,\n\t\talias: 'string'\n\t},\n\t'comment': /#.*/,\n\t'key': {\n\t\tpattern: re(\n\t\t\t/((?:^|[:,[{\\n?-])[ \\t]*(?:\u003c0\u003e[ \\t]+)?)\u003c1\u003e(?=\\s*:\\s)/.source,\n\t\t\t[properties, '(?:' + plainKey + '|' + string + ')'], 'g'\n\t\t),\n\t\tlookbehind: true,\n\t\talias: 'atrule'\n\t},\n\t'directive': {\n\t\tpattern: /(^[ \\t]*)%.+/m,\n\t\tlookbehind: true,\n\t\talias: 'important'\n\t},\n\t'datetime': {\n\t\tpattern: createValuePattern(/\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \\t]+)\\d\\d?:\\d\\d:\\d\\d(?:\\.\\d*)?(?:[ \\t]*(?:Z|[+-]\\d\\d?(?::\\d\\d)?))?|\\d{4}-\\d\\d-\\d\\d|\\d\\d?:\\d\\d(?::\\d\\d(?:\\.\\d*)?)?/.source, 'm'),\n\t\tlookbehind: true,\n\t\talias: 'number'\n\t},\n\t'boolean': {\n\t\tpattern: createValuePattern(/false|true/.source, 'im'),\n\t\tlookbehind: true,\n\t\talias: 'important'\n\t},\n\t'null': {\n\t\tpattern: createValuePattern(/null|~/.source, 'im'),\n\t\tlookbehind: true,\n\t\talias: 'important'\n\t},\n\t'string': {\n\t\tpattern: createValuePattern(string, 'mg'),\n\t\tlookbehind: true\n\t},\n\t'number': {\n\t\tpattern: createValuePattern(/[+-]?(?:0x[a-f\\d]+|0o[0-7]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)/.source, 'im'),\n\t\tlookbehind: true\n\t},\n\t'tag': tag,\n\t'important': anchorOrAlias,\n\t'punctuation': /---|[:[\\]{},|\u003e?-]|\\.{3}/\n};\n","import { languages } from '../core.js';\nimport { addJsxTag, space } from '../utils/jsx-shared.js';\nimport { insertBefore } from '../utils/language.js';\nimport { re } from '../utils/shared.js';\nimport './jsx.js';\nimport './typescript.js';\n\nvar tsx = addJsxTag(languages.ts, 'tsx');\nvar tag = tsx['tag'];\nvar bracket = '(?:^|(';\n\n// This will prevent collisions between TSX tags and TS generic types.\n// Idea by https://github.com/karlhorky\n// Discussion: https://github.com/PrismJS/prism/issues/2594#issuecomment-710666928\ntry {\n\tRegExp('(?\u003c=)');\n\tbracket += '?\u003c=';\n} catch {\n\ttag.lookbehind = true;\n}\ntag.pattern = RegExp(bracket + `[^\\\\w$])|(?=\u003c/))${\n\ttag.pattern.source.replace(space, space + `|(?:${space})*\u003c(?:[^\u003c\u003e=]|=[^\u003c]|=?\u003c(?:[^\u003c\u003e]|\u003c[^\u003c\u003e]*\u003e)*\u003e)*\u003e`)\n}`, 'g');\n\ninsertBefore(tag.inside, 'attr-value', {\n\t'generic': {\n\t\tpattern: re(/(^\u003c0\u003e*)\u003c(?:[^\u003c\u003e=]|=[^\u003c]|=?\u003c(?:[^\u003c\u003e]|\u003c[^\u003c\u003e]*\u003e)*\u003e)*\u003e/.source, [space]),\n\t\tlookbehind: true,\n\t\talias: 'class-name',\n\t\tinside: tsx[\"class-name\"].inside\n\t}\n});\n","import { languages } from '../core.js';\nimport { dotPunctuation } from '../utils/patterns.js';\n\nlanguages.wasm = {\n\t'comment': /\\(;[\\s\\S]*?;\\)|;;.*/,\n\t'string': /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/g,\n\t'keyword': [\n\t\t{\n\t\t\tpattern: /\\b(?:align|offset)=/,\n\t\t\tinside: {\n\t\t\t\t'operator': /=/\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tpattern: /\\b(?:(?:[fi]32|[fi]64)(?:\\.(?:abs|a[dn]d|ceil|clz|const|convert_[su]\\/i(?:32|64)|copysign|ctz|demote\\/f64|div(?:_[su])?|eqz?|extend_[su]\\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|popcnt|promote\\/f32|reinterpret\\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\\/f(?:32|64))?|wrap\\/i64|x?or))?|memory\\.(?:grow|size))\\b/,\n\t\t\tinside: dotPunctuation\n\t\t},\n\t\t/\\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\\b/\n\t],\n\t'variable': /\\$[\\w!#$%\u0026'*./:\u003c=\u003e?@\\\\^`|~+-]+/,\n\t'number': /[+-]?\\b(?:\\d(?:_?\\d)*(?:\\.\\d(?:_?\\d)*)?(?:[eE][+-]?\\d(?:_?\\d)*)?|0x[a-fA-F\\d](?:_?[a-fA-F\\d])*(?:\\.[a-fA-F\\d](?:_?[\\da-fA-D])*)?(?:[pP][+-]?\\d(?:_?\\d)*)?)\\b|\\binf\\b|\\bnan(?::0x[a-fA-F\\d](?:_?[\\da-fA-D])*)?\\b/,\n\t'punctuation': /[()]/\n};\n"],"version":3}
