[yelp-xsl] Adding a syntax highlighter for Ducktype



commit 4e93595852f2c6679e3afa4da0933b0257c30b63
Author: Shaun McCance <shaunm redhat com>
Date:   Sun Jan 26 17:51:32 2020 +0100

    Adding a syntax highlighter for Ducktype

 .gitignore                           |   1 +
 doc/yelp-xsl/static/index.duck       |   2 +-
 js/README.duck                       |   8 +++
 js/ducktype.js                       | 112 +++++++++++++++++++++++++++++++++++
 js/highlight.pack.js                 |   2 +-
 test/syntax/code/ducktype            |  33 +++++++++++
 test/syntax/dita.dita                |  10 ++++
 test/syntax/docbook.docbook          |   8 +++
 test/syntax/mallard.page             |   8 +++
 xslt/dita/html/dita2html-block.xsl   |   4 ++
 xslt/docbook/html/db2html-block.xsl  |   4 ++
 xslt/mallard/html/mal2html-block.xsl |   4 ++
 12 files changed, 194 insertions(+), 2 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e1756dae..1ad147b0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,6 +6,7 @@ Makefile
 !/test/**/Makefile
 /test/colors/*.html
 /test/syntax/*.html
+/test/syntax/highlight.pack.js
 Makefile.in
 aclocal.m4
 autom4te.cache
diff --git a/doc/yelp-xsl/static/index.duck b/doc/yelp-xsl/static/index.duck
index 4eae2c2b..c5bf035b 100644
--- a/doc/yelp-xsl/static/index.duck
+++ b/doc/yelp-xsl/static/index.duck
@@ -2,4 +2,4 @@
 
 = Yelp XSLT Stylesheets
   [guide]
-@title[link role=trail] Yelp XSLT<
+@title[link role=trail] Yelp XSLT
diff --git a/js/README.duck b/js/README.duck
index 68f92241..dadb6507 100644
--- a/js/README.duck
+++ b/js/README.duck
@@ -12,9 +12,15 @@ files is the live demo on highlightjs.org.
 * dnf install nodejs
 * npm install commander
 
+yelp-xsl also ships with a language definition for Ducktype, which is not
+included in the highlight.js repository at this time. It is in the same
+directory as this README. You will need to copy it into your clone of the
+highlight.js repository.
+
 [steps]
 . Build highlight.pack.js with the default yelp-xsl languages:
 * git clone https://github.com/highlightjs/highlight.js.git
+* cp ducktype.js highlight.js/src/languages/
 * cd highlight.js
 * node tools/build.js $(find /path/to/yelp-xsl/test/syntax/code/* -exec basename {} \;)
 * cp build/highlight.pack.js /path/to/yelp-xsl/js/
@@ -25,6 +31,7 @@ default languages as well.
 [steps]
 . Build highlight.pack.js with language foo plus the default languages:
 * git clone https://github.com/highlightjs/highlight.js.git
+* cp ducktype.js highlight.js/src/languages/
 * cd highlight.js
 * node tools/build.js foo $(find /path/to/yelp-xsl/test/syntax/code/* -exec basename {} \;)
 * cp build/highlight.pack.js /path/to/yelp-xsl/js/
@@ -35,6 +42,7 @@ you know you use.
 [steps]
 . Build hightlight.pack.js with just languages foo and bar:
 * git clone https://github.com/highlightjs/highlight.js.git
+* cp ducktype.js highlight.js/src/languages/
 * cd highlight.js
 * node tools/build.js foo bar
 * cp build/highlight.pack.js /path/to/yelp-xsl/js/
diff --git a/js/ducktype.js b/js/ducktype.js
new file mode 100644
index 00000000..6e2ebe9c
--- /dev/null
+++ b/js/ducktype.js
@@ -0,0 +1,112 @@
+/*
+Language: Ducktype
+Author: Shaun McCance <shaunm gnome org>
+Website: https://twitter.com/shaunm
+Category: markup
+*/
+
+function(hljs) {
+  var ATTRLIST = {
+    endsWithParent: true,
+    relevance: 0,
+    contains: [
+      {
+        className: 'attr',
+        begin: />>[^\]\s]+/
+      },
+      {
+        className: 'attr',
+        begin: /(\.|#|>)?[A-Za-z0-9\._:#-]+/
+      },
+      {
+        begin: /=/,
+        relevance: 0,
+        contains: [
+          {
+            className: 'string',
+            endsParent: true,
+            variants: [
+              { begin: /"/, end: /"/ },
+              { begin: /'/, end: /'/ },
+              {begin: /[^\s"'\]]+/}
+            ]
+          }
+        ]
+      }
+    ]
+  };
+  return {
+    aliases: ['duck'],
+    contains: [
+      {
+        className: 'section',
+        variants: [
+          { begin: /^=+ /, end: /$/ },
+          { begin: /^-+ /, end: /$/ },
+        ]
+      },
+      /* comments come in two forms: [-- fenced --] and [-] line */
+      hljs.COMMENT(
+        /^ *\[--/,
+        /^ *--\]$/,
+        { relevance: 10 }
+      ),
+      hljs.COMMENT(
+        /^ *\[-\]/,
+        /$/,
+        { relevance: 10 }
+      ),
+      /* no-parse fences are enclosed in [[[ triple brackets ]]] */
+      {
+        className: 'code',
+        begin: /^ *\[\[\[$/,
+        end: /^ *\]\]\]$/,
+        relevance: 10
+      },
+      /* block tags [look like=this] */
+      {
+        className: 'tag',
+        begin: /^ *\[/,
+        end: /\]$/,
+        contains: [
+          {
+            className: 'name',
+            begin: /[A-Za-z0-9\._:-]+/,
+            relevance: 0
+          },
+          ATTRLIST
+        ]
+      },
+      /* entity $references; */
+      {
+        className: 'tag',
+        begin: /\$[a-zA-Z0-9][a-zA-Z0-9:]*;/
+      },
+      /* info elements are tagged @like[this] */
+      {
+        className: 'tag',
+        begin: /^ *@[a-zA-Z][a-zA-Z:]*\[/,
+        end: /\]/,
+        contains: [
+          ATTRLIST
+        ]
+      },
+      /* parser directives look like info elements, but have a looser
+         syntax. need to match them after info elements */
+      {
+        className: 'tag',
+        begin: /^ *@/,
+        end: /$/
+      },
+      /* inline element are tagged $like[this](and this) */
+      {
+        className: 'tag',
+        begin: /\$[a-zA-Z][a-zA-Z:]*\[/,
+        end: /\]/,
+        contains: [
+          ATTRLIST
+        ]
+      }
+    ]
+  };
+}
diff --git a/js/highlight.pack.js b/js/highlight.pack.js
index fff5e16f..0c622ee0 100644
--- a/js/highlight.pack.js
+++ b/js/highlight.pack.js
@@ -1,2 +1,2 @@
 /*! highlight.js v9.15.8 | BSD3 License | git.io/hljslicense */
-!function(e){var t="object"==typeof window&&window||"object"==typeof self&&self;"undefined"!=typeof 
exports?e(exports):t&&(t.hljs=e({}),"function"==typeof define&&define.amd&&define([],function(){return 
t.hljs}))}(function(n){var 
b=[],o=Object.keys,h={},p={},t=/^(no-?highlight|plain|text)$/i,m=/\blang(?:uage)?-([\w-]+)\b/i,r=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,a={case_insensitive:"cI",lexemes:"l",contains:"c",keywords:"k",subLanguage:"sL",className:"cN",begin:"b",beginKeywords:"bK",end:"e",endsWithParent:"eW",illegal:"i",excludeBegin:"eB",excludeEnd:"eE",returnBegin:"rB",returnEnd:"rE",relevance:"r",variants:"v",IDENT_RE:"IR",UNDERSCORE_IDENT_RE:"UIR",NUMBER_RE:"NR",C_NUMBER_RE:"CNR",BINARY_NUMBER_RE:"BNR",RE_STARTERS_RE:"RSR",BACKSLASH_ESCAPE:"BE",APOS_STRING_MODE:"ASM",QUOTE_STRING_MODE:"QSM",PHRASAL_WORDS_MODE:"PWM",C_LINE_COMMENT_MODE:"CLCM",C_BLOCK_COMMENT_MODE:"CBCM",HASH_COMMENT_MODE:"HCM",NUMBER_MODE:"NM",C_NUMBER_MODE:"CNM",BINARY_NUMBER_MODE:"BNM",CSS_NUMBER_MODE:"CSSNM
 ",REGEXP
 
_MODE:"RM",TITLE_MODE:"TM",UNDERSCORE_TITLE_MODE:"UTM",COMMENT:"C",beginRe:"bR",endRe:"eR",illegalRe:"iR",lexemesRe:"lR",terminators:"t",terminator_end:"tE"},y="</span>",v={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void
 0};function N(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function 
f(e){return e.nodeName.toLowerCase()}function w(e,t){var r=e&&e.exec(t);return r&&0===r.index}function 
g(e){return t.test(e)}function d(e){var t,r={},a=Array.prototype.slice.call(arguments,1);for(t in 
e)r[t]=e[t];return a.forEach(function(e){for(t in e)r[t]=e[t]}),r}function _(e){var n=[];return function 
e(t,r){for(var 
a=t.firstChild;a;a=a.nextSibling)3===a.nodeType?r+=a.nodeValue.length:1===a.nodeType&&(n.push({event:"start",offset:r,node:a}),r=e(a,r),f(a).match(/br|hr|img|input/)||n.push({event:"stop",offset:r,node:a}));return
 r}(e,0),n}function i(e){if(a&&!e.langApiRestored){for(var t in 
e.langApiRestored=!0,a)e[t]&&(e[a[t]]=e[t]);(e.c||[]).conca
 t(e.v||[
 ]).forEach(i)}}function x(s){function l(e){return e&&e.source||e}function c(e,t){return new 
RegExp(l(e),"m"+(s.cI?"i":"")+(t?"g":""))}!function 
t(r,e){if(!r.compiled){if(r.compiled=!0,r.k=r.k||r.bK,r.k){var 
a={},n=function(r,e){s.cI&&(e=e.toLowerCase()),e.split(" ").forEach(function(e){var 
t=e.split("|");a[t[0]]=[r,t[1]?Number(t[1]):1]})};"string"==typeof 
r.k?n("keyword",r.k):o(r.k).forEach(function(e){n(e,r.k[e])}),r.k=a}r.lR=c(r.l||/\w+/,!0),e&&(r.bK&&(r.b="\\b("+r.bK.split("
 
").join("|")+")\\b"),r.b||(r.b=/\B|\b/),r.bR=c(r.b),r.endSameAsBegin&&(r.e=r.b),r.e||r.eW||(r.e=/\B|\b/),r.e&&(r.eR=c(r.e)),r.tE=l(r.e)||"",r.eW&&e.tE&&(r.tE+=(r.e?"|":"")+e.tE)),r.i&&(r.iR=c(r.i)),null==r.r&&(r.r=1),r.c||(r.c=[]),r.c=Array.prototype.concat.apply([],r.c.map(function(e){return(t="self"===e?r:e).v&&!t.cached_variants&&(t.cached_variants=t.v.map(function(e){return
 d(t,{v:null},e)})),t.cached_variants||t.eW&&[d(t)]||[t];var 
t})),r.c.forEach(function(e){t(e,r)}),r.starts&&t(r.starts,e);var
  i=r.c.m
 ap(function(e){return 
e.bK?"\\.?(?:"+e.b+")\\.?":e.b}).concat([r.tE,r.i]).map(l).filter(Boolean);r.t=i.length?c(function(e,t){for(var
 r=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,a=0,n="",i=0;i<e.length;i++){var 
s=a,c=l(e[i]);for(0<i&&(n+=t);0<c.length;){var 
o=r.exec(c);if(null==o){n+=c;break}n+=c.substring(0,o.index),c=c.substring(o.index+o[0].length),"\\"==o[0][0]&&o[1]?n+="\\"+String(Number(o[1])+s):(n+=o[0],"("==o[0]&&a++)}}return
 n}(i,"|"),!0):{exec:function(){return null}}}}(s)}function k(e,t,c,r){function o(e,t,r,a){var n='<span 
class="'+(a?"":v.classPrefix);return e?(n+=e+'">')+t+(r?"":y):t}function l(){p+=null!=b.sL?function(){var 
e="string"==typeof b.sL;if(e&&!h[b.sL])return N(m);var t=e?k(b.sL,m,!0,i[b.sL]):E(m,b.sL.length?b.sL:void 
0);return 0<b.r&&(f+=t.r),e&&(i[b.sL]=t.top),o(t.language,t.value,!1,!0)}():function(){var 
e,t,r,a,n,i,s;if(!b.k)return 
N(m);for(a="",t=0,b.lR.lastIndex=0,r=b.lR.exec(m);r;)a+=N(m.substring(t,r.index)),n=b,i=r,s=u.cI?i[0].toLower
 Case():i
 
[0],(e=n.k.hasOwnProperty(s)&&n.k[s])?(f+=e[1],a+=o(e[0],N(r[0]))):a+=N(r[0]),t=b.lR.lastIndex,r=b.lR.exec(m);return
 a+N(m.substr(t))}(),m=""}function 
d(e){p+=e.cN?o(e.cN,"",!0):"",b=Object.create(e,{parent:{value:b}})}function a(e,t){if(m+=e,null==t)return 
l(),0;var r=function(e,t){var r,a,n;for(r=0,a=t.c.length;r<a;r++)if(w(t.c[r].bR,e))return 
t.c[r].endSameAsBegin&&(t.c[r].eR=(n=t.c[r].bR.exec(e)[0],new 
RegExp(n.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),"m"))),t.c[r]}(t,b);if(r)return 
r.skip?m+=t:(r.eB&&(m+=t),l(),r.rB||r.eB||(m=t)),d(r),r.rB?0:t.length;var a,n,i=function 
e(t,r){if(w(t.eR,r)){for(;t.endsParent&&t.parent;)t=t.parent;return t}if(t.eW)return 
e(t.parent,r)}(b,t);if(i){var 
s=b;for(s.skip?m+=t:(s.rE||s.eE||(m+=t),l(),s.eE&&(m=t));b.cN&&(p+=y),b.skip||b.sL||(f+=b.r),(b=b.parent)!==i.parent;);return
 i.starts&&(i.endSameAsBegin&&(i.starts.eR=i.eR),d(i.starts)),s.rE?0:t.length}if(a=t,n=b,!c&&w(n.iR,a))throw 
new Error('Illegal lexeme "'+t+'" for mode "'+(b.cN||"<unna
 med>")+'
 "');return m+=t,t.length||1}var u=C(e);if(!u)throw new Error('Unknown language: "'+e+'"');x(u);var 
n,b=r||u,i={},p="";for(n=b;n!==u;n=n.parent)n.cN&&(p=o(n.cN,"",!0)+p);var m="",f=0;try{for(var 
s,g,_=0;b.t.lastIndex=_,s=b.t.exec(t);)g=a(t.substring(_,s.index),s[0]),_=s.index+g;for(a(t.substr(_)),n=b;n.parent;n=n.parent)n.cN&&(p+=y);return{r:f,value:p,language:e,top:b}}catch(e){if(e.message&&-1!==e.message.indexOf("Illegal"))return{r:0,value:N(t)};throw
 e}}function E(r,e){e=e||v.languages||o(h);var a={r:0,value:N(r)},n=a;return 
e.filter(C).filter(l).forEach(function(e){var 
t=k(e,r,!1);t.language=e,t.r>n.r&&(n=t),t.r>a.r&&(n=a,a=t)}),n.language&&(a.second_best=n),a}function 
M(e){return v.tabReplace||v.useBR?e.replace(r,function(e,t){return 
v.useBR&&"\n"===e?"<br>":v.tabReplace?t.replace(/\t/g,v.tabReplace):""}):e}function s(e){var 
t,r,a,n,i,s,c,o,l,d,u=function(e){var t,r,a,n,i=e.className+" 
";if(i+=e.parentNode?e.parentNode.className:"",r=m.exec(i))return C(r[1])?r[1]:"no-hig
 hlight";
 for(t=0,a=(i=i.split(/\s+/)).length;t<a;t++)if(g(n=i[t])||C(n))return 
n}(e);g(u)||(v.useBR?(t=document.createElementNS("http://www.w3.org/1999/xhtml","div";)).innerHTML=e.innerHTML.replace(/\n/g,"").replace(/<br[
 
\/]*>/g,"\n"):t=e,i=t.textContent,a=u?k(u,i,!0):E(i),(r=_(t)).length&&((n=document.createElementNS("http://www.w3.org/1999/xhtml","div";)).innerHTML=a.value,a.value=function(e,t,r){var
 a=0,n="",i=[];function s(){return 
e.length&&t.length?e[0].offset!==t[0].offset?e[0].offset<t[0].offset?e:t:"start"===t[0].event?e:t:e.length?e:t}function
 c(e){n+="<"+f(e)+b.map.call(e.attributes,function(e){return" 
"+e.nodeName+'="'+N(e.value).replace('"',"&quot;")+'"'}).join("")+">"}function o(e){n+="</"+f(e)+">"}function 
l(e){("start"===e.event?c:o)(e.node)}for(;e.length||t.length;){var 
d=s();if(n+=N(r.substring(a,d[0].offset)),a=d[0].offset,d===e){for(i.reverse().forEach(o);l(d.splice(0,1)[0]),(d=s())===e&&d.length&&d[0].offset===a;);i.reverse().forEach(c)}else"start"===d[0].event?i.
 push(d[0
 ].node):i.pop(),l(d.splice(0,1)[0])}return 
n+N(r.substr(a))}(r,_(n),i)),a.value=M(a.value),e.innerHTML=a.value,e.className=(s=e.className,c=u,o=a.language,l=c?p[c]:o,d=[s.trim()],s.match(/\bhljs\b/)||d.push("hljs"),-1===s.indexOf(l)&&d.push(l),d.join("
 
").trim()),e.result={language:a.language,re:a.r},a.second_best&&(e.second_best={language:a.second_best.language,re:a.second_best.r}))}function
 c(){if(!c.called){c.called=!0;var e=document.querySelectorAll("pre code");b.forEach.call(e,s)}}function 
C(e){return e=(e||"").toLowerCase(),h[e]||h[p[e]]}function l(e){var t=C(e);return 
t&&!t.disableAutodetect}return 
n.highlight=k,n.highlightAuto=E,n.fixMarkup=M,n.highlightBlock=s,n.configure=function(e){v=d(v,e)},n.initHighlighting=c,n.initHighlightingOnLoad=function(){addEventListener("DOMContentLoaded",c,!1),addEventListener("load",c,!1)},n.registerLanguage=function(t,e){var
 r=h[t]=e(n);i(r),r.aliases&&r.aliases.forEach(function(e){p[e]=t})},n.listLanguages=function(){return 
o(h)},n.
 getLangu
 
age=C,n.autoDetection=l,n.inherit=d,n.IR=n.IDENT_RE="[a-zA-Z]\\w*",n.UIR=n.UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",n.NR=n.NUMBER_RE="\\b\\d+(\\.\\d+)?",n.CNR=n.C_NUMBER_RE="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",n.BNR=n.BINARY_NUMBER_RE="\\b(0b[01]+)",n.RSR=n.RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",n.BE=n.BACKSLASH_ESCAPE={b:"\\\\[\\s\\S]",r:0},n.ASM=n.APOS_STRING_MODE={cN:"string",b:"'",e:"'",i:"\\n",c:[n.BE]},n.QSM=n.QUOTE_STRING_MODE={cN:"string",b:'"',e:'"',i:"\\n",c:[n.BE]},n.PWM=n.PHRASAL_WORDS_MODE={b:/\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/},n.C=n.COMMENT=function(e,t,r){var
 a=n.inherit({cN:"comment",b:e,e:t,c:[]},r||{});return 
a.c.push(n.PWM),a.c.push({cN:"doctag",b:"(?:TODO|FIXME|NOTE|BUG|XXX):",r:0}),a},n.CLCM=n.C_LINE_CO
 MMENT_MO
 
DE=n.C("//","$"),n.CBCM=n.C_BLOCK_COMMENT_MODE=n.C("/\\*","\\*/"),n.HCM=n.HASH_COMMENT_MODE=n.C("#","$"),n.NM=n.NUMBER_MODE={cN:"number",b:n.NR,r:0},n.CNM=n.C_NUMBER_MODE={cN:"number",b:n.CNR,r:0},n.BNM=n.BINARY_NUMBER_MODE={cN:"number",b:n.BNR,r:0},n.CSSNM=n.CSS_NUMBER_MODE={cN:"number",b:n.NR+"(%|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)?",r:0},n.RM=n.REGEXP_MODE={cN:"regexp",b:/\//,e:/\/[gimuy]*/,i:/\n/,c:[n.BE,{b:/\[/,e:/\]/,r:0,c:[n.BE]}]},n.TM=n.TITLE_MODE={cN:"title",b:n.IR,r:0},n.UTM=n.UNDERSCORE_TITLE_MODE={cN:"title",b:n.UIR,r:0},n.METHOD_GUARD={b:"\\.\\s*"+n.UIR,r:0},n.registerLanguage("actionscript",function(e){var
 t={cN:"rest_arg",b:"[.]{3}",e:"[a-zA-Z_$][a-zA-Z0-9_$]*",r:10};return{aliases:["as"],k:{keyword:"as break 
case catch class const continue default delete do dynamic each else extends final finally for function get if 
implements import in include instanceof interface internal is namespace native new overr
 ide pack
 age private protected public return set static super switch this throw try typeof use var void while 
with",literal:"true false null 
undefined"},c:[e.ASM,e.QSM,e.CLCM,e.CBCM,e.CNM,{cN:"class",bK:"package",e:"{",c:[e.TM]},{cN:"class",bK:"class 
interface",e:"{",eE:!0,c:[{bK:"extends implements"},e.TM]},{cN:"meta",bK:"import 
include",e:";",k:{"meta-keyword":"import 
include"}},{cN:"function",bK:"function",e:"[{;]",eE:!0,i:"\\S",c:[e.TM,{cN:"params",b:"\\(",e:"\\)",c:[e.ASM,e.QSM,e.CLCM,e.CBCM,t]},{b:":\\s*([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)"}]},e.METHOD_GUARD],i:/#/}}),n.registerLanguage("apache",function(e){var
 
t={cN:"number",b:"[\\$%]\\d+"};return{aliases:["apacheconf"],cI:!0,c:[e.HCM,{cN:"section",b:"</?",e:">"},{cN:"attribute",b:/\w+/,r:0,k:{nomarkup:"order
 deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule 
options header listen serverroot servername"},starts:{e:/$/,r:0,k:{literal:"on off 
all"},c:[{cN:"meta",b:"\\s\\[",e:"\\]$"
 },{cN:"v
 ariable",b:"[\\$%]\\{",e:"\\}",c:["self",t]},t,e.QSM]}}],i:/\S/}}),n.registerLanguage("xml",function(e){var 
t={eW:!0,i:/</,r:0,c:[{cN:"attr",b:"[A-Za-z0-9\\._:-]+",r:0},{b:/=\s*/,r:0,c:[{cN:"string",endsParent:!0,v:[{b:/"/,e:/"/},{b:/'/,e:/'/},{b:/[^\s"'=<>`]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist"],cI:!0,c:[{cN:"meta",b:"<!DOCTYPE",e:">",r:10,c:[{b:"\\[",e:"\\]"}]},e.C("\x3c!--","--\x3e",{r:10}),{b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"meta",b:/<\?xml/,e:/\?>/,r:10},{b:/<\?(php)?/,e:/\?>/,sL:"php",c:[{b:"/\\*",e:"\\*/",skip:!0},{b:'b"',e:'"',skip:!0},{b:"b'",e:"'",skip:!0},e.inherit(e.ASM,{i:null,cN:null,c:null,skip:!0}),e.inherit(e.QSM,{i:null,cN:null,c:null,skip:!0})]},{cN:"tag",b:"<style(?=\\s|>|$)",e:">",k:{name:"style"},c:[t],starts:{e:"</style>",rE:!0,sL:["css","xml"]}},{cN:"tag",b:"<script(?=\\s|>|$)",e:">",k:{name:"script"},c:[t],starts:{e:"<\/script>",rE:!0,sL:["actionscript","javascript","handlebars","xml"]}},{cN:"tag",b:"
 </?",e:"
 
/?>",c:[{cN:"name",b:/[^\/><\s]+/,r:0},t]}]}}),n.registerLanguage("asciidoc",function(e){return{aliases:["adoc"],c:[e.C("^/{4,}\\n","\\n/{4,}$",{r:10}),e.C("^//","$",{r:0}),{cN:"title",b:"^\\.\\w.*$"},{b:"^[=\\*]{4,}\\n",e:"\\n^[=\\*]{4,}$",r:10},{cN:"section",r:10,v:[{b:"^(={1,5})
 .+?( 
\\1)?$"},{b:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$"}]},{cN:"meta",b:"^:.+?:",e:"\\s",eE:!0,r:10},{cN:"meta",b:"^\\[.+?\\]$",r:0},{cN:"quote",b:"^_{4,}\\n",e:"\\n_{4,}$",r:10},{cN:"code",b:"^[\\-\\.]{4,}\\n",e:"\\n[\\-\\.]{4,}$",r:10},{b:"^\\+{4,}\\n",e:"\\n\\+{4,}$",c:[{b:"<",e:">",sL:"xml",r:0}],r:10},{cN:"bullet",b:"^(\\*+|\\-+|\\.+|[^\\n]+?::)\\s+"},{cN:"symbol",b:"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+",r:10},{cN:"strong",b:"\\B\\*(?![\\*\\s])",e:"(\\n{2}|\\*)",c:[{b:"\\\\*\\w",r:0}]},{cN:"emphasis",b:"\\B'(?!['\\s])",e:"(\\n{2}|')",c:[{b:"\\\\'\\w",r:0}],r:0},{cN:"emphasis",b:"_(?![_\\s])",e:"(\\n{2}|_)",r:0},{cN:"string",v:[{b:"``.+?''"},{b:"`.+?'"}]},{cN:"code",b:"(`.+?`|\\+.+?\\+)"
 ,r:0},{c
 N:"code",b:"^[ \\t]",e:"$",r:0},{b:"^'{3,}[ 
\\t]*$",r:10},{b:"(link:)?(http|https|ftp|file|irc|image:?):\\S+\\[.*?\\]",rB:!0,c:[{b:"(link|image:?):",r:0},{cN:"link",b:"\\w",e:"[^\\[]+",r:0},{cN:"string",b:"\\[",e:"\\]",eB:!0,eE:!0,r:0}],r:10}]}}),n.registerLanguage("awk",function(e){return{k:{keyword:"BEGIN
 END if else while do for in break continue delete next nextfile function func 
exit|10"},c:[{cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)}/}]},{cN:"string",c:[e.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,r:10},{b:/(u|b)?r?"""/,e:/"""/,r:10},{b:/(u|r|ur)'/,e:/'/,r:10},{b:/(u|r|ur)"/,e:/"/,r:10},{b:/(b|br)'/,e:/'/},{b:/(b|br)"/,e:/"/},e.ASM,e.QSM]},e.RM,e.HCM,e.NM]}}),n.registerLanguage("bash",function(e){var
 
t={cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)}/}]},r={cN:"string",b:/"/,e:/"/,c:[e.BE,t,{cN:"variable",b:/\$\(/,e:/\)/,c:[e.BE]}]};return{aliases:["sh","zsh"],l:/\b-?[a-z\._]+\b/,k:{keyword:"if
 then else elif fi for while in do done case esac function",lite
 ral:"tru
 e false",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",_:"-ne -eq -lt -gt -f -d -e -s -l 
-a"},c:[{cN:"meta",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:!0,c:[e.inherit(e.TM,{b:/\w[\w\d_]*/})],r:0},e.HCM,r,{cN:"",b:/\\"/},{cN:"string",b:/'/,e:/'/},t
 ]}}),n.r
 egisterLanguage("clojure",function(e){var 
t="a-zA-Z_\\-!.?+*=<>&#'",r="["+t+"]["+t+"0-9/;:]*",a={b:r,r:0},n={cN:"number",b:"[-+]?\\d+(\\.\\d+)?",r:0},i=e.inherit(e.QSM,{i:null}),s=e.C(";","$",{r:0}),c={cN:"literal",b:/\b(true|false|nil)\b/},o={b:"[\\[\\{]",e:"[\\]\\}]"},l={cN:"comment",b:"\\^"+r},d=e.C("\\^\\{","\\}"),u={cN:"symbol",b:"[:]{1,2}"+r},b={b:"\\(",e:"\\)"},p={eW:!0,r:0},m={k:{"builtin-name":"def
 defonce cond apply if-not if-let if not not= = < > <= >= == + / * - rem quot neg? pos? delay? symbol? 
keyword? true? false? integer? empty? coll? list? set? ifn? fn? associative? sequential? sorted? counted? 
reversible? number? decimal? class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? 
vector? string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . inc compare do 
dotimes mapcat take remove take-while drop letfn drop-last take-last drop-while while intern condp case 
reduced cycle split-at split-with repeat replicate i
 terate r
 ange merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext nthrest partition eval doseq 
await await-for let agent atom send send-off release-pending-sends add-watch mapv filterv remove-watch 
agent-error restart-agent set-error-handler error-handler set-error-mode! error-mode shutdown-agents quote 
var fn loop recur throw try monitor-enter monitor-exit defmacro defn defn- macroexpand macroexpand-1 for 
dosync and or when when-not when-let comp juxt partial sequence memoize constantly complement identity assert 
peek pop doto proxy defstruct first rest cons defprotocol cast coll deftype defrecord last butlast sigs reify 
second ffirst fnext nfirst nnext defmulti defmethod meta with-meta ns in-ns create-ns import refer keys 
select-keys vals key val rseq name namespace promise into transient persistent! conj! assoc! dissoc! pop! 
disj! use class type num float double short byte boolean bigint biginteger bigdec print-method print-dup 
throw-if printf format load com
 pile get
 -in update-in pr pr-on newline flush read slurp read-line subvec with-open memfn time re-find re-groups 
rand-int rand mod locking assert-valid-fdecl alias resolve ref deref refset swap! reset! set-validator! 
compare-and-set! alter-meta! reset-meta! commute get-validator alter ref-set ref-history-count 
ref-min-history ref-max-history ensure sync io! new next conj set! to-array future future-call into-array 
aset gen-class reduce map filter find empty hash-map hash-set sorted-map sorted-map-by sorted-set 
sorted-set-by vec vector seq flatten reverse assoc dissoc list disj get union difference intersection extend 
extend-type extend-protocol int nth delay count concat chunk chunk-buffer chunk-append chunk-first chunk-rest 
max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate 
unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? 
prn vary-meta lazy-seq spread list* str find-keyword keyword 
 symbol g
 ensym force rationalize"},l:r,cN:"name",b:r,starts:p},f=[b,i,l,d,s,u,o,n,c,a];return 
b.c=[e.C("comment",""),m,p],p.c=f,o.c=f,d.c=[o],{aliases:["clj"],i:/\S/,c:[b,i,l,d,s,u,o,n,c]}}),n.registerLanguage("cmake",function(e){return{aliases:["cmake.in"],cI:!0,k:{keyword:"break
 cmake_host_system_information cmake_minimum_required cmake_parse_arguments cmake_policy configure_file 
continue elseif else endforeach endfunction endif endmacro endwhile execute_process file find_file 
find_library find_package find_path find_program foreach function get_cmake_property get_directory_property 
get_filename_component get_property if include include_guard list macro mark_as_advanced math message option 
return separate_arguments set_directory_properties set_property set site_name string unset variable_watch 
while add_compile_definitions add_compile_options add_custom_command add_custom_target add_definitions 
add_dependencies add_executable add_library add_link_options add_subdirectory add_test a
 ux_sourc
 e_directory build_command create_test_sourcelist define_property enable_language enable_testing export 
fltk_wrap_ui get_source_file_property get_target_property get_test_property include_directories 
include_external_msproject include_regular_expression install link_directories link_libraries load_cache 
project qt_wrap_cpp qt_wrap_ui remove_definitions set_source_files_properties set_target_properties 
set_tests_properties source_group target_compile_definitions target_compile_features target_compile_options 
target_include_directories target_link_directories target_link_libraries target_link_options target_sources 
try_compile try_run ctest_build ctest_configure ctest_coverage ctest_empty_binary_directory ctest_memcheck 
ctest_read_custom_files ctest_run_script ctest_sleep ctest_start ctest_submit ctest_test ctest_update 
ctest_upload build_name exec_program export_library_dependencies install_files install_programs 
install_targets load_command make_directory output_required_file
 s remove
  subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file qt5_use_modules 
qt5_use_package qt5_wrap_cpp on off true false and or not command policy target test exists is_newer_than 
is_directory is_symlink is_absolute matches less greater equal less_equal greater_equal strless strgreater 
strequal strless_equal strgreater_equal version_less version_greater version_equal version_less_equal 
version_greater_equal in_list 
defined"},c:[{cN:"variable",b:"\\${",e:"}"},e.HCM,e.QSM,e.NM]}}),n.registerLanguage("cpp",function(e){var 
t={cN:"keyword",b:"\\b[a-z\\d_]*_t\\b"},r={cN:"string",v:[{b:'(u8?|U|L)?"',e:'"',i:"\\n",c:[e.BE]},{b:/(?:u8?|U|L)?R"([^()\\
 
]{0,16})\((?:.|\n)*?\)\1"/},{b:"'\\\\?.",e:"'",i:"."}]},a={cN:"number",v:[{b:"\\b(0b[01']+)"},{b:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{b:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],r:0},n={cN:"meta",b:/#\s*[a-z]+\b/,e:/$/,k:{"meta-keyword
 ":"if el
 se elif endif define undef warning error line pragma ifdef ifndef 
include"},c:[{b:/\\\n/,r:0},e.inherit(r,{cN:"meta-string"}),{cN:"meta-string",b:/<[^\n>]*>/,e:/$/,i:"\\n"},e.CLCM,e.CBCM]},i=e.IR+"\\s*\\(",s={keyword:"int
 float while private char catch import module export virtual operator sizeof dynamic_cast|10 typedef 
const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template 
mutable if public friend do goto auto void enum else break extern using asm case typeid short 
reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete 
alignof constexpr decltype noexcept static_assert thread_local restrict _Bool complex _Complex _Imaginary 
atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint 
atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and or not",built_in:"std string cin 
cout cerr clog stdin stdout stderr stringstr
 eam istr
 ingstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap 
unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 
atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf 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",literal:"true false nullptr 
NULL"},c=[t,e.CLCM,e.CBCM,a,r];return{aliases:["c","cc","h","c++","h++","hpp","hh","hxx","cxx"],k:s,i:"</",c:c.concat([n,{b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\
 \s*<",e:
 ">",k:s,c:["self",t]},{b:e.IR+"::",k:s},{v:[{b:/=/,e:/;/},{b:/\(/,e:/\)/},{bK:"new throw return 
else",e:/;/}],k:s,c:c.concat([{b:/\(/,e:/\)/,k:s,c:c.concat(["self"]),r:0}]),r:0},{cN:"function",b:"("+e.IR+"[\\*&\\s]+)+"+i,rB:!0,e:/[{;=]/,eE:!0,k:s,i:/[^\w\s\*&]/,c:[{b:i,rB:!0,c:[e.TM],r:0},{cN:"params",b:/\(/,e:/\)/,k:s,r:0,c:[e.CLCM,e.CBCM,r,a,t,{b:/\(/,e:/\)/,k:s,r:0,c:["self",e.CLCM,e.CBCM,r,a,t]}]},e.CLCM,e.CBCM,n]},{cN:"class",bK:"class
 
struct",e:/[{;:]/,c:[{b:/</,e:/>/,c:["self"]},e.TM]}]),exports:{preprocessor:n,strings:r,k:s}}}),n.registerLanguage("cs",function(e){var
 t={keyword:"abstract as base bool break byte case catch char checked const continue decimal default delegate 
do double enum event explicit extern finally fixed float for foreach goto if implicit in int interface 
internal is lock long nameof object operator out override params private protected public readonly ref sbyte 
sealed short sizeof stackalloc static string struct switch this try typeof uint ulong 
 unchecke
 d unsafe ushort using virtual void volatile while add alias ascending async await by descending dynamic 
equals from get global group into join let on orderby partial remove select set value var where 
yield",literal:"null false 
true"},r={cN:"number",v:[{b:"\\b(0b[01']+)"},{b:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{b:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],r:0},a={cN:"string",b:'@"',e:'"',c:[{b:'""'}]},n=e.inherit(a,{i:/\n/}),i={cN:"subst",b:"{",e:"}",k:t},s=e.inherit(i,{i:/\n/}),c={cN:"string",b:/\$"/,e:'"',i:/\n/,c:[{b:"{{"},{b:"}}"},e.BE,s]},o={cN:"string",b:/\$@"/,e:'"',c:[{b:"{{"},{b:"}}"},{b:'""'},i]},l=e.inherit(o,{i:/\n/,c:[{b:"{{"},{b:"}}"},{b:'""'},s]});i.c=[o,c,a,e.ASM,e.QSM,r,e.CBCM],s.c=[l,c,n,e.ASM,e.QSM,r,e.inherit(e.CBCM,{i:/\n/})];var
 
d={v:[o,c,a,e.ASM,e.QSM]},u=e.IR+"(<"+e.IR+"(\\s*,\\s*"+e.IR+")*>)?(\\[\\])?";return{aliases:["csharp","c#"],k:t,i:/::/,c:[e.C("///","$",{rB:!0,c:[{cN:"d
 octag",v
 
:[{b:"///",r:0},{b:"\x3c!--|--\x3e"},{b:"</?",e:">"}]}]}),e.CLCM,e.CBCM,{cN:"meta",b:"#",e:"$",k:{"meta-keyword":"if
 else elif endif define undef warning error line region endregion pragma checksum"}},d,r,{bK:"class 
interface",e:/[{;=]/,i:/[^\s:,]/,c:[e.TM,e.CLCM,e.CBCM]},{bK:"namespace",e:/[{;=]/,i:/[^\s:]/,c:[e.inherit(e.TM,{b:"[a-zA-Z](\\.?\\w)*"}),e.CLCM,e.CBCM]},{cN:"meta",b:"^\\s*\\[",eB:!0,e:"\\]",eE:!0,c:[{cN:"meta-string",b:/"/,e:/"/}]},{bK:"new
 return throw await 
else",r:0},{cN:"function",b:"("+u+"\\s+)+"+e.IR+"\\s*\\(",rB:!0,e:/\s*[{;=]/,eE:!0,k:t,c:[{b:e.IR+"\\s*\\(",rB:!0,c:[e.TM],r:0},{cN:"params",b:/\(/,e:/\)/,eB:!0,eE:!0,k:t,r:0,c:[d,r,e.CBCM]},e.CLCM,e.CBCM]}]}}),n.registerLanguage("css",function(e){var
 
t={b:/[A-Z\_\.\-]+\s*:/,rB:!0,e:";",eW:!0,c:[{cN:"attribute",b:/\S/,e:":",eE:!0,starts:{eW:!0,eE:!0,c:[{b:/[\w-]+\(/,rB:!0,c:[{cN:"built_in",b:/[\w-]+/},{b:/\(/,e:/\)/,c:[e.ASM,e.QSM]}]},e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:"number",b:"#[0-9A-Fa-f]+"},{cN:"meta",b:
 "!import
 
ant"}]}}]};return{cI:!0,i:/[=\/|'\$]/,c:[e.CBCM,{cN:"selector-id",b:/#[A-Za-z0-9_-]+/},{cN:"selector-class",b:/\.[A-Za-z0-9_-]+/},{cN:"selector-attr",b:/\[/,e:/\]/,i:"$"},{cN:"selector-pseudo",b:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{b:"@(font-face|page)",l:"[a-z-]+",k:"font-face
 
page"},{b:"@",e:"[{;]",i:/:/,c:[{cN:"keyword",b:/\w+/},{b:/\s/,eW:!0,eE:!0,r:0,c:[e.ASM,e.QSM,e.CSSNM]}]},{cN:"selector-tag",b:"[a-zA-Z-][a-zA-Z0-9_-]*",r:0},{b:"{",e:"}",i:/\S/,c:[e.CBCM,t]}]}}),n.registerLanguage("d",function(e){var
 
t="(0|[1-9][\\d_]*)",r="("+t+"|0[bB][01_]+|0[xX]([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*))",a="\\\\(['\"\\?\\\\abfnrtv]|u[\\dA-Fa-f]{4}|[0-7]{1,3}|x[\\dA-Fa-f]{2}|U[\\dA-Fa-f]{8})|&[a-zA-Z\\d]{2,};",n={cN:"number",b:"\\b"+r+"(L|u|U|Lu|LU|uL|UL)?",r:0},i={cN:"number",b:"\\b(((0[xX](([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)\\.([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)|\\.?([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*))[pP][+-]?(0|[1-9][\
 \d_]*|\\
 
d[\\d_]*|[\\d_]+?\\d))|((0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)(\\.\\d*|([eE][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)))|\\d+\\.(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)|\\.(0|[1-9][\\d_]*)([eE][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d))?))([fF]|L|i|[fF]i|Li)?|"+r+"(i|[fF]i|Li))",r:0},s={cN:"string",b:"'("+a+"|.)",e:"'",i:"."},c={cN:"string",b:'"',c:[{b:a,r:0}],e:'"[cwd]?'},o=e.C("\\/\\+","\\+\\/",{c:["self"],r:10});return{l:e.UIR,k:{keyword:"abstract
 alias align asm assert auto body break byte case cast catch class const continue debug default delete 
deprecated do else enum export extern final finally for foreach foreach_reverse|10 goto if immutable import 
in inout int interface invariant is lazy macro mixin module new nothrow out override package pragma private 
protected public pure ref return scope shared static struct super switch synchronized template this throw try 
typedef typeid typeof union unittest version void volatile whil
 e with _
 _FILE__ __LINE__ __gshared|10 __thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ 
__VERSION__",built_in:"bool cdouble cent cfloat char creal dchar delegate double dstring float function 
idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar wstring",literal:"false null 
true"},c:[e.CLCM,e.CBCM,o,{cN:"string",b:'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',r:10},c,{cN:"string",b:'[rq]"',e:'"[cwd]?',r:5},{cN:"string",b:"`",e:"`[cwd]?"},{cN:"string",b:'q"\\{',e:'\\}"'},i,n,s,{cN:"meta",b:"^#!",e:"$",r:5},{cN:"meta",b:"#(line)",e:"$",r:5},{cN:"keyword",b:"@[a-zA-Z_][a-zA-Z_\\d]*"}]}}),n.registerLanguage("diff",function(e){return{aliases:["patch"],c:[{cN:"meta",r:10,v:[{b:/^@@
 +\-\d+,\d+ +\+\d+,\d+ +@@$/},{b:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{b:/^\-\-\- +\d+,\d+ 
+\-\-\-\-$/}]},{cN:"comment",v:[{b:/Index: /,e:/$/},{b:/={3,}/,e:/$/},{b:/^\-{3}/,e:/$/},{b:/^\*{3} 
/,e:/$/},{b:/^\+{3}/,e:/$/},{b:/\*{5}/,e:/\*{5}$/}]},{cN:"addition",b:"^\\+",e:"$"},{cN:"deletio
 n",b:"^\
 \-",e:"$"},{cN:"addition",b:"^\\!",e:"$"}]}}),n.registerLanguage("django",function(e){var 
t={b:/\|[A-Za-z]+:?/,k:{name:"truncatewords removetags linebreaksbr yesno get_digit timesince random 
striptags filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands title floatformat 
capfirst pprint divisibleby add make_list unordered_list urlencode timeuntil urlizetrunc wordcount 
stringformat linenumbers slice date dictsort dictsortreversed default_if_none pluralize lower join center 
default truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first escapejs 
force_escape iriencode last safe safeseq truncatechars localize unlocalize localtime utc 
timezone"},c:[e.QSM,e.ASM]};return{aliases:["jinja"],cI:!0,sL:"xml",c:[e.C(/\{%\s*comment\s*%}/,/\{%\s*endcomment\s*%}/),e.C(/\{#/,/#}/),{cN:"template-tag",b:/\{%/,e:/%}/,c:[{cN:"name",b:/\w+/,k:{name:"comment
 endcomment load templatetag ifchanged endifchanged if endif firstof for endfor ifno
 tequal e
 ndifnotequal widthratio extends include spaceless endspaceless regroup ifequal endifequal ssi now with cycle 
url filter endfilter debug block endblock else autoescape endautoescape csrf_token empty elif endwith static 
trans blocktrans endblocktrans get_static_prefix get_media_prefix plural get_current_language language 
get_available_languages get_current_language_bidi get_language_info get_language_info_list localize 
endlocalize localtime endlocaltime timezone endtimezone get_current_timezone verbatim"},starts:{eW:!0,k:"in 
by 
as",c:[t],r:0}}]},{cN:"template-variable",b:/\{\{/,e:/}}/,c:[t]}]}}),n.registerLanguage("dockerfile",function(e){return{aliases:["docker"],cI:!0,k:"from
 maintainer expose env arg user onbuild stopsignal",c:[e.HCM,e.ASM,e.QSM,e.NM,{bK:"run cmd entrypoint volume 
add copy workdir label healthcheck 
shell",starts:{e:/[^\\]$/,sL:"bash"}}],i:"</"}}),n.registerLanguage("dos",function(e){var 
t=e.C(/^\s*@?rem\b/,/$/,{r:10});return{aliases:["bat","cmd"],cI:!0,i:/\
 /\*/,k:{
 keyword:"if else goto for in do call exit not exist errorlevel defined equ neq lss leq gtr 
geq",built_in:"prn nul lpt3 lpt2 lpt1 con com4 com3 com2 com1 aux shift cd dir echo setlocal endlocal set 
pause copy append assoc at attrib break cacls cd chcp chdir chkdsk chkntfs cls cmd color comp compact convert 
date dir diskcomp diskcopy doskey erase fs find findstr format ftype graftabl help keyb label md mkdir mode 
more move path pause print popd pushd promt rd recover rem rename replace restore rmdir shiftsort start subst 
time title tree type ver verify vol ping net ipconfig taskkill xcopy ren del"},c:[{cN:"variable",b:/%%[^ 
]|%[^ ]+?%|![^ 
]+?!/},{cN:"function",b:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)",e:"goto:eof",c:[e.inherit(e.TM,{b:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),t]},{cN:"number",b:"\\b\\d+",r:0},t]}}),n.registerLanguage("ruby",function(e){var
 t="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",r={keyword:"
 and then
  defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else 
break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer 
attr_accessor",literal:"true false 
nil"},a={cN:"doctag",b:"@[A-Za-z]+"},n={b:"#<",e:">"},i=[e.C("#","$",{c:[a]}),e.C("^\\=begin","^\\=end",{c:[a],r:10}),e.C("^__END__","\\n$")],s={cN:"subst",b:"#\\{",e:"}",k:r},c={cN:"string",c:[e.BE,s],v:[{b:/'/,e:/'/},{b:/"/,e:/"/},{b:/`/,e:/`/},{b:"%[qQwWx]?\\(",e:"\\)"},{b:"%[qQwWx]?\\[",e:"\\]"},{b:"%[qQwWx]?{",e:"}"},{b:"%[qQwWx]?<",e:">"},{b:"%[qQwWx]?/",e:"/"},{b:"%[qQwWx]?%",e:"%"},{b:"%[qQwWx]?-",e:"-"},{b:"%[qQwWx]?\\|",e:"\\|"},{b:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/},{b:/<<(-?)\w+$/,e:/^\s*\w+$/}]},o={cN:"params",b:"\\(",e:"\\)",endsParent:!0,k:r},l=[c,n,{cN:"class",bK:"class
 
module",e:"$|;",i:/=/,c:[e.inherit(e.TM,{b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{b:"<\\s*",c:[{b:"("+e.IR+"::)?"+e.IR}
 ]}].conc
 
at(i)},{cN:"function",bK:"def",e:"$|;",c:[e.inherit(e.TM,{b:t}),o].concat(i)},{b:e.IR+"::"},{cN:"symbol",b:e.UIR+"(\\!|\\?)?:",r:0},{cN:"symbol",b:":(?!\\s)",c:[c,{b:t}],r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{cN:"params",b:/\|/,e:/\|/,k:r},{b:"("+e.RSR+"|unless)\\s*",k:"unless",c:[n,{cN:"regexp",c:[e.BE,s],i:/\n/,v:[{b:"/",e:"/[a-z]*"},{b:"%r{",e:"}[a-z]*"},{b:"%r\\(",e:"\\)[a-z]*"},{b:"%r!",e:"![a-z]*"},{b:"%r\\[",e:"\\][a-z]*"}]}].concat(i),r:0}].concat(i);s.c=l;var
 
d=[{b:/^\s*=>/,starts:{e:"$",c:o.c=l}},{cN:"meta",b:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>)",starts:{e:"$",c:l}}];return{aliases:["rb","gemspec","podspec","thor","irb"],k:r,i:/\/\*/,c:i.concat(d).concat(l)}}),n.registerLanguage("erb",function(e){return{sL:"xml",c:[e.C("<%#","%>"),{b:"<%[%=-]?",e:"[%-]?%>",sL:"ruby",eB:!0,eE:!0}]}}),n.registerLanguage("fsharp",function(e){var
  t={b:"<
 ",e:">",c:[e.inherit(e.TM,{b:/'[a-zA-Z0-9_]+/})]};return{aliases:["fs"],k:"abstract and as assert base begin 
class default delegate do done downcast downto elif else end exception extern false finally for fun function 
global if in inherit inline interface internal lazy let match member module mutable namespace new null of 
open or override private public rec return sig static struct then to true try type upcast use val void when 
while with 
yield",i:/\/\*/,c:[{cN:"keyword",b:/\b(yield|return|let|do)!/},{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},{cN:"string",b:'"""',e:'"""'},e.C("\\(\\*","\\*\\)"),{cN:"class",bK:"type",e:"\\(|=|$",eE:!0,c:[e.UTM,t]},{cN:"meta",b:"\\[<",e:">\\]",r:10},{cN:"symbol",b:"\\B('[A-Za-z])\\b",c:[e.BE]},e.CLCM,e.inherit(e.QSM,{i:null}),e.CNM]}}),n.registerLanguage("go",function(e){var
 t={keyword:"break default func interface select case map struct chan else goto package switch const 
fallthrough if range type continue for import return var go defer bool byt
 e comple
 x64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr 
rune",literal:"true false iota nil",built_in:"append cap close complex copy imag len make new panic print 
println real recover 
delete"};return{aliases:["golang"],k:t,i:"</",c:[e.CLCM,e.CBCM,{cN:"string",v:[e.QSM,{b:"'",e:"[^\\\\]'"},{b:"`",e:"`"}]},{cN:"number",v:[{b:e.CNR+"[dflsi]",r:1},e.CNM]},{b:/:=/},{cN:"function",bK:"func",e:/\s*\{/,eE:!0,c:[e.TM,{cN:"params",b:/\(/,e:/\)/,k:t,i:/["']/}]}]}}),n.registerLanguage("haml",function(e){return{cI:!0,c:[{cN:"meta",b:"^!!!(
 
(5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$",r:10},e.C("^\\s*(!=#|=#|-#|/).*$",!1,{r:0}),{b:"^\\s*(-|=|!=)(?!#)",starts:{e:"\\n",sL:"ruby"}},{cN:"tag",b:"^\\s*%",c:[{cN:"selector-tag",b:"\\w+"},{cN:"selector-id",b:"#[\\w-]+"},{cN:"selector-class",b:"\\.[\\w-]+"},{b:"{\\s*",e:"\\s*}",c:[{b:":\\w+\\s*=>",e:",\\s+",rB:!0,eW:!0,c:[{cN:"attr",b:":\\w+"},e.ASM,e.QSM,{b:"\\w+",r:0}]}]},{b:"\\(\\s*",e
 :"\\s*\\
 
)",eE:!0,c:[{b:"\\w+\\s*=",e:"\\s+",rB:!0,eW:!0,c:[{cN:"attr",b:"\\w+",r:0},e.ASM,e.QSM,{b:"\\w+",r:0}]}]}]},{b:"^\\s*[=~]\\s*"},{b:"#{",starts:{e:"}",sL:"ruby"}}]}}),n.registerLanguage("haskell",function(e){var
 
t={v:[e.C("--","$"),e.C("{-","-}",{c:["self"]})]},r={cN:"meta",b:"{-#",e:"#-}"},a={cN:"meta",b:"^#",e:"$"},n={cN:"type",b:"\\b[A-Z][\\w']*",r:0},i={b:"\\(",e:"\\)",i:'"',c:[r,a,{cN:"type",b:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},e.inherit(e.TM,{b:"[_a-z][\\w']*"}),t]};return{aliases:["hs"],k:"let
 in if then else case of where do module import hiding qualified type data newtype deriving class instance as 
default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo 
proc rec",c:[{bK:"module",e:"where",k:"module where",c:[i,t],i:"\\W\\.|;"},{b:"\\bimport\\b",e:"$",k:"import 
qualified as hiding",c:[i,t],i:"\\W\\.|;"},{cN:"class",b:"^(\\s*)?(class|instance)\\b",e:"where",k:"class 
family instance where",c:[n,i,t]},{cN:"class
 ",b:"\\b
 (data|(new)?type)\\b",e:"$",k:"data family type newtype 
deriving",c:[r,n,i,{b:"{",e:"}",c:i.c},t]},{bK:"default",e:"$",c:[n,i,t]},{bK:"infix infixl 
infixr",e:"$",c:[e.CNM,t]},{b:"\\bforeign\\b",e:"$",k:"foreign import export ccall stdcall cplusplus jvm 
dotnet safe unsafe",c:[n,e.QSM,t]},{cN:"meta",b:"#!\\/usr\\/bin\\/env 
runhaskell",e:"$"},r,a,e.QSM,e.CNM,n,e.inherit(e.TM,{b:"^[_a-z][\\w']*"}),t,{b:"->|<-"}]}}),n.registerLanguage("http",function(e){var
 
t="HTTP/[0-9\\.]+";return{aliases:["https"],i:"\\S",c:[{b:"^"+t,e:"$",c:[{cN:"number",b:"\\b\\d{3}\\b"}]},{b:"^[A-Z]+
 (.*?) "+t+"$",rB:!0,e:"$",c:[{cN:"string",b:" ",e:" 
",eB:!0,eE:!0},{b:t},{cN:"keyword",b:"[A-Z]+"}]},{cN:"attribute",b:"^\\w",e:": 
",eE:!0,i:"\\n|\\s|=",starts:{e:"$",r:0}},{b:"\\n\\n",starts:{sL:[],eW:!0}}]}}),n.registerLanguage("ini",function(e){var
 
t={cN:"string",c:[e.BE],v:[{b:"'''",e:"'''",r:10},{b:'"""',e:'"""',r:10},{b:'"',e:'"'},{b:"'",e:"'"}]};return{aliases:["toml"],cI:!0,i:/\S/,c:[e.C(";","$"),e.HCM,
 {cN:"sec
 
tion",b:/^\s*\[+/,e:/\]+/},{b:/^[a-z0-9\[\]_\.-]+\s*=\s*/,e:"$",rB:!0,c:[{cN:"attr",b:/[a-z0-9\[\]_\.-]+/},{b:/=/,eW:!0,r:0,c:[e.C(";","$"),e.HCM,{cN:"literal",b:/\bon|off|true|false|yes|no\b/},{cN:"variable",v:[{b:/\$[\w\d"][\w\d_]*/},{b:/\$\{(.*?)}/}]},t,{cN:"number",b:/([\+\-]+)?[\d]+_[\d_]+/},e.NM]}]}]}}),n.registerLanguage("java",function(e){var
 t="false synchronized int abstract float private char boolean var static null if const for true while long 
strictfp finally protected import native final void enum else break transient catch instanceof byte super 
volatile case assert short package default double public try this switch continue throws protected public 
private module requires exports 
do",r={cN:"number",b:"\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?|\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))([eE][-+]?\\d+)?)[lLfF]?",r:0};return{aliases:["jsp"],k:t,i:/<\/|#/,c:[e.C(
 "/\\*\\*
 
","\\*/",{r:0,c:[{b:/\w+@/,r:0},{cN:"doctag",b:"@[A-Za-z]+"}]}),e.CLCM,e.CBCM,e.ASM,e.QSM,{cN:"class",bK:"class
 interface",e:/[{;=]/,eE:!0,k:"class interface",i:/[:"\[\]]/,c:[{bK:"extends implements"},e.UTM]},{bK:"new 
throw return 
else",r:0},{cN:"function",b:"([À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(<[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(\\s*,\\s*[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*)*>)?\\s+)+"+e.UIR+"\\s*\\(",rB:!0,e:/[{;=]/,eE:!0,k:t,c:[{b:e.UIR+"\\s*\\(",rB:!0,r:0,c:[e.UTM]},{cN:"params",b:/\(/,e:/\)/,k:t,r:0,c:[e.ASM,e.QSM,e.CNM,e.CBCM]},e.CLCM,e.CBCM]},r,{cN:"meta",b:"@[A-Za-z]+"}]}}),n.registerLanguage("javascript",function(e){var
 t="[A-Za-z$_][0-9A-Za-z$_]*",r={keyword:"in of if for while finally var new function do return void else 
break catch instanceof with throw case default try this switch continue typeof delete let yield const export 
super debugger as async await static import from as",literal:"true false null undefined NaN 
Infinity",built_in:"eval isFinite isNaN parseFlo
 at parse
 Int decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error 
EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math 
Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array 
Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document 
Symbol Set Map WeakSet WeakMap Proxy Reflect 
Promise"},a={cN:"number",v:[{b:"\\b(0[bB][01]+)"},{b:"\\b(0[oO][0-7]+)"},{b:e.CNR}],r:0},n={cN:"subst",b:"\\$\\{",e:"\\}",k:r,c:[]},i={cN:"string",b:"`",e:"`",c:[e.BE,n]};n.c=[e.ASM,e.QSM,i,a,e.RM];var
 s=n.c.concat([e.CBCM,e.CLCM]);return{aliases:["js","jsx"],k:r,c:[{cN:"meta",r:10,b:/^\s*['"]use 
(strict|asm)['"]/},{cN:"meta",b:/^#!/,e:/$/},e.ASM,e.QSM,i,e.CLCM,e.CBCM,a,{b:/[{,]\s*/,r:0,c:[{b:t+"\\s*:",rB:!0,r:0,c:[{cN:"attr",b:t,r:0}]}]},{b:"("+e.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return
 throw case",c
 :[e.CLCM
 
,e.CBCM,e.RM,{cN:"function",b:"(\\(.*?\\)|"+t+")\\s*=>",rB:!0,e:"\\s*=>",c:[{cN:"params",v:[{b:t},{b:/\(\s*\)/},{b:/\(/,e:/\)/,eB:!0,eE:!0,k:r,c:s}]}]},{cN:"",b:/\s/,e:/\s*/,skip:!0},{b:/</,e:/(\/[A-Za-z0-9\\._:-]+|[A-Za-z0-9\\._:-]+\/)>/,sL:"xml",c:[{b:/<[A-Za-z0-9\\._:-]+\s*\/>/,skip:!0},{b:/<[A-Za-z0-9\\._:-]+/,e:/(\/[A-Za-z0-9\\._:-]+|[A-Za-z0-9\\._:-]+\/)>/,skip:!0,c:[{b:/<[A-Za-z0-9\\._:-]+\s*\/>/,skip:!0},"self"]}]}],r:0},{cN:"function",bK:"function",e:/\{/,eE:!0,c:[e.inherit(e.TM,{b:t}),{cN:"params",b:/\(/,e:/\)/,eB:!0,eE:!0,c:s}],i:/\[|%/},{b:/\$[(.]/},e.METHOD_GUARD,{cN:"class",bK:"class",e:/[{;=]/,eE:!0,i:/[:"\[\]]/,c:[{bK:"extends"},e.UTM]},{bK:"constructor
 get set",e:/\{/,eE:!0}],i:/#(?!!)/}}),n.registerLanguage("json",function(e){var t={literal:"true false 
null"},r=[e.QSM,e.CNM],a={e:",",eW:!0,eE:!0,c:r,k:t},n={b:"{",e:"}",c:[{cN:"attr",b:/"/,e:/"/,c:[e.BE],i:"\\n"},e.inherit(a,{b:/:/})],i:"\\S"},i={b:"\\[",e:"\\]",c:[e.inherit(a)],i:"\\S"};return
 r.splice(r.le
 ngth,0,n
 ,i),{c:r,k:t,i:"\\S"}}),n.registerLanguage("lisp",function(e){var 
t="[a-zA-Z_\\-\\+\\*\\/\\<\\=\\>\\&\\#][a-zA-Z0-9_\\-\\+\\*\\/\\<\\=\\>\\&\\#!]*",r="\\|[^]*?\\|",a="(\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\+|\\-)?\\d+)?",n={cN:"literal",b:"\\b(t{1}|nil)\\b"},i={cN:"number",v:[{b:a,r:0},{b:"#(b|B)[0-1]+(/[0-1]+)?"},{b:"#(o|O)[0-7]+(/[0-7]+)?"},{b:"#(x|X)[0-9a-fA-F]+(/[0-9a-fA-F]+)?"},{b:"#(c|C)\\("+a+"
 
+"+a,e:"\\)"}]},s=e.inherit(e.QSM,{i:null}),c=e.C(";","$",{r:0}),o={b:"\\*",e:"\\*"},l={cN:"symbol",b:"[:&]"+t},d={b:t,r:0},u={b:r},b={c:[i,s,o,l,{b:"\\(",e:"\\)",c:["self",n,s,i,d]},d],v:[{b:"['`]\\(",e:"\\)"},{b:"\\(quote
 
",e:"\\)",k:{name:"quote"}},{b:"'"+r}]},p={v:[{b:"'"+t},{b:"#'"+t+"(::"+t+")*"}]},m={b:"\\(\\s*",e:"\\)"},f={eW:!0,r:0};return
 
m.c=[{cN:"name",v:[{b:t},{b:r}]},f],f.c=[b,p,m,n,i,s,c,o,l,u,d],{i:/\S/,c:[i,{cN:"meta",b:"^#!",e:"$"},n,s,c,b,p,m,d]}}),n.registerLanguage("lua",function(e){var
 t="\\[=*\\[",r="\\]=*\\]",a={b:t,e:r,c:["self"]},n=[e
 .C("--(?
 !"+t+")","$"),e.C("--"+t,r,{c:[a],r:10})];return{l:e.UIR,k:{literal:"true false nil",keyword:"and break do 
else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION 
__index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow 
__concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile 
loadstringmodule next pairs pcall print rawequal rawget rawset require select setfenvsetmetatable tonumber 
tostring type unpack xpcall arg selfcoroutine 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 e
 xp sin a
 tan 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"},c:n.concat([{cN:"function",bK:"function",e:"\\)",c:[e.inherit(e.TM,{b:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{cN:"params",b:"\\(",eW:!0,c:n}].concat(n)},e.CNM,e.ASM,e.QSM,{cN:"string",b:t,e:r,c:[a],r:5}])}}),n.registerLanguage("makefile",function(e){var
 
t={cN:"variable",v:[{b:"\\$\\("+e.UIR+"\\)",c:[e.BE]},{b:/\$[@%<?\^\+\*]/}]},r={cN:"string",b:/"/,e:/"/,c:[e.BE,t]},a={cN:"variable",b:/\$\([\w-]+\s/,e:/\)/,k:{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"},c:[t]
 },n={b:"
 
^"+e.UIR+"\\s*[:+?]?=",i:"\\n",rB:!0,c:[{b:"^"+e.UIR,e:"[:+?]?=",eE:!0}]},i={cN:"section",b:/^[^\s]+:/,e:/$/,c:[t]};return{aliases:["mk","mak"],k:"define
 endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private 
vpath",l:/[\w-]+/,c:[e.HCM,t,r,a,n,{cN:"meta",b:/^\.PHONY:/,e:/$/,k:{"meta-keyword":".PHONY"},l:/[\.\w]+/},i]}}),n.registerLanguage("markdown",function(e){return{aliases:["md","mkdown","mkd"],c:[{cN:"section",v:[{b:"^#{1,6}",e:"$"},{b:"^.+?\\n[=-]{2,}$"}]},{b:"<",e:">",sL:"xml",r:0},{cN:"bullet",b:"^\\s*([*+-]|(\\d+\\.))\\s+"},{cN:"strong",b:"[*_]{2}.+?[*_]{2}"},{cN:"emphasis",v:[{b:"\\*.+?\\*"},{b:"_.+?_",r:0}]},{cN:"quote",b:"^>\\s+",e:"$"},{cN:"code",v:[{b:"^```w*s*$",e:"^```s*$"},{b:"`.+?`"},{b:"^(
 
{4}|\t)",e:"$",r:0}]},{b:"^[-\\*]{3,}",e:"$"},{b:"\\[.+?\\][\\(\\[].*?[\\)\\]]",rB:!0,c:[{cN:"string",b:"\\[",e:"\\]",eB:!0,rE:!0,r:0},{cN:"link",b:"\\]\\(",e:"\\)",eB:!0,eE:!0},{cN:"symbol",b:"\\]\\[",e:"\\]",eB:!0,eE
 :!0}],r:
 
10},{b:/^\[[^\n]+\]:/,rB:!0,c:[{cN:"symbol",b:/\[/,e:/\]/,eB:!0,eE:!0},{cN:"link",b:/:\s*/,e:/$/,eB:!0}]}]}}),n.registerLanguage("matlab",function(e){var
 t="('|\\.')+",r={r:0,c:[{b:t}]};return{k:{keyword:"break case catch classdef continue else elseif end 
enumerated events for function global if methods otherwise parfor persistent properties return spmd switch 
try while",built_in:"sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan atand 
atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot cotd coth acot acotd acoth 
hypot exp expm1 log log1p log10 log2 pow2 realpow reallog realsqrt sqrt nthroot nextpow2 abs angle complex 
conj imag real unwrap isreal cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli 
besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma gammainc gammaln psi legendre 
cross dot factor isprime primes gcd lcm rat rats perms nchoosek factorial cart2sph cart2p
 ol pol2c
 art sph2cart hsv2rgb rgb2hsv zeros ones eye repmat rand randn linspace logspace freqspace meshgrid 
accumarray size length ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril 
triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute shiftdim circshift 
squeeze isscalar isvector ans eps realmax realmin pi i inf nan isnan isinf isfinite j why compan gallery 
hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson max min nanmax nanmin mean nanmean 
type table readtable writetable sortrows sort figure plot plot3 scatter scatter3 cellfun legend intersect 
ismember procrustes hold num2cell 
"},i:'(//|"|#|/\\*|\\s+/\\w+)',c:[{cN:"function",bK:"function",e:"$",c:[e.UTM,{cN:"params",v:[{b:"\\(",e:"\\)"},{b:"\\[",e:"\\]"}]}]},{cN:"built_in",b:/true|false/,r:0,starts:r},{b:"[a-zA-Z][a-zA-Z_0-9]*"+t,r:0},{cN:"number",b:e.CNR,r:0,starts:r},{cN:"string",b:"'",e:"'",c:[e.BE,{b:"''"}]},{b:/\]|}|\)/,r:0,starts:r},{cN:"s
 tring",b
 
:'"',e:'"',c:[e.BE,{b:'""'}],starts:r},e.C("^\\s*\\%\\{\\s*$","^\\s*\\%\\}\\s*$"),e.C("\\%","$")]}}),n.registerLanguage("nginx",function(e){var
 t={cN:"variable",v:[{b:/\$\d+/},{b:/\$\{/,e:/}/},{b:"[\\$\\@]"+e.UIR}]},r={eW:!0,l:"[a-z/_]+",k:{literal:"on 
off yes no true false none blocked debug info notice warn error crit select break last permanent redirect 
kqueue rtsig epoll poll 
/dev/poll"},r:0,i:"=>",c:[e.HCM,{cN:"string",c:[e.BE,t],v:[{b:/"/,e:/"/},{b:/'/,e:/'/}]},{b:"([a-z]+):/",e:"\\s",eW:!0,eE:!0,c:[t]},{cN:"regexp",c:[e.BE,t],v:[{b:"\\s\\^",e:"\\s|{|;",rE:!0},{b:"~\\*?\\s+",e:"\\s|{|;",rE:!0},{b:"\\*(\\.[a-z\\-]+)+"},{b:"([a-z\\-]+\\.)+\\*"}]},{cN:"number",b:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{cN:"number",b:"\\b\\d+[kKmMgGdshdwy]*\\b",r:0},t]};return{aliases:["nginxconf"],c:[e.HCM,{b:e.UIR+"\\s+{",rB:!0,e:"{",c:[{cN:"section",b:e.UIR}],r:0},{b:e.UIR+"\\s",e:";|{",rB:!0,c:[{cN:"attribute",b:e.UIR,starts:r}],r:0}],i:"[^\\s\\}]"}}),n.registerL
 anguage(
 "objectivec",function(e){var t=/[a-zA-Z@][a-zA-Z0-9_]*/,r="@interface @class @protocol 
@implementation";return{aliases:["mm","objc","obj-c"],k:{keyword:"int float while char export sizeof typedef 
const struct for union unsigned long volatile static bool mutable if do return goto void enum else break 
extern asm case short default double register explicit signed typename this switch continue wchar_t inline 
readonly assign readwrite self @synchronized id typeof nonatomic super unichar 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_u
 nretained nonnull nullable null_unspecified null_resettable class instancetype NS_DESIGNATED_INITIALIZER 
NS_UNAVAILABLE NS_REQUIRES_SUPER NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED NS_ENUM 
NS_OPTIONS NS_SWIFT_UNAVAILABLE NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_REFINED_FOR_SWIFT 
NS_SWIFT_NAME NS_SWIFT_NOTHROW NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN 
NS_VOIDRETURN",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"BOOL dispatch_once_t 
dispatch_queue_t dispatch_sync dispatch_async 
dispatch_once"},l:t,i:"</",c:[{cN:"built_in",b:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},e.CLCM,e.CBCM,e.CNM,e.QSM,{cN:"string",v:[{b:'@"',e:'"',i:"\\n",c:[e.BE]},{b:"'",e:"[^\\\\]'",i:"[^\\\\][^']"}]},{cN:"meta",b:"#",e:"$",c:[{cN:"meta-string",v:[{b:'"',e:'"'},{b:"<",e:">"}]}]},{cN:"class",b:"("+r.split("
 
").join("|")+")\\b",e:"({|$)",eE:!0,k:r,l:t,c:[e.UTM]},{b:"\\."+e.UIR,r:0}]}}),n.registerLanguage("perl",function(e){var
 t
 ="getpwe
 nt getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec 
qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam 
rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown 
dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat 
msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime 
symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study 
formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos 
chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray 
hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst 
setprotoent else sysseek link getgrgi
 d shmctl
  waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift 
telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname 
semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority 
foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket 
readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent 
gt lt or ne m|0 break given say state 
when",r={cN:"subst",b:"[$@]\\{",e:"\\}",k:t},a={b:"->{",e:"}"},n={v:[{b:/\$\d/},{b:/[\$%@](\^\w\b|#\w+(::\w+)*|{\w+}|\w+(::\w*)*)/},{b:/[\$%@][^\s\w{]/,r:0}]},i=[e.BE,r,n],s=[n,e.HCM,e.C("^\\=\\w","\\=cut",{eW:!0}),a,{cN:"string",c:i,v:[{b:"q[qwxr]?\\s*\\(",e:"\\)",r:5},{b:"q[qwxr]?\\s*\\[",e:"\\]",r:5},{b:"q[qwxr]?\\s*\\{",e:"\\}",r:5},{b:"q[qwxr]?\\s*\\|",e:"\\|",r:5},{b:"q[qwxr]?\\s*\\<",e:"\\>",r:5},{b:"qw\\s+q",
 e:"q",r:
 
5},{b:"'",e:"'",c:[e.BE]},{b:'"',e:'"'},{b:"`",e:"`",c:[e.BE]},{b:"{\\w+}",c:[],r:0},{b:"-?\\w+\\s*\\=\\>",c:[],r:0}]},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{b:"(\\/\\/|"+e.RSR+"|\\b(split|return|print|reverse|grep)\\b)\\s*",k:"split
 return print reverse 
grep",r:0,c:[e.HCM,{cN:"regexp",b:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",r:10},{cN:"regexp",b:"(m|qr)?/",e:"/[a-z]*",c:[e.BE],r:0}]},{cN:"function",bK:"sub",e:"(\\s*\\(.*?\\))?[;{]",eE:!0,r:5,c:[e.TM]},{b:"-\\w\\b",r:0},{b:"^__DATA__$",e:"^__END__$",sL:"mojolicious",c:[{b:"^@@.*",e:"$",cN:"comment"}]}];return
 r.c=s,{aliases:["pl","pm"],l:/[\w\.]+/,k:t,c:a.c=s}}),n.registerLanguage("php",function(e){var 
t={b:"\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"},r={cN:"meta",b:/<\?(php)?|\?>/},a={cN:"string",c:[e.BE,r],v:[{b:'b"',e:'"'},{b:"b'",e:"'"},e.inherit(e.ASM,{i:null}),e.inherit(e.QSM,{i:null})]},n={v:[e.BNM,e.CNM]};return{aliases:["php","php3","php4","php5","php6","php7
 "],cI:!0
 ,k:"and include_once list abstract global private echo interface as static endswitch array null if endwhile 
or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ 
empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch 
__METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif 
declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield 
finally",c:[e.HCM,e.C("//","$",{c:[r]}),e.C("/\\*","\\*/",{c:[{cN:"doctag",b:"@[A-Za-z]+"}]}),e.C("__halt_compiler.+?;",!1,{eW:!0,k:"__halt_compiler",l:e.UIR}),{cN:"string",b:/<<<['"]?\w+['"]?$/,e:/^\w+;?$/,c:[e.BE,{cN:"subst",v:[{b:/\$\w+/},{b:/\{\$/,e:/\}/}]}]},r,{cN:"keyword",b:/\$this\b/},t,{b:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{cN:"function",bK:"function",e:/[;{]/,eE:!0,i:"\\$|\\[|%",c:[e.UTM,{cN:"params",b:"\\(",e:"\\)",c:["self",t,e.CBCM,a,n]}]},{cN:"cl
 ass",bK:
 "class interface",e:"{",eE:!0,i:/[:\(\$"]/,c:[{bK:"extends 
implements"},e.UTM]},{bK:"namespace",e:";",i:/[\.']/,c:[e.UTM]},{bK:"use",e:";",c:[e.UTM]},{b:"=>"},a,n]}}),n.registerLanguage("python",function(e){var
 t={keyword:"and elif is global as in if from raise for except finally print import pass return exec else 
break not with class assert yield try while continue del or def lambda async await 
nonlocal|10",built_in:"Ellipsis NotImplemented",literal:"False None True"},r={cN:"meta",b:/^(>>>|\.\.\.) 
/},a={cN:"subst",b:/\{/,e:/\}/,k:t,i:/#/},n={cN:"string",c:[e.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,c:[e.BE,r],r:10},{b:/(u|b)?r?"""/,e:/"""/,c:[e.BE,r],r:10},{b:/(fr|rf|f)'''/,e:/'''/,c:[e.BE,r,a]},{b:/(fr|rf|f)"""/,e:/"""/,c:[e.BE,r,a]},{b:/(u|r|ur)'/,e:/'/,r:10},{b:/(u|r|ur)"/,e:/"/,r:10},{b:/(b|br)'/,e:/'/},{b:/(b|br)"/,e:/"/},{b:/(fr|rf|f)'/,e:/'/,c:[e.BE,a]},{b:/(fr|rf|f)"/,e:/"/,c:[e.BE,a]},e.ASM,e.QSM]},i={cN:"number",r:0,v:[{b:e.BNR+"[lLjJ]?"},{b:"\\b(0o[0-7]+)[lLjJ]?"},{b:e.CN
 R+"[lLjJ
 ]?"}]},s={cN:"params",b:/\(/,e:/\)/,c:["self",r,i,n]};return 
a.c=[n,i,r],{aliases:["py","gyp","ipython"],k:t,i:/(<\/|->|\?)|=>/,c:[r,i,n,e.HCM,{v:[{cN:"function",bK:"def"},{cN:"class",bK:"class"}],e:/:/,i:/[${=;\n,]/,c:[e.UTM,s,{b:/->/,eW:!0,k:"None"}]},{cN:"meta",b:/^[\t
 ]*@/,e:/$/},{b:/\b(print|exec)\(/}]}}),n.registerLanguage("r",function(e){var 
t="([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*";return{c:[e.HCM,{b:t,l:t,k:{keyword:"function if in break next 
repeat else for return switch while try tryCatch stop warning require library attach detach source setMethod 
setGeneric setGroupGeneric setClass ...",literal:"NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 
NA_character_|10 
NA_complex_|10"},r:0},{cN:"number",b:"0[xX][0-9a-fA-F]+[Li]?\\b",r:0},{cN:"number",b:"\\d+(?:[eE][+\\-]?\\d*)?L\\b",r:0},{cN:"number",b:"\\d+\\.(?!\\d)(?:i\\b)?",r:0},{cN:"number",b:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",r:0},{cN:"number",b:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",r:0},{b:"`",e:"`",
 r:0},{cN
 :"string",c:[e.BE],v:[{b:'"',e:'"'},{b:"'",e:"'"}]}]}}),n.registerLanguage("rust",function(e){var 
t="([ui](8|16|32|64|128|size)|f(32|64))?",r="drop i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize f32 f64 
str char bool Box Option Result String Vec Copy Send Sized Sync Drop Fn FnMut FnOnce ToOwned Clone Debug 
PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator Extend IntoIterator DoubleEndedIterator 
ExactSizeIterator SliceConcatExt ToString assert! assert_eq! bitflags! bytes! cfg! col! concat! 
concat_idents! debug_assert! debug_assert_eq! env! panic! file! format! format_args! include_bin! 
include_str! line! local_data_key! module_path! option_env! print! println! select! stringify! try! 
unimplemented! unreachable! vec! write! writeln! macro_rules! assert_ne! 
debug_assert_ne!";return{aliases:["rs"],k:{keyword:"alignof as be box break const continue crate do else enum 
extern false fn for if impl in let loop match mod mut offsetof once priv proc pub pure ref r
 eturn se
 lf Self sizeof static struct super trait true type typeof unsafe unsized use virtual while where yield move 
default",literal:"true false Some None Ok 
Err",built_in:r},l:e.IR+"!?",i:"</",c:[e.CLCM,e.C("/\\*","\\*/",{c:["self"]}),e.inherit(e.QSM,{b:/b?"/,i:null}),{cN:"string",v:[{b:/r(#*)"(.|\n)*?"\1(?!#)/},{b:/b?'\\?(x\w{2}|u\w{4}|U\w{8}|.)'/}]},{cN:"symbol",b:/'[a-zA-Z_][a-zA-Z0-9_]*/},{cN:"number",v:[{b:"\\b0b([01_]+)"+t},{b:"\\b0o([0-7_]+)"+t},{b:"\\b0x([A-Fa-f0-9_]+)"+t},{b:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+t}],r:0},{cN:"function",bK:"fn",e:"(\\(|<)",eE:!0,c:[e.UTM]},{cN:"meta",b:"#\\!?\\[",e:"\\]",c:[{cN:"meta-string",b:/"/,e:/"/}]},{cN:"class",bK:"type",e:";",c:[e.inherit(e.UTM,{endsParent:!0})],i:"\\S"},{cN:"class",bK:"trait
 enum struct 
union",e:"{",c:[e.inherit(e.UTM,{endsParent:!0})],i:"[\\w\\d]"},{b:e.IR+"::",k:{built_in:r}},{b:"->"}]}}),n.registerLanguage("scala",function(e){var
 t={cN:"subst",v:[{b:"\\$[A-Za-z0-9_]+"},{b:"\\${",e:"}"}]},r={cN:"strin
 g",v:[{b
 
:'"',e:'"',i:"\\n",c:[e.BE]},{b:'"""',e:'"""',r:10},{b:'[a-z]+"',e:'"',i:"\\n",c:[e.BE,t]},{cN:"string",b:'[a-z]+"""',e:'"""',c:[t],r:10}]},a={cN:"type",b:"\\b[A-Z][A-Za-z0-9_]*",r:0},n={cN:"title",b:/[^0-9\n\t
 "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,r:0},i={cN:"class",bK:"class object 
trait type",e:/[:={\[\n;]/,eE:!0,c:[{bK:"extends 
with",r:10},{b:/\[/,e:/\]/,eB:!0,eE:!0,r:0,c:[a]},{cN:"params",b:/\(/,e:/\)/,eB:!0,eE:!0,r:0,c:[a]},n]},s={cN:"function",bK:"def",e:/[:={\[(\n;]/,eE:!0,c:[n]};return{k:{literal:"true
 false null",keyword:"type yield lazy override def with val var sealed abstract private trait object if 
forSome for while throw finally protected extends import final return else break new catch super class case 
package default try this match continue throws 
implicit"},c:[e.CLCM,e.CBCM,r,{cN:"symbol",b:"'\\w[\\w\\d_]*(?!')"},a,s,i,e.CNM,{cN:"meta",b:"@[A-Za-z]+"}]}}),n.registerLanguage("scheme",function(e){var
 t="[^\\(\\)\\[\\]\\{\\}\",'
 `;#|\\\\
 
\\s]+",r="(\\-|\\+)?\\d+([./]\\d+)?",a={cN:"literal",b:"(#t|#f|#\\\\"+t+"|#\\\\.)"},n={cN:"number",v:[{b:r,r:0},{b:"(\\-|\\+)?\\d+([./]\\d+)?[+\\-](\\-|\\+)?\\d+([./]\\d+)?i",r:0},{b:"#b[0-1]+(/[0-1]+)?"},{b:"#o[0-7]+(/[0-7]+)?"},{b:"#x[0-9a-f]+(/[0-9a-f]+)?"}]},i=e.QSM,s=[e.C(";","$",{r:0}),e.C("#\\|","\\|#")],c={b:t,r:0},o={cN:"symbol",b:"'"+t},l={eW:!0,r:0},d={v:[{b:/'/},{b:"`"}],c:[{b:"\\(",e:"\\)",c:["self",a,i,n,c,o]}]},u={cN:"name",b:t,l:t,k:{"builtin-name":"case-lambda
 call/cc class define-class exit-handler field import inherit init-field interface let*-values let-values 
let/ec mixin opt-lambda override protect provide public rename require require-for-syntax syntax syntax-case 
syntax-error unit/sig unless when with-syntax and begin call-with-current-continuation call-with-input-file 
call-with-output-file case cond define define-syntax delay do dynamic-wind else for-each if lambda let let* 
let-syntax letrec letrec-syntax map or syntax-rules ' * + , ,@ - ... / ; < <=
  = => > 
= ` abs acos angle append apply asin assoc assq assv atan boolean? caar cadr call-with-input-file 
call-with-output-file call-with-values car cdddar cddddr cdr ceiling char->integer char-alphabetic? 
char-ci<=? char-ci<? char-ci=? char-ci>=? char-ci>? char-downcase char-lower-case? char-numeric? 
char-ready? char-upcase char-upper-case? char-whitespace? char<=? char<? char=? char>=? char>? char? 
close-input-port close-output-port complex? cons cos current-input-port current-output-port denominator 
display eof-object? eq? equal? eqv? eval even? exact->inexact exact? exp expt floor force gcd imag-part 
inexact->exact inexact? input-port? integer->char integer? interaction-environment lcm length list 
list->string list->vector list-ref list-tail list? load log magnitude make-polar make-rectangular 
make-string make-vector max member memq memv min modulo negative? newline not null-environment null? 
number->string number? numerator odd? open-input-file open-output-file output-port? pa
 ir? peek
 -char port? positive? procedure? quasiquote quote quotient rational? rationalize read read-char real-part 
real? remainder reverse round scheme-report-environment set! set-car! set-cdr! sin sqrt string string->list 
string->number string->symbol string-append string-ci<=? string-ci<? string-ci=? string-ci>=? string-ci>? 
string-copy string-fill! string-length string-ref string-set! string<=? string<? string=? string>=? string>? 
string? substring symbol->string symbol? tan transcript-off transcript-on truncate values vector vector->list 
vector-fill! vector-length vector-ref vector-set! with-input-from-file with-output-to-file write write-char 
zero?"}},b={v:[{b:"\\(",e:"\\)"},{b:"\\[",e:"\\]"}],c:[{b:/lambda/,eW:!0,rB:!0,c:[u,{b:/\(/,e:/\)/,endsParent:!0,c:[c]}]},u,l]};return
 
l.c=[a,n,i,c,o,d,b].concat(s),{i:/\S/,c:[{cN:"meta",b:"^#!",e:"$"},n,i,o,d,b].concat(s)}}),n.registerLanguage("shell",function(e){return{aliases:["console"],c:[{cN:"meta",b:"^\\s{0,3}[\\w\\d\\[\\]()@-]*[>%$#
 ]",start
 s:{e:"$",sL:"bash"}}]}}),n.registerLanguage("smalltalk",function(e){var 
t="[a-z][a-zA-Z0-9_]*",r={cN:"string",b:"\\$.{1}"},a={cN:"symbol",b:"#"+e.UIR};return{aliases:["st"],k:"self 
super nil true false 
thisContext",c:[e.C('"','"'),e.ASM,{cN:"type",b:"\\b[A-Z][A-Za-z0-9_]*",r:0},{b:t+":",r:0},e.CNM,a,r,{b:"\\|[ 
]*"+t+"([ ]+"+t+")*[ ]*\\|",rB:!0,e:/\|/,i:/\S/,c:[{b:"(\\|[ 
]*)?"+t}]},{b:"\\#\\(",e:"\\)",c:[e.ASM,r,e.CNM,a]}]}}),n.registerLanguage("sql",function(e){var 
t=e.C("--","$");return{cI:!0,i:/[<>{}*]/,c:[{bK:"begin end start commit rollback savepoint lock alter create 
drop rename call delete do handler insert load replace select truncate update set show pragma grant merge 
describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze 
cache flush optimize repair kill install uninstall checksum restore check backup revoke comment values 
with",e:/;/,eW:!0,l:/[\w\.]+/,k:{keyword:"as abort abs absolute acc acce accep accept access 
 accessed
  accessible account acos action activate add addtime admin administer advanced advise aes_decrypt 
aes_encrypt after agent aggregate ali alia alias all allocate allow alter always analyze ancillary and anti 
any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly 
assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit 
authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability 
avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin 
binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block 
blocksize body both bound bucket buffer_cache buffer_pool build bulk by byte byteordermark bytes cache 
caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change 
changed char_base char_length character_length c
 haracter
 s characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk 
class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering 
coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated 
comment commit compact compatibility compiled complete composite_limit compound compress compute concat 
concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root 
connect_time connection consider consistent constant constraint constraints constructor container content 
contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption 
cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation 
critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor 
curtime customdatum cycle data 
 database
  databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff 
datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear 
days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa 
defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited 
demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe 
descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow 
disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document 
domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element 
ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced 
engine engines enqueue ente
 rprise e
 ntityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception 
exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain explode 
export export_set extended extent external external_1 external_2 externally extract failed 
failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file 
file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor 
flush following follows for forall force foreign form forma format found found_rows freelist freelists 
freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock 
getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id 
grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin 
heading heap help hex hierarchy high high_priority hosts hour hours
  http id
  ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate 
import in include including increment index indexes indexing indextype indicator indices inet6_aton 
inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input 
insert install instance instantiable instr interface interleaved intersect into invalidate invisible is 
is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join 
json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value 
lateral lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 
likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate 
locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs 
long loop low low_priority l
 ower lpa
 d lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master 
master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles 
maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge 
microsecond mid migration min minextents minimum mining minus minute minutes minvalue missing mod mode model 
modification modify module monitoring month months mount move movement multiset mutex name name_const names 
nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog 
noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping 
noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable 
nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies 
noschemacheck noswitch not nothing notice notnull no
 trim nov
 alidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate 
ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype 
oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator 
optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage 
ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding 
package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing 
password password_grace_time password_lock_time password_reuse_max password_reuse_time 
password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank 
percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe 
pipelined pivot pluggable plugin policy position post_transact
 ion pow 
 power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details 
prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges 
procedural procedure procedure_analyze processlist profiles project prompt protection public 
publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read 
reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference 
referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept 
regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on 
relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs 
resize resource respect restore restricted result result_cache resumable resume retention return returning 
returns reuse reverse revoke right rlike role role
 s rollba
 ck rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save 
savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search 
sec_to_time second seconds section securefile security seed segment select self semi sequence sequential 
serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share 
shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist 
si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep 
smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql 
sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode 
sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static 
statistics stats_binomial_test stats_crosstab stats_k
 s_test s
 tats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one 
stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored 
str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions 
substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset 
switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper 
system system_user sysutcdatetime table tables tablespace tablesample tan tdo template temporary terminated 
tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts 
timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 
to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation 
treat trigger trigger_nestlevel triggers trim tr
 uncate t
 ry_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex 
unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unnest unpivot unrecoverable 
unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable 
usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid 
uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari 
varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view 
virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev 
wheneve whenever where while whitespace window with within without work wrapped xdb xml xmlagg xmlattributes 
xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema 
xmlserialize xmltable xmltype xor year ye
 ar_to_mo
 nth years yearweek",literal:"true false null unknown",built_in:"array bigint binary bit blob bool boolean 
char character date dec decimal float int int8 integer interval number numeric real record serial serial8 
smallint text time timestamp tinyint varchar varying 
void"},c:[{cN:"string",b:"'",e:"'",c:[e.BE,{b:"''"}]},{cN:"string",b:'"',e:'"',c:[e.BE,{b:'""'}]},{cN:"string",b:"`",e:"`",c:[e.BE]},e.CNM,e.CBCM,t,e.HCM]},e.CBCM,t,e.HCM]}}),n.registerLanguage("tcl",function(e){return{aliases:["tk"],k:"after
 append apply array auto_execok auto_import auto_load auto_mkindex auto_mkindex_old auto_qualify auto_reset 
bgerror binary break catch cd chan clock close concat continue dde dict encoding eof error eval exec exit 
expr fblocked fconfigure fcopy file fileevent filename flush for foreach format gets glob global history http 
if incr info interp join lappend|10 lassign|10 lindex|10 linsert|10 list llength|10 load lrange|10 lrepeat|10 
lreplace|10 lreverse|10 lsearch|10 lset|10 lsort
 |10 math
 func mathop memory msgcat namespace open package parray pid pkg::create pkg_mkIndex platform platform::shell 
proc puts pwd read refchan regexp registry regsub|10 rename return safe scan seek set socket source split 
string subst switch tcl_endOfWord tcl_findLibrary tcl_startOfNextWord tcl_startOfPreviousWord 
tcl_wordBreakAfter tcl_wordBreakBefore tcltest tclvars tell time tm trace unknown unload unset update uplevel 
upvar variable vwait while",c:[e.C(";[ \\t]*#","$"),e.C("^[ 
\\t]*#","$"),{bK:"proc",e:"[\\{]",eE:!0,c:[{cN:"title",b:"[ 
\\t\\n\\r]+(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",e:"[ 
\\t\\n\\r]",eW:!0,eE:!0}]},{eE:!0,v:[{b:"\\$(\\{)?(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*\\(([a-zA-Z0-9_])*\\)",e:"[^a-zA-Z0-9_\\}\\$]"},{b:"\\$(\\{)?(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",e:"(\\))?[^a-zA-Z0-9_\\}\\$]"}]},{cN:"string",c:[e.BE],v:[e.inherit(e.QSM,{i:null})]},{cN:"number",v:[e.BNM,e.CNM]}]}}),n.registerLanguage("tex",function(e){var
 t={cN:"tag",b:/\\/,r:0,c:[{cN:"name",v:[{b:/[a-zA-Z\u043
 0-\u044f
 
\u0410-\u042f]+[*]?/},{b:/[^a-zA-Z\u0430-\u044f\u0410-\u042f0-9]/}],starts:{eW:!0,r:0,c:[{cN:"string",v:[{b:/\[/,e:/\]/},{b:/\{/,e:/\}/}]},{b:/\s*=\s*/,eW:!0,r:0,c:[{cN:"number",b:/-?\d*\.?\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?/}]}]}}]};return{c:[t,{cN:"formula",c:[t],r:0,v:[{b:/\$\$/,e:/\$\$/},{b:/\$/,e:/\$/}]},e.C("%","$",{r:0})]}}),n.registerLanguage("vala",function(e){return{k:{keyword:"char
 uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 uint16 uint32 uint64 float 
double bool struct enum string void weak unowned owned async signal static abstract interface override 
virtual delegate if while do for foreach else switch case break default return try catch public private 
protected internal using new this get set const stdout stdin stderr var",built_in:"DBus GLib CCode Gee Object 
Gtk Posix",literal:"false true null"},c:[{cN:"class",bK:"class interface 
namespace",e:"{",eE:!0,i:"[^,:\\n\\s\\.]",c:[e.UTM]},e.CLCM,e.CBCM,{cN:"string",b:'"""',e:'"""',r:5},e.
 ASM,e.QS
 M,e.CNM,{cN:"meta",b:"^#",e:"$",r:2}]}}),n.registerLanguage("xquery",function(e){var 
t=[{cN:"variable",b:/[\$][\w-:]+/},{cN:"built_in",v:[{b:/\barray\:/,e:/(?:append|filter|flatten|fold\-(?:left|right)|for-each(?:\-pair)?|get|head|insert\-before|join|put|remove|reverse|size|sort|subarray|tail)\b/},{b:/\bmap\:/,e:/(?:contains|entry|find|for\-each|get|keys|merge|put|remove|size)\b/},{b:/\bmath\:/,e:/(?:a(?:cos|sin|tan[2]?)|cos|exp(?:10)?|log(?:10)?|pi|pow|sin|sqrt|tan)\b/},{b:/\bop\:/,e:/\(/,eE:!0},{b:/\bfn\:/,e:/\(/,eE:!0},{b:/[^<\/\$\:'"-]\b(?:abs|accumulator\-(?:after|before)|adjust\-(?:date(?:Time)?|time)\-to\-timezone|analyze\-string|apply|available\-(?:environment\-variables|system\-properties)|avg|base\-uri|boolean|ceiling|codepoints?\-(?:equal|to\-string)|collation\-key|collection|compare|concat|contains(?:\-token)?|copy\-of|count|current(?:\-)?(?:date(?:Time)?|time|group(?:ing\-key)?|output\-uri|merge\-(?:group|key))?data|dateTime|days?\-from\-(?:date(?:Time)?|duratio
 n)|deep\
 
-equal|default\-(?:collation|language)|distinct\-values|document(?:\-uri)?|doc(?:\-available)?|element\-(?:available|with\-id)|empty|encode\-for\-uri|ends\-with|environment\-variable|error|escape\-html\-uri|exactly\-one|exists|false|filter|floor|fold\-(?:left|right)|for\-each(?:\-pair)?|format\-(?:date(?:Time)?|time|integer|number)|function\-(?:arity|available|lookup|name)|generate\-id|has\-children|head|hours\-from\-(?:dateTime|duration|time)|id(?:ref)?|implicit\-timezone|in\-scope\-prefixes|index\-of|innermost|insert\-before|iri\-to\-uri|json\-(?:doc|to\-xml)|key|lang|last|load\-xquery\-module|local\-name(?:\-from\-QName)?|(?:lower|upper)\-case|matches|max|minutes\-from\-(?:dateTime|duration|time)|min|months?\-from\-(?:date(?:Time)?|duration)|name(?:space\-uri\-?(?:for\-prefix|from\-QName)?)?|nilled|node\-name|normalize\-(?:space|unicode)|not|number|one\-or\-more|outermost|parse\-(?:ietf\-date|json)|path|position|(?:prefix\-from\-)?QName|random\-number\-generator|regex\-gr
 oup|remo
 
ve|replace|resolve\-(?:QName|uri)|reverse|root|round(?:\-half\-to\-even)?|seconds\-from\-(?:dateTime|duration|time)|snapshot|sort|starts\-with|static\-base\-uri|stream\-available|string\-?(?:join|length|to\-codepoints)?|subsequence|substring\-?(?:after|before)?|sum|system\-property|tail|timezone\-from\-(?:date(?:Time)?|time)|tokenize|trace|trans(?:form|late)|true|type\-available|unordered|unparsed\-(?:entity|text)?\-?(?:public\-id|uri|available|lines)?|uri\-collection|xml\-to\-json|years?\-from\-(?:date(?:Time)?|duration)|zero\-or\-one)\b/},{b:/\blocal\:/,e:/\(/,eE:!0},{b:/\bzip\:/,e:/(?:zip\-file|(?:xml|html|text|binary)\-entry|
 
(?:update\-)?entries)\b/},{b:/\b(?:util|db|functx|app|xdmp|xmldb)\:/,e:/\(/,eE:!0}]},{cN:"string",v:[{b:/"/,e:/"/,c:[{b:/""/,r:0}]},{b:/'/,e:/'/,c:[{b:/''/,r:0}]}]},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"comment",b:"\\(:",e:":\\)",r:10,c:[{cN:"doctag",b:"@\\w+"}]},{cN:"meta",b:/%[\w-:]+/}
 ,{cN:"ti
 tle",b:/\bxquery version "[13]\.[01]"\s?(?:encoding ".+")?/,e:/;/},{bK:"element attribute comment document 
processing-instruction",e:"{",eE:!0},{b:/<([\w\._:\-]+)((\s*.*)=('|").*('|"))?>/,e:/(\/[\w\._:\-]+>)/,sL:"xml",c:[{b:"{",e:"}",sL:"xquery"},"self"]}];return{aliases:["xpath","xq"],cI:!1,l:/[a-zA-Z\$][a-zA-Z0-9_:\-]*/,i:/(proc)|(abstract)|(extends)|(until)|(#)/,k:{keyword:"module
 schema namespace boundary-space preserve no-preserve strip default collation base-uri ordering context 
decimal-format decimal-separator copy-namespaces empty-sequence except exponent-separator external 
grouping-separator inherit no-inherit lax minus-sign per-mille percent schema-attribute schema-element strict 
unordered zero-digit declare import option function validate variable for at in let where order group by 
return if then else tumbling sliding window start when only end previous next stable ascending descending 
allowing empty greatest least some every satisfies switch case typeswitch try c
 atch and
  or to union intersect instance of treat as castable cast map array delete insert into replace value rename 
copy modify update",type:"item document-node node attribute document element comment namespace namespace-node 
processing-instruction text construction xs:anyAtomicType xs:untypedAtomic xs:duration xs:time xs:decimal 
xs:float xs:double xs:gYearMonth xs:gYear xs:gMonthDay xs:gMonth xs:gDay xs:boolean xs:base64Binary 
xs:hexBinary xs:anyURI xs:QName xs:NOTATION xs:dateTime xs:dateTimeStamp xs:date xs:string 
xs:normalizedString xs:token xs:language xs:NMTOKEN xs:Name xs:NCName xs:ID xs:IDREF xs:ENTITY xs:integer 
xs:nonPositiveInteger xs:negativeInteger xs:long xs:int xs:short xs:byte xs:nonNegativeInteger 
xs:unisignedLong xs:unsignedInt xs:unsignedShort xs:unsignedByte xs:positiveInteger xs:yearMonthDuration 
xs:dayTimeDuration",literal:"eq ne lt le gt ge is self:: child:: descendant:: descendant-or-self:: 
attribute:: following:: following-sibling:: parent:: ancestor:: ances
 tor-or-s
 elf:: preceding:: preceding-sibling:: NaN"},c:t}}),n.registerLanguage("yaml",function(e){var t="true false 
yes no null",r="^[ 
\\-]*",a="[a-zA-Z_][\\w\\-]*",n={cN:"attr",v:[{b:r+a+":"},{b:r+'"'+a+'":'},{b:r+"'"+a+"':"}]},i={cN:"string",r:0,v:[{b:/'/,e:/'/},{b:/"/,e:/"/},{b:/\S+/}],c:[e.BE,{cN:"template-variable",v:[{b:"{{",e:"}}"},{b:"%{",e:"}"}]}]};return{cI:!0,aliases:["yml","YAML","yaml"],c:[n,{cN:"meta",b:"^---s*$",r:10},{cN:"string",b:"[\\|>]
 
*$",rE:!0,c:i.c,e:n.v[0].b},{b:"<%[%=-]?",e:"[%-]?%>",sL:"ruby",eB:!0,eE:!0,r:0},{cN:"type",b:"!"+e.UIR},{cN:"type",b:"!!"+e.UIR},{cN:"meta",b:"&"+e.UIR+"$"},{cN:"meta",b:"\\*"+e.UIR+"$"},{cN:"bullet",b:"^
 *-",r:0},e.HCM,{bK:t,k:{literal:t}},e.CNM,i]}}),n});
\ No newline at end of file
+!function(e){var t="object"==typeof window&&window||"object"==typeof self&&self;"undefined"!=typeof 
exports?e(exports):t&&(t.hljs=e({}),"function"==typeof define&&define.amd&&define([],function(){return 
t.hljs}))}(function(n){var 
b=[],o=Object.keys,h={},p={},t=/^(no-?highlight|plain|text)$/i,m=/\blang(?:uage)?-([\w-]+)\b/i,r=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,a={case_insensitive:"cI",lexemes:"l",contains:"c",keywords:"k",subLanguage:"sL",className:"cN",begin:"b",beginKeywords:"bK",end:"e",endsWithParent:"eW",illegal:"i",excludeBegin:"eB",excludeEnd:"eE",returnBegin:"rB",returnEnd:"rE",relevance:"r",variants:"v",IDENT_RE:"IR",UNDERSCORE_IDENT_RE:"UIR",NUMBER_RE:"NR",C_NUMBER_RE:"CNR",BINARY_NUMBER_RE:"BNR",RE_STARTERS_RE:"RSR",BACKSLASH_ESCAPE:"BE",APOS_STRING_MODE:"ASM",QUOTE_STRING_MODE:"QSM",PHRASAL_WORDS_MODE:"PWM",C_LINE_COMMENT_MODE:"CLCM",C_BLOCK_COMMENT_MODE:"CBCM",HASH_COMMENT_MODE:"HCM",NUMBER_MODE:"NM",C_NUMBER_MODE:"CNM",BINARY_NUMBER_MODE:"BNM",CSS_NUMBER_MODE:"CSSNM
 ",REGEXP
 
_MODE:"RM",TITLE_MODE:"TM",UNDERSCORE_TITLE_MODE:"UTM",COMMENT:"C",beginRe:"bR",endRe:"eR",illegalRe:"iR",lexemesRe:"lR",terminators:"t",terminator_end:"tE"},y="</span>",v={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void
 0};function N(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function 
f(e){return e.nodeName.toLowerCase()}function w(e,t){var r=e&&e.exec(t);return r&&0===r.index}function 
g(e){return t.test(e)}function d(e){var t,r={},a=Array.prototype.slice.call(arguments,1);for(t in 
e)r[t]=e[t];return a.forEach(function(e){for(t in e)r[t]=e[t]}),r}function _(e){var n=[];return function 
e(t,r){for(var 
a=t.firstChild;a;a=a.nextSibling)3===a.nodeType?r+=a.nodeValue.length:1===a.nodeType&&(n.push({event:"start",offset:r,node:a}),r=e(a,r),f(a).match(/br|hr|img|input/)||n.push({event:"stop",offset:r,node:a}));return
 r}(e,0),n}function i(e){if(a&&!e.langApiRestored){for(var t in 
e.langApiRestored=!0,a)e[t]&&(e[a[t]]=e[t]);(e.c||[]).conca
 t(e.v||[
 ]).forEach(i)}}function x(s){function l(e){return e&&e.source||e}function c(e,t){return new 
RegExp(l(e),"m"+(s.cI?"i":"")+(t?"g":""))}!function 
t(r,e){if(!r.compiled){if(r.compiled=!0,r.k=r.k||r.bK,r.k){var 
a={},n=function(r,e){s.cI&&(e=e.toLowerCase()),e.split(" ").forEach(function(e){var 
t=e.split("|");a[t[0]]=[r,t[1]?Number(t[1]):1]})};"string"==typeof 
r.k?n("keyword",r.k):o(r.k).forEach(function(e){n(e,r.k[e])}),r.k=a}r.lR=c(r.l||/\w+/,!0),e&&(r.bK&&(r.b="\\b("+r.bK.split("
 
").join("|")+")\\b"),r.b||(r.b=/\B|\b/),r.bR=c(r.b),r.endSameAsBegin&&(r.e=r.b),r.e||r.eW||(r.e=/\B|\b/),r.e&&(r.eR=c(r.e)),r.tE=l(r.e)||"",r.eW&&e.tE&&(r.tE+=(r.e?"|":"")+e.tE)),r.i&&(r.iR=c(r.i)),null==r.r&&(r.r=1),r.c||(r.c=[]),r.c=Array.prototype.concat.apply([],r.c.map(function(e){return(t="self"===e?r:e).v&&!t.cached_variants&&(t.cached_variants=t.v.map(function(e){return
 d(t,{v:null},e)})),t.cached_variants||t.eW&&[d(t)]||[t];var 
t})),r.c.forEach(function(e){t(e,r)}),r.starts&&t(r.starts,e);var
  i=r.c.m
 ap(function(e){return 
e.bK?"\\.?(?:"+e.b+")\\.?":e.b}).concat([r.tE,r.i]).map(l).filter(Boolean);r.t=i.length?c(function(e,t){for(var
 r=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,a=0,n="",i=0;i<e.length;i++){var 
s=a,c=l(e[i]);for(0<i&&(n+=t);0<c.length;){var 
o=r.exec(c);if(null==o){n+=c;break}n+=c.substring(0,o.index),c=c.substring(o.index+o[0].length),"\\"==o[0][0]&&o[1]?n+="\\"+String(Number(o[1])+s):(n+=o[0],"("==o[0]&&a++)}}return
 n}(i,"|"),!0):{exec:function(){return null}}}}(s)}function k(e,t,c,r){function o(e,t,r,a){var n='<span 
class="'+(a?"":v.classPrefix);return e?(n+=e+'">')+t+(r?"":y):t}function l(){p+=null!=b.sL?function(){var 
e="string"==typeof b.sL;if(e&&!h[b.sL])return N(m);var t=e?k(b.sL,m,!0,i[b.sL]):E(m,b.sL.length?b.sL:void 
0);return 0<b.r&&(f+=t.r),e&&(i[b.sL]=t.top),o(t.language,t.value,!1,!0)}():function(){var 
e,t,r,a,n,i,s;if(!b.k)return 
N(m);for(a="",t=0,b.lR.lastIndex=0,r=b.lR.exec(m);r;)a+=N(m.substring(t,r.index)),n=b,i=r,s=u.cI?i[0].toLower
 Case():i
 
[0],(e=n.k.hasOwnProperty(s)&&n.k[s])?(f+=e[1],a+=o(e[0],N(r[0]))):a+=N(r[0]),t=b.lR.lastIndex,r=b.lR.exec(m);return
 a+N(m.substr(t))}(),m=""}function 
d(e){p+=e.cN?o(e.cN,"",!0):"",b=Object.create(e,{parent:{value:b}})}function a(e,t){if(m+=e,null==t)return 
l(),0;var r=function(e,t){var r,a,n;for(r=0,a=t.c.length;r<a;r++)if(w(t.c[r].bR,e))return 
t.c[r].endSameAsBegin&&(t.c[r].eR=(n=t.c[r].bR.exec(e)[0],new 
RegExp(n.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),"m"))),t.c[r]}(t,b);if(r)return 
r.skip?m+=t:(r.eB&&(m+=t),l(),r.rB||r.eB||(m=t)),d(r),r.rB?0:t.length;var a,n,i=function 
e(t,r){if(w(t.eR,r)){for(;t.endsParent&&t.parent;)t=t.parent;return t}if(t.eW)return 
e(t.parent,r)}(b,t);if(i){var 
s=b;for(s.skip?m+=t:(s.rE||s.eE||(m+=t),l(),s.eE&&(m=t));b.cN&&(p+=y),b.skip||b.sL||(f+=b.r),(b=b.parent)!==i.parent;);return
 i.starts&&(i.endSameAsBegin&&(i.starts.eR=i.eR),d(i.starts)),s.rE?0:t.length}if(a=t,n=b,!c&&w(n.iR,a))throw 
new Error('Illegal lexeme "'+t+'" for mode "'+(b.cN||"<unna
 med>")+'
 "');return m+=t,t.length||1}var u=C(e);if(!u)throw new Error('Unknown language: "'+e+'"');x(u);var 
n,b=r||u,i={},p="";for(n=b;n!==u;n=n.parent)n.cN&&(p=o(n.cN,"",!0)+p);var m="",f=0;try{for(var 
s,g,_=0;b.t.lastIndex=_,s=b.t.exec(t);)g=a(t.substring(_,s.index),s[0]),_=s.index+g;for(a(t.substr(_)),n=b;n.parent;n=n.parent)n.cN&&(p+=y);return{r:f,value:p,language:e,top:b}}catch(e){if(e.message&&-1!==e.message.indexOf("Illegal"))return{r:0,value:N(t)};throw
 e}}function E(r,e){e=e||v.languages||o(h);var a={r:0,value:N(r)},n=a;return 
e.filter(C).filter(l).forEach(function(e){var 
t=k(e,r,!1);t.language=e,t.r>n.r&&(n=t),t.r>a.r&&(n=a,a=t)}),n.language&&(a.second_best=n),a}function 
M(e){return v.tabReplace||v.useBR?e.replace(r,function(e,t){return 
v.useBR&&"\n"===e?"<br>":v.tabReplace?t.replace(/\t/g,v.tabReplace):""}):e}function s(e){var 
t,r,a,n,i,s,c,o,l,d,u=function(e){var t,r,a,n,i=e.className+" 
";if(i+=e.parentNode?e.parentNode.className:"",r=m.exec(i))return C(r[1])?r[1]:"no-hig
 hlight";
 for(t=0,a=(i=i.split(/\s+/)).length;t<a;t++)if(g(n=i[t])||C(n))return 
n}(e);g(u)||(v.useBR?(t=document.createElementNS("http://www.w3.org/1999/xhtml","div";)).innerHTML=e.innerHTML.replace(/\n/g,"").replace(/<br[
 
\/]*>/g,"\n"):t=e,i=t.textContent,a=u?k(u,i,!0):E(i),(r=_(t)).length&&((n=document.createElementNS("http://www.w3.org/1999/xhtml","div";)).innerHTML=a.value,a.value=function(e,t,r){var
 a=0,n="",i=[];function s(){return 
e.length&&t.length?e[0].offset!==t[0].offset?e[0].offset<t[0].offset?e:t:"start"===t[0].event?e:t:e.length?e:t}function
 c(e){n+="<"+f(e)+b.map.call(e.attributes,function(e){return" 
"+e.nodeName+'="'+N(e.value).replace('"',"&quot;")+'"'}).join("")+">"}function o(e){n+="</"+f(e)+">"}function 
l(e){("start"===e.event?c:o)(e.node)}for(;e.length||t.length;){var 
d=s();if(n+=N(r.substring(a,d[0].offset)),a=d[0].offset,d===e){for(i.reverse().forEach(o);l(d.splice(0,1)[0]),(d=s())===e&&d.length&&d[0].offset===a;);i.reverse().forEach(c)}else"start"===d[0].event?i.
 push(d[0
 ].node):i.pop(),l(d.splice(0,1)[0])}return 
n+N(r.substr(a))}(r,_(n),i)),a.value=M(a.value),e.innerHTML=a.value,e.className=(s=e.className,c=u,o=a.language,l=c?p[c]:o,d=[s.trim()],s.match(/\bhljs\b/)||d.push("hljs"),-1===s.indexOf(l)&&d.push(l),d.join("
 
").trim()),e.result={language:a.language,re:a.r},a.second_best&&(e.second_best={language:a.second_best.language,re:a.second_best.r}))}function
 c(){if(!c.called){c.called=!0;var e=document.querySelectorAll("pre code");b.forEach.call(e,s)}}function 
C(e){return e=(e||"").toLowerCase(),h[e]||h[p[e]]}function l(e){var t=C(e);return 
t&&!t.disableAutodetect}return 
n.highlight=k,n.highlightAuto=E,n.fixMarkup=M,n.highlightBlock=s,n.configure=function(e){v=d(v,e)},n.initHighlighting=c,n.initHighlightingOnLoad=function(){addEventListener("DOMContentLoaded",c,!1),addEventListener("load",c,!1)},n.registerLanguage=function(t,e){var
 r=h[t]=e(n);i(r),r.aliases&&r.aliases.forEach(function(e){p[e]=t})},n.listLanguages=function(){return 
o(h)},n.
 getLangu
 
age=C,n.autoDetection=l,n.inherit=d,n.IR=n.IDENT_RE="[a-zA-Z]\\w*",n.UIR=n.UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",n.NR=n.NUMBER_RE="\\b\\d+(\\.\\d+)?",n.CNR=n.C_NUMBER_RE="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",n.BNR=n.BINARY_NUMBER_RE="\\b(0b[01]+)",n.RSR=n.RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",n.BE=n.BACKSLASH_ESCAPE={b:"\\\\[\\s\\S]",r:0},n.ASM=n.APOS_STRING_MODE={cN:"string",b:"'",e:"'",i:"\\n",c:[n.BE]},n.QSM=n.QUOTE_STRING_MODE={cN:"string",b:'"',e:'"',i:"\\n",c:[n.BE]},n.PWM=n.PHRASAL_WORDS_MODE={b:/\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/},n.C=n.COMMENT=function(e,t,r){var
 a=n.inherit({cN:"comment",b:e,e:t,c:[]},r||{});return 
a.c.push(n.PWM),a.c.push({cN:"doctag",b:"(?:TODO|FIXME|NOTE|BUG|XXX):",r:0}),a},n.CLCM=n.C_LINE_CO
 MMENT_MO
 
DE=n.C("//","$"),n.CBCM=n.C_BLOCK_COMMENT_MODE=n.C("/\\*","\\*/"),n.HCM=n.HASH_COMMENT_MODE=n.C("#","$"),n.NM=n.NUMBER_MODE={cN:"number",b:n.NR,r:0},n.CNM=n.C_NUMBER_MODE={cN:"number",b:n.CNR,r:0},n.BNM=n.BINARY_NUMBER_MODE={cN:"number",b:n.BNR,r:0},n.CSSNM=n.CSS_NUMBER_MODE={cN:"number",b:n.NR+"(%|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)?",r:0},n.RM=n.REGEXP_MODE={cN:"regexp",b:/\//,e:/\/[gimuy]*/,i:/\n/,c:[n.BE,{b:/\[/,e:/\]/,r:0,c:[n.BE]}]},n.TM=n.TITLE_MODE={cN:"title",b:n.IR,r:0},n.UTM=n.UNDERSCORE_TITLE_MODE={cN:"title",b:n.UIR,r:0},n.METHOD_GUARD={b:"\\.\\s*"+n.UIR,r:0},n.registerLanguage("actionscript",function(e){var
 t={cN:"rest_arg",b:"[.]{3}",e:"[a-zA-Z_$][a-zA-Z0-9_$]*",r:10};return{aliases:["as"],k:{keyword:"as break 
case catch class const continue default delete do dynamic each else extends final finally for function get if 
implements import in include instanceof interface internal is namespace native new overr
 ide pack
 age private protected public return set static super switch this throw try typeof use var void while 
with",literal:"true false null 
undefined"},c:[e.ASM,e.QSM,e.CLCM,e.CBCM,e.CNM,{cN:"class",bK:"package",e:"{",c:[e.TM]},{cN:"class",bK:"class 
interface",e:"{",eE:!0,c:[{bK:"extends implements"},e.TM]},{cN:"meta",bK:"import 
include",e:";",k:{"meta-keyword":"import 
include"}},{cN:"function",bK:"function",e:"[{;]",eE:!0,i:"\\S",c:[e.TM,{cN:"params",b:"\\(",e:"\\)",c:[e.ASM,e.QSM,e.CLCM,e.CBCM,t]},{b:":\\s*([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)"}]},e.METHOD_GUARD],i:/#/}}),n.registerLanguage("apache",function(e){var
 
t={cN:"number",b:"[\\$%]\\d+"};return{aliases:["apacheconf"],cI:!0,c:[e.HCM,{cN:"section",b:"</?",e:">"},{cN:"attribute",b:/\w+/,r:0,k:{nomarkup:"order
 deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule 
options header listen serverroot servername"},starts:{e:/$/,r:0,k:{literal:"on off 
all"},c:[{cN:"meta",b:"\\s\\[",e:"\\]$"
 },{cN:"v
 ariable",b:"[\\$%]\\{",e:"\\}",c:["self",t]},t,e.QSM]}}],i:/\S/}}),n.registerLanguage("xml",function(e){var 
t={eW:!0,i:/</,r:0,c:[{cN:"attr",b:"[A-Za-z0-9\\._:-]+",r:0},{b:/=\s*/,r:0,c:[{cN:"string",endsParent:!0,v:[{b:/"/,e:/"/},{b:/'/,e:/'/},{b:/[^\s"'=<>`]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist"],cI:!0,c:[{cN:"meta",b:"<!DOCTYPE",e:">",r:10,c:[{b:"\\[",e:"\\]"}]},e.C("\x3c!--","--\x3e",{r:10}),{b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"meta",b:/<\?xml/,e:/\?>/,r:10},{b:/<\?(php)?/,e:/\?>/,sL:"php",c:[{b:"/\\*",e:"\\*/",skip:!0},{b:'b"',e:'"',skip:!0},{b:"b'",e:"'",skip:!0},e.inherit(e.ASM,{i:null,cN:null,c:null,skip:!0}),e.inherit(e.QSM,{i:null,cN:null,c:null,skip:!0})]},{cN:"tag",b:"<style(?=\\s|>|$)",e:">",k:{name:"style"},c:[t],starts:{e:"</style>",rE:!0,sL:["css","xml"]}},{cN:"tag",b:"<script(?=\\s|>|$)",e:">",k:{name:"script"},c:[t],starts:{e:"<\/script>",rE:!0,sL:["actionscript","javascript","handlebars","xml"]}},{cN:"tag",b:"
 </?",e:"
 
/?>",c:[{cN:"name",b:/[^\/><\s]+/,r:0},t]}]}}),n.registerLanguage("asciidoc",function(e){return{aliases:["adoc"],c:[e.C("^/{4,}\\n","\\n/{4,}$",{r:10}),e.C("^//","$",{r:0}),{cN:"title",b:"^\\.\\w.*$"},{b:"^[=\\*]{4,}\\n",e:"\\n^[=\\*]{4,}$",r:10},{cN:"section",r:10,v:[{b:"^(={1,5})
 .+?( 
\\1)?$"},{b:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$"}]},{cN:"meta",b:"^:.+?:",e:"\\s",eE:!0,r:10},{cN:"meta",b:"^\\[.+?\\]$",r:0},{cN:"quote",b:"^_{4,}\\n",e:"\\n_{4,}$",r:10},{cN:"code",b:"^[\\-\\.]{4,}\\n",e:"\\n[\\-\\.]{4,}$",r:10},{b:"^\\+{4,}\\n",e:"\\n\\+{4,}$",c:[{b:"<",e:">",sL:"xml",r:0}],r:10},{cN:"bullet",b:"^(\\*+|\\-+|\\.+|[^\\n]+?::)\\s+"},{cN:"symbol",b:"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+",r:10},{cN:"strong",b:"\\B\\*(?![\\*\\s])",e:"(\\n{2}|\\*)",c:[{b:"\\\\*\\w",r:0}]},{cN:"emphasis",b:"\\B'(?!['\\s])",e:"(\\n{2}|')",c:[{b:"\\\\'\\w",r:0}],r:0},{cN:"emphasis",b:"_(?![_\\s])",e:"(\\n{2}|_)",r:0},{cN:"string",v:[{b:"``.+?''"},{b:"`.+?'"}]},{cN:"code",b:"(`.+?`|\\+.+?\\+)"
 ,r:0},{c
 N:"code",b:"^[ \\t]",e:"$",r:0},{b:"^'{3,}[ 
\\t]*$",r:10},{b:"(link:)?(http|https|ftp|file|irc|image:?):\\S+\\[.*?\\]",rB:!0,c:[{b:"(link|image:?):",r:0},{cN:"link",b:"\\w",e:"[^\\[]+",r:0},{cN:"string",b:"\\[",e:"\\]",eB:!0,eE:!0,r:0}],r:10}]}}),n.registerLanguage("awk",function(e){return{k:{keyword:"BEGIN
 END if else while do for in break continue delete next nextfile function func 
exit|10"},c:[{cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)}/}]},{cN:"string",c:[e.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,r:10},{b:/(u|b)?r?"""/,e:/"""/,r:10},{b:/(u|r|ur)'/,e:/'/,r:10},{b:/(u|r|ur)"/,e:/"/,r:10},{b:/(b|br)'/,e:/'/},{b:/(b|br)"/,e:/"/},e.ASM,e.QSM]},e.RM,e.HCM,e.NM]}}),n.registerLanguage("bash",function(e){var
 
t={cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)}/}]},r={cN:"string",b:/"/,e:/"/,c:[e.BE,t,{cN:"variable",b:/\$\(/,e:/\)/,c:[e.BE]}]};return{aliases:["sh","zsh"],l:/\b-?[a-z\._]+\b/,k:{keyword:"if
 then else elif fi for while in do done case esac function",lite
 ral:"tru
 e false",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",_:"-ne -eq -lt -gt -f -d -e -s -l 
-a"},c:[{cN:"meta",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:!0,c:[e.inherit(e.TM,{b:/\w[\w\d_]*/})],r:0},e.HCM,r,{cN:"",b:/\\"/},{cN:"string",b:/'/,e:/'/},t
 ]}}),n.r
 egisterLanguage("clojure",function(e){var 
t="a-zA-Z_\\-!.?+*=<>&#'",r="["+t+"]["+t+"0-9/;:]*",a={b:r,r:0},n={cN:"number",b:"[-+]?\\d+(\\.\\d+)?",r:0},i=e.inherit(e.QSM,{i:null}),s=e.C(";","$",{r:0}),c={cN:"literal",b:/\b(true|false|nil)\b/},o={b:"[\\[\\{]",e:"[\\]\\}]"},l={cN:"comment",b:"\\^"+r},d=e.C("\\^\\{","\\}"),u={cN:"symbol",b:"[:]{1,2}"+r},b={b:"\\(",e:"\\)"},p={eW:!0,r:0},m={k:{"builtin-name":"def
 defonce cond apply if-not if-let if not not= = < > <= >= == + / * - rem quot neg? pos? delay? symbol? 
keyword? true? false? integer? empty? coll? list? set? ifn? fn? associative? sequential? sorted? counted? 
reversible? number? decimal? class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? 
vector? string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . inc compare do 
dotimes mapcat take remove take-while drop letfn drop-last take-last drop-while while intern condp case 
reduced cycle split-at split-with repeat replicate i
 terate r
 ange merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext nthrest partition eval doseq 
await await-for let agent atom send send-off release-pending-sends add-watch mapv filterv remove-watch 
agent-error restart-agent set-error-handler error-handler set-error-mode! error-mode shutdown-agents quote 
var fn loop recur throw try monitor-enter monitor-exit defmacro defn defn- macroexpand macroexpand-1 for 
dosync and or when when-not when-let comp juxt partial sequence memoize constantly complement identity assert 
peek pop doto proxy defstruct first rest cons defprotocol cast coll deftype defrecord last butlast sigs reify 
second ffirst fnext nfirst nnext defmulti defmethod meta with-meta ns in-ns create-ns import refer keys 
select-keys vals key val rseq name namespace promise into transient persistent! conj! assoc! dissoc! pop! 
disj! use class type num float double short byte boolean bigint biginteger bigdec print-method print-dup 
throw-if printf format load com
 pile get
 -in update-in pr pr-on newline flush read slurp read-line subvec with-open memfn time re-find re-groups 
rand-int rand mod locking assert-valid-fdecl alias resolve ref deref refset swap! reset! set-validator! 
compare-and-set! alter-meta! reset-meta! commute get-validator alter ref-set ref-history-count 
ref-min-history ref-max-history ensure sync io! new next conj set! to-array future future-call into-array 
aset gen-class reduce map filter find empty hash-map hash-set sorted-map sorted-map-by sorted-set 
sorted-set-by vec vector seq flatten reverse assoc dissoc list disj get union difference intersection extend 
extend-type extend-protocol int nth delay count concat chunk chunk-buffer chunk-append chunk-first chunk-rest 
max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate 
unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? 
prn vary-meta lazy-seq spread list* str find-keyword keyword 
 symbol g
 ensym force rationalize"},l:r,cN:"name",b:r,starts:p},f=[b,i,l,d,s,u,o,n,c,a];return 
b.c=[e.C("comment",""),m,p],p.c=f,o.c=f,d.c=[o],{aliases:["clj"],i:/\S/,c:[b,i,l,d,s,u,o,n,c]}}),n.registerLanguage("cmake",function(e){return{aliases:["cmake.in"],cI:!0,k:{keyword:"break
 cmake_host_system_information cmake_minimum_required cmake_parse_arguments cmake_policy configure_file 
continue elseif else endforeach endfunction endif endmacro endwhile execute_process file find_file 
find_library find_package find_path find_program foreach function get_cmake_property get_directory_property 
get_filename_component get_property if include include_guard list macro mark_as_advanced math message option 
return separate_arguments set_directory_properties set_property set site_name string unset variable_watch 
while add_compile_definitions add_compile_options add_custom_command add_custom_target add_definitions 
add_dependencies add_executable add_library add_link_options add_subdirectory add_test a
 ux_sourc
 e_directory build_command create_test_sourcelist define_property enable_language enable_testing export 
fltk_wrap_ui get_source_file_property get_target_property get_test_property include_directories 
include_external_msproject include_regular_expression install link_directories link_libraries load_cache 
project qt_wrap_cpp qt_wrap_ui remove_definitions set_source_files_properties set_target_properties 
set_tests_properties source_group target_compile_definitions target_compile_features target_compile_options 
target_include_directories target_link_directories target_link_libraries target_link_options target_sources 
try_compile try_run ctest_build ctest_configure ctest_coverage ctest_empty_binary_directory ctest_memcheck 
ctest_read_custom_files ctest_run_script ctest_sleep ctest_start ctest_submit ctest_test ctest_update 
ctest_upload build_name exec_program export_library_dependencies install_files install_programs 
install_targets load_command make_directory output_required_file
 s remove
  subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file qt5_use_modules 
qt5_use_package qt5_wrap_cpp on off true false and or not command policy target test exists is_newer_than 
is_directory is_symlink is_absolute matches less greater equal less_equal greater_equal strless strgreater 
strequal strless_equal strgreater_equal version_less version_greater version_equal version_less_equal 
version_greater_equal in_list 
defined"},c:[{cN:"variable",b:"\\${",e:"}"},e.HCM,e.QSM,e.NM]}}),n.registerLanguage("cpp",function(e){var 
t={cN:"keyword",b:"\\b[a-z\\d_]*_t\\b"},r={cN:"string",v:[{b:'(u8?|U|L)?"',e:'"',i:"\\n",c:[e.BE]},{b:/(?:u8?|U|L)?R"([^()\\
 
]{0,16})\((?:.|\n)*?\)\1"/},{b:"'\\\\?.",e:"'",i:"."}]},a={cN:"number",v:[{b:"\\b(0b[01']+)"},{b:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{b:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],r:0},n={cN:"meta",b:/#\s*[a-z]+\b/,e:/$/,k:{"meta-keyword
 ":"if el
 se elif endif define undef warning error line pragma ifdef ifndef 
include"},c:[{b:/\\\n/,r:0},e.inherit(r,{cN:"meta-string"}),{cN:"meta-string",b:/<[^\n>]*>/,e:/$/,i:"\\n"},e.CLCM,e.CBCM]},i=e.IR+"\\s*\\(",s={keyword:"int
 float while private char catch import module export virtual operator sizeof dynamic_cast|10 typedef 
const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template 
mutable if public friend do goto auto void enum else break extern using asm case typeid short 
reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete 
alignof constexpr decltype noexcept static_assert thread_local restrict _Bool complex _Complex _Imaginary 
atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint 
atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and or not",built_in:"std string cin 
cout cerr clog stdin stdout stderr stringstr
 eam istr
 ingstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap 
unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 
atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf 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",literal:"true false nullptr 
NULL"},c=[t,e.CLCM,e.CBCM,a,r];return{aliases:["c","cc","h","c++","h++","hpp","hh","hxx","cxx"],k:s,i:"</",c:c.concat([n,{b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\
 \s*<",e:
 ">",k:s,c:["self",t]},{b:e.IR+"::",k:s},{v:[{b:/=/,e:/;/},{b:/\(/,e:/\)/},{bK:"new throw return 
else",e:/;/}],k:s,c:c.concat([{b:/\(/,e:/\)/,k:s,c:c.concat(["self"]),r:0}]),r:0},{cN:"function",b:"("+e.IR+"[\\*&\\s]+)+"+i,rB:!0,e:/[{;=]/,eE:!0,k:s,i:/[^\w\s\*&]/,c:[{b:i,rB:!0,c:[e.TM],r:0},{cN:"params",b:/\(/,e:/\)/,k:s,r:0,c:[e.CLCM,e.CBCM,r,a,t,{b:/\(/,e:/\)/,k:s,r:0,c:["self",e.CLCM,e.CBCM,r,a,t]}]},e.CLCM,e.CBCM,n]},{cN:"class",bK:"class
 
struct",e:/[{;:]/,c:[{b:/</,e:/>/,c:["self"]},e.TM]}]),exports:{preprocessor:n,strings:r,k:s}}}),n.registerLanguage("cs",function(e){var
 t={keyword:"abstract as base bool break byte case catch char checked const continue decimal default delegate 
do double enum event explicit extern finally fixed float for foreach goto if implicit in int interface 
internal is lock long nameof object operator out override params private protected public readonly ref sbyte 
sealed short sizeof stackalloc static string struct switch this try typeof uint ulong 
 unchecke
 d unsafe ushort using virtual void volatile while add alias ascending async await by descending dynamic 
equals from get global group into join let on orderby partial remove select set value var where 
yield",literal:"null false 
true"},r={cN:"number",v:[{b:"\\b(0b[01']+)"},{b:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{b:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],r:0},a={cN:"string",b:'@"',e:'"',c:[{b:'""'}]},n=e.inherit(a,{i:/\n/}),i={cN:"subst",b:"{",e:"}",k:t},s=e.inherit(i,{i:/\n/}),c={cN:"string",b:/\$"/,e:'"',i:/\n/,c:[{b:"{{"},{b:"}}"},e.BE,s]},o={cN:"string",b:/\$@"/,e:'"',c:[{b:"{{"},{b:"}}"},{b:'""'},i]},l=e.inherit(o,{i:/\n/,c:[{b:"{{"},{b:"}}"},{b:'""'},s]});i.c=[o,c,a,e.ASM,e.QSM,r,e.CBCM],s.c=[l,c,n,e.ASM,e.QSM,r,e.inherit(e.CBCM,{i:/\n/})];var
 
d={v:[o,c,a,e.ASM,e.QSM]},u=e.IR+"(<"+e.IR+"(\\s*,\\s*"+e.IR+")*>)?(\\[\\])?";return{aliases:["csharp","c#"],k:t,i:/::/,c:[e.C("///","$",{rB:!0,c:[{cN:"d
 octag",v
 
:[{b:"///",r:0},{b:"\x3c!--|--\x3e"},{b:"</?",e:">"}]}]}),e.CLCM,e.CBCM,{cN:"meta",b:"#",e:"$",k:{"meta-keyword":"if
 else elif endif define undef warning error line region endregion pragma checksum"}},d,r,{bK:"class 
interface",e:/[{;=]/,i:/[^\s:,]/,c:[e.TM,e.CLCM,e.CBCM]},{bK:"namespace",e:/[{;=]/,i:/[^\s:]/,c:[e.inherit(e.TM,{b:"[a-zA-Z](\\.?\\w)*"}),e.CLCM,e.CBCM]},{cN:"meta",b:"^\\s*\\[",eB:!0,e:"\\]",eE:!0,c:[{cN:"meta-string",b:/"/,e:/"/}]},{bK:"new
 return throw await 
else",r:0},{cN:"function",b:"("+u+"\\s+)+"+e.IR+"\\s*\\(",rB:!0,e:/\s*[{;=]/,eE:!0,k:t,c:[{b:e.IR+"\\s*\\(",rB:!0,c:[e.TM],r:0},{cN:"params",b:/\(/,e:/\)/,eB:!0,eE:!0,k:t,r:0,c:[d,r,e.CBCM]},e.CLCM,e.CBCM]}]}}),n.registerLanguage("css",function(e){var
 
t={b:/[A-Z\_\.\-]+\s*:/,rB:!0,e:";",eW:!0,c:[{cN:"attribute",b:/\S/,e:":",eE:!0,starts:{eW:!0,eE:!0,c:[{b:/[\w-]+\(/,rB:!0,c:[{cN:"built_in",b:/[\w-]+/},{b:/\(/,e:/\)/,c:[e.ASM,e.QSM]}]},e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:"number",b:"#[0-9A-Fa-f]+"},{cN:"meta",b:
 "!import
 
ant"}]}}]};return{cI:!0,i:/[=\/|'\$]/,c:[e.CBCM,{cN:"selector-id",b:/#[A-Za-z0-9_-]+/},{cN:"selector-class",b:/\.[A-Za-z0-9_-]+/},{cN:"selector-attr",b:/\[/,e:/\]/,i:"$"},{cN:"selector-pseudo",b:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{b:"@(font-face|page)",l:"[a-z-]+",k:"font-face
 
page"},{b:"@",e:"[{;]",i:/:/,c:[{cN:"keyword",b:/\w+/},{b:/\s/,eW:!0,eE:!0,r:0,c:[e.ASM,e.QSM,e.CSSNM]}]},{cN:"selector-tag",b:"[a-zA-Z-][a-zA-Z0-9_-]*",r:0},{b:"{",e:"}",i:/\S/,c:[e.CBCM,t]}]}}),n.registerLanguage("d",function(e){var
 
t="(0|[1-9][\\d_]*)",r="("+t+"|0[bB][01_]+|0[xX]([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*))",a="\\\\(['\"\\?\\\\abfnrtv]|u[\\dA-Fa-f]{4}|[0-7]{1,3}|x[\\dA-Fa-f]{2}|U[\\dA-Fa-f]{8})|&[a-zA-Z\\d]{2,};",n={cN:"number",b:"\\b"+r+"(L|u|U|Lu|LU|uL|UL)?",r:0},i={cN:"number",b:"\\b(((0[xX](([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)\\.([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)|\\.?([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*))[pP][+-]?(0|[1-9][\
 \d_]*|\\
 
d[\\d_]*|[\\d_]+?\\d))|((0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)(\\.\\d*|([eE][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)))|\\d+\\.(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)|\\.(0|[1-9][\\d_]*)([eE][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d))?))([fF]|L|i|[fF]i|Li)?|"+r+"(i|[fF]i|Li))",r:0},s={cN:"string",b:"'("+a+"|.)",e:"'",i:"."},c={cN:"string",b:'"',c:[{b:a,r:0}],e:'"[cwd]?'},o=e.C("\\/\\+","\\+\\/",{c:["self"],r:10});return{l:e.UIR,k:{keyword:"abstract
 alias align asm assert auto body break byte case cast catch class const continue debug default delete 
deprecated do else enum export extern final finally for foreach foreach_reverse|10 goto if immutable import 
in inout int interface invariant is lazy macro mixin module new nothrow out override package pragma private 
protected public pure ref return scope shared static struct super switch synchronized template this throw try 
typedef typeid typeof union unittest version void volatile whil
 e with _
 _FILE__ __LINE__ __gshared|10 __thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ 
__VERSION__",built_in:"bool cdouble cent cfloat char creal dchar delegate double dstring float function 
idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar wstring",literal:"false null 
true"},c:[e.CLCM,e.CBCM,o,{cN:"string",b:'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',r:10},c,{cN:"string",b:'[rq]"',e:'"[cwd]?',r:5},{cN:"string",b:"`",e:"`[cwd]?"},{cN:"string",b:'q"\\{',e:'\\}"'},i,n,s,{cN:"meta",b:"^#!",e:"$",r:5},{cN:"meta",b:"#(line)",e:"$",r:5},{cN:"keyword",b:"@[a-zA-Z_][a-zA-Z_\\d]*"}]}}),n.registerLanguage("diff",function(e){return{aliases:["patch"],c:[{cN:"meta",r:10,v:[{b:/^@@
 +\-\d+,\d+ +\+\d+,\d+ +@@$/},{b:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{b:/^\-\-\- +\d+,\d+ 
+\-\-\-\-$/}]},{cN:"comment",v:[{b:/Index: /,e:/$/},{b:/={3,}/,e:/$/},{b:/^\-{3}/,e:/$/},{b:/^\*{3} 
/,e:/$/},{b:/^\+{3}/,e:/$/},{b:/\*{5}/,e:/\*{5}$/}]},{cN:"addition",b:"^\\+",e:"$"},{cN:"deletio
 n",b:"^\
 \-",e:"$"},{cN:"addition",b:"^\\!",e:"$"}]}}),n.registerLanguage("django",function(e){var 
t={b:/\|[A-Za-z]+:?/,k:{name:"truncatewords removetags linebreaksbr yesno get_digit timesince random 
striptags filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands title floatformat 
capfirst pprint divisibleby add make_list unordered_list urlencode timeuntil urlizetrunc wordcount 
stringformat linenumbers slice date dictsort dictsortreversed default_if_none pluralize lower join center 
default truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first escapejs 
force_escape iriencode last safe safeseq truncatechars localize unlocalize localtime utc 
timezone"},c:[e.QSM,e.ASM]};return{aliases:["jinja"],cI:!0,sL:"xml",c:[e.C(/\{%\s*comment\s*%}/,/\{%\s*endcomment\s*%}/),e.C(/\{#/,/#}/),{cN:"template-tag",b:/\{%/,e:/%}/,c:[{cN:"name",b:/\w+/,k:{name:"comment
 endcomment load templatetag ifchanged endifchanged if endif firstof for endfor ifno
 tequal e
 ndifnotequal widthratio extends include spaceless endspaceless regroup ifequal endifequal ssi now with cycle 
url filter endfilter debug block endblock else autoescape endautoescape csrf_token empty elif endwith static 
trans blocktrans endblocktrans get_static_prefix get_media_prefix plural get_current_language language 
get_available_languages get_current_language_bidi get_language_info get_language_info_list localize 
endlocalize localtime endlocaltime timezone endtimezone get_current_timezone verbatim"},starts:{eW:!0,k:"in 
by 
as",c:[t],r:0}}]},{cN:"template-variable",b:/\{\{/,e:/}}/,c:[t]}]}}),n.registerLanguage("dockerfile",function(e){return{aliases:["docker"],cI:!0,k:"from
 maintainer expose env arg user onbuild stopsignal",c:[e.HCM,e.ASM,e.QSM,e.NM,{bK:"run cmd entrypoint volume 
add copy workdir label healthcheck 
shell",starts:{e:/[^\\]$/,sL:"bash"}}],i:"</"}}),n.registerLanguage("dos",function(e){var 
t=e.C(/^\s*@?rem\b/,/$/,{r:10});return{aliases:["bat","cmd"],cI:!0,i:/\
 /\*/,k:{
 keyword:"if else goto for in do call exit not exist errorlevel defined equ neq lss leq gtr 
geq",built_in:"prn nul lpt3 lpt2 lpt1 con com4 com3 com2 com1 aux shift cd dir echo setlocal endlocal set 
pause copy append assoc at attrib break cacls cd chcp chdir chkdsk chkntfs cls cmd color comp compact convert 
date dir diskcomp diskcopy doskey erase fs find findstr format ftype graftabl help keyb label md mkdir mode 
more move path pause print popd pushd promt rd recover rem rename replace restore rmdir shiftsort start subst 
time title tree type ver verify vol ping net ipconfig taskkill xcopy ren del"},c:[{cN:"variable",b:/%%[^ 
]|%[^ ]+?%|![^ 
]+?!/},{cN:"function",b:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)",e:"goto:eof",c:[e.inherit(e.TM,{b:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),t]},{cN:"number",b:"\\b\\d+",r:0},t]}}),n.registerLanguage("ducktype",function(e){var
 t={eW:!0,r:0,c:[{cN:"attr",b:/>>[^\]\s]+/},{cN:"attr",b:/(\.|#|>)?[A-Za-z0-9\._:#-]+/},{b:/=/,r
 :0,c:[{c
 
N:"string",endsParent:!0,v:[{b:/"/,e:/"/},{b:/'/,e:/'/},{b:/[^\s"'\]]+/}]}]}]};return{aliases:["duck"],c:[{cN:"section",v:[{b:/^=+
 /,e:/$/},{b:/^-+ /,e:/$/}]},e.C(/^ *\[--/,/^ *--\]$/,{r:10}),e.C(/^ *\[-\]/,/$/,{r:10}),{cN:"code",b:/^ 
*\[\[\[$/,e:/^ *\]\]\]$/,r:10},{cN:"tag",b:/^ 
*\[/,e:/\]$/,c:[{cN:"name",b:/[A-Za-z0-9\._:-]+/,r:0},t]},{cN:"tag",b:/\$[a-zA-Z0-9][a-zA-Z0-9:]*;/},{cN:"tag",b:/^
 *@[a-zA-Z][a-zA-Z:]*\[/,e:/\]/,c:[t]},{cN:"tag",b:/^ 
*@/,e:/$/},{cN:"tag",b:/\$[a-zA-Z][a-zA-Z:]*\[/,e:/\]/,c:[t]}]}}),n.registerLanguage("ruby",function(e){var 
t="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",r={keyword:"and then 
defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else 
break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer 
attr_accessor",literal:"true false nil"},a={cN:"doctag",b:"@[A-Za-z]+"},n={b:"#<",e:">"},i=[e.C("#","$",{c:[a]
 }),e.C("
 
^\\=begin","^\\=end",{c:[a],r:10}),e.C("^__END__","\\n$")],s={cN:"subst",b:"#\\{",e:"}",k:r},c={cN:"string",c:[e.BE,s],v:[{b:/'/,e:/'/},{b:/"/,e:/"/},{b:/`/,e:/`/},{b:"%[qQwWx]?\\(",e:"\\)"},{b:"%[qQwWx]?\\[",e:"\\]"},{b:"%[qQwWx]?{",e:"}"},{b:"%[qQwWx]?<",e:">"},{b:"%[qQwWx]?/",e:"/"},{b:"%[qQwWx]?%",e:"%"},{b:"%[qQwWx]?-",e:"-"},{b:"%[qQwWx]?\\|",e:"\\|"},{b:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/},{b:/<<(-?)\w+$/,e:/^\s*\w+$/}]},o={cN:"params",b:"\\(",e:"\\)",endsParent:!0,k:r},l=[c,n,{cN:"class",bK:"class
 
module",e:"$|;",i:/=/,c:[e.inherit(e.TM,{b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{b:"<\\s*",c:[{b:"("+e.IR+"::)?"+e.IR}]}].concat(i)},{cN:"function",bK:"def",e:"$|;",c:[e.inherit(e.TM,{b:t}),o].concat(i)},{b:e.IR+"::"},{cN:"symbol",b:e.UIR+"(\\!|\\?)?:",r:0},{cN:"symbol",b:":(?!\\s)",c:[c,{b:t}],r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{cN:"params",b:/
 \|/,e:/\
 
|/,k:r},{b:"("+e.RSR+"|unless)\\s*",k:"unless",c:[n,{cN:"regexp",c:[e.BE,s],i:/\n/,v:[{b:"/",e:"/[a-z]*"},{b:"%r{",e:"}[a-z]*"},{b:"%r\\(",e:"\\)[a-z]*"},{b:"%r!",e:"![a-z]*"},{b:"%r\\[",e:"\\][a-z]*"}]}].concat(i),r:0}].concat(i);s.c=l;var
 
d=[{b:/^\s*=>/,starts:{e:"$",c:o.c=l}},{cN:"meta",b:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>)",starts:{e:"$",c:l}}];return{aliases:["rb","gemspec","podspec","thor","irb"],k:r,i:/\/\*/,c:i.concat(d).concat(l)}}),n.registerLanguage("erb",function(e){return{sL:"xml",c:[e.C("<%#","%>"),{b:"<%[%=-]?",e:"[%-]?%>",sL:"ruby",eB:!0,eE:!0}]}}),n.registerLanguage("fsharp",function(e){var
 t={b:"<",e:">",c:[e.inherit(e.TM,{b:/'[a-zA-Z0-9_]+/})]};return{aliases:["fs"],k:"abstract and as assert 
base begin class default delegate do done downcast downto elif else end exception extern false finally for 
fun function global if in inherit inline interface internal lazy let match member module mutable namespace 
new null of 
 open or 
 override private public rec return sig static struct then to true try type upcast use val void when while 
with 
yield",i:/\/\*/,c:[{cN:"keyword",b:/\b(yield|return|let|do)!/},{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},{cN:"string",b:'"""',e:'"""'},e.C("\\(\\*","\\*\\)"),{cN:"class",bK:"type",e:"\\(|=|$",eE:!0,c:[e.UTM,t]},{cN:"meta",b:"\\[<",e:">\\]",r:10},{cN:"symbol",b:"\\B('[A-Za-z])\\b",c:[e.BE]},e.CLCM,e.inherit(e.QSM,{i:null}),e.CNM]}}),n.registerLanguage("go",function(e){var
 t={keyword:"break default func interface select case map struct chan else goto package switch const 
fallthrough if range type continue for import return var go defer bool byte complex64 complex128 float32 
float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",literal:"true false 
iota nil",built_in:"append cap close complex copy imag len make new panic print println real recover 
delete"};return{aliases:["golang"],k:t,i:"</",c:[e.CLCM,e.CBCM,{cN:"string",v:[e.QSM,{b:"'",
 e:"[^\\\
 
\]'"},{b:"`",e:"`"}]},{cN:"number",v:[{b:e.CNR+"[dflsi]",r:1},e.CNM]},{b:/:=/},{cN:"function",bK:"func",e:/\s*\{/,eE:!0,c:[e.TM,{cN:"params",b:/\(/,e:/\)/,k:t,i:/["']/}]}]}}),n.registerLanguage("haml",function(e){return{cI:!0,c:[{cN:"meta",b:"^!!!(
 
(5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$",r:10},e.C("^\\s*(!=#|=#|-#|/).*$",!1,{r:0}),{b:"^\\s*(-|=|!=)(?!#)",starts:{e:"\\n",sL:"ruby"}},{cN:"tag",b:"^\\s*%",c:[{cN:"selector-tag",b:"\\w+"},{cN:"selector-id",b:"#[\\w-]+"},{cN:"selector-class",b:"\\.[\\w-]+"},{b:"{\\s*",e:"\\s*}",c:[{b:":\\w+\\s*=>",e:",\\s+",rB:!0,eW:!0,c:[{cN:"attr",b:":\\w+"},e.ASM,e.QSM,{b:"\\w+",r:0}]}]},{b:"\\(\\s*",e:"\\s*\\)",eE:!0,c:[{b:"\\w+\\s*=",e:"\\s+",rB:!0,eW:!0,c:[{cN:"attr",b:"\\w+",r:0},e.ASM,e.QSM,{b:"\\w+",r:0}]}]}]},{b:"^\\s*[=~]\\s*"},{b:"#{",starts:{e:"}",sL:"ruby"}}]}}),n.registerLanguage("haskell",function(e){var
 
t={v:[e.C("--","$"),e.C("{-","-}",{c:["self"]})]},r={cN:"meta",b:"{-#",e:"#-}"},a={cN:"meta",b:"^#",e:"$"},n={cN
 :"type",
 
b:"\\b[A-Z][\\w']*",r:0},i={b:"\\(",e:"\\)",i:'"',c:[r,a,{cN:"type",b:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},e.inherit(e.TM,{b:"[_a-z][\\w']*"}),t]};return{aliases:["hs"],k:"let
 in if then else case of where do module import hiding qualified type data newtype deriving class instance as 
default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo 
proc rec",c:[{bK:"module",e:"where",k:"module where",c:[i,t],i:"\\W\\.|;"},{b:"\\bimport\\b",e:"$",k:"import 
qualified as hiding",c:[i,t],i:"\\W\\.|;"},{cN:"class",b:"^(\\s*)?(class|instance)\\b",e:"where",k:"class 
family instance where",c:[n,i,t]},{cN:"class",b:"\\b(data|(new)?type)\\b",e:"$",k:"data family type newtype 
deriving",c:[r,n,i,{b:"{",e:"}",c:i.c},t]},{bK:"default",e:"$",c:[n,i,t]},{bK:"infix infixl 
infixr",e:"$",c:[e.CNM,t]},{b:"\\bforeign\\b",e:"$",k:"foreign import export ccall stdcall cplusplus jvm 
dotnet safe unsafe",c:[n,e.QSM,t]},{cN:"meta",b:"#!\\/usr\\/bin\\/env r
 unhaskel
 
l",e:"$"},r,a,e.QSM,e.CNM,n,e.inherit(e.TM,{b:"^[_a-z][\\w']*"}),t,{b:"->|<-"}]}}),n.registerLanguage("http",function(e){var
 
t="HTTP/[0-9\\.]+";return{aliases:["https"],i:"\\S",c:[{b:"^"+t,e:"$",c:[{cN:"number",b:"\\b\\d{3}\\b"}]},{b:"^[A-Z]+
 (.*?) "+t+"$",rB:!0,e:"$",c:[{cN:"string",b:" ",e:" 
",eB:!0,eE:!0},{b:t},{cN:"keyword",b:"[A-Z]+"}]},{cN:"attribute",b:"^\\w",e:": 
",eE:!0,i:"\\n|\\s|=",starts:{e:"$",r:0}},{b:"\\n\\n",starts:{sL:[],eW:!0}}]}}),n.registerLanguage("ini",function(e){var
 
t={cN:"string",c:[e.BE],v:[{b:"'''",e:"'''",r:10},{b:'"""',e:'"""',r:10},{b:'"',e:'"'},{b:"'",e:"'"}]};return{aliases:["toml"],cI:!0,i:/\S/,c:[e.C(";","$"),e.HCM,{cN:"section",b:/^\s*\[+/,e:/\]+/},{b:/^[a-z0-9\[\]_\.-]+\s*=\s*/,e:"$",rB:!0,c:[{cN:"attr",b:/[a-z0-9\[\]_\.-]+/},{b:/=/,eW:!0,r:0,c:[e.C(";","$"),e.HCM,{cN:"literal",b:/\bon|off|true|false|yes|no\b/},{cN:"variable",v:[{b:/\$[\w\d"][\w\d_]*/},{b:/\$\{(.*?)}/}]},t,{cN:"number",b:/([\+\-]+)?[\d]+_[\d_]+/},e.NM]}]}]}}),n.registerLan
 guage("j
 ava",function(e){var t="false synchronized int abstract float private char boolean var static null if const 
for true while long strictfp finally protected import native final void enum else break transient catch 
instanceof byte super volatile case assert short package default double public try this switch continue 
throws protected public private module requires exports 
do",r={cN:"number",b:"\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?|\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))([eE][-+]?\\d+)?)[lLfF]?",r:0};return{aliases:["jsp"],k:t,i:/<\/|#/,c:[e.C("/\\*\\*","\\*/",{r:0,c:[{b:/\w+@/,r:0},{cN:"doctag",b:"@[A-Za-z]+"}]}),e.CLCM,e.CBCM,e.ASM,e.QSM,{cN:"class",bK:"class
 interface",e:/[{;=]/,eE:!0,k:"class interface",i:/[:"\[\]]/,c:[{bK:"extends implements"},e.UTM]},{bK:"new 
throw return else",r:0},{cN:"function",b:"([À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(<[À-ʸa-zA-Z_$][À-ʸa-zA-Z
 _$0-9]*(
 
\\s*,\\s*[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*)*>)?\\s+)+"+e.UIR+"\\s*\\(",rB:!0,e:/[{;=]/,eE:!0,k:t,c:[{b:e.UIR+"\\s*\\(",rB:!0,r:0,c:[e.UTM]},{cN:"params",b:/\(/,e:/\)/,k:t,r:0,c:[e.ASM,e.QSM,e.CNM,e.CBCM]},e.CLCM,e.CBCM]},r,{cN:"meta",b:"@[A-Za-z]+"}]}}),n.registerLanguage("javascript",function(e){var
 t="[A-Za-z$_][0-9A-Za-z$_]*",r={keyword:"in of if for while finally var new function do return void else 
break catch instanceof with throw case default try this switch continue typeof delete let yield const export 
super debugger as async await static import from as",literal:"true false null undefined NaN 
Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI 
encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError 
ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array 
Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Ui
 nt8Array
  Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol 
Set Map WeakSet WeakMap Proxy Reflect 
Promise"},a={cN:"number",v:[{b:"\\b(0[bB][01]+)"},{b:"\\b(0[oO][0-7]+)"},{b:e.CNR}],r:0},n={cN:"subst",b:"\\$\\{",e:"\\}",k:r,c:[]},i={cN:"string",b:"`",e:"`",c:[e.BE,n]};n.c=[e.ASM,e.QSM,i,a,e.RM];var
 s=n.c.concat([e.CBCM,e.CLCM]);return{aliases:["js","jsx"],k:r,c:[{cN:"meta",r:10,b:/^\s*['"]use 
(strict|asm)['"]/},{cN:"meta",b:/^#!/,e:/$/},e.ASM,e.QSM,i,e.CLCM,e.CBCM,a,{b:/[{,]\s*/,r:0,c:[{b:t+"\\s*:",rB:!0,r:0,c:[{cN:"attr",b:t,r:0}]}]},{b:"("+e.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return
 throw 
case",c:[e.CLCM,e.CBCM,e.RM,{cN:"function",b:"(\\(.*?\\)|"+t+")\\s*=>",rB:!0,e:"\\s*=>",c:[{cN:"params",v:[{b:t},{b:/\(\s*\)/},{b:/\(/,e:/\)/,eB:!0,eE:!0,k:r,c:s}]}]},{cN:"",b:/\s/,e:/\s*/,skip:!0},{b:/</,e:/(\/[A-Za-z0-9\\._:-]+|[A-Za-z0-9\\._:-]+\/)>/,sL:"xml",c:[{b:/<[A-Za-z0-9\\._:-]+\s*\/>/,skip:!0},{b:/<[A-Za-z0-9\\._:-]+/,e:/(\/[A
 -Za-z0-9
 
\\._:-]+|[A-Za-z0-9\\._:-]+\/)>/,skip:!0,c:[{b:/<[A-Za-z0-9\\._:-]+\s*\/>/,skip:!0},"self"]}]}],r:0},{cN:"function",bK:"function",e:/\{/,eE:!0,c:[e.inherit(e.TM,{b:t}),{cN:"params",b:/\(/,e:/\)/,eB:!0,eE:!0,c:s}],i:/\[|%/},{b:/\$[(.]/},e.METHOD_GUARD,{cN:"class",bK:"class",e:/[{;=]/,eE:!0,i:/[:"\[\]]/,c:[{bK:"extends"},e.UTM]},{bK:"constructor
 get set",e:/\{/,eE:!0}],i:/#(?!!)/}}),n.registerLanguage("json",function(e){var t={literal:"true false 
null"},r=[e.QSM,e.CNM],a={e:",",eW:!0,eE:!0,c:r,k:t},n={b:"{",e:"}",c:[{cN:"attr",b:/"/,e:/"/,c:[e.BE],i:"\\n"},e.inherit(a,{b:/:/})],i:"\\S"},i={b:"\\[",e:"\\]",c:[e.inherit(a)],i:"\\S"};return
 r.splice(r.length,0,n,i),{c:r,k:t,i:"\\S"}}),n.registerLanguage("lisp",function(e){var 
t="[a-zA-Z_\\-\\+\\*\\/\\<\\=\\>\\&\\#][a-zA-Z0-9_\\-\\+\\*\\/\\<\\=\\>\\&\\#!]*",r="\\|[^]*?\\|",a="(\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\+|\\-)?\\d+)?",n={cN:"literal",b:"\\b(t{1}|nil)\\b"},i={cN:"number",v:[{b:a,r:0},{b:"#(b|B)[0-1]+(/[
 0-1]+)?"
 },{b:"#(o|O)[0-7]+(/[0-7]+)?"},{b:"#(x|X)[0-9a-fA-F]+(/[0-9a-fA-F]+)?"},{b:"#(c|C)\\("+a+" 
+"+a,e:"\\)"}]},s=e.inherit(e.QSM,{i:null}),c=e.C(";","$",{r:0}),o={b:"\\*",e:"\\*"},l={cN:"symbol",b:"[:&]"+t},d={b:t,r:0},u={b:r},b={c:[i,s,o,l,{b:"\\(",e:"\\)",c:["self",n,s,i,d]},d],v:[{b:"['`]\\(",e:"\\)"},{b:"\\(quote
 
",e:"\\)",k:{name:"quote"}},{b:"'"+r}]},p={v:[{b:"'"+t},{b:"#'"+t+"(::"+t+")*"}]},m={b:"\\(\\s*",e:"\\)"},f={eW:!0,r:0};return
 
m.c=[{cN:"name",v:[{b:t},{b:r}]},f],f.c=[b,p,m,n,i,s,c,o,l,u,d],{i:/\S/,c:[i,{cN:"meta",b:"^#!",e:"$"},n,s,c,b,p,m,d]}}),n.registerLanguage("lua",function(e){var
 
t="\\[=*\\[",r="\\]=*\\]",a={b:t,e:r,c:["self"]},n=[e.C("--(?!"+t+")","$"),e.C("--"+t,r,{c:[a],r:10})];return{l:e.UIR,k:{literal:"true
 false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until 
while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add 
__sub __mul __div __mod __pow __concat __
 unm __eq
  __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstringmodule 
next pairs pcall print rawequal rawget rawset require select setfenvsetmetatable tonumber tostring type 
unpack xpcall arg selfcoroutine 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"},c:n.concat([{cN:"fun
 ction",b
 
K:"function",e:"\\)",c:[e.inherit(e.TM,{b:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{cN:"params",b:"\\(",eW:!0,c:n}].concat(n)},e.CNM,e.ASM,e.QSM,{cN:"string",b:t,e:r,c:[a],r:5}])}}),n.registerLanguage("makefile",function(e){var
 
t={cN:"variable",v:[{b:"\\$\\("+e.UIR+"\\)",c:[e.BE]},{b:/\$[@%<?\^\+\*]/}]},r={cN:"string",b:/"/,e:/"/,c:[e.BE,t]},a={cN:"variable",b:/\$\([\w-]+\s/,e:/\)/,k:{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"},c:[t]},n={b:"^"+e.UIR+"\\s*[:+?]?=",i:"\\n",rB:!0,c:[{b:"^"+e.UIR,e:"[:+?]?=",eE:!0}]},i={cN:"section",b:/^[^\s]+:/,e:/$/,c:[t]};return{aliases:["mk","mak"],k:"define
 endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private 
vpath",l:/[\w-]+/,c:[e.HCM,t,r,a,n,{cN:"meta",b:/^\.PHONY:/,e
 :/$/,k:{
 
"meta-keyword":".PHONY"},l:/[\.\w]+/},i]}}),n.registerLanguage("markdown",function(e){return{aliases:["md","mkdown","mkd"],c:[{cN:"section",v:[{b:"^#{1,6}",e:"$"},{b:"^.+?\\n[=-]{2,}$"}]},{b:"<",e:">",sL:"xml",r:0},{cN:"bullet",b:"^\\s*([*+-]|(\\d+\\.))\\s+"},{cN:"strong",b:"[*_]{2}.+?[*_]{2}"},{cN:"emphasis",v:[{b:"\\*.+?\\*"},{b:"_.+?_",r:0}]},{cN:"quote",b:"^>\\s+",e:"$"},{cN:"code",v:[{b:"^```w*s*$",e:"^```s*$"},{b:"`.+?`"},{b:"^(
 
{4}|\t)",e:"$",r:0}]},{b:"^[-\\*]{3,}",e:"$"},{b:"\\[.+?\\][\\(\\[].*?[\\)\\]]",rB:!0,c:[{cN:"string",b:"\\[",e:"\\]",eB:!0,rE:!0,r:0},{cN:"link",b:"\\]\\(",e:"\\)",eB:!0,eE:!0},{cN:"symbol",b:"\\]\\[",e:"\\]",eB:!0,eE:!0}],r:10},{b:/^\[[^\n]+\]:/,rB:!0,c:[{cN:"symbol",b:/\[/,e:/\]/,eB:!0,eE:!0},{cN:"link",b:/:\s*/,e:/$/,eB:!0}]}]}}),n.registerLanguage("matlab",function(e){var
 t="('|\\.')+",r={r:0,c:[{b:t}]};return{k:{keyword:"break case catch classdef continue else elseif end 
enumerated events for function global if methods otherwise parfor pe
 rsistent
  properties return spmd switch try while",built_in:"sin sind sinh asin asind asinh cos cosd cosh acos acosd 
acosh tan tand tanh atan atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot 
cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog realsqrt sqrt nthroot 
nextpow2 abs angle complex conj imag real unwrap isreal cplxpair fix floor ceil round mod rem sign airy 
besselj bessely besselh besseli besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma 
gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms nchoosek factorial 
cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones eye repmat rand randn linspace logspace 
freqspace meshgrid accumarray size length ndims numel disp isempty isequal isequalwithequalnans cat reshape 
diag blkdiag tril triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute 
shiftdim circshift squeeze isscal
 ar isvec
 tor ans eps realmax realmin pi i inf nan isnan isinf isfinite j why compan gallery hadamard hankel hilb 
invhilb magic pascal rosser toeplitz vander wilkinson max min nanmax nanmin mean nanmean type table readtable 
writetable sortrows sort figure plot plot3 scatter scatter3 cellfun legend intersect ismember procrustes hold 
num2cell 
"},i:'(//|"|#|/\\*|\\s+/\\w+)',c:[{cN:"function",bK:"function",e:"$",c:[e.UTM,{cN:"params",v:[{b:"\\(",e:"\\)"},{b:"\\[",e:"\\]"}]}]},{cN:"built_in",b:/true|false/,r:0,starts:r},{b:"[a-zA-Z][a-zA-Z_0-9]*"+t,r:0},{cN:"number",b:e.CNR,r:0,starts:r},{cN:"string",b:"'",e:"'",c:[e.BE,{b:"''"}]},{b:/\]|}|\)/,r:0,starts:r},{cN:"string",b:'"',e:'"',c:[e.BE,{b:'""'}],starts:r},e.C("^\\s*\\%\\{\\s*$","^\\s*\\%\\}\\s*$"),e.C("\\%","$")]}}),n.registerLanguage("nginx",function(e){var
 t={cN:"variable",v:[{b:/\$\d+/},{b:/\$\{/,e:/}/},{b:"[\\$\\@]"+e.UIR}]},r={eW:!0,l:"[a-z/_]+",k:{literal:"on 
off yes no true false none blocked debug info notice warn error crit se
 lect bre
 ak last permanent redirect kqueue rtsig epoll poll 
/dev/poll"},r:0,i:"=>",c:[e.HCM,{cN:"string",c:[e.BE,t],v:[{b:/"/,e:/"/},{b:/'/,e:/'/}]},{b:"([a-z]+):/",e:"\\s",eW:!0,eE:!0,c:[t]},{cN:"regexp",c:[e.BE,t],v:[{b:"\\s\\^",e:"\\s|{|;",rE:!0},{b:"~\\*?\\s+",e:"\\s|{|;",rE:!0},{b:"\\*(\\.[a-z\\-]+)+"},{b:"([a-z\\-]+\\.)+\\*"}]},{cN:"number",b:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{cN:"number",b:"\\b\\d+[kKmMgGdshdwy]*\\b",r:0},t]};return{aliases:["nginxconf"],c:[e.HCM,{b:e.UIR+"\\s+{",rB:!0,e:"{",c:[{cN:"section",b:e.UIR}],r:0},{b:e.UIR+"\\s",e:";|{",rB:!0,c:[{cN:"attribute",b:e.UIR,starts:r}],r:0}],i:"[^\\s\\}]"}}),n.registerLanguage("objectivec",function(e){var
 t=/[a-zA-Z@][a-zA-Z0-9_]*/,r="@interface @class @protocol 
@implementation";return{aliases:["mm","objc","obj-c"],k:{keyword:"int float while char export sizeof typedef 
const struct for union unsigned long volatile static bool mutable if do return goto void enum else break 
extern asm case short d
 efault d
 ouble register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self 
@synchronized id typeof nonatomic super unichar 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_NO
 THROW NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN",literal:"false true FALSE TRUE nil 
YES NO NULL",built_in:"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async 
dispatch_once"},l:t,i:"</",c:[{cN:"built_in",b:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},e.CLCM,e.CBCM,e.CNM,e.QSM,{cN:"string",v:[{b:'@"',e:'"',i:"\\n",c:[e.BE]},{b:"'",e:"[^\\\\]'",i:"[^\\\\][^']"}]},{cN:"meta",b:"#",e:"$",c:[{cN:"meta-string",v:[{b:'"',e:'"'},{b:"<",e:">"}]}]},{cN:"class",b:"("+r.split("
 
").join("|")+")\\b",e:"({|$)",eE:!0,k:r,l:t,c:[e.UTM]},{b:"\\."+e.UIR,r:0}]}}),n.registerLanguage("perl",function(e){var
 t="getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen 
shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp 
not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent 
shutdown du
 mp chomp
  connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl 
setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink 
semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline 
endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 
substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex 
system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent 
else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst 
until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept 
package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt 
write setnetent setpriority forea
 ch tie s
 in msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor 
readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 
break given say state 
when",r={cN:"subst",b:"[$@]\\{",e:"\\}",k:t},a={b:"->{",e:"}"},n={v:[{b:/\$\d/},{b:/[\$%@](\^\w\b|#\w+(::\w+)*|{\w+}|\w+(::\w*)*)/},{b:/[\$%@][^\s\w{]/,r:0}]},i=[e.BE,r,n],s=[n,e.HCM,e.C("^\\=\\w","\\=cut",{eW:!0}),a,{cN:"string",c:i,v:[{b:"q[qwxr]?\\s*\\(",e:"\\)",r:5},{b:"q[qwxr]?\\s*\\[",e:"\\]",r:5},{b:"q[qwxr]?\\s*\\{",e:"\\}",r:5},{b:"q[qwxr]?\\s*\\|",e:"\\|",r:5},{b:"q[qwxr]?\\s*\\<",e:"\\>",r:5},{b:"qw\\s+q",e:"q",r:5},{b:"'",e:"'",c:[e.BE]},{b:'"',e:'"'},{b:"`",e:"`",c:[e.BE]},{b:"{\\w+}",c:[],r:0},{b:"-?\\w+\\s*\\=\\>",c:[],r:0}]},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{b:"(\\/\\/|"+e.RSR+"|\\b(split|return|print|reverse|grep)\\b)\\s*",k:"split
 return print reverse grep",r:0,c
 :[e.HCM,
 
{cN:"regexp",b:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",r:10},{cN:"regexp",b:"(m|qr)?/",e:"/[a-z]*",c:[e.BE],r:0}]},{cN:"function",bK:"sub",e:"(\\s*\\(.*?\\))?[;{]",eE:!0,r:5,c:[e.TM]},{b:"-\\w\\b",r:0},{b:"^__DATA__$",e:"^__END__$",sL:"mojolicious",c:[{b:"^@@.*",e:"$",cN:"comment"}]}];return
 r.c=s,{aliases:["pl","pm"],l:/[\w\.]+/,k:t,c:a.c=s}}),n.registerLanguage("php",function(e){var 
t={b:"\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"},r={cN:"meta",b:/<\?(php)?|\?>/},a={cN:"string",c:[e.BE,r],v:[{b:'b"',e:'"'},{b:"b'",e:"'"},e.inherit(e.ASM,{i:null}),e.inherit(e.QSM,{i:null})]},n={v:[e.BNM,e.CNM]};return{aliases:["php","php3","php4","php5","php6","php7"],cI:!0,k:"and
 include_once list abstract global private echo interface as static endswitch array null if endwhile or const 
for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty 
require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__
  case ex
 ception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset 
true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield 
finally",c:[e.HCM,e.C("//","$",{c:[r]}),e.C("/\\*","\\*/",{c:[{cN:"doctag",b:"@[A-Za-z]+"}]}),e.C("__halt_compiler.+?;",!1,{eW:!0,k:"__halt_compiler",l:e.UIR}),{cN:"string",b:/<<<['"]?\w+['"]?$/,e:/^\w+;?$/,c:[e.BE,{cN:"subst",v:[{b:/\$\w+/},{b:/\{\$/,e:/\}/}]}]},r,{cN:"keyword",b:/\$this\b/},t,{b:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{cN:"function",bK:"function",e:/[;{]/,eE:!0,i:"\\$|\\[|%",c:[e.UTM,{cN:"params",b:"\\(",e:"\\)",c:["self",t,e.CBCM,a,n]}]},{cN:"class",bK:"class
 interface",e:"{",eE:!0,i:/[:\(\$"]/,c:[{bK:"extends 
implements"},e.UTM]},{bK:"namespace",e:";",i:/[\.']/,c:[e.UTM]},{bK:"use",e:";",c:[e.UTM]},{b:"=>"},a,n]}}),n.registerLanguage("python",function(e){var
 t={keyword:"and elif is global as in if from raise for except finally print import pass return exec else 
break no
 t with c
 lass assert yield try while continue del or def lambda async await nonlocal|10",built_in:"Ellipsis 
NotImplemented",literal:"False None True"},r={cN:"meta",b:/^(>>>|\.\.\.) 
/},a={cN:"subst",b:/\{/,e:/\}/,k:t,i:/#/},n={cN:"string",c:[e.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,c:[e.BE,r],r:10},{b:/(u|b)?r?"""/,e:/"""/,c:[e.BE,r],r:10},{b:/(fr|rf|f)'''/,e:/'''/,c:[e.BE,r,a]},{b:/(fr|rf|f)"""/,e:/"""/,c:[e.BE,r,a]},{b:/(u|r|ur)'/,e:/'/,r:10},{b:/(u|r|ur)"/,e:/"/,r:10},{b:/(b|br)'/,e:/'/},{b:/(b|br)"/,e:/"/},{b:/(fr|rf|f)'/,e:/'/,c:[e.BE,a]},{b:/(fr|rf|f)"/,e:/"/,c:[e.BE,a]},e.ASM,e.QSM]},i={cN:"number",r:0,v:[{b:e.BNR+"[lLjJ]?"},{b:"\\b(0o[0-7]+)[lLjJ]?"},{b:e.CNR+"[lLjJ]?"}]},s={cN:"params",b:/\(/,e:/\)/,c:["self",r,i,n]};return
 
a.c=[n,i,r],{aliases:["py","gyp","ipython"],k:t,i:/(<\/|->|\?)|=>/,c:[r,i,n,e.HCM,{v:[{cN:"function",bK:"def"},{cN:"class",bK:"class"}],e:/:/,i:/[${=;\n,]/,c:[e.UTM,s,{b:/->/,eW:!0,k:"None"}]},{cN:"meta",b:/^[\t
 ]*@/,e:/$/},{b:/\b(print|exec)\(/}]}}),n.registerLa
 nguage("
 r",function(e){var t="([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*";return{c:[e.HCM,{b:t,l:t,k:{keyword:"function 
if in break next repeat else for return switch while try tryCatch stop warning require library attach detach 
source setMethod setGeneric setGroupGeneric setClass ...",literal:"NULL NA TRUE FALSE T F Inf NaN 
NA_integer_|10 NA_real_|10 NA_character_|10 
NA_complex_|10"},r:0},{cN:"number",b:"0[xX][0-9a-fA-F]+[Li]?\\b",r:0},{cN:"number",b:"\\d+(?:[eE][+\\-]?\\d*)?L\\b",r:0},{cN:"number",b:"\\d+\\.(?!\\d)(?:i\\b)?",r:0},{cN:"number",b:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",r:0},{cN:"number",b:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",r:0},{b:"`",e:"`",r:0},{cN:"string",c:[e.BE],v:[{b:'"',e:'"'},{b:"'",e:"'"}]}]}}),n.registerLanguage("rust",function(e){var
 t="([ui](8|16|32|64|128|size)|f(32|64))?",r="drop i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize f32 
f64 str char bool Box Option Result String Vec Copy Send Sized Sync Drop Fn FnMut FnOnce ToOwned Clone Debug 
PartialEq P
 artialOr
 d Eq Ord AsRef AsMut Into From Default Iterator Extend IntoIterator DoubleEndedIterator ExactSizeIterator 
SliceConcatExt ToString assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! debug_assert! 
debug_assert_eq! env! panic! file! format! format_args! include_bin! include_str! line! local_data_key! 
module_path! option_env! print! println! select! stringify! try! unimplemented! unreachable! vec! write! 
writeln! macro_rules! assert_ne! debug_assert_ne!";return{aliases:["rs"],k:{keyword:"alignof as be box break 
const continue crate do else enum extern false fn for if impl in let loop match mod mut offsetof once priv 
proc pub pure ref return self Self sizeof static struct super trait true type typeof unsafe unsized use 
virtual while where yield move default",literal:"true false Some None Ok 
Err",built_in:r},l:e.IR+"!?",i:"</",c:[e.CLCM,e.C("/\\*","\\*/",{c:["self"]}),e.inherit(e.QSM,{b:/b?"/,i:null}),{cN:"string",v:[{b:/r(#*)"(.|\n)*?"\1(?!#)/},{b:/b?'\\?(x\w{2}
 |u\w{4}|
 
U\w{8}|.)'/}]},{cN:"symbol",b:/'[a-zA-Z_][a-zA-Z0-9_]*/},{cN:"number",v:[{b:"\\b0b([01_]+)"+t},{b:"\\b0o([0-7_]+)"+t},{b:"\\b0x([A-Fa-f0-9_]+)"+t},{b:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+t}],r:0},{cN:"function",bK:"fn",e:"(\\(|<)",eE:!0,c:[e.UTM]},{cN:"meta",b:"#\\!?\\[",e:"\\]",c:[{cN:"meta-string",b:/"/,e:/"/}]},{cN:"class",bK:"type",e:";",c:[e.inherit(e.UTM,{endsParent:!0})],i:"\\S"},{cN:"class",bK:"trait
 enum struct 
union",e:"{",c:[e.inherit(e.UTM,{endsParent:!0})],i:"[\\w\\d]"},{b:e.IR+"::",k:{built_in:r}},{b:"->"}]}}),n.registerLanguage("scala",function(e){var
 
t={cN:"subst",v:[{b:"\\$[A-Za-z0-9_]+"},{b:"\\${",e:"}"}]},r={cN:"string",v:[{b:'"',e:'"',i:"\\n",c:[e.BE]},{b:'"""',e:'"""',r:10},{b:'[a-z]+"',e:'"',i:"\\n",c:[e.BE,t]},{cN:"string",b:'[a-z]+"""',e:'"""',c:[t],r:10}]},a={cN:"type",b:"\\b[A-Z][A-Za-z0-9_]*",r:0},n={cN:"title",b:/[^0-9\n\t
 "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,r:0},i={cN:"class",bK:"class object 
trait t
 ype",e:/
 [:={\[\n;]/,eE:!0,c:[{bK:"extends 
with",r:10},{b:/\[/,e:/\]/,eB:!0,eE:!0,r:0,c:[a]},{cN:"params",b:/\(/,e:/\)/,eB:!0,eE:!0,r:0,c:[a]},n]},s={cN:"function",bK:"def",e:/[:={\[(\n;]/,eE:!0,c:[n]};return{k:{literal:"true
 false null",keyword:"type yield lazy override def with val var sealed abstract private trait object if 
forSome for while throw finally protected extends import final return else break new catch super class case 
package default try this match continue throws 
implicit"},c:[e.CLCM,e.CBCM,r,{cN:"symbol",b:"'\\w[\\w\\d_]*(?!')"},a,s,i,e.CNM,{cN:"meta",b:"@[A-Za-z]+"}]}}),n.registerLanguage("scheme",function(e){var
 
t="[^\\(\\)\\[\\]\\{\\}\",'`;#|\\\\\\s]+",r="(\\-|\\+)?\\d+([./]\\d+)?",a={cN:"literal",b:"(#t|#f|#\\\\"+t+"|#\\\\.)"},n={cN:"number",v:[{b:r,r:0},{b:"(\\-|\\+)?\\d+([./]\\d+)?[+\\-](\\-|\\+)?\\d+([./]\\d+)?i",r:0},{b:"#b[0-1]+(/[0-1]+)?"},{b:"#o[0-7]+(/[0-7]+)?"},{b:"#x[0-9a-f]+(/[0-9a-f]+)?"}]},i=e.QSM,s=[e.C(";","$",{r:0}),e.C("#\\|","\\|#")],c={b:t,r:0}
 ,o={cN:"
 
symbol",b:"'"+t},l={eW:!0,r:0},d={v:[{b:/'/},{b:"`"}],c:[{b:"\\(",e:"\\)",c:["self",a,i,n,c,o]}]},u={cN:"name",b:t,l:t,k:{"builtin-name":"case-lambda
 call/cc class define-class exit-handler field import inherit init-field interface let*-values let-values 
let/ec mixin opt-lambda override protect provide public rename require require-for-syntax syntax syntax-case 
syntax-error unit/sig unless when with-syntax and begin call-with-current-continuation call-with-input-file 
call-with-output-file case cond define define-syntax delay do dynamic-wind else for-each if lambda let let* 
let-syntax letrec letrec-syntax map or syntax-rules ' * + , ,@ - ... / ; < <= = => > >= ` abs acos angle 
append apply asin assoc assq assv atan boolean? caar cadr call-with-input-file call-with-output-file 
call-with-values car cdddar cddddr cdr ceiling char->integer char-alphabetic? char-ci<=? char-ci<? char-ci=? 
char-ci>=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char
 -upper-c
 ase? char-whitespace? char<=? char<? char=? char>=? char>? char? close-input-port close-output-port complex? 
cons cos current-input-port current-output-port denominator display eof-object? eq? equal? eqv? eval even? 
exact->inexact exact? exp expt floor force gcd imag-part inexact->exact inexact? input-port? integer->char 
integer? interaction-environment lcm length list list->string list->vector list-ref list-tail list? load log 
magnitude make-polar make-rectangular make-string make-vector max member memq memv min modulo negative? 
newline not null-environment null? number->string number? numerator odd? open-input-file open-output-file 
output-port? pair? peek-char port? positive? procedure? quasiquote quote quotient rational? rationalize read 
read-char real-part real? remainder reverse round scheme-report-environment set! set-car! set-cdr! sin sqrt 
string string->list string->number string->symbol string-append string-ci<=? string-ci<? string-ci=? 
string-ci>=? string-ci>? stri
 ng-copy 
 string-fill! string-length string-ref string-set! string<=? string<? string=? string>=? string>? string? 
substring symbol->string symbol? tan transcript-off transcript-on truncate values vector vector->list 
vector-fill! vector-length vector-ref vector-set! with-input-from-file with-output-to-file write write-char 
zero?"}},b={v:[{b:"\\(",e:"\\)"},{b:"\\[",e:"\\]"}],c:[{b:/lambda/,eW:!0,rB:!0,c:[u,{b:/\(/,e:/\)/,endsParent:!0,c:[c]}]},u,l]};return
 
l.c=[a,n,i,c,o,d,b].concat(s),{i:/\S/,c:[{cN:"meta",b:"^#!",e:"$"},n,i,o,d,b].concat(s)}}),n.registerLanguage("shell",function(e){return{aliases:["console"],c:[{cN:"meta",b:"^\\s{0,3}[\\w\\d\\[\\]()@-]*[>%$#]",starts:{e:"$",sL:"bash"}}]}}),n.registerLanguage("smalltalk",function(e){var
 t="[a-z][a-zA-Z0-9_]*",r={cN:"string",b:"\\$.{1}"},a={cN:"symbol",b:"#"+e.UIR};return{aliases:["st"],k:"self 
super nil true false 
thisContext",c:[e.C('"','"'),e.ASM,{cN:"type",b:"\\b[A-Z][A-Za-z0-9_]*",r:0},{b:t+":",r:0},e.CNM,a,r,{b:"\\|[ 
]*"+t+"([ ]+
 "+t+")*[
  ]*\\|",rB:!0,e:/\|/,i:/\S/,c:[{b:"(\\|[ 
]*)?"+t}]},{b:"\\#\\(",e:"\\)",c:[e.ASM,r,e.CNM,a]}]}}),n.registerLanguage("sql",function(e){var 
t=e.C("--","$");return{cI:!0,i:/[<>{}*]/,c:[{bK:"begin end start commit rollback savepoint lock alter create 
drop rename call delete do handler insert load replace select truncate update set show pragma grant merge 
describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze 
cache flush optimize repair kill install uninstall checksum restore check backup revoke comment values 
with",e:/;/,eW:!0,l:/[\w\.]+/,k:{keyword:"as abort abs absolute acc acce accep accept access accessed 
accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt 
after agent aggregate ali alia alias all allocate allow alter always analyze ancillary and anti any anydata 
anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion as
 sociate 
 asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated 
authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup 
badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double 
binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both 
bound bucket buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling 
cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base 
char_length character_length characters characterset charindex charset charsetform charsetid check checksum 
checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id 
cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum 
column column_value columns columns_updated com
 ment com
 mit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws 
concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time 
connection consider consistent constant constraint constraints constructor container content contents context 
contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count 
count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube 
cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum 
cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd 
datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek 
dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt 
deduplicate def defa defau d
 efaul de
 fault defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand 
dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor 
deterministic diagnostics difference dimension direct_load directory disable disable_all disallow 
disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document 
domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element 
ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced 
engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event 
eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists 
exit exp expire explain explode export export_set extended extent external external_1 external_2 externally 
extract failed failed_login_attempts failo
 ver fail
 ure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging 
final finish first first_value fixed flash_cache flashback floor flush following follows for forall force 
foreign form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp 
full function general generated get get_format get_lock getdate getutcdate global global_name globally go 
goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee 
guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority 
hosts hour hours http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore 
iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator 
indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory 
inner innodb input insert inst
 all inst
 ance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 
is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists 
keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lateral lax lcase 
lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines 
link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked 
log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low 
low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping 
mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen 
maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory 
merge microsecond mid migratio
 n min mi
 nextents minimum mining minus minute minutes minvalue missing mod mode model modification modify module 
monitoring month months mount move movement multiset mutex name name_const names nan national native natural 
nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile 
nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile 
nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro 
noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not 
nothing notice notnull notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 
object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor 
ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open 
operations operator optimal optimiz
 e option
  optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo 
organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel 
parallel_enable parameters parent parse partial partition partitions pascal passing password 
password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch 
path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont 
percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot 
pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision 
prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve 
prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles 
project prompt protection public publishingservername purg
 e quarte
 r query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record 
records recover recovery recursive recycle redo reduced ref reference referenced references referencing 
refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx 
regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder 
rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore 
restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right 
rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules 
safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster 
sdo_topo_geometry search sec_to_time second seconds section securefile security seed segment select self semi 
sequence sequential serializabl
 e server
  servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool 
short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage 
si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot 
some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache 
sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt 
square standalone standby start starting startup statement static statistics stats_binomial_test 
stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep 
stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop 
storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate 
subpartition subpartitions substitutable sub
 str subs
 tring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous 
synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user 
sysutcdatetime table tables tablespace tablesample tan tdo template temporary terminated tertiary_weights 
test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp 
timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days 
to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger 
trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived 
unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited 
unlock unnest unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade 
upped upper upsert url urowid usable usage 
 use use_
 stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate 
validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl 
variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait 
wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while 
whitespace window with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval 
xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable 
xmltype xor year year_to_month years yearweek",literal:"true false null unknown",built_in:"array bigint 
binary bit blob bool boolean char character date dec decimal float int int8 integer interval number numeric 
real record serial serial8 smallint text time timestamp tinyint varchar varying 
void"},c:[{cN:"string",b:"'",e:"'",c:[e.BE,{b:"''"}]},{cN:"
 string",
 
b:'"',e:'"',c:[e.BE,{b:'""'}]},{cN:"string",b:"`",e:"`",c:[e.BE]},e.CNM,e.CBCM,t,e.HCM]},e.CBCM,t,e.HCM]}}),n.registerLanguage("tcl",function(e){return{aliases:["tk"],k:"after
 append apply array auto_execok auto_import auto_load auto_mkindex auto_mkindex_old auto_qualify auto_reset 
bgerror binary break catch cd chan clock close concat continue dde dict encoding eof error eval exec exit 
expr fblocked fconfigure fcopy file fileevent filename flush for foreach format gets glob global history http 
if incr info interp join lappend|10 lassign|10 lindex|10 linsert|10 list llength|10 load lrange|10 lrepeat|10 
lreplace|10 lreverse|10 lsearch|10 lset|10 lsort|10 mathfunc mathop memory msgcat namespace open package 
parray pid pkg::create pkg_mkIndex platform platform::shell proc puts pwd read refchan regexp registry 
regsub|10 rename return safe scan seek set socket source split string subst switch tcl_endOfWord 
tcl_findLibrary tcl_startOfNextWord tcl_startOfPreviousWord tcl_wordBreakAf
 ter tcl_
 wordBreakBefore tcltest tclvars tell time tm trace unknown unload unset update uplevel upvar variable vwait 
while",c:[e.C(";[ \\t]*#","$"),e.C("^[ \\t]*#","$"),{bK:"proc",e:"[\\{]",eE:!0,c:[{cN:"title",b:"[ 
\\t\\n\\r]+(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",e:"[ 
\\t\\n\\r]",eW:!0,eE:!0}]},{eE:!0,v:[{b:"\\$(\\{)?(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*\\(([a-zA-Z0-9_])*\\)",e:"[^a-zA-Z0-9_\\}\\$]"},{b:"\\$(\\{)?(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",e:"(\\))?[^a-zA-Z0-9_\\}\\$]"}]},{cN:"string",c:[e.BE],v:[e.inherit(e.QSM,{i:null})]},{cN:"number",v:[e.BNM,e.CNM]}]}}),n.registerLanguage("tex",function(e){var
 
t={cN:"tag",b:/\\/,r:0,c:[{cN:"name",v:[{b:/[a-zA-Z\u0430-\u044f\u0410-\u042f]+[*]?/},{b:/[^a-zA-Z\u0430-\u044f\u0410-\u042f0-9]/}],starts:{eW:!0,r:0,c:[{cN:"string",v:[{b:/\[/,e:/\]/},{b:/\{/,e:/\}/}]},{b:/\s*=\s*/,eW:!0,r:0,c:[{cN:"number",b:/-?\d*\.?\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?/}]}]}}]};return{c:[t,{cN:"formula",c:[t],r:0,v:[{b:/\$\$/,e:/\$\$/},{b:/\$/,e:/\$/}]},e.C("%","$",{r:0
 })]}}),n
 .registerLanguage("vala",function(e){return{k:{keyword:"char uchar unichar int uint long ulong short ushort 
int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unowned 
owned async signal static abstract interface override virtual delegate if while do for foreach else switch 
case break default return try catch public private protected internal using new this get set const stdout 
stdin stderr var",built_in:"DBus GLib CCode Gee Object Gtk Posix",literal:"false true 
null"},c:[{cN:"class",bK:"class interface 
namespace",e:"{",eE:!0,i:"[^,:\\n\\s\\.]",c:[e.UTM]},e.CLCM,e.CBCM,{cN:"string",b:'"""',e:'"""',r:5},e.ASM,e.QSM,e.CNM,{cN:"meta",b:"^#",e:"$",r:2}]}}),n.registerLanguage("xquery",function(e){var
 
t=[{cN:"variable",b:/[\$][\w-:]+/},{cN:"built_in",v:[{b:/\barray\:/,e:/(?:append|filter|flatten|fold\-(?:left|right)|for-each(?:\-pair)?|get|head|insert\-before|join|put|remove|reverse|size|sort|subarray|tail)\b/},{b:/\bmap\:/,e:/(?:contai
 ns|entry
 
|find|for\-each|get|keys|merge|put|remove|size)\b/},{b:/\bmath\:/,e:/(?:a(?:cos|sin|tan[2]?)|cos|exp(?:10)?|log(?:10)?|pi|pow|sin|sqrt|tan)\b/},{b:/\bop\:/,e:/\(/,eE:!0},{b:/\bfn\:/,e:/\(/,eE:!0},{b:/[^<\/\$\:'"-]\b(?:abs|accumulator\-(?:after|before)|adjust\-(?:date(?:Time)?|time)\-to\-timezone|analyze\-string|apply|available\-(?:environment\-variables|system\-properties)|avg|base\-uri|boolean|ceiling|codepoints?\-(?:equal|to\-string)|collation\-key|collection|compare|concat|contains(?:\-token)?|copy\-of|count|current(?:\-)?(?:date(?:Time)?|time|group(?:ing\-key)?|output\-uri|merge\-(?:group|key))?data|dateTime|days?\-from\-(?:date(?:Time)?|duration)|deep\-equal|default\-(?:collation|language)|distinct\-values|document(?:\-uri)?|doc(?:\-available)?|element\-(?:available|with\-id)|empty|encode\-for\-uri|ends\-with|environment\-variable|error|escape\-html\-uri|exactly\-one|exists|false|filter|floor|fold\-(?:left|right)|for\-each(?:\-pair)?|format\-(?:date(?:Time)?|time|intege
 r|number
 
)|function\-(?:arity|available|lookup|name)|generate\-id|has\-children|head|hours\-from\-(?:dateTime|duration|time)|id(?:ref)?|implicit\-timezone|in\-scope\-prefixes|index\-of|innermost|insert\-before|iri\-to\-uri|json\-(?:doc|to\-xml)|key|lang|last|load\-xquery\-module|local\-name(?:\-from\-QName)?|(?:lower|upper)\-case|matches|max|minutes\-from\-(?:dateTime|duration|time)|min|months?\-from\-(?:date(?:Time)?|duration)|name(?:space\-uri\-?(?:for\-prefix|from\-QName)?)?|nilled|node\-name|normalize\-(?:space|unicode)|not|number|one\-or\-more|outermost|parse\-(?:ietf\-date|json)|path|position|(?:prefix\-from\-)?QName|random\-number\-generator|regex\-group|remove|replace|resolve\-(?:QName|uri)|reverse|root|round(?:\-half\-to\-even)?|seconds\-from\-(?:dateTime|duration|time)|snapshot|sort|starts\-with|static\-base\-uri|stream\-available|string\-?(?:join|length|to\-codepoints)?|subsequence|substring\-?(?:after|before)?|sum|system\-property|tail|timezone\-from\-(?:date(?:Time)?|tim
 e)|token
 
ize|trace|trans(?:form|late)|true|type\-available|unordered|unparsed\-(?:entity|text)?\-?(?:public\-id|uri|available|lines)?|uri\-collection|xml\-to\-json|years?\-from\-(?:date(?:Time)?|duration)|zero\-or\-one)\b/},{b:/\blocal\:/,e:/\(/,eE:!0},{b:/\bzip\:/,e:/(?:zip\-file|(?:xml|html|text|binary)\-entry|
 
(?:update\-)?entries)\b/},{b:/\b(?:util|db|functx|app|xdmp|xmldb)\:/,e:/\(/,eE:!0}]},{cN:"string",v:[{b:/"/,e:/"/,c:[{b:/""/,r:0}]},{b:/'/,e:/'/,c:[{b:/''/,r:0}]}]},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"comment",b:"\\(:",e:":\\)",r:10,c:[{cN:"doctag",b:"@\\w+"}]},{cN:"meta",b:/%[\w-:]+/},{cN:"title",b:/\bxquery
 version "[13]\.[01]"\s?(?:encoding ".+")?/,e:/;/},{bK:"element attribute comment document 
processing-instruction",e:"{",eE:!0},{b:/<([\w\._:\-]+)((\s*.*)=('|").*('|"))?>/,e:/(\/[\w\._:\-]+>)/,sL:"xml",c:[{b:"{",e:"}",sL:"xquery"},"self"]}];return{aliases:["xpath","xq"],cI:!1,l:/[a-zA-Z\$][a-zA-Z0-9_:\-]*/,
 i:/(proc
 )|(abstract)|(extends)|(until)|(#)/,k:{keyword:"module schema namespace boundary-space preserve no-preserve 
strip default collation base-uri ordering context decimal-format decimal-separator copy-namespaces 
empty-sequence except exponent-separator external grouping-separator inherit no-inherit lax minus-sign 
per-mille percent schema-attribute schema-element strict unordered zero-digit declare import option function 
validate variable for at in let where order group by return if then else tumbling sliding window start when 
only end previous next stable ascending descending allowing empty greatest least some every satisfies switch 
case typeswitch try catch and or to union intersect instance of treat as castable cast map array delete 
insert into replace value rename copy modify update",type:"item document-node node attribute document element 
comment namespace namespace-node processing-instruction text construction xs:anyAtomicType xs:untypedAtomic 
xs:duration xs:time xs:decimal 
 xs:float
  xs:double xs:gYearMonth xs:gYear xs:gMonthDay xs:gMonth xs:gDay xs:boolean xs:base64Binary xs:hexBinary 
xs:anyURI xs:QName xs:NOTATION xs:dateTime xs:dateTimeStamp xs:date xs:string xs:normalizedString xs:token 
xs:language xs:NMTOKEN xs:Name xs:NCName xs:ID xs:IDREF xs:ENTITY xs:integer xs:nonPositiveInteger 
xs:negativeInteger xs:long xs:int xs:short xs:byte xs:nonNegativeInteger xs:unisignedLong xs:unsignedInt 
xs:unsignedShort xs:unsignedByte xs:positiveInteger xs:yearMonthDuration xs:dayTimeDuration",literal:"eq ne 
lt le gt ge is self:: child:: descendant:: descendant-or-self:: attribute:: following:: following-sibling:: 
parent:: ancestor:: ancestor-or-self:: preceding:: preceding-sibling:: 
NaN"},c:t}}),n.registerLanguage("yaml",function(e){var t="true false yes no null",r="^[ 
\\-]*",a="[a-zA-Z_][\\w\\-]*",n={cN:"attr",v:[{b:r+a+":"},{b:r+'"'+a+'":'},{b:r+"'"+a+"':"}]},i={cN:"string",r:0,v:[{b:/'/,e:/'/},{b:/"/,e:/"/},{b:/\S+/}],c:[e.BE,{cN:"template-variable",v:[{b:"{{",
 e:"}}"},
 
{b:"%{",e:"}"}]}]};return{cI:!0,aliases:["yml","YAML","yaml"],c:[n,{cN:"meta",b:"^---s*$",r:10},{cN:"string",b:"[\\|>]
 
*$",rE:!0,c:i.c,e:n.v[0].b},{b:"<%[%=-]?",e:"[%-]?%>",sL:"ruby",eB:!0,eE:!0,r:0},{cN:"type",b:"!"+e.UIR},{cN:"type",b:"!!"+e.UIR},{cN:"meta",b:"&"+e.UIR+"$"},{cN:"meta",b:"\\*"+e.UIR+"$"},{cN:"bullet",b:"^
 *-",r:0},e.HCM,{bK:t,k:{literal:t}},e.CNM,i]}}),n});
\ No newline at end of file
diff --git a/test/syntax/code/ducktype b/test/syntax/code/ducktype
new file mode 100644
index 00000000..234f80fd
--- /dev/null
+++ b/test/syntax/code/ducktype
@@ -0,0 +1,33 @@
+@ducktype/1.0
+@define foo bar
+
+= Hello world
+- Subtitle
+@title[type=link] Link title
+
+[note .tip style="tip"]
+You can use all sorts of semantic elements.
+
+Here is some $em[style=strong](inline) markup.
+Here is an $link[>page#sect](internal link).
+Here is an $link[>>http://example.com](external link).
+Here is $foo;.
+
+  [-] line comment
+
+That was a comment. So is this:
+
+  [--
+  block comment
+  [not markup]
+  --]
+
+== Section
+   [#sectid]
+
+[code python
+      type=python]
+  [[[
+  def this_is():
+    some_code()
+  ]]]
diff --git a/test/syntax/dita.dita b/test/syntax/dita.dita
index 2c87bb3c..c6c032fd 100644
--- a/test/syntax/dita.dita
+++ b/test/syntax/dita.dita
@@ -214,6 +214,16 @@ int main(char** argv) {
   </body>
 </topic>
 
+<topic id="ducktype">
+  <title>Ducktype</title>
+  <body>
+  <section>
+    <title><codeph>outputclass="ducktype"</codeph></title>
+    <codeblock outputclass="ducktype"><xi:include parse="text" href="code/ducktype"/></codeblock>
+  </section>
+  </body>
+</topic>
+
 <topic id="erb">
   <title>Embedded Ruby</title>
   <body>
diff --git a/test/syntax/docbook.docbook b/test/syntax/docbook.docbook
index 8a7b1353..06dd96ae 100644
--- a/test/syntax/docbook.docbook
+++ b/test/syntax/docbook.docbook
@@ -182,6 +182,14 @@ int main(char** argv) {
   </example>
 </section>
 
+<section id="ducktype">
+  <title>Ducktype</title>
+  <example>
+    <title><code>language="ducktype"</code></title>
+    <programlisting language="ducktype"><xi:include parse="text" href="code/ducktype"/></programlisting>
+  </example>
+</section>
+
 <section id="erb">
   <title>Embedded Ruby</title>
   <example>
diff --git a/test/syntax/mallard.page b/test/syntax/mallard.page
index fbe6fe53..8ba7f925 100644
--- a/test/syntax/mallard.page
+++ b/test/syntax/mallard.page
@@ -242,6 +242,14 @@ int main(char** argv) {
   </listing>
 </section>
 
+<section id="ducktype">
+  <title>Ducktype</title>
+  <listing ui:expanded="true">
+    <title><code>type="ducktype"</code></title>
+    <code type="ducktype"><xi:include parse="text" href="code/ducktype"/></code>
+  </listing>
+</section>
+
 <section id="erb">
   <title>Embedded Ruby</title>
   <listing ui:expanded="false">
diff --git a/xslt/dita/html/dita2html-block.xsl b/xslt/dita/html/dita2html-block.xsl
index e711707f..cc0f33fe 100644
--- a/xslt/dita/html/dita2html-block.xsl
+++ b/xslt/dita/html/dita2html-block.xsl
@@ -238,6 +238,10 @@ FIXME
     <xsl:when test="$language = 'dos'">
       <xsl:text>dos</xsl:text>
     </xsl:when>
+    <!-- Ducktype -->
+    <xsl:when test="$language = 'ducktype'">
+      <xsl:text>ducktype</xsl:text>
+    </xsl:when>
     <!-- Embedded Ruby -->
     <xsl:when test="$language = 'erb'">
       <xsl:text>erb</xsl:text>
diff --git a/xslt/docbook/html/db2html-block.xsl b/xslt/docbook/html/db2html-block.xsl
index 75a5f80a..6b9fce2d 100644
--- a/xslt/docbook/html/db2html-block.xsl
+++ b/xslt/docbook/html/db2html-block.xsl
@@ -716,6 +716,10 @@ This template handles conditional processing.
     <xsl:when test="$language = 'dos'">
       <xsl:text>dos</xsl:text>
     </xsl:when>
+    <!-- Ducktype -->
+    <xsl:when test="$language = 'ducktype'">
+      <xsl:text>ducktype</xsl:text>
+    </xsl:when>
     <!-- Embedded Ruby -->
     <xsl:when test="$language = 'erb'">
       <xsl:text>erb</xsl:text>
diff --git a/xslt/mallard/html/mal2html-block.xsl b/xslt/mallard/html/mal2html-block.xsl
index 940fe86e..e9ba5f7c 100644
--- a/xslt/mallard/html/mal2html-block.xsl
+++ b/xslt/mallard/html/mal2html-block.xsl
@@ -291,6 +291,10 @@ in accordance with the Mallard specification on fallback block content.
     <xsl:when test="@mime = 'application/x-dos-batch' or contains($type, ' dos ')">
       <xsl:text>dos</xsl:text>
     </xsl:when>
+    <!-- Ducktype -->
+    <xsl:when test="contains($type, ' ducktype ')">
+      <xsl:text>ducktype</xsl:text>
+    </xsl:when>
     <!-- F# -->
     <xsl:when test="@mime = 'text/x-fsharp' or contains($type, ' fsharp ')">
       <xsl:text>fsharp</xsl:text>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]