/ html / resources / js-libraries / highlightJS / highlight.min.js
highlight.min.js
   1  /*!
   2    Highlight.js v11.9.0 (git: f47103d4f1)
   3    (c) 2006-2023 undefined and other contributors
   4    License: BSD-3-Clause
   5   */
   6  var hljs=function(){"use strict";function e(n){
   7  return n instanceof Map?n.clear=n.delete=n.set=()=>{
   8  throw Error("map is read-only")}:n instanceof Set&&(n.add=n.clear=n.delete=()=>{
   9  throw Error("set is read-only")
  10  }),Object.freeze(n),Object.getOwnPropertyNames(n).forEach((t=>{
  11  const a=n[t],i=typeof a;"object"!==i&&"function"!==i||Object.isFrozen(a)||e(a)
  12  })),n}class n{constructor(e){
  13  void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}
  14  ignoreMatch(){this.isMatchIgnored=!0}}function t(e){
  15  return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")
  16  }function a(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 i=e=>!!e.scope
  18  ;class r{constructor(e,n){
  19  this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){
  20  this.buffer+=t(e)}openNode(e){if(!i(e))return;const n=((e,{prefix:n})=>{
  21  if(e.startsWith("language:"))return e.replace("language:","language-")
  22  ;if(e.includes(".")){const t=e.split(".")
  23  ;return[`${n}${t.shift()}`,...t.map(((e,n)=>`${e}${"_".repeat(n+1)}`))].join(" ")
  24  }return`${n}${e}`})(e.scope,{prefix:this.classPrefix});this.span(n)}
  25  closeNode(e){i(e)&&(this.buffer+="</span>")}value(){return this.buffer}span(e){
  26  this.buffer+=`<span class="${e}">`}}const s=(e={})=>{const n={children:[]}
  27  ;return Object.assign(n,e),n};class o{constructor(){
  28  this.rootNode=s(),this.stack=[this.rootNode]}get top(){
  29  return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){
  30  this.top.children.push(e)}openNode(e){const n=s({scope:e})
  31  ;this.add(n),this.stack.push(n)}closeNode(){
  32  if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){
  33  for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}
  34  walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){
  35  return"string"==typeof n?e.addText(n):n.children&&(e.openNode(n),
  36  n.children.forEach((n=>this._walk(e,n))),e.closeNode(n)),e}static _collapse(e){
  37  "string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{
  38  o._collapse(e)})))}}class l extends o{constructor(e){super(),this.options=e}
  39  addText(e){""!==e&&this.add(e)}startScope(e){this.openNode(e)}endScope(){
  40  this.closeNode()}__addSublanguage(e,n){const t=e.root
  41  ;n&&(t.scope="language:"+n),this.add(t)}toHTML(){
  42  return new r(this,this.options).value()}finalize(){
  43  return this.closeAllNodes(),!0}}function c(e){
  44  return e?"string"==typeof e?e:e.source:null}function d(e){return b("(?=",e,")")}
  45  function g(e){return b("(?:",e,")*")}function u(e){return b("(?:",e,")?")}
  46  function b(...e){return e.map((e=>c(e))).join("")}function m(...e){const n=(e=>{
  47  const n=e[e.length-1]
  48  ;return"object"==typeof n&&n.constructor===Object?(e.splice(e.length-1,1),n):{}
  49  })(e);return"("+(n.capture?"":"?:")+e.map((e=>c(e))).join("|")+")"}
  50  function p(e){return RegExp(e.toString()+"|").exec("").length-1}
  51  const _=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./
  52  ;function h(e,{joinWith:n}){let t=0;return e.map((e=>{t+=1;const n=t
  53  ;let a=c(e),i="";for(;a.length>0;){const e=_.exec(a);if(!e){i+=a;break}
  54  i+=a.substring(0,e.index),
  55  a=a.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?i+="\\"+(Number(e[1])+n):(i+=e[0],
  56  "("===e[0]&&t++)}return i})).map((e=>`(${e})`)).join(n)}
  57  const f="[a-zA-Z]\\w*",E="[a-zA-Z_]\\w*",y="\\b\\d+(\\.\\d+)?",N="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",w="\\b(0b[01]+)",v={
  58  begin:"\\\\[\\s\\S]",relevance:0},O={scope:"string",begin:"'",end:"'",
  59  illegal:"\\n",contains:[v]},k={scope:"string",begin:'"',end:'"',illegal:"\\n",
  60  contains:[v]},x=(e,n,t={})=>{const i=a({scope:"comment",begin:e,end:n,
  61  contains:[]},t);i.contains.push({scope:"doctag",
  62  begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",
  63  end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0})
  64  ;const r=m("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,}/)
  65  ;return i.contains.push({begin:b(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i
  66  },M=x("//","$"),S=x("/\\*","\\*/"),A=x("#","$");var C=Object.freeze({
  67  __proto__:null,APOS_STRING_MODE:O,BACKSLASH_ESCAPE:v,BINARY_NUMBER_MODE:{
  68  scope:"number",begin:w,relevance:0},BINARY_NUMBER_RE:w,COMMENT:x,
  69  C_BLOCK_COMMENT_MODE:S,C_LINE_COMMENT_MODE:M,C_NUMBER_MODE:{scope:"number",
  70  begin:N,relevance:0},C_NUMBER_RE:N,END_SAME_AS_BEGIN:e=>Object.assign(e,{
  71  "on:begin":(e,n)=>{n.data._beginMatch=e[1]},"on:end":(e,n)=>{
  72  n.data._beginMatch!==e[1]&&n.ignoreMatch()}}),HASH_COMMENT_MODE:A,IDENT_RE:f,
  73  MATCH_NOTHING_RE:/\b\B/,METHOD_GUARD:{begin:"\\.\\s*"+E,relevance:0},
  74  NUMBER_MODE:{scope:"number",begin:y,relevance:0},NUMBER_RE:y,
  75  PHRASAL_WORDS_MODE:{
  76  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/
  77  },QUOTE_STRING_MODE:k,REGEXP_MODE:{scope:"regexp",begin:/\/(?=[^/\n]*\/)/,
  78  end:/\/[gimuy]*/,contains:[v,{begin:/\[/,end:/\]/,relevance:0,contains:[v]}]},
  79  RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",
  80  SHEBANG:(e={})=>{const n=/^#![ ]*\//
  81  ;return e.binary&&(e.begin=b(n,/.*\b/,e.binary,/\b.*/)),a({scope:"meta",begin:n,
  82  end:/$/,relevance:0,"on:begin":(e,n)=>{0!==e.index&&n.ignoreMatch()}},e)},
  83  TITLE_MODE:{scope:"title",begin:f,relevance:0},UNDERSCORE_IDENT_RE:E,
  84  UNDERSCORE_TITLE_MODE:{scope:"title",begin:E,relevance:0}});function T(e,n){
  85  "."===e.input[e.index-1]&&n.ignoreMatch()}function R(e,n){
  86  void 0!==e.className&&(e.scope=e.className,delete e.className)}function D(e,n){
  87  n&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",
  88  e.__beforeBegin=T,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,
  89  void 0===e.relevance&&(e.relevance=0))}function I(e,n){
  90  Array.isArray(e.illegal)&&(e.illegal=m(...e.illegal))}function L(e,n){
  91  if(e.match){
  92  if(e.begin||e.end)throw Error("begin & end are not supported with match")
  93  ;e.begin=e.match,delete e.match}}function B(e,n){
  94  void 0===e.relevance&&(e.relevance=1)}const $=(e,n)=>{if(!e.beforeMatch)return
  95  ;if(e.starts)throw Error("beforeMatch cannot be used with starts")
  96  ;const t=Object.assign({},e);Object.keys(e).forEach((n=>{delete e[n]
  97  })),e.keywords=t.keywords,e.begin=b(t.beforeMatch,d(t.begin)),e.starts={
  98  relevance:0,contains:[Object.assign(t,{endsParent:!0})]
  99  },e.relevance=0,delete t.beforeMatch
 100  },z=["of","and","for","in","not","or","if","then","parent","list","value"],F="keyword"
 101  ;function U(e,n,t=F){const a=Object.create(null)
 102  ;return"string"==typeof e?i(t,e.split(" ")):Array.isArray(e)?i(t,e):Object.keys(e).forEach((t=>{
 103  Object.assign(a,U(e[t],n,t))})),a;function i(e,t){
 104  n&&(t=t.map((e=>e.toLowerCase()))),t.forEach((n=>{const t=n.split("|")
 105  ;a[t[0]]=[e,j(t[0],t[1])]}))}}function j(e,n){
 106  return n?Number(n):(e=>z.includes(e.toLowerCase()))(e)?0:1}const P={},K=e=>{
 107  console.error(e)},H=(e,...n)=>{console.log("WARN: "+e,...n)},q=(e,n)=>{
 108  P[`${e}/${n}`]||(console.log(`Deprecated as of ${e}. ${n}`),P[`${e}/${n}`]=!0)
 109  },G=Error();function Z(e,n,{key:t}){let a=0;const i=e[t],r={},s={}
 110  ;for(let e=1;e<=n.length;e++)s[e+a]=i[e],r[e+a]=!0,a+=p(n[e-1])
 111  ;e[t]=s,e[t]._emit=r,e[t]._multi=!0}function W(e){(e=>{
 112  e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,
 113  delete e.scope)})(e),"string"==typeof e.beginScope&&(e.beginScope={
 114  _wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope
 115  }),(e=>{if(Array.isArray(e.begin)){
 116  if(e.skip||e.excludeBegin||e.returnBegin)throw K("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),
 117  G
 118  ;if("object"!=typeof e.beginScope||null===e.beginScope)throw K("beginScope must be object"),
 119  G;Z(e,e.begin,{key:"beginScope"}),e.begin=h(e.begin,{joinWith:""})}})(e),(e=>{
 120  if(Array.isArray(e.end)){
 121  if(e.skip||e.excludeEnd||e.returnEnd)throw K("skip, excludeEnd, returnEnd not compatible with endScope: {}"),
 122  G
 123  ;if("object"!=typeof e.endScope||null===e.endScope)throw K("endScope must be object"),
 124  G;Z(e,e.end,{key:"endScope"}),e.end=h(e.end,{joinWith:""})}})(e)}function Q(e){
 125  function n(n,t){
 126  return RegExp(c(n),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(t?"g":""))
 127  }class t{constructor(){
 128  this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}
 129  addRule(e,n){
 130  n.position=this.position++,this.matchIndexes[this.matchAt]=n,this.regexes.push([n,e]),
 131  this.matchAt+=p(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null)
 132  ;const e=this.regexes.map((e=>e[1]));this.matcherRe=n(h(e,{joinWith:"|"
 133  }),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex
 134  ;const n=this.matcherRe.exec(e);if(!n)return null
 135  ;const t=n.findIndex(((e,n)=>n>0&&void 0!==e)),a=this.matchIndexes[t]
 136  ;return n.splice(0,t),Object.assign(n,a)}}class i{constructor(){
 137  this.rules=[],this.multiRegexes=[],
 138  this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){
 139  if(this.multiRegexes[e])return this.multiRegexes[e];const n=new t
 140  ;return this.rules.slice(e).forEach((([e,t])=>n.addRule(e,t))),
 141  n.compile(),this.multiRegexes[e]=n,n}resumingScanAtSamePosition(){
 142  return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,n){
 143  this.rules.push([e,n]),"begin"===n.type&&this.count++}exec(e){
 144  const n=this.getMatcher(this.regexIndex);n.lastIndex=this.lastIndex
 145  ;let t=n.exec(e)
 146  ;if(this.resumingScanAtSamePosition())if(t&&t.index===this.lastIndex);else{
 147  const n=this.getMatcher(0);n.lastIndex=this.lastIndex+1,t=n.exec(e)}
 148  return t&&(this.regexIndex+=t.position+1,
 149  this.regexIndex===this.count&&this.considerAll()),t}}
 150  if(e.compilerExtensions||(e.compilerExtensions=[]),
 151  e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language.  See documentation.")
 152  ;return e.classNameAliases=a(e.classNameAliases||{}),function t(r,s){const o=r
 153  ;if(r.isCompiled)return o
 154  ;[R,L,W,$].forEach((e=>e(r,s))),e.compilerExtensions.forEach((e=>e(r,s))),
 155  r.__beforeBegin=null,[D,I,B].forEach((e=>e(r,s))),r.isCompiled=!0;let l=null
 156  ;return"object"==typeof r.keywords&&r.keywords.$pattern&&(r.keywords=Object.assign({},r.keywords),
 157  l=r.keywords.$pattern,
 158  delete r.keywords.$pattern),l=l||/\w+/,r.keywords&&(r.keywords=U(r.keywords,e.case_insensitive)),
 159  o.keywordPatternRe=n(l,!0),
 160  s&&(r.begin||(r.begin=/\B|\b/),o.beginRe=n(o.begin),r.end||r.endsWithParent||(r.end=/\B|\b/),
 161  r.end&&(o.endRe=n(o.end)),
 162  o.terminatorEnd=c(o.end)||"",r.endsWithParent&&s.terminatorEnd&&(o.terminatorEnd+=(r.end?"|":"")+s.terminatorEnd)),
 163  r.illegal&&(o.illegalRe=n(r.illegal)),
 164  r.contains||(r.contains=[]),r.contains=[].concat(...r.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((n=>a(e,{
 165  variants:null},n)))),e.cachedVariants?e.cachedVariants:X(e)?a(e,{
 166  starts:e.starts?a(e.starts):null
 167  }):Object.isFrozen(e)?a(e):e))("self"===e?r:e)))),r.contains.forEach((e=>{t(e,o)
 168  })),r.starts&&t(r.starts,s),o.matcher=(e=>{const n=new i
 169  ;return e.contains.forEach((e=>n.addRule(e.begin,{rule:e,type:"begin"
 170  }))),e.terminatorEnd&&n.addRule(e.terminatorEnd,{type:"end"
 171  }),e.illegal&&n.addRule(e.illegal,{type:"illegal"}),n})(o),o}(e)}function X(e){
 172  return!!e&&(e.endsWithParent||X(e.starts))}class V extends Error{
 173  constructor(e,n){super(e),this.name="HTMLInjectionError",this.html=n}}
 174  const J=t,Y=a,ee=Symbol("nomatch"),ne=t=>{
 175  const a=Object.create(null),i=Object.create(null),r=[];let s=!0
 176  ;const o="Could not find the language '{}', did you forget to load/include a language module?",c={
 177  disableAutodetect:!0,name:"Plain text",contains:[]};let p={
 178  ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,
 179  languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",
 180  cssSelector:"pre code",languages:null,__emitter:l};function _(e){
 181  return p.noHighlightRe.test(e)}function h(e,n,t){let a="",i=""
 182  ;"object"==typeof n?(a=e,
 183  t=n.ignoreIllegals,i=n.language):(q("10.7.0","highlight(lang, code, ...args) has been deprecated."),
 184  q("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),
 185  i=e,a=n),void 0===t&&(t=!0);const r={code:a,language:i};x("before:highlight",r)
 186  ;const s=r.result?r.result:f(r.language,r.code,t)
 187  ;return s.code=r.code,x("after:highlight",s),s}function f(e,t,i,r){
 188  const l=Object.create(null);function c(){if(!x.keywords)return void S.addText(A)
 189  ;let e=0;x.keywordPatternRe.lastIndex=0;let n=x.keywordPatternRe.exec(A),t=""
 190  ;for(;n;){t+=A.substring(e,n.index)
 191  ;const i=w.case_insensitive?n[0].toLowerCase():n[0],r=(a=i,x.keywords[a]);if(r){
 192  const[e,a]=r
 193  ;if(S.addText(t),t="",l[i]=(l[i]||0)+1,l[i]<=7&&(C+=a),e.startsWith("_"))t+=n[0];else{
 194  const t=w.classNameAliases[e]||e;g(n[0],t)}}else t+=n[0]
 195  ;e=x.keywordPatternRe.lastIndex,n=x.keywordPatternRe.exec(A)}var a
 196  ;t+=A.substring(e),S.addText(t)}function d(){null!=x.subLanguage?(()=>{
 197  if(""===A)return;let e=null;if("string"==typeof x.subLanguage){
 198  if(!a[x.subLanguage])return void S.addText(A)
 199  ;e=f(x.subLanguage,A,!0,M[x.subLanguage]),M[x.subLanguage]=e._top
 200  }else e=E(A,x.subLanguage.length?x.subLanguage:null)
 201  ;x.relevance>0&&(C+=e.relevance),S.__addSublanguage(e._emitter,e.language)
 202  })():c(),A=""}function g(e,n){
 203  ""!==e&&(S.startScope(n),S.addText(e),S.endScope())}function u(e,n){let t=1
 204  ;const a=n.length-1;for(;t<=a;){if(!e._emit[t]){t++;continue}
 205  const a=w.classNameAliases[e[t]]||e[t],i=n[t];a?g(i,a):(A=i,c(),A=""),t++}}
 206  function b(e,n){
 207  return e.scope&&"string"==typeof e.scope&&S.openNode(w.classNameAliases[e.scope]||e.scope),
 208  e.beginScope&&(e.beginScope._wrap?(g(A,w.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),
 209  A=""):e.beginScope._multi&&(u(e.beginScope,n),A="")),x=Object.create(e,{parent:{
 210  value:x}}),x}function m(e,t,a){let i=((e,n)=>{const t=e&&e.exec(n)
 211  ;return t&&0===t.index})(e.endRe,a);if(i){if(e["on:end"]){const a=new n(e)
 212  ;e["on:end"](t,a),a.isMatchIgnored&&(i=!1)}if(i){
 213  for(;e.endsParent&&e.parent;)e=e.parent;return e}}
 214  if(e.endsWithParent)return m(e.parent,t,a)}function _(e){
 215  return 0===x.matcher.regexIndex?(A+=e[0],1):(D=!0,0)}function h(e){
 216  const n=e[0],a=t.substring(e.index),i=m(x,e,a);if(!i)return ee;const r=x
 217  ;x.endScope&&x.endScope._wrap?(d(),
 218  g(n,x.endScope._wrap)):x.endScope&&x.endScope._multi?(d(),
 219  u(x.endScope,e)):r.skip?A+=n:(r.returnEnd||r.excludeEnd||(A+=n),
 220  d(),r.excludeEnd&&(A=n));do{
 221  x.scope&&S.closeNode(),x.skip||x.subLanguage||(C+=x.relevance),x=x.parent
 222  }while(x!==i.parent);return i.starts&&b(i.starts,e),r.returnEnd?0:n.length}
 223  let y={};function N(a,r){const o=r&&r[0];if(A+=a,null==o)return d(),0
 224  ;if("begin"===y.type&&"end"===r.type&&y.index===r.index&&""===o){
 225  if(A+=t.slice(r.index,r.index+1),!s){const n=Error(`0 width match regex (${e})`)
 226  ;throw n.languageName=e,n.badRule=y.rule,n}return 1}
 227  if(y=r,"begin"===r.type)return(e=>{
 228  const t=e[0],a=e.rule,i=new n(a),r=[a.__beforeBegin,a["on:begin"]]
 229  ;for(const n of r)if(n&&(n(e,i),i.isMatchIgnored))return _(t)
 230  ;return a.skip?A+=t:(a.excludeBegin&&(A+=t),
 231  d(),a.returnBegin||a.excludeBegin||(A=t)),b(a,e),a.returnBegin?0:t.length})(r)
 232  ;if("illegal"===r.type&&!i){
 233  const e=Error('Illegal lexeme "'+o+'" for mode "'+(x.scope||"<unnamed>")+'"')
 234  ;throw e.mode=x,e}if("end"===r.type){const e=h(r);if(e!==ee)return e}
 235  if("illegal"===r.type&&""===o)return 1
 236  ;if(R>1e5&&R>3*r.index)throw Error("potential infinite loop, way more iterations than matches")
 237  ;return A+=o,o.length}const w=v(e)
 238  ;if(!w)throw K(o.replace("{}",e)),Error('Unknown language: "'+e+'"')
 239  ;const O=Q(w);let k="",x=r||O;const M={},S=new p.__emitter(p);(()=>{const e=[]
 240  ;for(let n=x;n!==w;n=n.parent)n.scope&&e.unshift(n.scope)
 241  ;e.forEach((e=>S.openNode(e)))})();let A="",C=0,T=0,R=0,D=!1;try{
 242  if(w.__emitTokens)w.__emitTokens(t,S);else{for(x.matcher.considerAll();;){
 243  R++,D?D=!1:x.matcher.considerAll(),x.matcher.lastIndex=T
 244  ;const e=x.matcher.exec(t);if(!e)break;const n=N(t.substring(T,e.index),e)
 245  ;T=e.index+n}N(t.substring(T))}return S.finalize(),k=S.toHTML(),{language:e,
 246  value:k,relevance:C,illegal:!1,_emitter:S,_top:x}}catch(n){
 247  if(n.message&&n.message.includes("Illegal"))return{language:e,value:J(t),
 248  illegal:!0,relevance:0,_illegalBy:{message:n.message,index:T,
 249  context:t.slice(T-100,T+100),mode:n.mode,resultSoFar:k},_emitter:S};if(s)return{
 250  language:e,value:J(t),illegal:!1,relevance:0,errorRaised:n,_emitter:S,_top:x}
 251  ;throw n}}function E(e,n){n=n||p.languages||Object.keys(a);const t=(e=>{
 252  const n={value:J(e),illegal:!1,relevance:0,_top:c,_emitter:new p.__emitter(p)}
 253  ;return n._emitter.addText(e),n})(e),i=n.filter(v).filter(k).map((n=>f(n,e,!1)))
 254  ;i.unshift(t);const r=i.sort(((e,n)=>{
 255  if(e.relevance!==n.relevance)return n.relevance-e.relevance
 256  ;if(e.language&&n.language){if(v(e.language).supersetOf===n.language)return 1
 257  ;if(v(n.language).supersetOf===e.language)return-1}return 0})),[s,o]=r,l=s
 258  ;return l.secondBest=o,l}function y(e){let n=null;const t=(e=>{
 259  let n=e.className+" ";n+=e.parentNode?e.parentNode.className:""
 260  ;const t=p.languageDetectRe.exec(n);if(t){const n=v(t[1])
 261  ;return n||(H(o.replace("{}",t[1])),
 262  H("Falling back to no-highlight mode for this block.",e)),n?t[1]:"no-highlight"}
 263  return n.split(/\s+/).find((e=>_(e)||v(e)))})(e);if(_(t))return
 264  ;if(x("before:highlightElement",{el:e,language:t
 265  }),e.dataset.highlighted)return void console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",e)
 266  ;if(e.children.length>0&&(p.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),
 267  console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),
 268  console.warn("The element with unescaped HTML:"),
 269  console.warn(e)),p.throwUnescapedHTML))throw new V("One of your code blocks includes unescaped HTML.",e.innerHTML)
 270  ;n=e;const a=n.textContent,r=t?h(a,{language:t,ignoreIllegals:!0}):E(a)
 271  ;e.innerHTML=r.value,e.dataset.highlighted="yes",((e,n,t)=>{const a=n&&i[n]||t
 272  ;e.classList.add("hljs"),e.classList.add("language-"+a)
 273  })(e,t,r.language),e.result={language:r.language,re:r.relevance,
 274  relevance:r.relevance},r.secondBest&&(e.secondBest={
 275  language:r.secondBest.language,relevance:r.secondBest.relevance
 276  }),x("after:highlightElement",{el:e,result:r,text:a})}let N=!1;function w(){
 277  "loading"!==document.readyState?document.querySelectorAll(p.cssSelector).forEach(y):N=!0
 278  }function v(e){return e=(e||"").toLowerCase(),a[e]||a[i[e]]}
 279  function O(e,{languageName:n}){"string"==typeof e&&(e=[e]),e.forEach((e=>{
 280  i[e.toLowerCase()]=n}))}function k(e){const n=v(e)
 281  ;return n&&!n.disableAutodetect}function x(e,n){const t=e;r.forEach((e=>{
 282  e[t]&&e[t](n)}))}
 283  "undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(()=>{
 284  N&&w()}),!1),Object.assign(t,{highlight:h,highlightAuto:E,highlightAll:w,
 285  highlightElement:y,
 286  highlightBlock:e=>(q("10.7.0","highlightBlock will be removed entirely in v12.0"),
 287  q("10.7.0","Please use highlightElement now."),y(e)),configure:e=>{p=Y(p,e)},
 288  initHighlighting:()=>{
 289  w(),q("10.6.0","initHighlighting() deprecated.  Use highlightAll() now.")},
 290  initHighlightingOnLoad:()=>{
 291  w(),q("10.6.0","initHighlightingOnLoad() deprecated.  Use highlightAll() now.")
 292  },registerLanguage:(e,n)=>{let i=null;try{i=n(t)}catch(n){
 293  if(K("Language definition for '{}' could not be registered.".replace("{}",e)),
 294  !s)throw n;K(n),i=c}
 295  i.name||(i.name=e),a[e]=i,i.rawDefinition=n.bind(null,t),i.aliases&&O(i.aliases,{
 296  languageName:e})},unregisterLanguage:e=>{delete a[e]
 297  ;for(const n of Object.keys(i))i[n]===e&&delete i[n]},
 298  listLanguages:()=>Object.keys(a),getLanguage:v,registerAliases:O,
 299  autoDetection:k,inherit:Y,addPlugin:e=>{(e=>{
 300  e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=n=>{
 301  e["before:highlightBlock"](Object.assign({block:n.el},n))
 302  }),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=n=>{
 303  e["after:highlightBlock"](Object.assign({block:n.el},n))})})(e),r.push(e)},
 304  removePlugin:e=>{const n=r.indexOf(e);-1!==n&&r.splice(n,1)}}),t.debugMode=()=>{
 305  s=!1},t.safeMode=()=>{s=!0},t.versionString="11.9.0",t.regex={concat:b,
 306  lookahead:d,either:m,optional:u,anyNumberOfTimes:g}
 307  ;for(const n in C)"object"==typeof C[n]&&e(C[n]);return Object.assign(t,C),t
 308  },te=ne({});te.newInstance=()=>ne({});var ae=te;const ie=e=>({IMPORTANT:{
 309  scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{
 310  scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},
 311  FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},
 312  ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",
 313  contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{
 314  scope:"number",
 315  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)?",
 316  relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}
 317  }),re=["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"],se=["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"],oe=["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"],le=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],ce=["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(),de=oe.concat(le)
 318  ;var ge="[0-9](_*[0-9])*",ue=`\\.(${ge})`,be="[0-9a-fA-F](_*[0-9a-fA-F])*",me={
 319  className:"number",variants:[{
 320  begin:`(\\b(${ge})((${ue})|\\.)?|(${ue}))[eE][+-]?(${ge})[fFdD]?\\b`},{
 321  begin:`\\b(${ge})((${ue})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{
 322  begin:`(${ue})[fFdD]?\\b`},{begin:`\\b(${ge})[fFdD]\\b`},{
 323  begin:`\\b0[xX]((${be})\\.?|(${be})?\\.(${be}))[pP][+-]?(${ge})[fFdD]?\\b`},{
 324  begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${be})[lL]?\\b`},{
 325  begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],
 326  relevance:0};function pe(e,n,t){return-1===t?"":e.replace(n,(a=>pe(e,n,t-1)))}
 327  const _e="[A-Za-z$_][0-9A-Za-z$_]*",he=["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"],fe=["true","false","null","undefined","NaN","Infinity"],Ee=["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"],ye=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Ne=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],we=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],ve=[].concat(Ne,Ee,ye)
 328  ;function Oe(e){const n=e.regex,t=_e,a={begin:/<[A-Za-z0-9\\._:-]+/,
 329  end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{
 330  const t=e[0].length+e.index,a=e.input[t]
 331  ;if("<"===a||","===a)return void n.ignoreMatch();let i
 332  ;">"===a&&(((e,{after:n})=>{const t="</"+e[0].slice(1)
 333  ;return-1!==e.input.indexOf(t,n)})(e,{after:t})||n.ignoreMatch())
 334  ;const r=e.input.substring(t)
 335  ;((i=r.match(/^\s*=/))||(i=r.match(/^\s+extends\s+/))&&0===i.index)&&n.ignoreMatch()
 336  }},i={$pattern:_e,keyword:he,literal:fe,built_in:ve,"variable.language":we
 337  },r="[0-9](_?[0-9])*",s=`\\.(${r})`,o="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",l={
 338  className:"number",variants:[{
 339  begin:`(\\b(${o})((${s})|\\.)?|(${s}))[eE][+-]?(${r})\\b`},{
 340  begin:`\\b(${o})\\b((${s})\\b|\\.)?|(${s})\\b`},{
 341  begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{
 342  begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{
 343  begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{
 344  begin:"\\b0[0-7]+n?\\b"}],relevance:0},c={className:"subst",begin:"\\$\\{",
 345  end:"\\}",keywords:i,contains:[]},d={begin:"html`",end:"",starts:{end:"`",
 346  returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,c],subLanguage:"xml"}},g={
 347  begin:"css`",end:"",starts:{end:"`",returnEnd:!1,
 348  contains:[e.BACKSLASH_ESCAPE,c],subLanguage:"css"}},u={begin:"gql`",end:"",
 349  starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,c],
 350  subLanguage:"graphql"}},b={className:"string",begin:"`",end:"`",
 351  contains:[e.BACKSLASH_ESCAPE,c]},m={className:"comment",
 352  variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{
 353  begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",
 354  begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,
 355  excludeBegin:!0,relevance:0},{className:"variable",begin:t+"(?=\\s*(-)|$)",
 356  endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]
 357  }),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]
 358  },p=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,d,g,u,b,{match:/\$\d+/},l]
 359  ;c.contains=p.concat({begin:/\{/,end:/\}/,keywords:i,contains:["self"].concat(p)
 360  });const _=[].concat(m,c.contains),h=_.concat([{begin:/\(/,end:/\)/,keywords:i,
 361  contains:["self"].concat(_)}]),f={className:"params",begin:/\(/,end:/\)/,
 362  excludeBegin:!0,excludeEnd:!0,keywords:i,contains:h},E={variants:[{
 363  match:[/class/,/\s+/,t,/\s+/,/extends/,/\s+/,n.concat(t,"(",n.concat(/\./,t),")*")],
 364  scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{
 365  match:[/class/,/\s+/,t],scope:{1:"keyword",3:"title.class"}}]},y={relevance:0,
 366  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]*)*/),
 367  className:"title.class",keywords:{_:[...Ee,...ye]}},N={variants:[{
 368  match:[/function/,/\s+/,t,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],
 369  className:{1:"keyword",3:"title.function"},label:"func.def",contains:[f],
 370  illegal:/%/},w={
 371  match:n.concat(/\b/,(v=[...Ne,"super","import"],n.concat("(?!",v.join("|"),")")),t,n.lookahead(/\(/)),
 372  className:"title.function",relevance:0};var v;const O={
 373  begin:n.concat(/\./,n.lookahead(n.concat(t,/(?![0-9A-Za-z$_(])/))),end:t,
 374  excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},k={
 375  match:[/get|set/,/\s+/,t,/(?=\()/],className:{1:"keyword",3:"title.function"},
 376  contains:[{begin:/\(\)/},f]
 377  },x="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",M={
 378  match:[/const|var|let/,/\s+/,t,/\s*/,/=\s*/,/(async\s*)?/,n.lookahead(x)],
 379  keywords:"async",className:{1:"keyword",3:"title.function"},contains:[f]}
 380  ;return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:i,exports:{
 381  PARAMS_CONTAINS:h,CLASS_REFERENCE:y},illegal:/#(?![$_A-z])/,
 382  contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{
 383  label:"use_strict",className:"meta",relevance:10,
 384  begin:/^\s*['"]use (strict|asm)['"]/
 385  },e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,d,g,u,b,m,{match:/\$\d+/},l,y,{
 386  className:"attr",begin:t+n.lookahead(":"),relevance:0},M,{
 387  begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",
 388  keywords:"return throw case",relevance:0,contains:[m,e.REGEXP_MODE,{
 389  className:"function",begin:x,returnBegin:!0,end:"\\s*=>",contains:[{
 390  className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{
 391  className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,
 392  excludeEnd:!0,keywords:i,contains:h}]}]},{begin:/,/,relevance:0},{match:/\s+/,
 393  relevance:0},{variants:[{begin:"<>",end:"</>"},{
 394  match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:a.begin,
 395  "on:begin":a.isTrulyOpeningTag,end:a.end}],subLanguage:"xml",contains:[{
 396  begin:a.begin,end:a.end,skip:!0,contains:["self"]}]}]},N,{
 397  beginKeywords:"while if switch catch for"},{
 398  begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",
 399  returnBegin:!0,label:"func.def",contains:[f,e.inherit(e.TITLE_MODE,{begin:t,
 400  className:"title.function"})]},{match:/\.\.\./,relevance:0},O,{match:"\\$"+t,
 401  relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},
 402  contains:[f]},w,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,
 403  className:"variable.constant"},E,k,{match:/\$[(.]/}]}}
 404  const ke=e=>b(/\b/,e,/\w$/.test(e)?/\b/:/\B/),xe=["Protocol","Type"].map(ke),Me=["init","self"].map(ke),Se=["Any","Self"],Ae=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","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"],Ce=["false","nil","true"],Te=["assignment","associativity","higherThan","left","lowerThan","none","right"],Re=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],De=["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"],Ie=m(/[/=\-+!*%<>&|^~?]/,/[\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]/),Le=m(Ie,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),Be=b(Ie,Le,"*"),$e=m(/[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]/),ze=m($e,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),Fe=b($e,ze,"*"),Ue=b(/[A-Z]/,ze,"*"),je=["attached","autoclosure",b(/convention\(/,m("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",b(/objc\(/,Fe,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],Pe=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"]
 405  ;var Ke=Object.freeze({__proto__:null,grmr_bash:e=>{const n=e.regex,t={},a={
 406  begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]}
 407  ;Object.assign(t,{className:"variable",variants:[{
 408  begin:n.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},a]});const i={
 409  className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},r={
 410  begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,
 411  end:/(\w+)/,className:"string"})]}},s={className:"string",begin:/"/,end:/"/,
 412  contains:[e.BACKSLASH_ESCAPE,t,i]};i.contains.push(s);const o={begin:/\$?\(\(/,
 413  end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t]
 414  },l=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10
 415  }),c={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,
 416  contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{
 417  name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,
 418  keyword:["if","then","else","elif","fi","for","while","until","in","do","done","case","esac","function","select"],
 419  literal:["true","false"],
 420  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"]
 421  },contains:[l,e.SHEBANG(),c,o,e.HASH_COMMENT_MODE,r,{match:/(\/[a-z._-]+)+/},s,{
 422  match:/\\"/},{className:"string",begin:/'/,end:/'/},{match:/\\'/},t]}},
 423  grmr_c:e=>{const n=e.regex,t=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]
 424  }),a="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="("+a+"|"+n.optional(i)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",s={
 425  className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{
 426  match:/\batomic_[a-z]{3,6}\b/}]},o={className:"string",variants:[{
 427  begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{
 428  begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",
 429  end:"'",illegal:"."},e.END_SAME_AS_BEGIN({
 430  begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={
 431  className:"number",variants:[{begin:"\\b(0b[01']+)"},{
 432  begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"
 433  },{
 434  begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
 435  }],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{
 436  keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"
 437  },contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:"string"}),{
 438  className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},d={
 439  className:"title",begin:n.optional(i)+e.IDENT_RE,relevance:0
 440  },g=n.optional(i)+e.IDENT_RE+"\\s*\\(",u={
 441  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"],
 442  type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal128","const","static","complex","bool","imaginary"],
 443  literal:"true false NULL",
 444  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"
 445  },b=[c,s,t,e.C_BLOCK_COMMENT_MODE,l,o],m={variants:[{begin:/=/,end:/;/},{
 446  begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],
 447  keywords:u,contains:b.concat([{begin:/\(/,end:/\)/,keywords:u,
 448  contains:b.concat(["self"]),relevance:0}]),relevance:0},p={
 449  begin:"("+r+"[\\*&\\s]+)+"+g,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,
 450  keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:u,relevance:0},{
 451  begin:g,returnBegin:!0,contains:[e.inherit(d,{className:"title.function"})],
 452  relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,
 453  keywords:u,relevance:0,contains:[t,e.C_BLOCK_COMMENT_MODE,o,l,s,{begin:/\(/,
 454  end:/\)/,keywords:u,relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,o,l,s]
 455  }]},s,t,e.C_BLOCK_COMMENT_MODE,c]};return{name:"C",aliases:["h"],keywords:u,
 456  disableAutodetect:!0,illegal:"</",contains:[].concat(m,p,b,[c,{
 457  begin:e.IDENT_RE+"::",keywords:u},{className:"class",
 458  beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{
 459  beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:c,
 460  strings:o,keywords:u}}},grmr_cpp:e=>{const n=e.regex,t=e.COMMENT("//","$",{
 461  contains:[{begin:/\\\n/}]
 462  }),a="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="(?!struct)("+a+"|"+n.optional(i)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",s={
 463  className:"type",begin:"\\b[a-z\\d_]*_t\\b"},o={className:"string",variants:[{
 464  begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{
 465  begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",
 466  end:"'",illegal:"."},e.END_SAME_AS_BEGIN({
 467  begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={
 468  className:"number",variants:[{begin:"\\b(0b[01']+)"},{
 469  begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"
 470  },{
 471  begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
 472  }],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{
 473  keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"
 474  },contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:"string"}),{
 475  className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},d={
 476  className:"title",begin:n.optional(i)+e.IDENT_RE,relevance:0
 477  },g=n.optional(i)+e.IDENT_RE+"\\s*\\(",u={
 478  type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],
 479  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"],
 480  literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],
 481  _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"]
 482  },b={className:"function.dispatch",relevance:0,keywords:{
 483  _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"]
 484  },
 485  begin:n.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,n.lookahead(/(<[^<>]+>|)\s*\(/))
 486  },m=[b,c,s,t,e.C_BLOCK_COMMENT_MODE,l,o],p={variants:[{begin:/=/,end:/;/},{
 487  begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],
 488  keywords:u,contains:m.concat([{begin:/\(/,end:/\)/,keywords:u,
 489  contains:m.concat(["self"]),relevance:0}]),relevance:0},_={className:"function",
 490  begin:"("+r+"[\\*&\\s]+)+"+g,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,
 491  keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:u,relevance:0},{
 492  begin:g,returnBegin:!0,contains:[d],relevance:0},{begin:/::/,relevance:0},{
 493  begin:/:/,endsWithParent:!0,contains:[o,l]},{relevance:0,match:/,/},{
 494  className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0,
 495  contains:[t,e.C_BLOCK_COMMENT_MODE,o,l,s,{begin:/\(/,end:/\)/,keywords:u,
 496  relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,o,l,s]}]
 497  },s,t,e.C_BLOCK_COMMENT_MODE,c]};return{name:"C++",
 498  aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:u,illegal:"</",
 499  classNameAliases:{"function.dispatch":"built_in"},
 500  contains:[].concat(p,_,b,m,[c,{
 501  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*<(?!<)",
 502  end:">",keywords:u,contains:["self",s]},{begin:e.IDENT_RE+"::",keywords:u},{
 503  match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],
 504  className:{1:"keyword",3:"title.class"}}])}},grmr_csharp:e=>{const n={
 505  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","scoped","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"]),
 506  built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],
 507  literal:["default","false","null","true"]},t=e.inherit(e.TITLE_MODE,{
 508  begin:"[a-zA-Z](\\.?\\w)*"}),a={className:"number",variants:[{
 509  begin:"\\b(0b[01']+)"},{
 510  begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{
 511  begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
 512  }],relevance:0},i={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]
 513  },r=e.inherit(i,{illegal:/\n/}),s={className:"subst",begin:/\{/,end:/\}/,
 514  keywords:n},o=e.inherit(s,{illegal:/\n/}),l={className:"string",begin:/\$"/,
 515  end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/
 516  },e.BACKSLASH_ESCAPE,o]},c={className:"string",begin:/\$@"/,end:'"',contains:[{
 517  begin:/\{\{/},{begin:/\}\}/},{begin:'""'},s]},d=e.inherit(c,{illegal:/\n/,
 518  contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},o]})
 519  ;s.contains=[c,l,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.C_BLOCK_COMMENT_MODE],
 520  o.contains=[d,l,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.inherit(e.C_BLOCK_COMMENT_MODE,{
 521  illegal:/\n/})];const g={variants:[c,l,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]
 522  },u={begin:"<",end:">",contains:[{beginKeywords:"in out"},t]
 523  },b=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",m={
 524  begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],
 525  keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,
 526  contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{
 527  begin:"\x3c!--|--\x3e"},{begin:"</?",end:">"}]}]
 528  }),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",
 529  end:"$",keywords:{
 530  keyword:"if else elif endif define undef warning error line region endregion pragma checksum"
 531  }},g,a,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,
 532  illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"
 533  },t,u,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",
 534  relevance:0,end:/[{;=]/,illegal:/[^\s:]/,
 535  contains:[t,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{
 536  beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,
 537  contains:[t,u,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",
 538  begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{
 539  className:"string",begin:/"/,end:/"/}]},{
 540  beginKeywords:"new return throw await else",relevance:0},{className:"function",
 541  begin:"("+b+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,
 542  end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{
 543  beginKeywords:"public private protected static internal protected abstract async extern override unsafe virtual new sealed partial",
 544  relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,
 545  contains:[e.TITLE_MODE,u],relevance:0},{match:/\(\)/},{className:"params",
 546  begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0,
 547  contains:[g,a,e.C_BLOCK_COMMENT_MODE]
 548  },e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},m]}},grmr_css:e=>{
 549  const n=e.regex,t=ie(e),a=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{
 550  name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{
 551  keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},
 552  contains:[t.BLOCK_COMMENT,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/
 553  },t.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0
 554  },{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0
 555  },t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{
 556  begin:":("+oe.join("|")+")"},{begin:":(:)?("+le.join("|")+")"}]
 557  },t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+ce.join("|")+")\\b"},{
 558  begin:/:/,end:/[;}{]/,
 559  contains:[t.BLOCK_COMMENT,t.HEXCOLOR,t.IMPORTANT,t.CSS_NUMBER_MODE,...a,{
 560  begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"
 561  },contains:[...a,{className:"string",begin:/[^)]/,endsWithParent:!0,
 562  excludeEnd:!0}]},t.FUNCTION_DISPATCH]},{begin:n.lookahead(/@/),end:"[{;]",
 563  relevance:0,illegal:/:/,contains:[{className:"keyword",begin:/@-?\w[\w]*(-\w+)*/
 564  },{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{
 565  $pattern:/[a-z-]+/,keyword:"and or not only",attribute:se.join(" ")},contains:[{
 566  begin:/[a-z-]+(?=:)/,className:"attribute"},...a,t.CSS_NUMBER_MODE]}]},{
 567  className:"selector-tag",begin:"\\b("+re.join("|")+")\\b"}]}},grmr_diff:e=>{
 568  const n=e.regex;return{name:"Diff",aliases:["patch"],contains:[{
 569  className:"meta",relevance:10,
 570  match:n.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)
 571  },{className:"comment",variants:[{
 572  begin:n.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),
 573  end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{
 574  className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,
 575  end:/$/}]}},grmr_go:e=>{const n={
 576  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"],
 577  type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],
 578  literal:["true","false","iota","nil"],
 579  built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]
 580  };return{name:"Go",aliases:["golang"],keywords:n,illegal:"</",
 581  contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",
 582  variants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:"`",end:"`"}]},{
 583  className:"number",variants:[{begin:e.C_NUMBER_RE+"[i]",relevance:1
 584  },e.C_NUMBER_MODE]},{begin:/:=/},{className:"function",beginKeywords:"func",
 585  end:"\\s*(\\{|$)",excludeEnd:!0,contains:[e.TITLE_MODE,{className:"params",
 586  begin:/\(/,end:/\)/,endsParent:!0,keywords:n,illegal:/["']/}]}]}},
 587  grmr_graphql:e=>{const n=e.regex;return{name:"GraphQL",aliases:["gql"],
 588  case_insensitive:!0,disableAutodetect:!1,keywords:{
 589  keyword:["query","mutation","subscription","type","input","schema","directive","interface","union","scalar","fragment","enum","on"],
 590  literal:["true","false","null"]},
 591  contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{
 592  scope:"punctuation",match:/[.]{3}/,relevance:0},{scope:"punctuation",
 593  begin:/[\!\(\)\:\=\[\]\{\|\}]{1}/,relevance:0},{scope:"variable",begin:/\$/,
 594  end:/\W/,excludeEnd:!0,relevance:0},{scope:"meta",match:/@\w+/,excludeEnd:!0},{
 595  scope:"symbol",begin:n.concat(/[_A-Za-z][_0-9A-Za-z]*/,n.lookahead(/\s*:/)),
 596  relevance:0}],illegal:[/[;<']/,/BEGIN/]}},grmr_ini:e=>{const n=e.regex,t={
 597  className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{
 598  begin:e.NUMBER_RE}]},a=e.COMMENT();a.variants=[{begin:/;/,end:/$/},{begin:/#/,
 599  end:/$/}];const i={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{
 600  begin:/\$\{(.*?)\}/}]},r={className:"literal",
 601  begin:/\bon|off|true|false|yes|no\b/},s={className:"string",
 602  contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{
 603  begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]
 604  },o={begin:/\[/,end:/\]/,contains:[a,r,i,s,t,"self"],relevance:0
 605  },l=n.either(/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/);return{
 606  name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,
 607  contains:[a,{className:"section",begin:/\[+/,end:/\]+/},{
 608  begin:n.concat(l,"(\\s*\\.\\s*",l,")*",n.lookahead(/\s*=\s*[^#\s]/)),
 609  className:"attr",starts:{end:/$/,contains:[a,o,r,i,s,t]}}]}},grmr_java:e=>{
 610  const n=e.regex,t="[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*",a=t+pe("(?:<"+t+"~~~(?:\\s*,\\s*"+t+"~~~)*>)?",/~~~/g,2),i={
 611  keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits"],
 612  literal:["false","true","null"],
 613  type:["char","boolean","long","float","int","byte","short","double"],
 614  built_in:["super","this"]},r={className:"meta",begin:"@"+t,contains:[{
 615  begin:/\(/,end:/\)/,contains:["self"]}]},s={className:"params",begin:/\(/,
 616  end:/\)/,keywords:i,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0}
 617  ;return{name:"Java",aliases:["jsp"],keywords:i,illegal:/<\/|#/,
 618  contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,
 619  relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{
 620  begin:/import java\.[a-z]+\./,keywords:"import",relevance:2
 621  },e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,
 622  className:"string",contains:[e.BACKSLASH_ESCAPE]
 623  },e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{
 624  match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,t],className:{
 625  1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{
 626  begin:[n.concat(/(?!else)/,t),/\s+/,t,/\s+/,/=(?!=)/],className:{1:"type",
 627  3:"variable",5:"operator"}},{begin:[/record/,/\s+/,t],className:{1:"keyword",
 628  3:"title.class"},contains:[s,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{
 629  beginKeywords:"new throw return else",relevance:0},{
 630  begin:["(?:"+a+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{
 631  2:"title.function"},keywords:i,contains:[{className:"params",begin:/\(/,
 632  end:/\)/,keywords:i,relevance:0,
 633  contains:[r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,me,e.C_BLOCK_COMMENT_MODE]
 634  },e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},me,r]}},grmr_javascript:Oe,
 635  grmr_json:e=>{const n=["true","false","null"],t={scope:"literal",
 636  beginKeywords:n.join(" ")};return{name:"JSON",keywords:{literal:n},contains:[{
 637  className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},{
 638  match:/[{}[\],:]/,className:"punctuation",relevance:0
 639  },e.QUOTE_STRING_MODE,t,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],
 640  illegal:"\\S"}},grmr_kotlin:e=>{const n={
 641  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",
 642  built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",
 643  literal:"true false null"},t={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"
 644  },a={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},i={
 645  className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},r={className:"string",
 646  variants:[{begin:'"""',end:'"""(?=[^"])',contains:[i,a]},{begin:"'",end:"'",
 647  illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,
 648  contains:[e.BACKSLASH_ESCAPE,i,a]}]};a.contains.push(r);const s={
 649  className:"meta",
 650  begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"
 651  },o={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,
 652  end:/\)/,contains:[e.inherit(r,{className:"string"}),"self"]}]
 653  },l=me,c=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),d={
 654  variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,
 655  contains:[]}]},g=d;return g.variants[1].contains=[d],d.variants[1].contains=[g],
 656  {name:"Kotlin",aliases:["kt","kts"],keywords:n,
 657  contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",
 658  begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,c,{className:"keyword",
 659  begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",
 660  begin:/@\w+/}]}},t,s,o,{className:"function",beginKeywords:"fun",end:"[(]|$",
 661  returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{
 662  begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,
 663  contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,
 664  keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,
 665  endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,
 666  endsWithParent:!0,contains:[d,e.C_LINE_COMMENT_MODE,c],relevance:0
 667  },e.C_LINE_COMMENT_MODE,c,s,o,r,e.C_NUMBER_MODE]},c]},{
 668  begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{
 669  3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,
 670  illegal:"extends implements",contains:[{
 671  beginKeywords:"public protected internal private constructor"
 672  },e.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,
 673  excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,
 674  excludeBegin:!0,returnEnd:!0},s,o]},r,{className:"meta",begin:"^#!/usr/bin/env",
 675  end:"$",illegal:"\n"},l]}},grmr_less:e=>{
 676  const n=ie(e),t=de,a="[\\w-]+",i="("+a+"|@\\{"+a+"\\})",r=[],s=[],o=e=>({
 677  className:"string",begin:"~?"+e+".*?"+e}),l=(e,n,t)=>({className:e,begin:n,
 678  relevance:t}),c={$pattern:/[a-z-]+/,keyword:"and or not only",
 679  attribute:se.join(" ")},d={begin:"\\(",end:"\\)",contains:s,keywords:c,
 680  relevance:0}
 681  ;s.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,o("'"),o('"'),n.CSS_NUMBER_MODE,{
 682  begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",
 683  excludeEnd:!0}
 684  },n.HEXCOLOR,d,l("variable","@@?"+a,10),l("variable","@\\{"+a+"\\}"),l("built_in","~?`[^`]*?`"),{
 685  className:"attribute",begin:a+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0
 686  },n.IMPORTANT,{beginKeywords:"and not"},n.FUNCTION_DISPATCH);const g=s.concat({
 687  begin:/\{/,end:/\}/,contains:r}),u={beginKeywords:"when",endsWithParent:!0,
 688  contains:[{beginKeywords:"and not"}].concat(s)},b={begin:i+"\\s*:",
 689  returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/
 690  },n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+ce.join("|")+")\\b",
 691  end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:s}}]
 692  },m={className:"keyword",
 693  begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",
 694  starts:{end:"[;{}]",keywords:c,returnEnd:!0,contains:s,relevance:0}},p={
 695  className:"variable",variants:[{begin:"@"+a+"\\s*:",relevance:15},{begin:"@"+a
 696  }],starts:{end:"[;}]",returnEnd:!0,contains:g}},_={variants:[{
 697  begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:i,end:/\{/}],returnBegin:!0,
 698  returnEnd:!0,illegal:"[<='$\"]",relevance:0,
 699  contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,u,l("keyword","all\\b"),l("variable","@\\{"+a+"\\}"),{
 700  begin:"\\b("+re.join("|")+")\\b",className:"selector-tag"
 701  },n.CSS_NUMBER_MODE,l("selector-tag",i,0),l("selector-id","#"+i),l("selector-class","\\."+i,0),l("selector-tag","&",0),n.ATTRIBUTE_SELECTOR_MODE,{
 702  className:"selector-pseudo",begin:":("+oe.join("|")+")"},{
 703  className:"selector-pseudo",begin:":(:)?("+le.join("|")+")"},{begin:/\(/,
 704  end:/\)/,relevance:0,contains:g},{begin:"!important"},n.FUNCTION_DISPATCH]},h={
 705  begin:a+":(:)?"+`(${t.join("|")})`,returnBegin:!0,contains:[_]}
 706  ;return r.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,m,p,h,b,_,u,n.FUNCTION_DISPATCH),
 707  {name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:r}},
 708  grmr_lua:e=>{const n="\\[=*\\[",t="\\]=*\\]",a={begin:n,end:t,contains:["self"]
 709  },i=[e.COMMENT("--(?!"+n+")","$"),e.COMMENT("--"+n,t,{contains:[a],relevance:10
 710  })];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE,
 711  literal:"true false nil",
 712  keyword:"and break do else elseif end for goto if in local not or repeat return then until while",
 713  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"
 714  },contains:i.concat([{className:"function",beginKeywords:"function",end:"\\)",
 715  contains:[e.inherit(e.TITLE_MODE,{
 716  begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",
 717  begin:"\\(",endsWithParent:!0,contains:i}].concat(i)
 718  },e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",
 719  begin:n,end:t,contains:[a],relevance:5}])}},grmr_makefile:e=>{const n={
 720  className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",
 721  contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%<?\^\+\*]/}]},t={className:"string",
 722  begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n]},a={className:"variable",
 723  begin:/\$\([\w-]+\s/,end:/\)/,keywords:{
 724  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"
 725  },contains:[n]},i={begin:"^"+e.UNDERSCORE_IDENT_RE+"\\s*(?=[:+?]?=)"},r={
 726  className:"section",begin:/^[^\s]+:/,end:/$/,contains:[n]};return{
 727  name:"Makefile",aliases:["mk","mak","make"],keywords:{$pattern:/[\w-]+/,
 728  keyword:"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath"
 729  },contains:[e.HASH_COMMENT_MODE,n,t,a,i,{className:"meta",begin:/^\.PHONY:/,
 730  end:/$/,keywords:{$pattern:/[\.\w]+/,keyword:".PHONY"}},r]}},grmr_markdown:e=>{
 731  const n={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},t={
 732  variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{
 733  begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,
 734  relevance:2},{
 735  begin:e.regex.concat(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/),
 736  relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{
 737  begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/
 738  },{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,
 739  returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",
 740  excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",
 741  end:"\\]",excludeBegin:!0,excludeEnd:!0}]},a={className:"strong",contains:[],
 742  variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]
 743  },i={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{
 744  begin:/_(?![_\s])/,end:/_/,relevance:0}]},r=e.inherit(a,{contains:[]
 745  }),s=e.inherit(i,{contains:[]});a.contains.push(s),i.contains.push(r)
 746  ;let o=[n,t];return[a,i,r,s].forEach((e=>{e.contains=e.contains.concat(o)
 747  })),o=o.concat(a,i),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{
 748  className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:o},{
 749  begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",
 750  contains:o}]}]},n,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",
 751  end:"\\s+",excludeEnd:!0},a,i,{className:"quote",begin:"^>\\s+",contains:o,
 752  end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{
 753  begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{
 754  begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",
 755  contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{
 756  begin:"^[-\\*]{3,}",end:"$"},t,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{
 757  className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{
 758  className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}},grmr_objectivec:e=>{
 759  const n=/[a-zA-Z@][a-zA-Z0-9_]*/,t={$pattern:n,
 760  keyword:["@interface","@class","@protocol","@implementation"]};return{
 761  name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],
 762  keywords:{"variable.language":["this","super"],$pattern:n,
 763  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"],
 764  literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],
 765  built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],
 766  type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]
 767  },illegal:"</",contains:[{className:"built_in",
 768  begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"
 769  },e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{
 770  className:"string",variants:[{begin:'@"',end:'"',illegal:"\\n",
 771  contains:[e.BACKSLASH_ESCAPE]}]},{className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,
 772  keywords:{
 773  keyword:"if else elif endif define undef warning error line pragma ifdef ifndef include"
 774  },contains:[{begin:/\\\n/,relevance:0},e.inherit(e.QUOTE_STRING_MODE,{
 775  className:"string"}),{className:"string",begin:/<.*?>/,end:/$/,illegal:"\\n"
 776  },e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",
 777  begin:"("+t.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:t,
 778  contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,
 779  relevance:0}]}},grmr_perl:e=>{const n=e.regex,t=/[dualxmsipngr]{0,12}/,a={
 780  $pattern:/[\w.]+/,
 781  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"
 782  },i={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:a},r={begin:/->\{/,
 783  end:/\}/},s={variants:[{begin:/\$\d/},{
 784  begin:n.concat(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")
 785  },{begin:/[$%@][^\s\w{]/,relevance:0}]
 786  },o=[e.BACKSLASH_ESCAPE,i,s],l=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],c=(e,a,i="\\1")=>{
 787  const r="\\1"===i?i:n.concat(i,a)
 788  ;return n.concat(n.concat("(?:",e,")"),a,/(?:\\.|[^\\\/])*?/,r,/(?:\\.|[^\\\/])*?/,i,t)
 789  },d=(e,a,i)=>n.concat(n.concat("(?:",e,")"),a,/(?:\\.|[^\\\/])*?/,i,t),g=[s,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{
 790  endsWithParent:!0}),r,{className:"string",contains:o,variants:[{
 791  begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",
 792  end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{
 793  begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",
 794  relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",
 795  contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",
 796  contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{
 797  begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number",
 798  begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",
 799  relevance:0},{
 800  begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",
 801  keywords:"split return print reverse grep",relevance:0,
 802  contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{
 803  begin:c("s|tr|y",n.either(...l,{capture:!0}))},{begin:c("s|tr|y","\\(","\\)")},{
 804  begin:c("s|tr|y","\\[","\\]")},{begin:c("s|tr|y","\\{","\\}")}],relevance:2},{
 805  className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{
 806  begin:d("(?:m|qr)?",/\//,/\//)},{begin:d("m|qr",n.either(...l,{capture:!0
 807  }),/\1/)},{begin:d("m|qr",/\(/,/\)/)},{begin:d("m|qr",/\[/,/\]/)},{
 808  begin:d("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub",
 809  end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{
 810  begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",
 811  subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]
 812  }];return i.contains=g,r.contains=g,{name:"Perl",aliases:["pl","pm"],keywords:a,
 813  contains:g}},grmr_php:e=>{
 814  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={
 815  scope:"variable",match:"\\$+"+a},s={scope:"subst",variants:[{begin:/\$\w+/},{
 816  begin:/\{\$/,end:/\}/}]},o=e.inherit(e.APOS_STRING_MODE,{illegal:null
 817  }),l="[ \t\n]",c={scope:"string",variants:[e.inherit(e.QUOTE_STRING_MODE,{
 818  illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(s)}),o,{
 819  begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,
 820  contains:e.QUOTE_STRING_MODE.contains.concat(s),"on:begin":(e,n)=>{
 821  n.data._beginMatch=e[1]||e[2]},"on:end":(e,n)=>{
 822  n.data._beginMatch!==e[1]&&n.ignoreMatch()}},e.END_SAME_AS_BEGIN({
 823  begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/})]},d={scope:"number",variants:[{
 824  begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{
 825  begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{
 826  begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"
 827  }],relevance:0
 828  },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={
 829  keyword:u,literal:(e=>{const n=[];return e.forEach((e=>{
 830  n.push(e),e.toLowerCase()===e?n.push(e.toUpperCase()):n.push(e.toLowerCase())
 831  })),n})(g),built_in:b},p=e=>e.map((e=>e.replace(/\|\d+$/,""))),_={variants:[{
 832  match:[/new/,n.concat(l,"+"),n.concat("(?!",p(b).join("\\b|"),"\\b)"),i],scope:{
 833  1:"keyword",4:"title.class"}}]},h=n.concat(a,"\\b(?!\\()"),f={variants:[{
 834  match:[n.concat(/::/,n.lookahead(/(?!class\b)/)),h],scope:{2:"variable.constant"
 835  }},{match:[/::/,/class/],scope:{2:"variable.language"}},{
 836  match:[i,n.concat(/::/,n.lookahead(/(?!class\b)/)),h],scope:{1:"title.class",
 837  3:"variable.constant"}},{match:[i,n.concat("::",n.lookahead(/(?!class\b)/))],
 838  scope:{1:"title.class"}},{match:[i,/::/,/class/],scope:{1:"title.class",
 839  3:"variable.language"}}]},E={scope:"attr",
 840  match:n.concat(a,n.lookahead(":"),n.lookahead(/(?!::)/))},y={relevance:0,
 841  begin:/\(/,end:/\)/,keywords:m,contains:[E,r,f,e.C_BLOCK_COMMENT_MODE,c,d,_]
 842  },N={relevance:0,
 843  match:[/\b/,n.concat("(?!fn\\b|function\\b|",p(u).join("\\b|"),"|",p(b).join("\\b|"),"\\b)"),a,n.concat(l,"*"),n.lookahead(/(?=\()/)],
 844  scope:{3:"title.function.invoke"},contains:[y]};y.contains.push(N)
 845  ;const w=[E,f,e.C_BLOCK_COMMENT_MODE,c,d,_];return{case_insensitive:!1,
 846  keywords:m,contains:[{begin:n.concat(/#\[\s*/,i),beginScope:"meta",end:/]/,
 847  endScope:"meta",keywords:{literal:g,keyword:["new","array"]},contains:[{
 848  begin:/\[/,end:/]/,keywords:{literal:g,keyword:["new","array"]},
 849  contains:["self",...w]},...w,{scope:"meta",match:i}]
 850  },e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{
 851  scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,
 852  keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,
 853  contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},{scope:"meta",variants:[{
 854  begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{
 855  begin:/\?>/}]},{scope:"variable.language",match:/\$this\b/},r,N,f,{
 856  match:[/const/,/\s/,a],scope:{1:"keyword",3:"variable.constant"}},_,{
 857  scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,
 858  excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"
 859  },e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",
 860  begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:m,
 861  contains:["self",r,f,e.C_BLOCK_COMMENT_MODE,c,d]}]},{scope:"class",variants:[{
 862  beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",
 863  illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{
 864  beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{
 865  beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,
 866  contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{
 867  beginKeywords:"use",relevance:0,end:";",contains:[{
 868  match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},c,d]}
 869  },grmr_php_template:e=>({name:"PHP template",subLanguage:"xml",contains:[{
 870  begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",
 871  end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0
 872  },e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,
 873  skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,
 874  contains:null,skip:!0})]}]}),grmr_plaintext:e=>({name:"Plain text",
 875  aliases:["text","txt"],disableAutodetect:!0}),grmr_python:e=>{
 876  const n=e.regex,t=/[\p{XID_Start}_]\p{XID_Continue}*/u,a=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],i={
 877  $pattern:/[A-Za-z]\w+|__\w+__/,keyword:a,
 878  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"],
 879  literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],
 880  type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]
 881  },r={className:"meta",begin:/^(>>>|\.\.\.) /},s={className:"subst",begin:/\{/,
 882  end:/\}/,keywords:i,illegal:/#/},o={begin:/\{\{/,relevance:0},l={
 883  className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{
 884  begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,
 885  contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{
 886  begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,
 887  contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{
 888  begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,
 889  contains:[e.BACKSLASH_ESCAPE,r,o,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,
 890  end:/"""/,contains:[e.BACKSLASH_ESCAPE,r,o,s]},{begin:/([uU]|[rR])'/,end:/'/,
 891  relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{
 892  begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,
 893  end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,
 894  contains:[e.BACKSLASH_ESCAPE,o,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,
 895  contains:[e.BACKSLASH_ESCAPE,o,s]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]
 896  },c="[0-9](_?[0-9])*",d=`(\\b(${c}))?\\.(${c})|\\b(${c})\\.`,g="\\b|"+a.join("|"),u={
 897  className:"number",relevance:0,variants:[{
 898  begin:`(\\b(${c})|(${d}))[eE][+-]?(${c})[jJ]?(?=${g})`},{begin:`(${d})[jJ]?`},{
 899  begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${g})`},{
 900  begin:`\\b0[bB](_?[01])+[lL]?(?=${g})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${g})`
 901  },{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${g})`},{begin:`\\b(${c})[jJ](?=${g})`
 902  }]},b={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:i,
 903  contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},m={
 904  className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,
 905  end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,
 906  contains:["self",r,u,l,e.HASH_COMMENT_MODE]}]};return s.contains=[l,u,r],{
 907  name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:i,
 908  illegal:/(<\/|\?)|=>/,contains:[r,u,{begin:/\bself\b/},{beginKeywords:"if",
 909  relevance:0},l,b,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,t],scope:{
 910  1:"keyword",3:"title.function"},contains:[m]},{variants:[{
 911  match:[/\bclass/,/\s+/,t,/\s*/,/\(\s*/,t,/\s*\)/]},{match:[/\bclass/,/\s+/,t]}],
 912  scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{
 913  className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[u,m,l]}]}},
 914  grmr_python_repl:e=>({aliases:["pycon"],contains:[{className:"meta.prompt",
 915  starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{
 916  begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}),grmr_r:e=>{
 917  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(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/)
 918  ;return{name:"R",keywords:{$pattern:t,
 919  keyword:"function if in break next repeat else for while",
 920  literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",
 921  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"
 922  },contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,
 923  starts:{end:n.lookahead(n.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),
 924  endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{
 925  scope:"variable",variants:[{match:t},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0
 926  }]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]
 927  }),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE],
 928  variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/
 929  }),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/
 930  }),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/
 931  }),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/
 932  }),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/
 933  }),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',
 934  relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{
 935  1:"operator",2:"number"},match:[i,a]},{scope:{1:"operator",2:"number"},
 936  match:[/%[^%]*%/,a]},{scope:{1:"punctuation",2:"number"},match:[r,a]},{scope:{
 937  2:"number"},match:[/[^a-zA-Z0-9._]|^/,a]}]},{scope:{3:"operator"},
 938  match:[t,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:i},{
 939  match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:r},{begin:"`",end:"`",
 940  contains:[{begin:/\\./}]}]}},grmr_ruby:e=>{
 941  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={
 942  "variable.constant":["__FILE__","__LINE__","__ENCODING__"],
 943  "variable.language":["self","super"],
 944  keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield","include","extend","prepend","public","private","protected","raise","throw"],
 945  built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],
 946  literal:["true","false","nil"]},s={className:"doctag",begin:"@[A-Za-z]+"},o={
 947  begin:"#<",end:">"},l=[e.COMMENT("#","$",{contains:[s]
 948  }),e.COMMENT("^=begin","^=end",{contains:[s],relevance:10
 949  }),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],c={className:"subst",begin:/#\{/,
 950  end:/\}/,keywords:r},d={className:"string",contains:[e.BACKSLASH_ESCAPE,c],
 951  variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{
 952  begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{
 953  begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?</,end:/>/},{begin:/%[qQwWx]?\//,
 954  end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{
 955  begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{
 956  begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{
 957  begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{
 958  begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{
 959  begin:n.concat(/<<[-~]?'?/,n.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),
 960  contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,
 961  contains:[e.BACKSLASH_ESCAPE,c]})]}]},g="[0-9](_?[0-9])*",u={className:"number",
 962  relevance:0,variants:[{
 963  begin:`\\b([1-9](_?[0-9])*|0)(\\.(${g}))?([eE][+-]?(${g})|r)?i?\\b`},{
 964  begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"
 965  },{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{
 966  begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{
 967  begin:"\\b0(_?[0-7])+r?i?\\b"}]},b={variants:[{match:/\(\)/},{
 968  className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,
 969  keywords:r}]},m=[d,{variants:[{match:[/class\s+/,i,/\s+<\s+/,i]},{
 970  match:[/\b(class|module)\s+/,i]}],scope:{2:"title.class",
 971  4:"title.class.inherited"},keywords:r},{match:[/(include|extend)\s+/,i],scope:{
 972  2:"title.class"},keywords:r},{relevance:0,match:[i,/\.new[. (]/],scope:{
 973  1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,
 974  className:"variable.constant"},{relevance:0,match:a,scope:"title.class"},{
 975  match:[/def/,/\s+/,t],scope:{1:"keyword",3:"title.function"},contains:[b]},{
 976  begin:e.IDENT_RE+"::"},{className:"symbol",
 977  begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",
 978  begin:":(?!\\s)",contains:[d,{begin:t}],relevance:0},u,{className:"variable",
 979  begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{
 980  className:"params",begin:/\|/,end:/\|/,excludeBegin:!0,excludeEnd:!0,
 981  relevance:0,keywords:r},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",
 982  keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,c],
 983  illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{
 984  begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",
 985  end:"\\][a-z]*"}]}].concat(o,l),relevance:0}].concat(o,l)
 986  ;c.contains=m,b.contains=m;const p=[{begin:/^\s*=>/,starts:{end:"$",contains:m}
 987  },{className:"meta.prompt",
 988  begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])",
 989  starts:{end:"$",keywords:r,contains:m}}];return l.unshift(o),{name:"Ruby",
 990  aliases:["rb","gemspec","podspec","thor","irb"],keywords:r,illegal:/\/\*/,
 991  contains:[e.SHEBANG({binary:"ruby"})].concat(p).concat(l).concat(m)}},
 992  grmr_rust:e=>{const n=e.regex,t={className:"title.function.invoke",relevance:0,
 993  begin:n.concat(/\b/,/(?!let|for|while|if|else|match\b)/,e.IDENT_RE,n.lookahead(/\s*\(/))
 994  },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!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],r=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"]
 995  ;return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:r,
 996  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"],
 997  literal:["true","false","Some","None","Ok","Err"],built_in:i},illegal:"</",
 998  contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]
 999  }),e.inherit(e.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{
1000  className:"string",variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{
1001  begin:/b?'\\?(x\w{2}|u\w{4}|U\w{8}|.)'/}]},{className:"symbol",
1002  begin:/'[a-zA-Z_][a-zA-Z0-9_]*/},{className:"number",variants:[{
1003  begin:"\\b0b([01_]+)"+a},{begin:"\\b0o([0-7_]+)"+a},{
1004  begin:"\\b0x([A-Fa-f0-9_]+)"+a},{
1005  begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+a}],relevance:0},{
1006  begin:[/fn/,/\s+/,e.UNDERSCORE_IDENT_RE],className:{1:"keyword",
1007  3:"title.function"}},{className:"meta",begin:"#!?\\[",end:"\\]",contains:[{
1008  className:"string",begin:/"/,end:/"/}]},{
1009  begin:[/let/,/\s+/,/(?:mut\s+)?/,e.UNDERSCORE_IDENT_RE],className:{1:"keyword",
1010  3:"keyword",4:"variable"}},{
1011  begin:[/for/,/\s+/,e.UNDERSCORE_IDENT_RE,/\s+/,/in/],className:{1:"keyword",
1012  3:"variable",5:"keyword"}},{begin:[/type/,/\s+/,e.UNDERSCORE_IDENT_RE],
1013  className:{1:"keyword",3:"title.class"}},{
1014  begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,e.UNDERSCORE_IDENT_RE],
1015  className:{1:"keyword",3:"title.class"}},{begin:e.IDENT_RE+"::",keywords:{
1016  keyword:"Self",built_in:i,type:r}},{className:"punctuation",begin:"->"},t]}},
1017  grmr_scss:e=>{const n=ie(e),t=le,a=oe,i="@[a-z-]+",r={className:"variable",
1018  begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b",relevance:0};return{name:"SCSS",
1019  case_insensitive:!0,illegal:"[=/|']",
1020  contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n.CSS_NUMBER_MODE,{
1021  className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{
1022  className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0
1023  },n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",
1024  begin:"\\b("+re.join("|")+")\\b",relevance:0},{className:"selector-pseudo",
1025  begin:":("+a.join("|")+")"},{className:"selector-pseudo",
1026  begin:":(:)?("+t.join("|")+")"},r,{begin:/\(/,end:/\)/,
1027  contains:[n.CSS_NUMBER_MODE]},n.CSS_VARIABLE,{className:"attribute",
1028  begin:"\\b("+ce.join("|")+")\\b"},{
1029  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"
1030  },{begin:/:/,end:/[;}{]/,relevance:0,
1031  contains:[n.BLOCK_COMMENT,r,n.HEXCOLOR,n.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.IMPORTANT,n.FUNCTION_DISPATCH]
1032  },{begin:"@(page|font-face)",keywords:{$pattern:i,keyword:"@page @font-face"}},{
1033  begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,
1034  keyword:"and or not only",attribute:se.join(" ")},contains:[{begin:i,
1035  className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"
1036  },r,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.HEXCOLOR,n.CSS_NUMBER_MODE]
1037  },n.FUNCTION_DISPATCH]}},grmr_shell:e=>({name:"Shell Session",
1038  aliases:["console","shellsession"],contains:[{className:"meta.prompt",
1039  begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,
1040  subLanguage:"bash"}}]}),grmr_sql:e=>{
1041  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={
1042  begin:n.concat(/\b/,n.either(...o),/\s*\(/),relevance:0,keywords:{built_in:o}}
1043  ;return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{
1044  $pattern:/\b[\w\.]+/,keyword:((e,{exceptions:n,when:t}={})=>{const a=t
1045  ;return n=n||[],e.map((e=>e.match(/\|\d+$/)||n.includes(e)?e:a(e)?e+"|0":e))
1046  })(l,{when:e=>e.length<3}),literal:a,type:i,
1047  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"]
1048  },contains:[{begin:n.either(...s),relevance:0,keywords:{$pattern:/[\w\.]+/,
1049  keyword:l.concat(s),literal:a,type:i}},{className:"type",
1050  begin:n.either("double precision","large object","with timezone","without timezone")
1051  },c,{className:"variable",begin:/@[a-z0-9][a-z0-9_]*/},{className:"string",
1052  variants:[{begin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/"/,end:/"/,
1053  contains:[{begin:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,{
1054  className:"operator",begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,
1055  relevance:0}]}},grmr_swift:e=>{const n={match:/\s+/,relevance:0
1056  },t=e.COMMENT("/\\*","\\*/",{contains:["self"]}),a=[e.C_LINE_COMMENT_MODE,t],i={
1057  match:[/\./,m(...xe,...Me)],className:{2:"keyword"}},r={match:b(/\./,m(...Ae)),
1058  relevance:0},s=Ae.filter((e=>"string"==typeof e)).concat(["_|0"]),o={variants:[{
1059  className:"keyword",
1060  match:m(...Ae.filter((e=>"string"!=typeof e)).concat(Se).map(ke),...Me)}]},l={
1061  $pattern:m(/\b\w+/,/#\w+/),keyword:s.concat(Re),literal:Ce},c=[i,r,o],g=[{
1062  match:b(/\./,m(...De)),relevance:0},{className:"built_in",
1063  match:b(/\b/,m(...De),/(?=\()/)}],u={match:/->/,relevance:0},p=[u,{
1064  className:"operator",relevance:0,variants:[{match:Be},{match:`\\.(\\.|${Le})+`}]
1065  }],_="([0-9]_*)+",h="([0-9a-fA-F]_*)+",f={className:"number",relevance:0,
1066  variants:[{match:`\\b(${_})(\\.(${_}))?([eE][+-]?(${_}))?\\b`},{
1067  match:`\\b0x(${h})(\\.(${h}))?([pP][+-]?(${_}))?\\b`},{match:/\b0o([0-7]_*)+\b/
1068  },{match:/\b0b([01]_*)+\b/}]},E=(e="")=>({className:"subst",variants:[{
1069  match:b(/\\/,e,/[0\\tnr"']/)},{match:b(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]
1070  }),y=(e="")=>({className:"subst",match:b(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)
1071  }),N=(e="")=>({className:"subst",label:"interpol",begin:b(/\\/,e,/\(/),end:/\)/
1072  }),w=(e="")=>({begin:b(e,/"""/),end:b(/"""/,e),contains:[E(e),y(e),N(e)]
1073  }),v=(e="")=>({begin:b(e,/"/),end:b(/"/,e),contains:[E(e),N(e)]}),O={
1074  className:"string",
1075  variants:[w(),w("#"),w("##"),w("###"),v(),v("#"),v("##"),v("###")]
1076  },k=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,
1077  contains:[e.BACKSLASH_ESCAPE]}],x={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,
1078  contains:k},M=e=>{const n=b(e,/\//),t=b(/\//,e);return{begin:n,end:t,
1079  contains:[...k,{scope:"comment",begin:`#(?!.*${t})`,end:/$/}]}},S={
1080  scope:"regexp",variants:[M("###"),M("##"),M("#"),x]},A={match:b(/`/,Fe,/`/)
1081  },C=[A,{className:"variable",match:/\$\d+/},{className:"variable",
1082  match:`\\$${ze}+`}],T=[{match:/(@|#(un)?)available/,scope:"keyword",starts:{
1083  contains:[{begin:/\(/,end:/\)/,keywords:Pe,contains:[...p,f,O]}]}},{
1084  scope:"keyword",match:b(/@/,m(...je))},{scope:"meta",match:b(/@/,Fe)}],R={
1085  match:d(/\b[A-Z]/),relevance:0,contains:[{className:"type",
1086  match:b(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,ze,"+")
1087  },{className:"type",match:Ue,relevance:0},{match:/[?!]+/,relevance:0},{
1088  match:/\.\.\./,relevance:0},{match:b(/\s+&\s+/,d(Ue)),relevance:0}]},D={
1089  begin:/</,end:/>/,keywords:l,contains:[...a,...c,...T,u,R]};R.contains.push(D)
1090  ;const I={begin:/\(/,end:/\)/,relevance:0,keywords:l,contains:["self",{
1091  match:b(Fe,/\s*:/),keywords:"_|0",relevance:0
1092  },...a,S,...c,...g,...p,f,O,...C,...T,R]},L={begin:/</,end:/>/,
1093  keywords:"repeat each",contains:[...a,R]},B={begin:/\(/,end:/\)/,keywords:l,
1094  contains:[{begin:m(d(b(Fe,/\s*:/)),d(b(Fe,/\s+/,Fe,/\s*:/))),end:/:/,
1095  relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",
1096  match:Fe}]},...a,...c,...p,f,O,...T,R,I],endsParent:!0,illegal:/["']/},$={
1097  match:[/(func|macro)/,/\s+/,m(A.match,Fe,Be)],className:{1:"keyword",
1098  3:"title.function"},contains:[L,B,n],illegal:[/\[/,/%/]},z={
1099  match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},
1100  contains:[L,B,n],illegal:/\[|%/},F={match:[/operator/,/\s+/,Be],className:{
1101  1:"keyword",3:"title"}},U={begin:[/precedencegroup/,/\s+/,Ue],className:{
1102  1:"keyword",3:"title"},contains:[R],keywords:[...Te,...Ce],end:/}/}
1103  ;for(const e of O.variants){const n=e.contains.find((e=>"interpol"===e.label))
1104  ;n.keywords=l;const t=[...c,...g,...p,f,O,...C];n.contains=[...t,{begin:/\(/,
1105  end:/\)/,contains:["self",...t]}]}return{name:"Swift",keywords:l,
1106  contains:[...a,$,z,{beginKeywords:"struct protocol class extension enum actor",
1107  end:"\\{",excludeEnd:!0,keywords:l,contains:[e.inherit(e.TITLE_MODE,{
1108  className:"title.class",begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...c]
1109  },F,U,{beginKeywords:"import",end:/$/,contains:[...a],relevance:0
1110  },S,...c,...g,...p,f,O,...C,...T,R,I]}},grmr_typescript:e=>{
1111  const n=Oe(e),t=_e,a=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],i={
1112  beginKeywords:"namespace",end:/\{/,excludeEnd:!0,
1113  contains:[n.exports.CLASS_REFERENCE]},r={beginKeywords:"interface",end:/\{/,
1114  excludeEnd:!0,keywords:{keyword:"interface extends",built_in:a},
1115  contains:[n.exports.CLASS_REFERENCE]},s={$pattern:_e,
1116  keyword:he.concat(["type","namespace","interface","public","private","protected","implements","declare","abstract","readonly","enum","override"]),
1117  literal:fe,built_in:ve.concat(a),"variable.language":we},o={className:"meta",
1118  begin:"@"+t},l=(e,n,t)=>{const a=e.contains.findIndex((e=>e.label===n))
1119  ;if(-1===a)throw Error("can not find mode to replace");e.contains.splice(a,1,t)}
1120  ;return Object.assign(n.keywords,s),
1121  n.exports.PARAMS_CONTAINS.push(o),n.contains=n.contains.concat([o,i,r]),
1122  l(n,"shebang",e.SHEBANG()),l(n,"use_strict",{className:"meta",relevance:10,
1123  begin:/^\s*['"]use strict['"]/
1124  }),n.contains.find((e=>"func.def"===e.label)).relevance=0,Object.assign(n,{
1125  name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),n},grmr_vbnet:e=>{
1126  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={
1127  className:"literal",variants:[{begin:n.concat(/# */,n.either(a,t),/ *#/)},{
1128  begin:n.concat(/# */,r,/ *#/)},{begin:n.concat(/# */,i,/ *#/)},{
1129  begin:n.concat(/# */,n.either(a,t),/ +/,n.either(i,r),/ *#/)}]
1130  },o=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]
1131  }),l=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]})
1132  ;return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,
1133  classNameAliases:{label:"symbol"},keywords:{
1134  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",
1135  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",
1136  type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",
1137  literal:"true false nothing"},
1138  illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[{
1139  className:"string",begin:/"(""|[^/n])"C\b/},{className:"string",begin:/"/,
1140  end:/"/,illegal:/\n/,contains:[{begin:/""/}]},s,{className:"number",relevance:0,
1141  variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/
1142  },{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{
1143  begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{
1144  className:"label",begin:/^\w+:/},o,l,{className:"meta",
1145  begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,
1146  end:/$/,keywords:{
1147  keyword:"const disable else elseif enable end externalsource if region then"},
1148  contains:[l]}]}},grmr_wasm:e=>{e.regex;const n=e.COMMENT(/\(;/,/;\)/)
1149  ;return n.contains.push("self"),{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,
1150  keyword:["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"]
1151  },contains:[e.COMMENT(/;;/,/$/),n,{match:[/(?:offset|align)/,/\s*/,/=/],
1152  className:{1:"keyword",3:"operator"}},{className:"variable",begin:/\$[\w_]+/},{
1153  match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},{
1154  begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",
1155  3:"title.function"}},e.QUOTE_STRING_MODE,{match:/(i32|i64|f32|f64)(?!\.)/,
1156  className:"type"},{className:"keyword",
1157  match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/
1158  },{className:"number",relevance:0,
1159  match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/
1160  }]}},grmr_xml:e=>{
1161  const n=e.regex,t=n.concat(/[\p{L}_]/u,n.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),a={
1162  className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},i={begin:/\s/,
1163  contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]
1164  },r=e.inherit(i,{begin:/\(/,end:/\)/}),s=e.inherit(e.APOS_STRING_MODE,{
1165  className:"string"}),o=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),l={
1166  endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",
1167  begin:/[\p{L}0-9._:-]+/u,relevance:0},{begin:/=\s*/,relevance:0,contains:[{
1168  className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[a]},{
1169  begin:/'/,end:/'/,contains:[a]},{begin:/[^\s"'=<>`]+/}]}]}]};return{
1170  name:"HTML, XML",
1171  aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],
1172  case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin:/<![a-z]/,
1173  end:/>/,relevance:10,contains:[i,o,s,r,{begin:/\[/,end:/\]/,contains:[{
1174  className:"meta",begin:/<![a-z]/,end:/>/,contains:[i,r,o,s]}]}]
1175  },e.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,
1176  relevance:10},a,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,
1177  relevance:10,contains:[o]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",
1178  begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[l],starts:{
1179  end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",
1180  begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[l],starts:{
1181  end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{
1182  className:"tag",begin:/<>|<\/>/},{className:"tag",
1183  begin:n.concat(/</,n.lookahead(n.concat(t,n.either(/\/>/,/>/,/\s/)))),
1184  end:/\/?>/,contains:[{className:"name",begin:t,relevance:0,starts:l}]},{
1185  className:"tag",begin:n.concat(/<\//,n.lookahead(n.concat(t,/>/))),contains:[{
1186  className:"name",begin:t,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}
1187  },grmr_yaml:e=>{
1188  const n="true false yes no null",t="[\\w#;/?:@&=+$,.~*'()[\\]]+",a={
1189  className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/
1190  },{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",
1191  variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},i=e.inherit(a,{
1192  variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),r={
1193  end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},s={begin:/\{/,
1194  end:/\}/,contains:[r],illegal:"\\n",relevance:0},o={begin:"\\[",end:"\\]",
1195  contains:[r],illegal:"\\n",relevance:0},l=[{className:"attr",variants:[{
1196  begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{
1197  begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---\\s*$",
1198  relevance:10},{className:"string",
1199  begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{
1200  begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,
1201  relevance:0},{className:"type",begin:"!\\w+!"+t},{className:"type",
1202  begin:"!<"+t+">"},{className:"type",begin:"!"+t},{className:"type",begin:"!!"+t
1203  },{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",
1204  begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",
1205  relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{
1206  className:"number",
1207  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"
1208  },{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},s,o,a],c=[...l]
1209  ;return c.pop(),c.push(i),r.contains=c,{name:"YAML",case_insensitive:!0,
1210  aliases:["yml"],contains:l}}});const He=ae;for(const e of Object.keys(Ke)){
1211  const n=e.replace("grmr_","").replace("_","-");He.registerLanguage(n,Ke[e])}
1212  return He}()
1213  ;"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs);