github.com/ngocphuongnb/tetua@v0.0.7-alpha/packages/editor/assets/highlight-11.5.0.min.js (about)

     1  /*!
     2    Highlight.js v11.5.0 (git: 7a62552656)
     3    (c) 2006-2022 Ivan Sagalaev and other contributors
     4    License: BSD-3-Clause
     5   */
     6    var hljs=function(){"use strict";var e={exports:{}};function n(e){
     7      return e instanceof Map?e.clear=e.delete=e.set=()=>{
     8      throw Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=()=>{
     9      throw Error("set is read-only")
    10      }),Object.freeze(e),Object.getOwnPropertyNames(e).forEach((t=>{var a=e[t]
    11      ;"object"!=typeof a||Object.isFrozen(a)||n(a)})),e}
    12      e.exports=n,e.exports.default=n;var t=e.exports;class a{constructor(e){
    13      void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}
    14      ignoreMatch(){this.isMatchIgnored=!0}}function i(e){
    15      return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")
    16      }function r(e,...n){const t=Object.create(null);for(const n in e)t[n]=e[n]
    17      ;return n.forEach((e=>{for(const n in e)t[n]=e[n]})),t}const s=e=>!!e.kind
    18      ;class o{constructor(e,n){
    19      this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){
    20      this.buffer+=i(e)}openNode(e){if(!s(e))return;let n=e.kind
    21      ;n=e.sublanguage?"language-"+n:((e,{prefix:n})=>{if(e.includes(".")){
    22      const t=e.split(".")
    23      ;return[`${n}${t.shift()}`,...t.map(((e,n)=>`${e}${"_".repeat(n+1)}`))].join(" ")
    24      }return`${n}${e}`})(n,{prefix:this.classPrefix}),this.span(n)}closeNode(e){
    25      s(e)&&(this.buffer+="</span>")}value(){return this.buffer}span(e){
    26      this.buffer+=`<span class="${e}">`}}class l{constructor(){this.rootNode={
    27      children:[]},this.stack=[this.rootNode]}get top(){
    28      return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){
    29      this.top.children.push(e)}openNode(e){const n={kind:e,children:[]}
    30      ;this.add(n),this.stack.push(n)}closeNode(){
    31      if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){
    32      for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}
    33      walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){
    34      return"string"==typeof n?e.addText(n):n.children&&(e.openNode(n),
    35      n.children.forEach((n=>this._walk(e,n))),e.closeNode(n)),e}static _collapse(e){
    36      "string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{
    37      l._collapse(e)})))}}class c extends l{constructor(e){super(),this.options=e}
    38      addKeyword(e,n){""!==e&&(this.openNode(n),this.addText(e),this.closeNode())}
    39      addText(e){""!==e&&this.add(e)}addSublanguage(e,n){const t=e.root
    40      ;t.kind=n,t.sublanguage=!0,this.add(t)}toHTML(){
    41      return new o(this,this.options).value()}finalize(){return!0}}function d(e){
    42      return e?"string"==typeof e?e:e.source:null}function g(e){return m("(?=",e,")")}
    43      function u(e){return m("(?:",e,")*")}function b(e){return m("(?:",e,")?")}
    44      function m(...e){return e.map((e=>d(e))).join("")}function p(...e){const n=(e=>{
    45      const n=e[e.length-1]
    46      ;return"object"==typeof n&&n.constructor===Object?(e.splice(e.length-1,1),n):{}
    47      })(e);return"("+(n.capture?"":"?:")+e.map((e=>d(e))).join("|")+")"}
    48      function _(e){return RegExp(e.toString()+"|").exec("").length-1}
    49      const h=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./
    50      ;function f(e,{joinWith:n}){let t=0;return e.map((e=>{t+=1;const n=t
    51      ;let a=d(e),i="";for(;a.length>0;){const e=h.exec(a);if(!e){i+=a;break}
    52      i+=a.substring(0,e.index),
    53      a=a.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?i+="\\"+(Number(e[1])+n):(i+=e[0],
    54      "("===e[0]&&t++)}return i})).map((e=>`(${e})`)).join(n)}
    55      const E="[a-zA-Z]\\w*",y="[a-zA-Z_]\\w*",w="\\b\\d+(\\.\\d+)?",N="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",v="\\b(0b[01]+)",k={
    56      begin:"\\\\[\\s\\S]",relevance:0},O={scope:"string",begin:"'",end:"'",
    57      illegal:"\\n",contains:[k]},x={scope:"string",begin:'"',end:'"',illegal:"\\n",
    58      contains:[k]},M=(e,n,t={})=>{const a=r({scope:"comment",begin:e,end:n,
    59      contains:[]},t);a.contains.push({scope:"doctag",
    60      begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",
    61      end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0})
    62      ;const i=p("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/)
    63      ;return a.contains.push({begin:m(/[ ]+/,"(",i,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),a
    64      },S=M("//","$"),A=M("/\\*","\\*/"),C=M("#","$");var T=Object.freeze({
    65      __proto__:null,MATCH_NOTHING_RE:/\b\B/,IDENT_RE:E,UNDERSCORE_IDENT_RE:y,
    66      NUMBER_RE:w,C_NUMBER_RE:N,BINARY_NUMBER_RE:v,
    67      RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",
    68      SHEBANG:(e={})=>{const n=/^#![ ]*\//
    69      ;return e.binary&&(e.begin=m(n,/.*\b/,e.binary,/\b.*/)),r({scope:"meta",begin:n,
    70      end:/$/,relevance:0,"on:begin":(e,n)=>{0!==e.index&&n.ignoreMatch()}},e)},
    71      BACKSLASH_ESCAPE:k,APOS_STRING_MODE:O,QUOTE_STRING_MODE:x,PHRASAL_WORDS_MODE:{
    72      begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/
    73      },COMMENT:M,C_LINE_COMMENT_MODE:S,C_BLOCK_COMMENT_MODE:A,HASH_COMMENT_MODE:C,
    74      NUMBER_MODE:{scope:"number",begin:w,relevance:0},C_NUMBER_MODE:{scope:"number",
    75      begin:N,relevance:0},BINARY_NUMBER_MODE:{scope:"number",begin:v,relevance:0},
    76      REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//,
    77      end:/\/[gimuy]*/,illegal:/\n/,contains:[k,{begin:/\[/,end:/\]/,relevance:0,
    78      contains:[k]}]}]},TITLE_MODE:{scope:"title",begin:E,relevance:0},
    79      UNDERSCORE_TITLE_MODE:{scope:"title",begin:y,relevance:0},METHOD_GUARD:{
    80      begin:"\\.\\s*[a-zA-Z_]\\w*",relevance:0},END_SAME_AS_BEGIN:e=>Object.assign(e,{
    81      "on:begin":(e,n)=>{n.data._beginMatch=e[1]},"on:end":(e,n)=>{
    82      n.data._beginMatch!==e[1]&&n.ignoreMatch()}})});function R(e,n){
    83      "."===e.input[e.index-1]&&n.ignoreMatch()}function D(e,n){
    84      void 0!==e.className&&(e.scope=e.className,delete e.className)}function I(e,n){
    85      n&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",
    86      e.__beforeBegin=R,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,
    87      void 0===e.relevance&&(e.relevance=0))}function L(e,n){
    88      Array.isArray(e.illegal)&&(e.illegal=p(...e.illegal))}function B(e,n){
    89      if(e.match){
    90      if(e.begin||e.end)throw Error("begin & end are not supported with match")
    91      ;e.begin=e.match,delete e.match}}function $(e,n){
    92      void 0===e.relevance&&(e.relevance=1)}const z=(e,n)=>{if(!e.beforeMatch)return
    93      ;if(e.starts)throw Error("beforeMatch cannot be used with starts")
    94      ;const t=Object.assign({},e);Object.keys(e).forEach((n=>{delete e[n]
    95      })),e.keywords=t.keywords,e.begin=m(t.beforeMatch,g(t.begin)),e.starts={
    96      relevance:0,contains:[Object.assign(t,{endsParent:!0})]
    97      },e.relevance=0,delete t.beforeMatch
    98      },F=["of","and","for","in","not","or","if","then","parent","list","value"]
    99      ;function U(e,n,t="keyword"){const a=Object.create(null)
   100      ;return"string"==typeof e?i(t,e.split(" ")):Array.isArray(e)?i(t,e):Object.keys(e).forEach((t=>{
   101      Object.assign(a,U(e[t],n,t))})),a;function i(e,t){
   102      n&&(t=t.map((e=>e.toLowerCase()))),t.forEach((n=>{const t=n.split("|")
   103      ;a[t[0]]=[e,j(t[0],t[1])]}))}}function j(e,n){
   104      return n?Number(n):(e=>F.includes(e.toLowerCase()))(e)?0:1}const P={},K=e=>{
   105      console.error(e)},H=(e,...n)=>{console.log("WARN: "+e,...n)},q=(e,n)=>{
   106      P[`${e}/${n}`]||(console.log(`Deprecated as of ${e}. ${n}`),P[`${e}/${n}`]=!0)
   107      },Z=Error();function G(e,n,{key:t}){let a=0;const i=e[t],r={},s={}
   108      ;for(let e=1;e<=n.length;e++)s[e+a]=i[e],r[e+a]=!0,a+=_(n[e-1])
   109      ;e[t]=s,e[t]._emit=r,e[t]._multi=!0}function W(e){(e=>{
   110      e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,
   111      delete e.scope)})(e),"string"==typeof e.beginScope&&(e.beginScope={
   112      _wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope
   113      }),(e=>{if(Array.isArray(e.begin)){
   114      if(e.skip||e.excludeBegin||e.returnBegin)throw K("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),
   115      Z
   116      ;if("object"!=typeof e.beginScope||null===e.beginScope)throw K("beginScope must be object"),
   117      Z;G(e,e.begin,{key:"beginScope"}),e.begin=f(e.begin,{joinWith:""})}})(e),(e=>{
   118      if(Array.isArray(e.end)){
   119      if(e.skip||e.excludeEnd||e.returnEnd)throw K("skip, excludeEnd, returnEnd not compatible with endScope: {}"),
   120      Z
   121      ;if("object"!=typeof e.endScope||null===e.endScope)throw K("endScope must be object"),
   122      Z;G(e,e.end,{key:"endScope"}),e.end=f(e.end,{joinWith:""})}})(e)}function Q(e){
   123      function n(n,t){
   124      return RegExp(d(n),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(t?"g":""))
   125      }class t{constructor(){
   126      this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}
   127      addRule(e,n){
   128      n.position=this.position++,this.matchIndexes[this.matchAt]=n,this.regexes.push([n,e]),
   129      this.matchAt+=_(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null)
   130      ;const e=this.regexes.map((e=>e[1]));this.matcherRe=n(f(e,{joinWith:"|"
   131      }),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex
   132      ;const n=this.matcherRe.exec(e);if(!n)return null
   133      ;const t=n.findIndex(((e,n)=>n>0&&void 0!==e)),a=this.matchIndexes[t]
   134      ;return n.splice(0,t),Object.assign(n,a)}}class a{constructor(){
   135      this.rules=[],this.multiRegexes=[],
   136      this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){
   137      if(this.multiRegexes[e])return this.multiRegexes[e];const n=new t
   138      ;return this.rules.slice(e).forEach((([e,t])=>n.addRule(e,t))),
   139      n.compile(),this.multiRegexes[e]=n,n}resumingScanAtSamePosition(){
   140      return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,n){
   141      this.rules.push([e,n]),"begin"===n.type&&this.count++}exec(e){
   142      const n=this.getMatcher(this.regexIndex);n.lastIndex=this.lastIndex
   143      ;let t=n.exec(e)
   144      ;if(this.resumingScanAtSamePosition())if(t&&t.index===this.lastIndex);else{
   145      const n=this.getMatcher(0);n.lastIndex=this.lastIndex+1,t=n.exec(e)}
   146      return t&&(this.regexIndex+=t.position+1,
   147      this.regexIndex===this.count&&this.considerAll()),t}}
   148      if(e.compilerExtensions||(e.compilerExtensions=[]),
   149      e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language.  See documentation.")
   150      ;return e.classNameAliases=r(e.classNameAliases||{}),function t(i,s){const o=i
   151      ;if(i.isCompiled)return o
   152      ;[D,B,W,z].forEach((e=>e(i,s))),e.compilerExtensions.forEach((e=>e(i,s))),
   153      i.__beforeBegin=null,[I,L,$].forEach((e=>e(i,s))),i.isCompiled=!0;let l=null
   154      ;return"object"==typeof i.keywords&&i.keywords.$pattern&&(i.keywords=Object.assign({},i.keywords),
   155      l=i.keywords.$pattern,
   156      delete i.keywords.$pattern),l=l||/\w+/,i.keywords&&(i.keywords=U(i.keywords,e.case_insensitive)),
   157      o.keywordPatternRe=n(l,!0),
   158      s&&(i.begin||(i.begin=/\B|\b/),o.beginRe=n(o.begin),i.end||i.endsWithParent||(i.end=/\B|\b/),
   159      i.end&&(o.endRe=n(o.end)),
   160      o.terminatorEnd=d(o.end)||"",i.endsWithParent&&s.terminatorEnd&&(o.terminatorEnd+=(i.end?"|":"")+s.terminatorEnd)),
   161      i.illegal&&(o.illegalRe=n(i.illegal)),
   162      i.contains||(i.contains=[]),i.contains=[].concat(...i.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((n=>r(e,{
   163      variants:null},n)))),e.cachedVariants?e.cachedVariants:X(e)?r(e,{
   164      starts:e.starts?r(e.starts):null
   165      }):Object.isFrozen(e)?r(e):e))("self"===e?i:e)))),i.contains.forEach((e=>{t(e,o)
   166      })),i.starts&&t(i.starts,s),o.matcher=(e=>{const n=new a
   167      ;return e.contains.forEach((e=>n.addRule(e.begin,{rule:e,type:"begin"
   168      }))),e.terminatorEnd&&n.addRule(e.terminatorEnd,{type:"end"
   169      }),e.illegal&&n.addRule(e.illegal,{type:"illegal"}),n})(o),o}(e)}function X(e){
   170      return!!e&&(e.endsWithParent||X(e.starts))}class V extends Error{
   171      constructor(e,n){super(e),this.name="HTMLInjectionError",this.html=n}}
   172      const J=i,Y=r,ee=Symbol("nomatch");var ne=(e=>{
   173      const n=Object.create(null),i=Object.create(null),r=[];let s=!0
   174      ;const o="Could not find the language '{}', did you forget to load/include a language module?",l={
   175      disableAutodetect:!0,name:"Plain text",contains:[]};let d={
   176      ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,
   177      languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",
   178      cssSelector:"pre code",languages:null,__emitter:c};function _(e){
   179      return d.noHighlightRe.test(e)}function h(e,n,t){let a="",i=""
   180      ;"object"==typeof n?(a=e,
   181      t=n.ignoreIllegals,i=n.language):(q("10.7.0","highlight(lang, code, ...args) has been deprecated."),
   182      q("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),
   183      i=e,a=n),void 0===t&&(t=!0);const r={code:a,language:i};x("before:highlight",r)
   184      ;const s=r.result?r.result:f(r.language,r.code,t)
   185      ;return s.code=r.code,x("after:highlight",s),s}function f(e,t,i,r){
   186      const l=Object.create(null);function c(){if(!O.keywords)return void M.addText(S)
   187      ;let e=0;O.keywordPatternRe.lastIndex=0;let n=O.keywordPatternRe.exec(S),t=""
   188      ;for(;n;){t+=S.substring(e,n.index)
   189      ;const i=w.case_insensitive?n[0].toLowerCase():n[0],r=(a=i,O.keywords[a]);if(r){
   190      const[e,a]=r
   191      ;if(M.addText(t),t="",l[i]=(l[i]||0)+1,l[i]<=7&&(A+=a),e.startsWith("_"))t+=n[0];else{
   192      const t=w.classNameAliases[e]||e;M.addKeyword(n[0],t)}}else t+=n[0]
   193      ;e=O.keywordPatternRe.lastIndex,n=O.keywordPatternRe.exec(S)}var a
   194      ;t+=S.substr(e),M.addText(t)}function g(){null!=O.subLanguage?(()=>{
   195      if(""===S)return;let e=null;if("string"==typeof O.subLanguage){
   196      if(!n[O.subLanguage])return void M.addText(S)
   197      ;e=f(O.subLanguage,S,!0,x[O.subLanguage]),x[O.subLanguage]=e._top
   198      }else e=E(S,O.subLanguage.length?O.subLanguage:null)
   199      ;O.relevance>0&&(A+=e.relevance),M.addSublanguage(e._emitter,e.language)
   200      })():c(),S=""}function u(e,n){let t=1;const a=n.length-1;for(;t<=a;){
   201      if(!e._emit[t]){t++;continue}const a=w.classNameAliases[e[t]]||e[t],i=n[t]
   202      ;a?M.addKeyword(i,a):(S=i,c(),S=""),t++}}function b(e,n){
   203      return e.scope&&"string"==typeof e.scope&&M.openNode(w.classNameAliases[e.scope]||e.scope),
   204      e.beginScope&&(e.beginScope._wrap?(M.addKeyword(S,w.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),
   205      S=""):e.beginScope._multi&&(u(e.beginScope,n),S="")),O=Object.create(e,{parent:{
   206      value:O}}),O}function m(e,n,t){let i=((e,n)=>{const t=e&&e.exec(n)
   207      ;return t&&0===t.index})(e.endRe,t);if(i){if(e["on:end"]){const t=new a(e)
   208      ;e["on:end"](n,t),t.isMatchIgnored&&(i=!1)}if(i){
   209      for(;e.endsParent&&e.parent;)e=e.parent;return e}}
   210      if(e.endsWithParent)return m(e.parent,n,t)}function p(e){
   211      return 0===O.matcher.regexIndex?(S+=e[0],1):(R=!0,0)}function _(e){
   212      const n=e[0],a=t.substr(e.index),i=m(O,e,a);if(!i)return ee;const r=O
   213      ;O.endScope&&O.endScope._wrap?(g(),
   214      M.addKeyword(n,O.endScope._wrap)):O.endScope&&O.endScope._multi?(g(),
   215      u(O.endScope,e)):r.skip?S+=n:(r.returnEnd||r.excludeEnd||(S+=n),
   216      g(),r.excludeEnd&&(S=n));do{
   217      O.scope&&M.closeNode(),O.skip||O.subLanguage||(A+=O.relevance),O=O.parent
   218      }while(O!==i.parent);return i.starts&&b(i.starts,e),r.returnEnd?0:n.length}
   219      let h={};function y(n,r){const o=r&&r[0];if(S+=n,null==o)return g(),0
   220      ;if("begin"===h.type&&"end"===r.type&&h.index===r.index&&""===o){
   221      if(S+=t.slice(r.index,r.index+1),!s){const n=Error(`0 width match regex (${e})`)
   222      ;throw n.languageName=e,n.badRule=h.rule,n}return 1}
   223      if(h=r,"begin"===r.type)return(e=>{
   224      const n=e[0],t=e.rule,i=new a(t),r=[t.__beforeBegin,t["on:begin"]]
   225      ;for(const t of r)if(t&&(t(e,i),i.isMatchIgnored))return p(n)
   226      ;return t.skip?S+=n:(t.excludeBegin&&(S+=n),
   227      g(),t.returnBegin||t.excludeBegin||(S=n)),b(t,e),t.returnBegin?0:n.length})(r)
   228      ;if("illegal"===r.type&&!i){
   229      const e=Error('Illegal lexeme "'+o+'" for mode "'+(O.scope||"<unnamed>")+'"')
   230      ;throw e.mode=O,e}if("end"===r.type){const e=_(r);if(e!==ee)return e}
   231      if("illegal"===r.type&&""===o)return 1
   232      ;if(T>1e5&&T>3*r.index)throw Error("potential infinite loop, way more iterations than matches")
   233      ;return S+=o,o.length}const w=v(e)
   234      ;if(!w)throw K(o.replace("{}",e)),Error('Unknown language: "'+e+'"')
   235      ;const N=Q(w);let k="",O=r||N;const x={},M=new d.__emitter(d);(()=>{const e=[]
   236      ;for(let n=O;n!==w;n=n.parent)n.scope&&e.unshift(n.scope)
   237      ;e.forEach((e=>M.openNode(e)))})();let S="",A=0,C=0,T=0,R=!1;try{
   238      for(O.matcher.considerAll();;){
   239      T++,R?R=!1:O.matcher.considerAll(),O.matcher.lastIndex=C
   240      ;const e=O.matcher.exec(t);if(!e)break;const n=y(t.substring(C,e.index),e)
   241      ;C=e.index+n}return y(t.substr(C)),M.closeAllNodes(),M.finalize(),k=M.toHTML(),{
   242      language:e,value:k,relevance:A,illegal:!1,_emitter:M,_top:O}}catch(n){
   243      if(n.message&&n.message.includes("Illegal"))return{language:e,value:J(t),
   244      illegal:!0,relevance:0,_illegalBy:{message:n.message,index:C,
   245      context:t.slice(C-100,C+100),mode:n.mode,resultSoFar:k},_emitter:M};if(s)return{
   246      language:e,value:J(t),illegal:!1,relevance:0,errorRaised:n,_emitter:M,_top:O}
   247      ;throw n}}function E(e,t){t=t||d.languages||Object.keys(n);const a=(e=>{
   248      const n={value:J(e),illegal:!1,relevance:0,_top:l,_emitter:new d.__emitter(d)}
   249      ;return n._emitter.addText(e),n})(e),i=t.filter(v).filter(O).map((n=>f(n,e,!1)))
   250      ;i.unshift(a);const r=i.sort(((e,n)=>{
   251      if(e.relevance!==n.relevance)return n.relevance-e.relevance
   252      ;if(e.language&&n.language){if(v(e.language).supersetOf===n.language)return 1
   253      ;if(v(n.language).supersetOf===e.language)return-1}return 0})),[s,o]=r,c=s
   254      ;return c.secondBest=o,c}function y(e){let n=null;const t=(e=>{
   255      let n=e.className+" ";n+=e.parentNode?e.parentNode.className:""
   256      ;const t=d.languageDetectRe.exec(n);if(t){const n=v(t[1])
   257      ;return n||(H(o.replace("{}",t[1])),
   258      H("Falling back to no-highlight mode for this block.",e)),n?t[1]:"no-highlight"}
   259      return n.split(/\s+/).find((e=>_(e)||v(e)))})(e);if(_(t))return
   260      ;if(x("before:highlightElement",{el:e,language:t
   261      }),e.children.length>0&&(d.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),
   262      console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),
   263      console.warn("The element with unescaped HTML:"),
   264      console.warn(e)),d.throwUnescapedHTML))throw new V("One of your code blocks includes unescaped HTML.",e.innerHTML)
   265      ;n=e;const a=n.textContent,r=t?h(a,{language:t,ignoreIllegals:!0}):E(a)
   266      ;e.innerHTML=r.value,((e,n,t)=>{const a=n&&i[n]||t
   267      ;e.classList.add("hljs"),e.classList.add("language-"+a)
   268      })(e,t,r.language),e.result={language:r.language,re:r.relevance,
   269      relevance:r.relevance},r.secondBest&&(e.secondBest={
   270      language:r.secondBest.language,relevance:r.secondBest.relevance
   271      }),x("after:highlightElement",{el:e,result:r,text:a})}let w=!1;function N(){
   272      "loading"!==document.readyState?document.querySelectorAll(d.cssSelector).forEach(y):w=!0
   273      }function v(e){return e=(e||"").toLowerCase(),n[e]||n[i[e]]}
   274      function k(e,{languageName:n}){"string"==typeof e&&(e=[e]),e.forEach((e=>{
   275      i[e.toLowerCase()]=n}))}function O(e){const n=v(e)
   276      ;return n&&!n.disableAutodetect}function x(e,n){const t=e;r.forEach((e=>{
   277      e[t]&&e[t](n)}))}
   278      "undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(()=>{
   279      w&&N()}),!1),Object.assign(e,{highlight:h,highlightAuto:E,highlightAll:N,
   280      highlightElement:y,
   281      highlightBlock:e=>(q("10.7.0","highlightBlock will be removed entirely in v12.0"),
   282      q("10.7.0","Please use highlightElement now."),y(e)),configure:e=>{d=Y(d,e)},
   283      initHighlighting:()=>{
   284      N(),q("10.6.0","initHighlighting() deprecated.  Use highlightAll() now.")},
   285      initHighlightingOnLoad:()=>{
   286      N(),q("10.6.0","initHighlightingOnLoad() deprecated.  Use highlightAll() now.")
   287      },registerLanguage:(t,a)=>{let i=null;try{i=a(e)}catch(e){
   288      if(K("Language definition for '{}' could not be registered.".replace("{}",t)),
   289      !s)throw e;K(e),i=l}
   290      i.name||(i.name=t),n[t]=i,i.rawDefinition=a.bind(null,e),i.aliases&&k(i.aliases,{
   291      languageName:t})},unregisterLanguage:e=>{delete n[e]
   292      ;for(const n of Object.keys(i))i[n]===e&&delete i[n]},
   293      listLanguages:()=>Object.keys(n),getLanguage:v,registerAliases:k,
   294      autoDetection:O,inherit:Y,addPlugin:e=>{(e=>{
   295      e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=n=>{
   296      e["before:highlightBlock"](Object.assign({block:n.el},n))
   297      }),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=n=>{
   298      e["after:highlightBlock"](Object.assign({block:n.el},n))})})(e),r.push(e)}
   299      }),e.debugMode=()=>{s=!1},e.safeMode=()=>{s=!0
   300      },e.versionString="11.5.0",e.regex={concat:m,lookahead:g,either:p,optional:b,
   301      anyNumberOfTimes:u};for(const e in T)"object"==typeof T[e]&&t(T[e])
   302      ;return Object.assign(e,T),e})({});const te=e=>({IMPORTANT:{scope:"meta",
   303      begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{
   304      scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},
   305      FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},
   306      ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",
   307      contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{
   308      scope:"number",
   309      begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",
   310      relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/}
   311      }),ae=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],ie=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],re=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],se=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],oe=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse(),le=re.concat(se)
   312      ;var ce="\\.([0-9](_*[0-9])*)",de="[0-9a-fA-F](_*[0-9a-fA-F])*",ge={
   313      className:"number",variants:[{
   314      begin:`(\\b([0-9](_*[0-9])*)((${ce})|\\.)?|(${ce}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b`
   315      },{begin:`\\b([0-9](_*[0-9])*)((${ce})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{
   316      begin:`(${ce})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{
   317      begin:`\\b0[xX]((${de})\\.?|(${de})?\\.(${de}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b`
   318      },{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${de})[lL]?\\b`},{
   319      begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],
   320      relevance:0};function ue(e,n,t){return-1===t?"":e.replace(n,(a=>ue(e,n,t-1)))}
   321      const be="[A-Za-z$_][0-9A-Za-z$_]*",me=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],pe=["true","false","null","undefined","NaN","Infinity"],_e=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],he=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],fe=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Ee=["arguments","this","super","console","window","document","localStorage","module","global"],ye=[].concat(fe,_e,he)
   322      ;function we(e){const n=e.regex,t=be,a={begin:/<[A-Za-z0-9\\._:-]+/,
   323      end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{
   324      const t=e[0].length+e.index,a=e.input[t]
   325      ;if("<"===a||","===a)return void n.ignoreMatch();let i
   326      ;">"===a&&(((e,{after:n})=>{const t="</"+e[0].slice(1)
   327      ;return-1!==e.input.indexOf(t,n)})(e,{after:t
   328      })||n.ignoreMatch()),(i=e.input.substr(t).match(/^\s+extends\s+/))&&0===i.index&&n.ignoreMatch()
   329      }},i={$pattern:be,keyword:me,literal:pe,built_in:ye,"variable.language":Ee
   330      },r="\\.([0-9](_?[0-9])*)",s="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",o={
   331      className:"number",variants:[{
   332      begin:`(\\b(${s})((${r})|\\.)?|(${r}))[eE][+-]?([0-9](_?[0-9])*)\\b`},{
   333      begin:`\\b(${s})\\b((${r})\\b|\\.)?|(${r})\\b`},{
   334      begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{
   335      begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{
   336      begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{
   337      begin:"\\b0[0-7]+n?\\b"}],relevance:0},l={className:"subst",begin:"\\$\\{",
   338      end:"\\}",keywords:i,contains:[]},c={begin:"html`",end:"",starts:{end:"`",
   339      returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,l],subLanguage:"xml"}},d={
   340      begin:"css`",end:"",starts:{end:"`",returnEnd:!1,
   341      contains:[e.BACKSLASH_ESCAPE,l],subLanguage:"css"}},g={className:"string",
   342      begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,l]},u={className:"comment",
   343      variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{
   344      begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",
   345      begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,
   346      excludeBegin:!0,relevance:0},{className:"variable",begin:t+"(?=\\s*(-)|$)",
   347      endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]
   348      }),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]
   349      },b=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,c,d,g,o];l.contains=b.concat({
   350      begin:/\{/,end:/\}/,keywords:i,contains:["self"].concat(b)})
   351      ;const m=[].concat(u,l.contains),p=m.concat([{begin:/\(/,end:/\)/,keywords:i,
   352      contains:["self"].concat(m)}]),_={className:"params",begin:/\(/,end:/\)/,
   353      excludeBegin:!0,excludeEnd:!0,keywords:i,contains:p},h={variants:[{
   354      match:[/class/,/\s+/,t,/\s+/,/extends/,/\s+/,n.concat(t,"(",n.concat(/\./,t),")*")],
   355      scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{
   356      match:[/class/,/\s+/,t],scope:{1:"keyword",3:"title.class"}}]},f={relevance:0,
   357      match:n.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),
   358      className:"title.class",keywords:{_:[..._e,...he]}},E={variants:[{
   359      match:[/function/,/\s+/,t,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],
   360      className:{1:"keyword",3:"title.function"},label:"func.def",contains:[_],
   361      illegal:/%/},y={
   362      match:n.concat(/\b/,(w=[...fe,"super"],n.concat("(?!",w.join("|"),")")),t,n.lookahead(/\(/)),
   363      className:"title.function",relevance:0};var w;const N={
   364      begin:n.concat(/\./,n.lookahead(n.concat(t,/(?![0-9A-Za-z$_(])/))),end:t,
   365      excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},v={
   366      match:[/get|set/,/\s+/,t,/(?=\()/],className:{1:"keyword",3:"title.function"},
   367      contains:[{begin:/\(\)/},_]
   368      },k="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",O={
   369      match:[/const|var|let/,/\s+/,t,/\s*/,/=\s*/,/(async\s*)?/,n.lookahead(k)],
   370      keywords:"async",className:{1:"keyword",3:"title.function"},contains:[_]}
   371      ;return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:i,exports:{
   372      PARAMS_CONTAINS:p,CLASS_REFERENCE:f},illegal:/#(?![$_A-z])/,
   373      contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{
   374      label:"use_strict",className:"meta",relevance:10,
   375      begin:/^\s*['"]use (strict|asm)['"]/
   376      },e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,c,d,g,u,o,f,{className:"attr",
   377      begin:t+n.lookahead(":"),relevance:0},O,{
   378      begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",
   379      keywords:"return throw case",relevance:0,contains:[u,e.REGEXP_MODE,{
   380      className:"function",begin:k,returnBegin:!0,end:"\\s*=>",contains:[{
   381      className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{
   382      className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,
   383      excludeEnd:!0,keywords:i,contains:p}]}]},{begin:/,/,relevance:0},{match:/\s+/,
   384      relevance:0},{variants:[{begin:"<>",end:"</>"},{
   385      match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:a.begin,
   386      "on:begin":a.isTrulyOpeningTag,end:a.end}],subLanguage:"xml",contains:[{
   387      begin:a.begin,end:a.end,skip:!0,contains:["self"]}]}]},E,{
   388      beginKeywords:"while if switch catch for"},{
   389      begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",
   390      returnBegin:!0,label:"func.def",contains:[_,e.inherit(e.TITLE_MODE,{begin:t,
   391      className:"title.function"})]},{match:/\.\.\./,relevance:0},N,{match:"\\$"+t,
   392      relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},
   393      contains:[_]},y,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,
   394      className:"variable.constant"},h,v,{match:/\$[(.]/}]}}
   395      const Ne=e=>m(/\b/,e,/\w$/.test(e)?/\b/:/\B/),ve=["Protocol","Type"].map(Ne),ke=["init","self"].map(Ne),Oe=["Any","Self"],xe=["actor","associatedtype","async","await",/as\?/,/as!/,"as","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","do","dynamic","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],Me=["false","nil","true"],Se=["assignment","associativity","higherThan","left","lowerThan","none","right"],Ae=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warn_unqualified_access","#warning"],Ce=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],Te=p(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),Re=p(Te,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),De=m(Te,Re,"*"),Ie=p(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),Le=p(Ie,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),Be=m(Ie,Le,"*"),$e=m(/[A-Z]/,Le,"*"),ze=["autoclosure",m(/convention\(/,p("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",m(/objc\(/,Be,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","testable","UIApplicationMain","unknown","usableFromInline"],Fe=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"]
   396      ;var Ue=Object.freeze({__proto__:null,grmr_bash:e=>{const n=e.regex,t={},a={
   397      begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]}
   398      ;Object.assign(t,{className:"variable",variants:[{
   399      begin:n.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},a]});const i={
   400      className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},r={
   401      begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,
   402      end:/(\w+)/,className:"string"})]}},s={className:"string",begin:/"/,end:/"/,
   403      contains:[e.BACKSLASH_ESCAPE,t,i]};i.contains.push(s);const o={begin:/\$\(\(/,
   404      end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t]
   405      },l=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10
   406      }),c={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,
   407      contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{
   408      name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,
   409      keyword:["if","then","else","elif","fi","for","while","in","do","done","case","esac","function"],
   410      literal:["true","false"],
   411      built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"]
   412      },contains:[l,e.SHEBANG(),c,o,e.HASH_COMMENT_MODE,r,{match:/(\/[a-z._-]+)+/},s,{
   413      className:"",begin:/\\"/},{className:"string",begin:/'/,end:/'/},t]}},
   414      grmr_c:e=>{const n=e.regex,t=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]
   415      }),a="[a-zA-Z_]\\w*::",i="(decltype\\(auto\\)|"+n.optional(a)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",r={
   416      className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{
   417      match:/\batomic_[a-z]{3,6}\b/}]},s={className:"string",variants:[{
   418      begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{
   419      begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",
   420      end:"'",illegal:"."},e.END_SAME_AS_BEGIN({
   421      begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},o={
   422      className:"number",variants:[{begin:"\\b(0b[01']+)"},{
   423      begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"
   424      },{
   425      begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
   426      }],relevance:0},l={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{
   427      keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"
   428      },contains:[{begin:/\\\n/,relevance:0},e.inherit(s,{className:"string"}),{
   429      className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},c={
   430      className:"title",begin:n.optional(a)+e.IDENT_RE,relevance:0
   431      },d=n.optional(a)+e.IDENT_RE+"\\s*\\(",g={
   432      keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],
   433      type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal128","const","static","complex","bool","imaginary"],
   434      literal:"true false NULL",
   435      built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"
   436      },u=[l,r,t,e.C_BLOCK_COMMENT_MODE,o,s],b={variants:[{begin:/=/,end:/;/},{
   437      begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],
   438      keywords:g,contains:u.concat([{begin:/\(/,end:/\)/,keywords:g,
   439      contains:u.concat(["self"]),relevance:0}]),relevance:0},m={
   440      begin:"("+i+"[\\*&\\s]+)+"+d,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,
   441      keywords:g,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)",
   442      keywords:g,relevance:0},{begin:d,returnBegin:!0,contains:[e.inherit(c,{
   443      className:"title.function"})],relevance:0},{relevance:0,match:/,/},{
   444      className:"params",begin:/\(/,end:/\)/,keywords:g,relevance:0,
   445      contains:[t,e.C_BLOCK_COMMENT_MODE,s,o,r,{begin:/\(/,end:/\)/,keywords:g,
   446      relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,s,o,r]}]
   447      },r,t,e.C_BLOCK_COMMENT_MODE,l]};return{name:"C",aliases:["h"],keywords:g,
   448      disableAutodetect:!0,illegal:"</",contains:[].concat(b,m,u,[l,{
   449      begin:e.IDENT_RE+"::",keywords:g},{className:"class",
   450      beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{
   451      beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:l,
   452      strings:s,keywords:g}}},grmr_cpp:e=>{const n=e.regex,t=e.COMMENT("//","$",{
   453      contains:[{begin:/\\\n/}]
   454      }),a="[a-zA-Z_]\\w*::",i="(?!struct)(decltype\\(auto\\)|"+n.optional(a)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",r={
   455      className:"type",begin:"\\b[a-z\\d_]*_t\\b"},s={className:"string",variants:[{
   456      begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{
   457      begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",
   458      end:"'",illegal:"."},e.END_SAME_AS_BEGIN({
   459      begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},o={
   460      className:"number",variants:[{begin:"\\b(0b[01']+)"},{
   461      begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"
   462      },{
   463      begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
   464      }],relevance:0},l={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{
   465      keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"
   466      },contains:[{begin:/\\\n/,relevance:0},e.inherit(s,{className:"string"}),{
   467      className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},c={
   468      className:"title",begin:n.optional(a)+e.IDENT_RE,relevance:0
   469      },d=n.optional(a)+e.IDENT_RE+"\\s*\\(",g={
   470      type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],
   471      keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],
   472      literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],
   473      _type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"]
   474      },u={className:"function.dispatch",relevance:0,keywords:{
   475      _hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"]
   476      },
   477      begin:n.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,n.lookahead(/(<[^<>]+>|)\s*\(/))
   478      },b=[u,l,r,t,e.C_BLOCK_COMMENT_MODE,o,s],m={variants:[{begin:/=/,end:/;/},{
   479      begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],
   480      keywords:g,contains:b.concat([{begin:/\(/,end:/\)/,keywords:g,
   481      contains:b.concat(["self"]),relevance:0}]),relevance:0},p={className:"function",
   482      begin:"("+i+"[\\*&\\s]+)+"+d,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,
   483      keywords:g,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)",
   484      keywords:g,relevance:0},{begin:d,returnBegin:!0,contains:[c],relevance:0},{
   485      begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[s,o]},{
   486      relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:g,
   487      relevance:0,contains:[t,e.C_BLOCK_COMMENT_MODE,s,o,r,{begin:/\(/,end:/\)/,
   488      keywords:g,relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,s,o,r]}]
   489      },r,t,e.C_BLOCK_COMMENT_MODE,l]};return{name:"C++",
   490      aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:g,illegal:"</",
   491      classNameAliases:{"function.dispatch":"built_in"},
   492      contains:[].concat(m,p,u,b,[l,{
   493      begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function)\\s*<(?!<)",
   494      end:">",keywords:g,contains:["self",r]},{begin:e.IDENT_RE+"::",keywords:g},{
   495      match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],
   496      className:{1:"keyword",3:"title.class"}}])}},grmr_csharp:e=>{const n={
   497      keyword:["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"]),
   498      built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],
   499      literal:["default","false","null","true"]},t=e.inherit(e.TITLE_MODE,{
   500      begin:"[a-zA-Z](\\.?\\w)*"}),a={className:"number",variants:[{
   501      begin:"\\b(0b[01']+)"},{
   502      begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{
   503      begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
   504      }],relevance:0},i={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]
   505      },r=e.inherit(i,{illegal:/\n/}),s={className:"subst",begin:/\{/,end:/\}/,
   506      keywords:n},o=e.inherit(s,{illegal:/\n/}),l={className:"string",begin:/\$"/,
   507      end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/
   508      },e.BACKSLASH_ESCAPE,o]},c={className:"string",begin:/\$@"/,end:'"',contains:[{
   509      begin:/\{\{/},{begin:/\}\}/},{begin:'""'},s]},d=e.inherit(c,{illegal:/\n/,
   510      contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},o]})
   511      ;s.contains=[c,l,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.C_BLOCK_COMMENT_MODE],
   512      o.contains=[d,l,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.inherit(e.C_BLOCK_COMMENT_MODE,{
   513      illegal:/\n/})];const g={variants:[c,l,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]
   514      },u={begin:"<",end:">",contains:[{beginKeywords:"in out"},t]
   515      },b=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",m={
   516      begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],
   517      keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,
   518      contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{
   519      begin:"\x3c!--|--\x3e"},{begin:"</?",end:">"}]}]
   520      }),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",
   521      end:"$",keywords:{
   522      keyword:"if else elif endif define undef warning error line region endregion pragma checksum"
   523      }},g,a,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,
   524      illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"
   525      },t,u,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",
   526      relevance:0,end:/[{;=]/,illegal:/[^\s:]/,
   527      contains:[t,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{
   528      beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,
   529      contains:[t,u,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",
   530      begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{
   531      className:"string",begin:/"/,end:/"/}]},{
   532      beginKeywords:"new return throw await else",relevance:0},{className:"function",
   533      begin:"("+b+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,
   534      end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{
   535      beginKeywords:"public private protected static internal protected abstract async extern override unsafe virtual new sealed partial",
   536      relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,
   537      contains:[e.TITLE_MODE,u],relevance:0},{match:/\(\)/},{className:"params",
   538      begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0,
   539      contains:[g,a,e.C_BLOCK_COMMENT_MODE]
   540      },e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},m]}},grmr_css:e=>{
   541      const n=e.regex,t=te(e),a=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{
   542      name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{
   543      keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},
   544      contains:[t.BLOCK_COMMENT,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/
   545      },t.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0
   546      },{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0
   547      },t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{
   548      begin:":("+re.join("|")+")"},{begin:":(:)?("+se.join("|")+")"}]
   549      },t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+oe.join("|")+")\\b"},{
   550      begin:/:/,end:/[;}{]/,
   551      contains:[t.BLOCK_COMMENT,t.HEXCOLOR,t.IMPORTANT,t.CSS_NUMBER_MODE,...a,{
   552      begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"
   553      },contains:[{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]
   554      },t.FUNCTION_DISPATCH]},{begin:n.lookahead(/@/),end:"[{;]",relevance:0,
   555      illegal:/:/,contains:[{className:"keyword",begin:/@-?\w[\w]*(-\w+)*/},{
   556      begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{
   557      $pattern:/[a-z-]+/,keyword:"and or not only",attribute:ie.join(" ")},contains:[{
   558      begin:/[a-z-]+(?=:)/,className:"attribute"},...a,t.CSS_NUMBER_MODE]}]},{
   559      className:"selector-tag",begin:"\\b("+ae.join("|")+")\\b"}]}},grmr_diff:e=>{
   560      const n=e.regex;return{name:"Diff",aliases:["patch"],contains:[{
   561      className:"meta",relevance:10,
   562      match:n.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)
   563      },{className:"comment",variants:[{
   564      begin:n.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),
   565      end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{
   566      className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,
   567      end:/$/}]}},grmr_go:e=>{const n={
   568      keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],
   569      type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],
   570      literal:["true","false","iota","nil"],
   571      built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]
   572      };return{name:"Go",aliases:["golang"],keywords:n,illegal:"</",
   573      contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",
   574      variants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:"`",end:"`"}]},{
   575      className:"number",variants:[{begin:e.C_NUMBER_RE+"[i]",relevance:1
   576      },e.C_NUMBER_MODE]},{begin:/:=/},{className:"function",beginKeywords:"func",
   577      end:"\\s*(\\{|$)",excludeEnd:!0,contains:[e.TITLE_MODE,{className:"params",
   578      begin:/\(/,end:/\)/,endsParent:!0,keywords:n,illegal:/["']/}]}]}},grmr_ini:e=>{
   579      const n=e.regex,t={className:"number",relevance:0,variants:[{
   580      begin:/([+-]+)?[\d]+_[\d_]+/},{begin:e.NUMBER_RE}]},a=e.COMMENT();a.variants=[{
   581      begin:/;/,end:/$/},{begin:/#/,end:/$/}];const i={className:"variable",
   582      variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},r={
   583      className:"literal",begin:/\bon|off|true|false|yes|no\b/},s={className:"string",
   584      contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{
   585      begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]
   586      },o={begin:/\[/,end:/\]/,contains:[a,r,i,s,t,"self"],relevance:0
   587      },l=n.either(/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/);return{
   588      name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,
   589      contains:[a,{className:"section",begin:/\[+/,end:/\]+/},{
   590      begin:n.concat(l,"(\\s*\\.\\s*",l,")*",n.lookahead(/\s*=\s*[^#\s]/)),
   591      className:"attr",starts:{end:/$/,contains:[a,o,r,i,s,t]}}]}},grmr_java:e=>{
   592      const n=e.regex,t="[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*",a=t+ue("(?:<"+t+"~~~(?:\\s*,\\s*"+t+"~~~)*>)?",/~~~/g,2),i={
   593      keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed"],
   594      literal:["false","true","null"],
   595      type:["char","boolean","long","float","int","byte","short","double"],
   596      built_in:["super","this"]},r={className:"meta",begin:"@"+t,contains:[{
   597      begin:/\(/,end:/\)/,contains:["self"]}]},s={className:"params",begin:/\(/,
   598      end:/\)/,keywords:i,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0}
   599      ;return{name:"Java",aliases:["jsp"],keywords:i,illegal:/<\/|#/,
   600      contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,
   601      relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{
   602      begin:/import java\.[a-z]+\./,keywords:"import",relevance:2
   603      },e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,
   604      className:"string",contains:[e.BACKSLASH_ESCAPE]
   605      },e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{
   606      match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,t],className:{
   607      1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{
   608      begin:[n.concat(/(?!else)/,t),/\s+/,t,/\s+/,/=/],className:{1:"type",
   609      3:"variable",5:"operator"}},{begin:[/record/,/\s+/,t],className:{1:"keyword",
   610      3:"title.class"},contains:[s,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{
   611      beginKeywords:"new throw return else",relevance:0},{
   612      begin:["(?:"+a+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{
   613      2:"title.function"},keywords:i,contains:[{className:"params",begin:/\(/,
   614      end:/\)/,keywords:i,relevance:0,
   615      contains:[r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,ge,e.C_BLOCK_COMMENT_MODE]
   616      },e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},ge,r]}},grmr_javascript:we,
   617      grmr_json:e=>({name:"JSON",contains:[{className:"attr",
   618      begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},{match:/[{}[\],:]/,
   619      className:"punctuation",relevance:0},e.QUOTE_STRING_MODE,{
   620      beginKeywords:"true false null"
   621      },e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}),
   622      grmr_kotlin:e=>{const n={
   623      keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",
   624      built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",
   625      literal:"true false null"},t={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"
   626      },a={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},i={
   627      className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},r={className:"string",
   628      variants:[{begin:'"""',end:'"""(?=[^"])',contains:[i,a]},{begin:"'",end:"'",
   629      illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,
   630      contains:[e.BACKSLASH_ESCAPE,i,a]}]};a.contains.push(r);const s={
   631      className:"meta",
   632      begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"
   633      },o={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,
   634      end:/\)/,contains:[e.inherit(r,{className:"string"})]}]
   635      },l=ge,c=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),d={
   636      variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,
   637      contains:[]}]},g=d;return g.variants[1].contains=[d],d.variants[1].contains=[g],
   638      {name:"Kotlin",aliases:["kt","kts"],keywords:n,
   639      contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",
   640      begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,c,{className:"keyword",
   641      begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",
   642      begin:/@\w+/}]}},t,s,o,{className:"function",beginKeywords:"fun",end:"[(]|$",
   643      returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{
   644      begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,
   645      contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,
   646      keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,
   647      endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,
   648      endsWithParent:!0,contains:[d,e.C_LINE_COMMENT_MODE,c],relevance:0
   649      },e.C_LINE_COMMENT_MODE,c,s,o,r,e.C_NUMBER_MODE]},c]},{className:"class",
   650      beginKeywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,
   651      illegal:"extends implements",contains:[{
   652      beginKeywords:"public protected internal private constructor"
   653      },e.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,
   654      excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,]|$/,
   655      excludeBegin:!0,returnEnd:!0},s,o]},r,{className:"meta",begin:"^#!/usr/bin/env",
   656      end:"$",illegal:"\n"},l]}},grmr_less:e=>{
   657      const n=te(e),t=le,a="([\\w-]+|@\\{[\\w-]+\\})",i=[],r=[],s=e=>({
   658      className:"string",begin:"~?"+e+".*?"+e}),o=(e,n,t)=>({className:e,begin:n,
   659      relevance:t}),l={$pattern:/[a-z-]+/,keyword:"and or not only",
   660      attribute:ie.join(" ")},c={begin:"\\(",end:"\\)",contains:r,keywords:l,
   661      relevance:0}
   662      ;r.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s("'"),s('"'),n.CSS_NUMBER_MODE,{
   663      begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",
   664      excludeEnd:!0}
   665      },n.HEXCOLOR,c,o("variable","@@?[\\w-]+",10),o("variable","@\\{[\\w-]+\\}"),o("built_in","~?`[^`]*?`"),{
   666      className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0
   667      },n.IMPORTANT);const d=r.concat({begin:/\{/,end:/\}/,contains:i}),g={
   668      beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"
   669      }].concat(r)},u={begin:a+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,
   670      contains:[{begin:/-(webkit|moz|ms|o)-/},n.CSS_VARIABLE,{className:"attribute",
   671      begin:"\\b("+oe.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,
   672      illegal:"[<=$]",relevance:0,contains:r}}]},b={className:"keyword",
   673      begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",
   674      starts:{end:"[;{}]",keywords:l,returnEnd:!0,contains:r,relevance:0}},m={
   675      className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{
   676      begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:d}},p={variants:[{
   677      begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:a,end:/\{/}],returnBegin:!0,
   678      returnEnd:!0,illegal:"[<='$\"]",relevance:0,
   679      contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,g,o("keyword","all\\b"),o("variable","@\\{[\\w-]+\\}"),{
   680      begin:"\\b("+ae.join("|")+")\\b",className:"selector-tag"
   681      },n.CSS_NUMBER_MODE,o("selector-tag",a,0),o("selector-id","#"+a),o("selector-class","\\."+a,0),o("selector-tag","&",0),n.ATTRIBUTE_SELECTOR_MODE,{
   682      className:"selector-pseudo",begin:":("+re.join("|")+")"},{
   683      className:"selector-pseudo",begin:":(:)?("+se.join("|")+")"},{begin:/\(/,
   684      end:/\)/,relevance:0,contains:d},{begin:"!important"},n.FUNCTION_DISPATCH]},_={
   685      begin:`[\\w-]+:(:)?(${t.join("|")})`,returnBegin:!0,contains:[p]}
   686      ;return i.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,b,m,_,u,p),{
   687      name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:i}},grmr_lua:e=>{
   688      const n="\\[=*\\[",t="\\]=*\\]",a={begin:n,end:t,contains:["self"]
   689      },i=[e.COMMENT("--(?!\\[=*\\[)","$"),e.COMMENT("--\\[=*\\[",t,{contains:[a],
   690      relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE,
   691      literal:"true false nil",
   692      keyword:"and break do else elseif end for goto if in local not or repeat return then until while",
   693      built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"
   694      },contains:i.concat([{className:"function",beginKeywords:"function",end:"\\)",
   695      contains:[e.inherit(e.TITLE_MODE,{
   696      begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",
   697      begin:"\\(",endsWithParent:!0,contains:i}].concat(i)
   698      },e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",
   699      begin:n,end:t,contains:[a],relevance:5}])}},grmr_makefile:e=>{const n={
   700      className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",
   701      contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%<?\^\+\*]/}]},t={className:"string",
   702      begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n]},a={className:"variable",
   703      begin:/\$\([\w-]+\s/,end:/\)/,keywords:{
   704      built_in:"subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value"
   705      },contains:[n]},i={begin:"^"+e.UNDERSCORE_IDENT_RE+"\\s*(?=[:+?]?=)"},r={
   706      className:"section",begin:/^[^\s]+:/,end:/$/,contains:[n]};return{
   707      name:"Makefile",aliases:["mk","mak","make"],keywords:{$pattern:/[\w-]+/,
   708      keyword:"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath"
   709      },contains:[e.HASH_COMMENT_MODE,n,t,a,i,{className:"meta",begin:/^\.PHONY:/,
   710      end:/$/,keywords:{$pattern:/[\.\w]+/,keyword:".PHONY"}},r]}},grmr_xml:e=>{
   711      const n=e.regex,t=n.concat(/[A-Z_]/,n.optional(/[A-Z0-9_.-]*:/),/[A-Z0-9_.-]*/),a={
   712      className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},i={begin:/\s/,
   713      contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]
   714      },r=e.inherit(i,{begin:/\(/,end:/\)/}),s=e.inherit(e.APOS_STRING_MODE,{
   715      className:"string"}),o=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),l={
   716      endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",
   717      begin:/[A-Za-z0-9._:-]+/,relevance:0},{begin:/=\s*/,relevance:0,contains:[{
   718      className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[a]},{
   719      begin:/'/,end:/'/,contains:[a]},{begin:/[^\s"'=<>`]+/}]}]}]};return{
   720      name:"HTML, XML",
   721      aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],
   722      case_insensitive:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,
   723      relevance:10,contains:[i,o,s,r,{begin:/\[/,end:/\]/,contains:[{className:"meta",
   724      begin:/<![a-z]/,end:/>/,contains:[i,r,o,s]}]}]},e.COMMENT(/<!--/,/-->/,{
   725      relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},a,{
   726      className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[o]
   727      },{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,
   728      keywords:{name:"style"},contains:[l],starts:{end:/<\/style>/,returnEnd:!0,
   729      subLanguage:["css","xml"]}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,
   730      keywords:{name:"script"},contains:[l],starts:{end:/<\/script>/,returnEnd:!0,
   731      subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/
   732      },{className:"tag",
   733      begin:n.concat(/</,n.lookahead(n.concat(t,n.either(/\/>/,/>/,/\s/)))),
   734      end:/\/?>/,contains:[{className:"name",begin:t,relevance:0,starts:l}]},{
   735      className:"tag",begin:n.concat(/<\//,n.lookahead(n.concat(t,/>/))),contains:[{
   736      className:"name",begin:t,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}
   737      },grmr_markdown:e=>{const n={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",
   738      relevance:0},t={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{
   739      begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,
   740      relevance:2},{
   741      begin:e.regex.concat(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/),
   742      relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{
   743      begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/
   744      },{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,
   745      returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",
   746      excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",
   747      end:"\\]",excludeBegin:!0,excludeEnd:!0}]},a={className:"strong",contains:[],
   748      variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},i={
   749      className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{
   750      begin:/_(?!_)/,end:/_/,relevance:0}]},r=e.inherit(a,{contains:[]
   751      }),s=e.inherit(i,{contains:[]});a.contains.push(s),i.contains.push(r)
   752      ;let o=[n,t];return[a,i,r,s].forEach((e=>{e.contains=e.contains.concat(o)
   753      })),o=o.concat(a,i),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{
   754      className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:o},{
   755      begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",
   756      contains:o}]}]},n,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",
   757      end:"\\s+",excludeEnd:!0},a,i,{className:"quote",begin:"^>\\s+",contains:o,
   758      end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{
   759      begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{
   760      begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",
   761      contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{
   762      begin:"^[-\\*]{3,}",end:"$"},t,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{
   763      className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{
   764      className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}},grmr_objectivec:e=>{
   765      const n=/[a-zA-Z@][a-zA-Z0-9_]*/,t={$pattern:n,
   766      keyword:["@interface","@class","@protocol","@implementation"]};return{
   767      name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],
   768      keywords:{"variable.language":["this","super"],$pattern:n,
   769      keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],
   770      literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],
   771      built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],
   772      type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]
   773      },illegal:"</",contains:[{className:"built_in",
   774      begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"
   775      },e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{
   776      className:"string",variants:[{begin:'@"',end:'"',illegal:"\\n",
   777      contains:[e.BACKSLASH_ESCAPE]}]},{className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,
   778      keywords:{
   779      keyword:"if else elif endif define undef warning error line pragma ifdef ifndef include"
   780      },contains:[{begin:/\\\n/,relevance:0},e.inherit(e.QUOTE_STRING_MODE,{
   781      className:"string"}),{className:"string",begin:/<.*?>/,end:/$/,illegal:"\\n"
   782      },e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",
   783      begin:"("+t.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:t,
   784      contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,
   785      relevance:0}]}},grmr_perl:e=>{const n=e.regex,t=/[dualxmsipngr]{0,12}/,a={
   786      $pattern:/[\w.]+/,
   787      keyword:"abs accept alarm and atan2 bind binmode bless break caller chdir chmod chomp chop chown chr chroot close closedir connect continue cos crypt dbmclose dbmopen defined delete die do dump each else elsif endgrent endhostent endnetent endprotoent endpwent endservent eof eval exec exists exit exp fcntl fileno flock for foreach fork format formline getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt given glob gmtime goto grep gt hex if index int ioctl join keys kill last lc lcfirst length link listen local localtime log lstat lt ma map mkdir msgctl msgget msgrcv msgsnd my ne next no not oct open opendir or ord our pack package pipe pop pos print printf prototype push q|0 qq quotemeta qw qx rand read readdir readline readlink readpipe recv redo ref rename require reset return reverse rewinddir rindex rmdir say scalar seek seekdir select semctl semget semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat state study sub substr symlink syscall sysopen sysread sysseek system syswrite tell telldir tie tied time times tr truncate uc ucfirst umask undef unless unlink unpack unshift untie until use utime values vec wait waitpid wantarray warn when while write x|0 xor y|0"
   788      },i={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:a},r={begin:/->\{/,
   789      end:/\}/},s={variants:[{begin:/\$\d/},{
   790      begin:n.concat(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")
   791      },{begin:/[$%@][^\s\w{]/,relevance:0}]
   792      },o=[e.BACKSLASH_ESCAPE,i,s],l=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],c=(e,a,i="\\1")=>{
   793      const r="\\1"===i?i:n.concat(i,a)
   794      ;return n.concat(n.concat("(?:",e,")"),a,/(?:\\.|[^\\\/])*?/,r,/(?:\\.|[^\\\/])*?/,i,t)
   795      },d=(e,a,i)=>n.concat(n.concat("(?:",e,")"),a,/(?:\\.|[^\\\/])*?/,i,t),g=[s,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{
   796      endsWithParent:!0}),r,{className:"string",contains:o,variants:[{
   797      begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",
   798      end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{
   799      begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",
   800      relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",
   801      contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",
   802      contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{
   803      begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number",
   804      begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",
   805      relevance:0},{
   806      begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",
   807      keywords:"split return print reverse grep",relevance:0,
   808      contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{
   809      begin:c("s|tr|y",n.either(...l,{capture:!0}))},{begin:c("s|tr|y","\\(","\\)")},{
   810      begin:c("s|tr|y","\\[","\\]")},{begin:c("s|tr|y","\\{","\\}")}],relevance:2},{
   811      className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{
   812      begin:d("(?:m|qr)?",/\//,/\//)},{begin:d("m|qr",n.either(...l,{capture:!0
   813      }),/\1/)},{begin:d("m|qr",/\(/,/\)/)},{begin:d("m|qr",/\[/,/\]/)},{
   814      begin:d("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub",
   815      end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{
   816      begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",
   817      subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]
   818      }];return i.contains=g,r.contains=g,{name:"Perl",aliases:["pl","pm"],keywords:a,
   819      contains:g}},grmr_php:e=>{
   820      const n=e.regex,t=/(?![A-Za-z0-9])(?![$])/,a=n.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,t),i=n.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,t),r={
   821      scope:"variable",match:"\\$+"+a},s={scope:"subst",variants:[{begin:/\$\w+/},{
   822      begin:/\{\$/,end:/\}/}]},o=e.inherit(e.APOS_STRING_MODE,{illegal:null
   823      }),l="[ \t\n]",c={scope:"string",variants:[e.inherit(e.QUOTE_STRING_MODE,{
   824      illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(s)
   825      }),o,e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*(\w+)\n/,end:/[ \t]*(\w+)\b/,
   826      contains:e.QUOTE_STRING_MODE.contains.concat(s)})]},d={scope:"number",
   827      variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{
   828      begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{
   829      begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{
   830      begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"
   831      }],relevance:0
   832      },g=["false","null","true"],u=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],b=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],m={
   833      keyword:u,literal:(e=>{const n=[];return e.forEach((e=>{
   834      n.push(e),e.toLowerCase()===e?n.push(e.toUpperCase()):n.push(e.toLowerCase())
   835      })),n})(g),built_in:b},p=e=>e.map((e=>e.replace(/\|\d+$/,""))),_={variants:[{
   836      match:[/new/,n.concat(l,"+"),n.concat("(?!",p(b).join("\\b|"),"\\b)"),i],scope:{
   837      1:"keyword",4:"title.class"}}]},h=n.concat(a,"\\b(?!\\()"),f={variants:[{
   838      match:[n.concat(/::/,n.lookahead(/(?!class\b)/)),h],scope:{2:"variable.constant"
   839      }},{match:[/::/,/class/],scope:{2:"variable.language"}},{
   840      match:[i,n.concat(/::/,n.lookahead(/(?!class\b)/)),h],scope:{1:"title.class",
   841      3:"variable.constant"}},{match:[i,n.concat("::",n.lookahead(/(?!class\b)/))],
   842      scope:{1:"title.class"}},{match:[i,/::/,/class/],scope:{1:"title.class",
   843      3:"variable.language"}}]},E={scope:"attr",
   844      match:n.concat(a,n.lookahead(":"),n.lookahead(/(?!::)/))},y={relevance:0,
   845      begin:/\(/,end:/\)/,keywords:m,contains:[E,r,f,e.C_BLOCK_COMMENT_MODE,c,d,_]
   846      },w={relevance:0,
   847      match:[/\b/,n.concat("(?!fn\\b|function\\b|",p(u).join("\\b|"),"|",p(b).join("\\b|"),"\\b)"),a,n.concat(l,"*"),n.lookahead(/(?=\()/)],
   848      scope:{3:"title.function.invoke"},contains:[y]};y.contains.push(w)
   849      ;const N=[E,f,e.C_BLOCK_COMMENT_MODE,c,d,_];return{case_insensitive:!1,
   850      keywords:m,contains:[{begin:n.concat(/#\[\s*/,i),beginScope:"meta",end:/]/,
   851      endScope:"meta",keywords:{literal:g,keyword:["new","array"]},contains:[{
   852      begin:/\[/,end:/]/,keywords:{literal:g,keyword:["new","array"]},
   853      contains:["self",...N]},...N,{scope:"meta",match:i}]
   854      },e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{
   855      scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,
   856      keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,
   857      contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},{scope:"meta",variants:[{
   858      begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{
   859      begin:/\?>/}]},{scope:"variable.language",match:/\$this\b/},r,w,f,{
   860      match:[/const/,/\s/,a],scope:{1:"keyword",3:"variable.constant"}},_,{
   861      scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,
   862      excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"
   863      },e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",
   864      begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:m,
   865      contains:["self",r,f,e.C_BLOCK_COMMENT_MODE,c,d]}]},{scope:"class",variants:[{
   866      beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",
   867      illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{
   868      beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{
   869      beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,
   870      contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{
   871      beginKeywords:"use",relevance:0,end:";",contains:[{
   872      match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},c,d]}
   873      },grmr_php_template:e=>({name:"PHP template",subLanguage:"xml",contains:[{
   874      begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",
   875      end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0
   876      },e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,
   877      skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,
   878      contains:null,skip:!0})]}]}),grmr_plaintext:e=>({name:"Plain text",
   879      aliases:["text","txt"],disableAutodetect:!0}),grmr_python:e=>{
   880      const n=e.regex,t=/[\p{XID_Start}_]\p{XID_Continue}*/u,a=["and","as","assert","async","await","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],i={
   881      $pattern:/[A-Za-z]\w+|__\w+__/,keyword:a,
   882      built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],
   883      literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],
   884      type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]
   885      },r={className:"meta",begin:/^(>>>|\.\.\.) /},s={className:"subst",begin:/\{/,
   886      end:/\}/,keywords:i,illegal:/#/},o={begin:/\{\{/,relevance:0},l={
   887      className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{
   888      begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,
   889      contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{
   890      begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,
   891      contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{
   892      begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,
   893      contains:[e.BACKSLASH_ESCAPE,r,o,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,
   894      end:/"""/,contains:[e.BACKSLASH_ESCAPE,r,o,s]},{begin:/([uU]|[rR])'/,end:/'/,
   895      relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{
   896      begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,
   897      end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,
   898      contains:[e.BACKSLASH_ESCAPE,o,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,
   899      contains:[e.BACKSLASH_ESCAPE,o,s]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]
   900      },c="[0-9](_?[0-9])*",d=`(\\b(${c}))?\\.(${c})|\\b(${c})\\.`,g="\\b|"+a.join("|"),u={
   901      className:"number",relevance:0,variants:[{
   902      begin:`(\\b(${c})|(${d}))[eE][+-]?(${c})[jJ]?(?=${g})`},{begin:`(${d})[jJ]?`},{
   903      begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${g})`},{
   904      begin:`\\b0[bB](_?[01])+[lL]?(?=${g})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${g})`
   905      },{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${g})`},{begin:`\\b(${c})[jJ](?=${g})`
   906      }]},b={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:i,
   907      contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},m={
   908      className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,
   909      end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,
   910      contains:["self",r,u,l,e.HASH_COMMENT_MODE]}]};return s.contains=[l,u,r],{
   911      name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:i,
   912      illegal:/(<\/|->|\?)|=>/,contains:[r,u,{begin:/\bself\b/},{beginKeywords:"if",
   913      relevance:0},l,b,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,t],scope:{
   914      1:"keyword",3:"title.function"},contains:[m]},{variants:[{
   915      match:[/\bclass/,/\s+/,t,/\s*/,/\(\s*/,t,/\s*\)/]},{match:[/\bclass/,/\s+/,t]}],
   916      scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{
   917      className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[u,m,l]}]}},
   918      grmr_python_repl:e=>({aliases:["pycon"],contains:[{className:"meta.prompt",
   919      starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{
   920      begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}),grmr_r:e=>{
   921      const n=e.regex,t=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,a=n.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),i=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,r=n.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/)
   922      ;return{name:"R",keywords:{$pattern:t,
   923      keyword:"function if in break next repeat else for while",
   924      literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",
   925      built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"
   926      },contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,
   927      starts:{end:n.lookahead(n.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),
   928      endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{
   929      scope:"variable",variants:[{match:t},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0
   930      }]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]
   931      }),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE],
   932      variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/
   933      }),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/
   934      }),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/
   935      }),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/
   936      }),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/
   937      }),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',
   938      relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{
   939      1:"operator",2:"number"},match:[i,a]},{scope:{1:"operator",2:"number"},
   940      match:[/%[^%]*%/,a]},{scope:{1:"punctuation",2:"number"},match:[r,a]},{scope:{
   941      2:"number"},match:[/[^a-zA-Z0-9._]|^/,a]}]},{scope:{3:"operator"},
   942      match:[t,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:i},{
   943      match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:r},{begin:"`",end:"`",
   944      contains:[{begin:/\\./}]}]}},grmr_ruby:e=>{
   945      const n=e.regex,t="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",a=n.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),i=n.concat(a,/(::\w+)*/),r={
   946      "variable.constant":["__FILE__","__LINE__"],
   947      "variable.language":["self","super"],
   948      keyword:["alias","and","attr_accessor","attr_reader","attr_writer","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","include","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield"],
   949      built_in:["proc","lambda"],literal:["true","false","nil"]},s={
   950      className:"doctag",begin:"@[A-Za-z]+"},o={begin:"#<",end:">"
   951      },l=[e.COMMENT("#","$",{contains:[s]}),e.COMMENT("^=begin","^=end",{
   952      contains:[s],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],c={
   953      className:"subst",begin:/#\{/,end:/\}/,keywords:r},d={className:"string",
   954      contains:[e.BACKSLASH_ESCAPE,c],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/
   955      },{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,
   956      end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?</,end:/>/},{
   957      begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,
   958      end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{
   959      begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{
   960      begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{
   961      begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{
   962      begin:n.concat(/<<[-~]?'?/,n.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),
   963      contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,
   964      contains:[e.BACKSLASH_ESCAPE,c]})]}]},g="[0-9](_?[0-9])*",u={className:"number",
   965      relevance:0,variants:[{
   966      begin:`\\b([1-9](_?[0-9])*|0)(\\.(${g}))?([eE][+-]?(${g})|r)?i?\\b`},{
   967      begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"
   968      },{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{
   969      begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{
   970      begin:"\\b0(_?[0-7])+r?i?\\b"}]},b={variants:[{match:/\(\)/},{
   971      className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,
   972      keywords:r}]},m=[d,{variants:[{match:[/class\s+/,i,/\s+<\s+/,i]},{
   973      match:[/class\s+/,i]}],scope:{2:"title.class",4:"title.class.inherited"},
   974      keywords:r},{relevance:0,match:[i,/\.new[ (]/],scope:{1:"title.class"}},{
   975      relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{
   976      match:[/def/,/\s+/,t],scope:{1:"keyword",3:"title.function"},contains:[b]},{
   977      begin:e.IDENT_RE+"::"},{className:"symbol",
   978      begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",
   979      begin:":(?!\\s)",contains:[d,{begin:t}],relevance:0},u,{className:"variable",
   980      begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{
   981      className:"params",begin:/\|/,end:/\|/,excludeBegin:!0,excludeEnd:!0,
   982      relevance:0,keywords:r},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",
   983      keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,c],
   984      illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{
   985      begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",
   986      end:"\\][a-z]*"}]}].concat(o,l),relevance:0}].concat(o,l)
   987      ;c.contains=m,b.contains=m;const p=[{begin:/^\s*=>/,starts:{end:"$",contains:m}
   988      },{className:"meta.prompt",
   989      begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])",
   990      starts:{end:"$",keywords:r,contains:m}}];return l.unshift(o),{name:"Ruby",
   991      aliases:["rb","gemspec","podspec","thor","irb"],keywords:r,illegal:/\/\*/,
   992      contains:[e.SHEBANG({binary:"ruby"})].concat(p).concat(l).concat(m)}},
   993      grmr_rust:e=>{const n=e.regex,t={className:"title.function.invoke",relevance:0,
   994      begin:n.concat(/\b/,/(?!let\b)/,e.IDENT_RE,n.lookahead(/\s*\(/))
   995      },a="([ui](8|16|32|64|128|size)|f(32|64))?",i=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","panic!","file!","format!","format_args!","include_bin!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"]
   996      ;return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",
   997      type:["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"],
   998      keyword:["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","unsafe","unsized","use","virtual","where","while","yield"],
   999      literal:["true","false","Some","None","Ok","Err"],built_in:i},illegal:"</",
  1000      contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]
  1001      }),e.inherit(e.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{
  1002      className:"string",variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{
  1003      begin:/b?'\\?(x\w{2}|u\w{4}|U\w{8}|.)'/}]},{className:"symbol",
  1004      begin:/'[a-zA-Z_][a-zA-Z0-9_]*/},{className:"number",variants:[{
  1005      begin:"\\b0b([01_]+)"+a},{begin:"\\b0o([0-7_]+)"+a},{
  1006      begin:"\\b0x([A-Fa-f0-9_]+)"+a},{
  1007      begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+a}],relevance:0},{
  1008      begin:[/fn/,/\s+/,e.UNDERSCORE_IDENT_RE],className:{1:"keyword",
  1009      3:"title.function"}},{className:"meta",begin:"#!?\\[",end:"\\]",contains:[{
  1010      className:"string",begin:/"/,end:/"/}]},{
  1011      begin:[/let/,/\s+/,/(?:mut\s+)?/,e.UNDERSCORE_IDENT_RE],className:{1:"keyword",
  1012      3:"keyword",4:"variable"}},{
  1013      begin:[/for/,/\s+/,e.UNDERSCORE_IDENT_RE,/\s+/,/in/],className:{1:"keyword",
  1014      3:"variable",5:"keyword"}},{begin:[/type/,/\s+/,e.UNDERSCORE_IDENT_RE],
  1015      className:{1:"keyword",3:"title.class"}},{
  1016      begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,e.UNDERSCORE_IDENT_RE],
  1017      className:{1:"keyword",3:"title.class"}},{begin:e.IDENT_RE+"::",keywords:{
  1018      keyword:"Self",built_in:i}},{className:"punctuation",begin:"->"},t]}},
  1019      grmr_scss:e=>{const n=te(e),t=se,a=re,i="@[a-z-]+",r={className:"variable",
  1020      begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b",relevance:0};return{name:"SCSS",
  1021      case_insensitive:!0,illegal:"[=/|']",
  1022      contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n.CSS_NUMBER_MODE,{
  1023      className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{
  1024      className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0
  1025      },n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",
  1026      begin:"\\b("+ae.join("|")+")\\b",relevance:0},{className:"selector-pseudo",
  1027      begin:":("+a.join("|")+")"},{className:"selector-pseudo",
  1028      begin:":(:)?("+t.join("|")+")"},r,{begin:/\(/,end:/\)/,
  1029      contains:[n.CSS_NUMBER_MODE]},n.CSS_VARIABLE,{className:"attribute",
  1030      begin:"\\b("+oe.join("|")+")\\b"},{
  1031      begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"
  1032      },{begin:/:/,end:/[;}{]/,
  1033      contains:[n.BLOCK_COMMENT,r,n.HEXCOLOR,n.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.IMPORTANT]
  1034      },{begin:"@(page|font-face)",keywords:{$pattern:i,keyword:"@page @font-face"}},{
  1035      begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,
  1036      keyword:"and or not only",attribute:ie.join(" ")},contains:[{begin:i,
  1037      className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"
  1038      },r,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.HEXCOLOR,n.CSS_NUMBER_MODE]
  1039      },n.FUNCTION_DISPATCH]}},grmr_shell:e=>({name:"Shell Session",
  1040      aliases:["console","shellsession"],contains:[{className:"meta.prompt",
  1041      begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,
  1042      subLanguage:"bash"}}]}),grmr_sql:e=>{
  1043      const n=e.regex,t=e.COMMENT("--","$"),a=["true","false","unknown"],i=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],r=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],s=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],o=r,l=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((e=>!r.includes(e))),c={
  1044      begin:n.concat(/\b/,n.either(...o),/\s*\(/),relevance:0,keywords:{built_in:o}}
  1045      ;return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{
  1046      $pattern:/\b[\w\.]+/,keyword:((e,{exceptions:n,when:t}={})=>{const a=t
  1047      ;return n=n||[],e.map((e=>e.match(/\|\d+$/)||n.includes(e)?e:a(e)?e+"|0":e))
  1048      })(l,{when:e=>e.length<3}),literal:a,type:i,
  1049      built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"]
  1050      },contains:[{begin:n.either(...s),relevance:0,keywords:{$pattern:/[\w\.]+/,
  1051      keyword:l.concat(s),literal:a,type:i}},{className:"type",
  1052      begin:n.either("double precision","large object","with timezone","without timezone")
  1053      },c,{className:"variable",begin:/@[a-z0-9]+/},{className:"string",variants:[{
  1054      begin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/"/,end:/"/,contains:[{
  1055      begin:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,{className:"operator",
  1056      begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}},
  1057      grmr_swift:e=>{const n={match:/\s+/,relevance:0},t=e.COMMENT("/\\*","\\*/",{
  1058      contains:["self"]}),a=[e.C_LINE_COMMENT_MODE,t],i={match:[/\./,p(...ve,...ke)],
  1059      className:{2:"keyword"}},r={match:m(/\./,p(...xe)),relevance:0
  1060      },s=xe.filter((e=>"string"==typeof e)).concat(["_|0"]),o={variants:[{
  1061      className:"keyword",
  1062      match:p(...xe.filter((e=>"string"!=typeof e)).concat(Oe).map(Ne),...ke)}]},l={
  1063      $pattern:p(/\b\w+/,/#\w+/),keyword:s.concat(Ae),literal:Me},c=[i,r,o],d=[{
  1064      match:m(/\./,p(...Ce)),relevance:0},{className:"built_in",
  1065      match:m(/\b/,p(...Ce),/(?=\()/)}],u={match:/->/,relevance:0},b=[u,{
  1066      className:"operator",relevance:0,variants:[{match:De},{match:`\\.(\\.|${Re})+`}]
  1067      }],_="([0-9a-fA-F]_*)+",h={className:"number",relevance:0,variants:[{
  1068      match:"\\b(([0-9]_*)+)(\\.(([0-9]_*)+))?([eE][+-]?(([0-9]_*)+))?\\b"},{
  1069      match:`\\b0x(${_})(\\.(${_}))?([pP][+-]?(([0-9]_*)+))?\\b`},{
  1070      match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},f=(e="")=>({
  1071      className:"subst",variants:[{match:m(/\\/,e,/[0\\tnr"']/)},{
  1072      match:m(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),E=(e="")=>({className:"subst",
  1073      match:m(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),y=(e="")=>({className:"subst",
  1074      label:"interpol",begin:m(/\\/,e,/\(/),end:/\)/}),w=(e="")=>({begin:m(e,/"""/),
  1075      end:m(/"""/,e),contains:[f(e),E(e),y(e)]}),N=(e="")=>({begin:m(e,/"/),
  1076      end:m(/"/,e),contains:[f(e),y(e)]}),v={className:"string",
  1077      variants:[w(),w("#"),w("##"),w("###"),N(),N("#"),N("##"),N("###")]},k={
  1078      match:m(/`/,Be,/`/)},O=[k,{className:"variable",match:/\$\d+/},{
  1079      className:"variable",match:`\\$${Le}+`}],x=[{match:/(@|#(un)?)available/,
  1080      className:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:Fe,
  1081      contains:[...b,h,v]}]}},{className:"keyword",match:m(/@/,p(...ze))},{
  1082      className:"meta",match:m(/@/,Be)}],M={match:g(/\b[A-Z]/),relevance:0,contains:[{
  1083      className:"type",
  1084      match:m(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,Le,"+")
  1085      },{className:"type",match:$e,relevance:0},{match:/[?!]+/,relevance:0},{
  1086      match:/\.\.\./,relevance:0},{match:m(/\s+&\s+/,g($e)),relevance:0}]},S={
  1087      begin:/</,end:/>/,keywords:l,contains:[...a,...c,...x,u,M]};M.contains.push(S)
  1088      ;const A={begin:/\(/,end:/\)/,relevance:0,keywords:l,contains:["self",{
  1089      match:m(Be,/\s*:/),keywords:"_|0",relevance:0
  1090      },...a,...c,...d,...b,h,v,...O,...x,M]},C={begin:/</,end:/>/,contains:[...a,M]
  1091      },T={begin:/\(/,end:/\)/,keywords:l,contains:[{
  1092      begin:p(g(m(Be,/\s*:/)),g(m(Be,/\s+/,Be,/\s*:/))),end:/:/,relevance:0,
  1093      contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:Be}]
  1094      },...a,...c,...b,h,v,...x,M,A],endsParent:!0,illegal:/["']/},R={
  1095      match:[/func/,/\s+/,p(k.match,Be,De)],className:{1:"keyword",3:"title.function"
  1096      },contains:[C,T,n],illegal:[/\[/,/%/]},D={
  1097      match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},
  1098      contains:[C,T,n],illegal:/\[|%/},I={match:[/operator/,/\s+/,De],className:{
  1099      1:"keyword",3:"title"}},L={begin:[/precedencegroup/,/\s+/,$e],className:{
  1100      1:"keyword",3:"title"},contains:[M],keywords:[...Se,...Me],end:/}/}
  1101      ;for(const e of v.variants){const n=e.contains.find((e=>"interpol"===e.label))
  1102      ;n.keywords=l;const t=[...c,...d,...b,h,v,...O];n.contains=[...t,{begin:/\(/,
  1103      end:/\)/,contains:["self",...t]}]}return{name:"Swift",keywords:l,
  1104      contains:[...a,R,D,{beginKeywords:"struct protocol class extension enum actor",
  1105      end:"\\{",excludeEnd:!0,keywords:l,contains:[e.inherit(e.TITLE_MODE,{
  1106      className:"title.class",begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...c]
  1107      },I,L,{beginKeywords:"import",end:/$/,contains:[...a],relevance:0
  1108      },...c,...d,...b,h,v,...O,...x,M,A]}},grmr_typescript:e=>{
  1109      const n=we(e),t=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],a={
  1110      beginKeywords:"namespace",end:/\{/,excludeEnd:!0,
  1111      contains:[n.exports.CLASS_REFERENCE]},i={beginKeywords:"interface",end:/\{/,
  1112      excludeEnd:!0,keywords:{keyword:"interface extends",built_in:t},
  1113      contains:[n.exports.CLASS_REFERENCE]},r={$pattern:be,
  1114      keyword:me.concat(["type","namespace","interface","public","private","protected","implements","declare","abstract","readonly","enum","override"]),
  1115      literal:pe,built_in:ye.concat(t),"variable.language":Ee},s={className:"meta",
  1116      begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},o=(e,n,t)=>{
  1117      const a=e.contains.findIndex((e=>e.label===n))
  1118      ;if(-1===a)throw Error("can not find mode to replace");e.contains.splice(a,1,t)}
  1119      ;return Object.assign(n.keywords,r),
  1120      n.exports.PARAMS_CONTAINS.push(s),n.contains=n.contains.concat([s,a,i]),
  1121      o(n,"shebang",e.SHEBANG()),o(n,"use_strict",{className:"meta",relevance:10,
  1122      begin:/^\s*['"]use strict['"]/
  1123      }),n.contains.find((e=>"func.def"===e.label)).relevance=0,Object.assign(n,{
  1124      name:"TypeScript",aliases:["ts","tsx"]}),n},grmr_vbnet:e=>{
  1125      const n=e.regex,t=/\d{1,2}\/\d{1,2}\/\d{4}/,a=/\d{4}-\d{1,2}-\d{1,2}/,i=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,r=/\d{1,2}(:\d{1,2}){1,2}/,s={
  1126      className:"literal",variants:[{begin:n.concat(/# */,n.either(a,t),/ *#/)},{
  1127      begin:n.concat(/# */,r,/ *#/)},{begin:n.concat(/# */,i,/ *#/)},{
  1128      begin:n.concat(/# */,n.either(a,t),/ +/,n.either(i,r),/ *#/)}]
  1129      },o=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]
  1130      }),l=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]})
  1131      ;return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,
  1132      classNameAliases:{label:"symbol"},keywords:{
  1133      keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",
  1134      built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",
  1135      type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",
  1136      literal:"true false nothing"},
  1137      illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[{
  1138      className:"string",begin:/"(""|[^/n])"C\b/},{className:"string",begin:/"/,
  1139      end:/"/,illegal:/\n/,contains:[{begin:/""/}]},s,{className:"number",relevance:0,
  1140      variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/
  1141      },{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{
  1142      begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{
  1143      className:"label",begin:/^\w+:/},o,l,{className:"meta",
  1144      begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,
  1145      end:/$/,keywords:{
  1146      keyword:"const disable else elseif enable end externalsource if region then"},
  1147      contains:[l]}]}},grmr_yaml:e=>{
  1148      const n="true false yes no null",t="[\\w#;/?:@&=+$,.~*'()[\\]]+",a={
  1149      className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/
  1150      },{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",
  1151      variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},i=e.inherit(a,{
  1152      variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),r={
  1153      end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},s={begin:/\{/,
  1154      end:/\}/,contains:[r],illegal:"\\n",relevance:0},o={begin:"\\[",end:"\\]",
  1155      contains:[r],illegal:"\\n",relevance:0},l=[{className:"attr",variants:[{
  1156      begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{
  1157      begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---\\s*$",
  1158      relevance:10},{className:"string",
  1159      begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{
  1160      begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,
  1161      relevance:0},{className:"type",begin:"!\\w+!"+t},{className:"type",
  1162      begin:"!<"+t+">"},{className:"type",begin:"!"+t},{className:"type",begin:"!!"+t
  1163      },{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",
  1164      begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",
  1165      relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{
  1166      className:"number",
  1167      begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"
  1168      },{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},s,o,a],c=[...l]
  1169      ;return c.pop(),c.push(i),r.contains=c,{name:"YAML",case_insensitive:!0,
  1170      aliases:["yml"],contains:l}}});const je=ne;for(const e of Object.keys(Ue)){
  1171      const n=e.replace("grmr_","").replace("_","-");je.registerLanguage(n,Ue[e])}
  1172      return je}()
  1173      ;"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs);