UNPKG

@felixrydberg/discord-markdown

Version:

A markdown parser that matches Discords markdown spec.

19 lines (15 loc) 969 kB
(function(Oe,he){typeof exports=="object"&&typeof module<"u"?he(exports):typeof define=="function"&&define.amd?define(["exports"],he):(Oe=typeof globalThis<"u"?globalThis:Oe||self,he(Oe["discord-markdown"]={}))})(this,function(Oe){"use strict";const he=(n,e)=>{let t="v";e==="__lib_version__"&&(t="");const a=`${t}${e}`;if(typeof globalThis<"u"){var r;globalThis.__perseus_debug__=(r=globalThis.__perseus_debug__)!=null?r:{};const i=globalThis.__perseus_debug__[n];if(i){if(i!==a){const s=Array.isArray(i)?i:[i];s.push(a),globalThis.__perseus_debug__[n]=s,console.warn(`Multiple versions of ${n} loaded on this page: ${s.sort().join(", ")}`)}}else globalThis.__perseus_debug__[n]=a}else console.warn(`globalThis not found found (${a})`)};he("@khanacademy/perseus-core","1.2.0"),he("@khanacademy/simple-markdown","0.10.3");var cc=/\r\n?/g,_c=/\t/g,dc=/\f/g,Kr=function(e){return e.replace(cc,` `).replace(dc,"").replace(_c," ")},$r=function(e,t){var a=e||{};if(t!=null)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(a[r]=t[r]);return a},Qr=function(e,t){var a=Object.keys(e).filter(function(o){var l=e[o];if(l==null||l.match==null)return!1;var c=l.order;return(typeof c!="number"||!isFinite(c))&&typeof console<"u"&&console.warn("simple-markdown: Invalid order for rule `"+o+"`: "+String(c)),!0});a.sort(function(o,l){var c=e[o],_=e[l],d=c.order,u=_.order;if(d!==u)return d-u;var p=c.quality?0:1,E=_.quality?0:1;return p!==E?p-E:o<l?-1:o>l?1:0});var r,i=function o(l,c){var _=[];for(c=c||r,r=c;l;){var d=null,u=null,p=null,E=NaN,S=0,g=a[0],T=e[g];do{var R=T.order,C=c.prevCapture==null?"":c.prevCapture[0],N=T.match(l,c,C);if(N){var O=T.quality?T.quality(N,c,C):0;O<=E||(d=g,u=T,p=N,E=O)}S++,g=a[S],T=e[g]}while(T&&(!p||T.order===R&&T.quality));if(u==null||p==null)throw new Error("Could not find a matching rule for the below content. The rule with highest `order` should always match content provided to it. Check the definition of `match` for '"+a[a.length-1]+`'. It seems to not match the following source: `+l);if(p.index)throw new Error("`match` must return a capture starting at index 0 (the current parse index). Did you forget a ^ at the start of the RegExp?");var f=u.parse(p,o,c);if(Array.isArray(f))Array.prototype.push.apply(_,f);else{if(f==null||typeof f!="object")throw new Error(`parse() function returned invalid parse result: '${f}'`);f.type==null&&(f.type=d),_.push(f)}c.prevCapture=p,l=l.substring(c.prevCapture[0].length)}return _},s=function(l,c){return r=$r(c,t),!r.inline&&!r.disableAutoBlockNewlines&&(l=l+` `),r.prevCapture=null,i(Kr(l),r)};return s},ue=function(e){var t=function(r,i,s){return i.inline?e.exec(r):null};return t.regex=e,t},Se=function(e){var t=function(r,i){return i.inline?null:e.exec(r)};return t.regex=e,t},je=function(e){var t=function(r,i){return e.exec(r)};return t.regex=e,t},uc=typeof Symbol=="function"&&Symbol.for&&Symbol.for("react.element")||60103,X=function(e,t,a){var r={$$typeof:uc,type:e,key:t??void 0,ref:null,props:a,_owner:null};return r},ne=function(e,t,a,r){a=a||{},r=typeof r<"u"?r:!0;var i="";for(var s in a){var o=a[s];Object.prototype.hasOwnProperty.call(a,s)&&o&&(i+=" "+ye(s)+'="'+ye(o)+'"')}var l="<"+e+i+">";return r?l+t+"</"+e+">":l},Xr={},ke=function(e){if(e==null)return null;try{var t=new URL(e,"https://localhost").protocol;if(t.indexOf("javascript:")===0||t.indexOf("vbscript:")===0||t.indexOf("data:")===0)return null}catch{return null}return e},mc=/[<>&"']/g,pc={"<":"&lt;",">":"&gt;","&":"&amp;",'"':"&quot;","'":"&#x27;","/":"&#x2F;","`":"&#96;"},ye=function(e){return String(e).replace(mc,function(t){return pc[t]})},Ec=/\\([^0-9A-Za-z\s])/g,et=function(e){return e.replace(Ec,"$1")},He=function(e,t,a){var r=a.inline||!1;a.inline=!0;var i=e(t,a);return a.inline=r,i},Sc=function(e,t,a){var r=a.inline||!1;a.inline=!1;var i=e(t+` `,a);return a.inline=r,i},Ve=function(e,t,a){return{content:He(t,e[1],a)}},tt=function(){return{}},ze="(?:[*+-]|\\d+\\.)",Zr="( *)("+ze+") +",Jr=new RegExp("^"+Zr),gc=new RegExp(Zr+"[^\\n]*(?:\\n(?!\\1"+ze+` )[^\\n]*)*( |$)`,"gm"),jr=/\n{2,}$/,Tc=/^ (?= *`)|(` *) $/g,bc=jr,ei=/ *\n+$/,Rc=new RegExp("^( *)("+ze+`) [\\s\\S]+?(?: {2,}(?! )(?!\\1`+ze+` )\\n*|\\s* *$)`),fc=/(?:^|\n)( *)$/,We=function(){var n=/^ *\| *| *\| *$/g,e=/ *$/,t=/^ *-+: *$/,a=/^ *:-+: *$/,r=/^ *:-+ *$/,i=function(d){return t.test(d)?"right":a.test(d)?"center":r.test(d)?"left":null},s=function(d,u,p,E){E&&(d=d.replace(n,""));var S=d.trim().split("|");return S.map(i)},o=function(d,u,p,E){var S=p.inTable;p.inTable=!0;var g=u(d.trim(),p);p.inTable=S;var T=[[]];return g.forEach(function(R,C){R.type==="tableSeparator"?(!E||C!==0&&C!==g.length-1)&&T.push([]):(R.type==="text"&&(g[C+1]==null||g[C+1].type==="tableSeparator")&&(R.content=R.content.replace(e,"")),T[T.length-1].push(R))}),T},l=function(d,u,p,E){var S=d.trim().split(` `);return S.map(function(g){return o(g,u,p,E)})},c=function(d){return function(u,p,E){E.inline=!0;var S=o(u[1],p,E,d),g=s(u[2],p,E,d),T=l(u[3],p,E,d);return E.inline=!1,{type:"table",header:S,align:g,cells:T}}};return{parseTable:c(!0),parseNpTable:c(!1),TABLE_REGEX:/^ *(\|.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/,NPTABLE_REGEX:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/}}(),Ke="(?:\\[[^\\]]*\\]|[^\\[\\]]|\\](?=[^\\[]*\\]))*",ti=`\\s*<?((?:\\([^)]*\\)|[^\\s\\\\]|\\\\.)*?)>?(?:\\s+['"]([\\s\\S]*?)['"])?\\s*`,Cc=/mailto:/i,ni=function(e,t,a){var r=(e[2]||e[1]).replace(/\s+/g," ").toLowerCase();if(t._defs&&t._defs[r]){var i=t._defs[r];a.target=i.target,a.title=i.title}return t._refs=t._refs||{},t._refs[r]=t._refs[r]||[],t._refs[r].push(a),a},W=0,Ue={Array:{react:function(n,e,t){for(var a=t.key,r=[],i=0,s=0;i<n.length;i++,s++){t.key=""+i;var o=n[i];if(o.type==="text")for(o={type:"text",content:o.content};i+1<n.length&&n[i+1].type==="text";i++)o.content+=n[i+1].content;r.push(e(o,t))}return t.key=a,r},html:function(n,e,t){for(var a="",r=0;r<n.length;r++){var i=n[r];if(i.type==="text")for(i={type:"text",content:i.content};r+1<n.length&&n[r+1].type==="text";r++)i.content+=n[r+1].content;a+=e(i,t)}return a}},heading:{order:W++,match:Se(/^ *(#{1,6})([^\n]+?)#* *(?:\n *)+\n/),parse:function(n,e,t){return{level:n[1].length,content:He(e,n[2].trim(),t)}},react:function(n,e,t){return X("h"+n.level,t.key,{children:e(n.content,t)})},html:function(n,e,t){return ne("h"+n.level,e(n.content,t))}},nptable:{order:W++,match:Se(We.NPTABLE_REGEX),parse:We.parseNpTable,react:null,html:null},lheading:{order:W++,match:Se(/^([^\n]+)\n *(=|-){3,} *(?:\n *)+\n/),parse:function(n,e,t){return{type:"heading",level:n[2]==="="?1:2,content:He(e,n[1],t)}},react:null,html:null},hr:{order:W++,match:Se(/^( *[-*_]){3,} *(?:\n *)+\n/),parse:tt,react:function(n,e,t){return X("hr",t.key,Xr)},html:function(n,e,t){return"<hr>"}},codeBlock:{order:W++,match:Se(/^(?: [^\n]+\n*)+(?:\n *)+\n/),parse:function(n,e,t){var a=n[0].replace(/^ /gm,"").replace(/\n+$/,"");return{lang:void 0,content:a}},react:function(n,e,t){var a=n.lang?"markdown-code-"+n.lang:void 0;return X("pre",t.key,{children:X("code",null,{className:a,children:n.content})})},html:function(n,e,t){var a=n.lang?"markdown-code-"+n.lang:void 0,r=ne("code",ye(n.content),{class:a});return ne("pre",r)}},fence:{order:W++,match:Se(/^ *(`{3,}|~{3,}) *(?:(\S+) *)?\n([\s\S]+?)\n?\1 *(?:\n *)+\n/),parse:function(n,e,t){return{type:"codeBlock",lang:n[2]||void 0,content:n[3]}},react:null,html:null},blockQuote:{order:W++,match:Se(/^( *>[^\n]+(\n[^\n]+)*\n*)+\n{2,}/),parse:function(n,e,t){var a=n[0].replace(/^ *> ?/gm,"");return{content:e(a,t)}},react:function(n,e,t){return X("blockquote",t.key,{children:e(n.content,t)})},html:function(n,e,t){return ne("blockquote",e(n.content,t))}},list:{order:W++,match:function(n,e){var t=e.prevCapture==null?"":e.prevCapture[0],a=fc.exec(t),r=e._list||!e.inline;return a&&r?(n=a[1]+n,Rc.exec(n)):null},parse:function(n,e,t){var a=n[2],r=a.length>1,i=r?+a:void 0,s=n[0].replace(bc,` `).match(gc),o=!1,l=s.map(function(c,_){var d=Jr.exec(c),u=d?d[0].length:0,p=new RegExp("^ {1,"+u+"}","gm"),E=c.replace(p,"").replace(Jr,""),S=_===s.length-1,g=E.indexOf(` `)!==-1,T=g||S&&o;o=T;var R=t.inline,C=t._list;t._list=!0;var N;T?(t.inline=!1,N=E.replace(ei,` `)):(t.inline=!0,N=E.replace(ei,""));var O=e(N,t);return t.inline=R,t._list=C,O});return{ordered:r,start:i,items:l}},react:function(n,e,t){var a=n.ordered?"ol":"ul";return X(a,t.key,{start:n.start,children:n.items.map(function(r,i){return X("li",""+i,{children:e(r,t)})})})},html:function(n,e,t){var a=n.items.map(function(s){return ne("li",e(s,t))}).join(""),r=n.ordered?"ol":"ul",i={start:n.start};return ne(r,a,i)}},def:{order:W++,match:Se(/^ *\[([^\]]+)\]: *<?([^\s>]*)>?(?: +["(]([^\n]+)[")])? *\n(?: *\n)*/),parse:function(n,e,t){var a=n[1].replace(/\s+/g," ").toLowerCase(),r=n[2],i=n[3];return t._refs&&t._refs[a]&&t._refs[a].forEach(function(s){s.target=r,s.title=i}),t._defs=t._defs||{},t._defs[a]={target:r,title:i},{def:a,target:r,title:i}},react:function(){return null},html:function(){return""}},table:{order:W++,match:Se(We.TABLE_REGEX),parse:We.parseTable,react:function(n,e,t){var a=function(o){return n.align[o]==null?{}:{textAlign:n.align[o]}},r=n.header.map(function(s,o){return X("th",""+o,{style:a(o),scope:"col",children:e(s,t)})}),i=n.cells.map(function(s,o){return X("tr",""+o,{children:s.map(function(l,c){return X("td",""+c,{style:a(c),children:e(l,t)})})})});return X("table",t.key,{children:[X("thead","thead",{children:X("tr",null,{children:r})}),X("tbody","tbody",{children:i})]})},html:function(n,e,t){var a=function(c){return n.align[c]==null?"":"text-align:"+n.align[c]+";"},r=n.header.map(function(l,c){return ne("th",e(l,t),{style:a(c),scope:"col"})}).join(""),i=n.cells.map(function(l){var c=l.map(function(_,d){return ne("td",e(_,t),{style:a(d)})}).join("");return ne("tr",c)}).join(""),s=ne("thead",ne("tr",r)),o=ne("tbody",i);return ne("table",s+o)}},newline:{order:W++,match:Se(/^(?:\n *)*\n/),parse:tt,react:function(n,e,t){return` `},html:function(n,e,t){return` `}},paragraph:{order:W++,match:Se(/^((?:[^\n]|\n(?! *\n))+)(?:\n *)+\n/),parse:Ve,react:function(n,e,t){return X("div",t.key,{className:"paragraph",children:e(n.content,t)})},html:function(n,e,t){var a={class:"paragraph"};return ne("div",e(n.content,t),a)}},escape:{order:W++,match:ue(/^\\([^0-9A-Za-z\s])/),parse:function(n,e,t){return{type:"text",content:n[1]}},react:null,html:null},tableSeparator:{order:W++,match:function(n,e){return e.inTable?/^ *\| */.exec(n):null},parse:function(){return{type:"tableSeparator"}},react:function(){return" | "},html:function(){return" &vert; "}},autolink:{order:W++,match:ue(/^<([^: >]+:\/[^ >]+)>/),parse:function(n,e,t){return{type:"link",content:[{type:"text",content:n[1]}],target:n[1]}},react:null,html:null},mailto:{order:W++,match:ue(/^<([^ >]+@[^ >]+)>/),parse:function(n,e,t){var a=n[1],r=n[1];return Cc.test(r)||(r="mailto:"+r),{type:"link",content:[{type:"text",content:a}],target:r}},react:null,html:null},url:{order:W++,match:ue(/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/),parse:function(n,e,t){return{type:"link",content:[{type:"text",content:n[1]}],target:n[1],title:void 0}},react:null,html:null},link:{order:W++,match:ue(new RegExp("^\\[("+Ke+")\\]\\("+ti+"\\)")),parse:function(n,e,t){var a={content:e(n[1],t),target:et(n[2]),title:n[3]};return a},react:function(n,e,t){return X("a",t.key,{href:ke(n.target),title:n.title,children:e(n.content,t)})},html:function(n,e,t){var a={href:ke(n.target),title:n.title};return ne("a",e(n.content,t),a)}},image:{order:W++,match:ue(new RegExp("^!\\[("+Ke+")\\]\\("+ti+"\\)")),parse:function(n,e,t){var a={alt:n[1],target:et(n[2]),title:n[3]};return a},react:function(n,e,t){return X("img",t.key,{src:ke(n.target),alt:n.alt,title:n.title})},html:function(n,e,t){var a={src:ke(n.target),alt:n.alt,title:n.title};return ne("img","",a,!1)}},reflink:{order:W++,match:ue(new RegExp("^\\[("+Ke+")\\]\\s*\\[([^\\]]*)\\]")),parse:function(n,e,t){return ni(n,t,{type:"link",content:e(n[1],t)})},react:null,html:null},refimage:{order:W++,match:ue(new RegExp("^!\\[("+Ke+")\\]\\s*\\[([^\\]]*)\\]")),parse:function(n,e,t){return ni(n,t,{type:"image",alt:n[1]})},react:null,html:null},em:{order:W,match:ue(new RegExp("^\\b_((?:__|\\\\[\\s\\S]|[^\\\\_])+?)_\\b|^\\*(?=\\S)((?:\\*\\*|\\\\[\\s\\S]|\\s+(?:\\\\[\\s\\S]|[^\\s\\*\\\\]|\\*\\*)|[^\\s\\*\\\\])+?)\\*(?!\\*)")),quality:function(n){return n[0].length+.2},parse:function(n,e,t){return{content:e(n[2]||n[1],t)}},react:function(n,e,t){return X("em",t.key,{children:e(n.content,t)})},html:function(n,e,t){return ne("em",e(n.content,t))}},strong:{order:W,match:ue(/^\*\*((?:\\[\s\S]|[^\\])+?)\*\*(?!\*)/),quality:function(n){return n[0].length+.1},parse:Ve,react:function(n,e,t){return X("strong",t.key,{children:e(n.content,t)})},html:function(n,e,t){return ne("strong",e(n.content,t))}},u:{order:W++,match:ue(/^__((?:\\[\s\S]|[^\\])+?)__(?!_)/),quality:function(n){return n[0].length},parse:Ve,react:function(n,e,t){return X("u",t.key,{children:e(n.content,t)})},html:function(n,e,t){return ne("u",e(n.content,t))}},del:{order:W++,match:ue(/^~~(?=\S)((?:\\[\s\S]|~(?!~)|[^\s~\\]|\s(?!~~))+?)~~/),parse:Ve,react:function(n,e,t){return X("del",t.key,{children:e(n.content,t)})},html:function(n,e,t){return ne("del",e(n.content,t))}},inlineCode:{order:W++,match:ue(/^(`+)([\s\S]*?[^`])\1(?!`)/),parse:function(n,e,t){return{content:n[2].replace(Tc,"$1")}},react:function(n,e,t){return X("code",t.key,{children:n.content})},html:function(n,e,t){return ne("code",ye(n.content))}},br:{order:W++,match:je(/^ {2,}\n/),parse:tt,react:function(n,e,t){return X("br",t.key,Xr)},html:function(n,e,t){return"<br>"}},text:{order:W++,match:je(/^[\s\S]+?(?=[^0-9A-Za-z\s\u00c0-\uffff]|\n\n| {2,}\n|\w+:\S|$)/),parse:function(n,e,t){return{content:n[0]}},react:function(n,e,t){return n.content},html:function(n,e,t){return ye(n.content)}}},Nc=function(e,t){!t&&typeof console<"u"&&console.warn("simple-markdown ruleOutput should take 'react' or 'html' as the second argument.");var a=function(i,s,o){return e[i.type][t](i,s,o)};return a},Oc=function(e){var t=function a(r,i){if(i=i||{},Array.isArray(r)){for(var s=i.key,o=[],l=null,c=0;c<r.length;c++){i.key=""+c;var _=a(r[c],i);typeof _=="string"&&typeof l=="string"?(l=l+_,o[o.length-1]=l):(o.push(_),l=_)}return i.key=s,o}else return e(r,a,i)};return t},Ic=function(e){var t=function a(r,i){return i=i||{},Array.isArray(r)?r.map(function(s){return a(s,i)}).join(""):e(r,a,i)};return t},nt=function(e,t,a={}){if(!t)throw new Error("simple-markdown: outputFor: `property` must be defined. if you just upgraded, you probably need to replace `outputFor` with `reactFor`");var r,i=e.Array||Ue.Array,s=i[t];if(!s)throw new Error("simple-markdown: outputFor: to join nodes of type `"+t+"` you must provide an `Array:` joiner rule with that type, Please see the docs for details on specifying an Array rule.");var o=s,l=function _(d,u){return u=u||r,r=u,Array.isArray(d)?o(d,_,u):e[d.type][t](d,_,u)},c=function(d,u){return r=$r(u,a),l(d,r)};return c},$e=Qr(Ue),at=function(e,t){return t=t||{},t.inline=!1,$e(e,t)},Ac=function(e,t){return t=t||{},t.inline=!0,$e(e,t)},ai=function(e,t){var a=jr.test(e);return t=t||{},t.inline=!a,$e(e,t)},rt=nt(Ue,"react"),ri=nt(Ue,"html"),ii=function(e,t){return rt(at(e,t),t)},vc=function(e,t){return ri(at(e,t),t)},hc=function(e){var t={};for(var a in e)a!=="source"&&Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t.children=ii(e.source),X("div",null,t)},H={defaultRules:Ue,parserFor:Qr,outputFor:nt,inlineRegex:ue,blockRegex:Se,anyScopeRegex:je,parseInline:He,parseBlock:Sc,markdownToReact:ii,markdownToHtml:vc,ReactMarkdown:hc,defaultBlockParse:at,defaultInlineParse:Ac,defaultImplicitParse:ai,defaultReactOutput:rt,defaultHtmlOutput:ri,preprocess:Kr,sanitizeText:ye,sanitizeUrl:ke,unescapeUrl:et,htmlTag:ne,reactElement:X,defaultRawParse:$e,ruleOutput:Nc,reactFor:Oc,htmlFor:Ic,defaultParse:function(...n){return typeof console<"u"&&console.warn("defaultParse is deprecated, please use `defaultImplicitParse`"),ai.apply(null,n)},defaultOutput:function(...n){return typeof console<"u"&&console.warn("defaultOutput is deprecated, please use `defaultReactOutput`"),rt.apply(null,n)}};function yc(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}function oi(n){return n instanceof Map?n.clear=n.delete=n.set=function(){throw new Error("map is read-only")}:n instanceof Set&&(n.add=n.clear=n.delete=function(){throw new Error("set is read-only")}),Object.freeze(n),Object.getOwnPropertyNames(n).forEach(e=>{const t=n[e],a=typeof t;(a==="object"||a==="function")&&!Object.isFrozen(t)&&oi(t)}),n}class si{constructor(e){e.data===void 0&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function li(n){return n.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}function Re(n,...e){const t=Object.create(null);for(const a in n)t[a]=n[a];return e.forEach(function(a){for(const r in a)t[r]=a[r]}),t}const Dc="</span>",ci=n=>!!n.scope,Mc=(n,{prefix:e})=>{if(n.startsWith("language:"))return n.replace("language:","language-");if(n.includes(".")){const t=n.split(".");return[`${e}${t.shift()}`,...t.map((a,r)=>`${a}${"_".repeat(r+1)}`)].join(" ")}return`${e}${n}`};class Lc{constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=li(e)}openNode(e){if(!ci(e))return;const t=Mc(e.scope,{prefix:this.classPrefix});this.span(t)}closeNode(e){ci(e)&&(this.buffer+=Dc)}value(){return this.buffer}span(e){this.buffer+=`<span class="${e}">`}}const _i=(n={})=>{const e={children:[]};return Object.assign(e,n),e};class it{constructor(){this.rootNode=_i(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const t=_i({scope:e});this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){return typeof t=="string"?e.addText(t):t.children&&(e.openNode(t),t.children.forEach(a=>this._walk(e,a)),e.closeNode(t)),e}static _collapse(e){typeof e!="string"&&e.children&&(e.children.every(t=>typeof t=="string")?e.children=[e.children.join("")]:e.children.forEach(t=>{it._collapse(t)}))}}class xc extends it{constructor(e){super(),this.options=e}addText(e){e!==""&&this.add(e)}startScope(e){this.openNode(e)}endScope(){this.closeNode()}__addSublanguage(e,t){const a=e.root;t&&(a.scope=`language:${t}`),this.add(a)}toHTML(){return new Lc(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function Fe(n){return n?typeof n=="string"?n:n.source:null}function di(n){return Ie("(?=",n,")")}function Pc(n){return Ie("(?:",n,")*")}function wc(n){return Ie("(?:",n,")?")}function Ie(...n){return n.map(t=>Fe(t)).join("")}function kc(n){const e=n[n.length-1];return typeof e=="object"&&e.constructor===Object?(n.splice(n.length-1,1),e):{}}function ot(...n){return"("+(kc(n).capture?"":"?:")+n.map(a=>Fe(a)).join("|")+")"}function ui(n){return new RegExp(n.toString()+"|").exec("").length-1}function Uc(n,e){const t=n&&n.exec(e);return t&&t.index===0}const Fc=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function st(n,{joinWith:e}){let t=0;return n.map(a=>{t+=1;const r=t;let i=Fe(a),s="";for(;i.length>0;){const o=Fc.exec(i);if(!o){s+=i;break}s+=i.substring(0,o.index),i=i.substring(o.index+o[0].length),o[0][0]==="\\"&&o[1]?s+="\\"+String(Number(o[1])+r):(s+=o[0],o[0]==="("&&t++)}return s}).map(a=>`(${a})`).join(e)}const Bc=/\b\B/,mi="[a-zA-Z]\\w*",lt="[a-zA-Z_]\\w*",pi="\\b\\d+(\\.\\d+)?",Ei="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",Si="\\b(0b[01]+)",Gc="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",Yc=(n={})=>{const e=/^#![ ]*\//;return n.binary&&(n.begin=Ie(e,/.*\b/,n.binary,/\b.*/)),Re({scope:"meta",begin:e,end:/$/,relevance:0,"on:begin":(t,a)=>{t.index!==0&&a.ignoreMatch()}},n)},Be={begin:"\\\\[\\s\\S]",relevance:0},qc={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[Be]},Hc={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[Be]},Vc={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},Qe=function(n,e,t={}){const a=Re({scope:"comment",begin:n,end:e,contains:[]},t);a.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const r=ot("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return a.contains.push({begin:Ie(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),a},zc=Qe("//","$"),Wc=Qe("/\\*","\\*/"),Kc=Qe("#","$"),$c={scope:"number",begin:pi,relevance:0},Qc={scope:"number",begin:Ei,relevance:0},Xc={scope:"number",begin:Si,relevance:0},Zc={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[Be,{begin:/\[/,end:/\]/,relevance:0,contains:[Be]}]},Jc={scope:"title",begin:mi,relevance:0},jc={scope:"title",begin:lt,relevance:0},e_={begin:"\\.\\s*"+lt,relevance:0};var Xe=Object.freeze({__proto__:null,APOS_STRING_MODE:qc,BACKSLASH_ESCAPE:Be,BINARY_NUMBER_MODE:Xc,BINARY_NUMBER_RE:Si,COMMENT:Qe,C_BLOCK_COMMENT_MODE:Wc,C_LINE_COMMENT_MODE:zc,C_NUMBER_MODE:Qc,C_NUMBER_RE:Ei,END_SAME_AS_BEGIN:function(n){return Object.assign(n,{"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})},HASH_COMMENT_MODE:Kc,IDENT_RE:mi,MATCH_NOTHING_RE:Bc,METHOD_GUARD:e_,NUMBER_MODE:$c,NUMBER_RE:pi,PHRASAL_WORDS_MODE:Vc,QUOTE_STRING_MODE:Hc,REGEXP_MODE:Zc,RE_STARTERS_RE:Gc,SHEBANG:Yc,TITLE_MODE:Jc,UNDERSCORE_IDENT_RE:lt,UNDERSCORE_TITLE_MODE:jc});function t_(n,e){n.input[n.index-1]==="."&&e.ignoreMatch()}function n_(n,e){n.className!==void 0&&(n.scope=n.className,delete n.className)}function a_(n,e){e&&n.beginKeywords&&(n.begin="\\b("+n.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",n.__beforeBegin=t_,n.keywords=n.keywords||n.beginKeywords,delete n.beginKeywords,n.relevance===void 0&&(n.relevance=0))}function r_(n,e){Array.isArray(n.illegal)&&(n.illegal=ot(...n.illegal))}function i_(n,e){if(n.match){if(n.begin||n.end)throw new Error("begin & end are not supported with match");n.begin=n.match,delete n.match}}function o_(n,e){n.relevance===void 0&&(n.relevance=1)}const s_=(n,e)=>{if(!n.beforeMatch)return;if(n.starts)throw new Error("beforeMatch cannot be used with starts");const t=Object.assign({},n);Object.keys(n).forEach(a=>{delete n[a]}),n.keywords=t.keywords,n.begin=Ie(t.beforeMatch,di(t.begin)),n.starts={relevance:0,contains:[Object.assign(t,{endsParent:!0})]},n.relevance=0,delete t.beforeMatch},l_=["of","and","for","in","not","or","if","then","parent","list","value"],c_="keyword";function gi(n,e,t=c_){const a=Object.create(null);return typeof n=="string"?r(t,n.split(" ")):Array.isArray(n)?r(t,n):Object.keys(n).forEach(function(i){Object.assign(a,gi(n[i],e,i))}),a;function r(i,s){e&&(s=s.map(o=>o.toLowerCase())),s.forEach(function(o){const l=o.split("|");a[l[0]]=[i,__(l[0],l[1])]})}}function __(n,e){return e?Number(e):d_(n)?0:1}function d_(n){return l_.includes(n.toLowerCase())}const Ti={},Ae=n=>{console.error(n)},bi=(n,...e)=>{console.log(`WARN: ${n}`,...e)},De=(n,e)=>{Ti[`${n}/${e}`]||(console.log(`Deprecated as of ${n}. ${e}`),Ti[`${n}/${e}`]=!0)},Ze=new Error;function Ri(n,e,{key:t}){let a=0;const r=n[t],i={},s={};for(let o=1;o<=e.length;o++)s[o+a]=r[o],i[o+a]=!0,a+=ui(e[o-1]);n[t]=s,n[t]._emit=i,n[t]._multi=!0}function u_(n){if(Array.isArray(n.begin)){if(n.skip||n.excludeBegin||n.returnBegin)throw Ae("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),Ze;if(typeof n.beginScope!="object"||n.beginScope===null)throw Ae("beginScope must be object"),Ze;Ri(n,n.begin,{key:"beginScope"}),n.begin=st(n.begin,{joinWith:""})}}function m_(n){if(Array.isArray(n.end)){if(n.skip||n.excludeEnd||n.returnEnd)throw Ae("skip, excludeEnd, returnEnd not compatible with endScope: {}"),Ze;if(typeof n.endScope!="object"||n.endScope===null)throw Ae("endScope must be object"),Ze;Ri(n,n.end,{key:"endScope"}),n.end=st(n.end,{joinWith:""})}}function p_(n){n.scope&&typeof n.scope=="object"&&n.scope!==null&&(n.beginScope=n.scope,delete n.scope)}function E_(n){p_(n),typeof n.beginScope=="string"&&(n.beginScope={_wrap:n.beginScope}),typeof n.endScope=="string"&&(n.endScope={_wrap:n.endScope}),u_(n),m_(n)}function S_(n){function e(s,o){return new RegExp(Fe(s),"m"+(n.case_insensitive?"i":"")+(n.unicodeRegex?"u":"")+(o?"g":""))}class t{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(o,l){l.position=this.position++,this.matchIndexes[this.matchAt]=l,this.regexes.push([l,o]),this.matchAt+=ui(o)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const o=this.regexes.map(l=>l[1]);this.matcherRe=e(st(o,{joinWith:"|"}),!0),this.lastIndex=0}exec(o){this.matcherRe.lastIndex=this.lastIndex;const l=this.matcherRe.exec(o);if(!l)return null;const c=l.findIndex((d,u)=>u>0&&d!==void 0),_=this.matchIndexes[c];return l.splice(0,c),Object.assign(l,_)}}class a{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(o){if(this.multiRegexes[o])return this.multiRegexes[o];const l=new t;return this.rules.slice(o).forEach(([c,_])=>l.addRule(c,_)),l.compile(),this.multiRegexes[o]=l,l}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(o,l){this.rules.push([o,l]),l.type==="begin"&&this.count++}exec(o){const l=this.getMatcher(this.regexIndex);l.lastIndex=this.lastIndex;let c=l.exec(o);if(this.resumingScanAtSamePosition()&&!(c&&c.index===this.lastIndex)){const _=this.getMatcher(0);_.lastIndex=this.lastIndex+1,c=_.exec(o)}return c&&(this.regexIndex+=c.position+1,this.regexIndex===this.count&&this.considerAll()),c}}function r(s){const o=new a;return s.contains.forEach(l=>o.addRule(l.begin,{rule:l,type:"begin"})),s.terminatorEnd&&o.addRule(s.terminatorEnd,{type:"end"}),s.illegal&&o.addRule(s.illegal,{type:"illegal"}),o}function i(s,o){const l=s;if(s.isCompiled)return l;[n_,i_,E_,s_].forEach(_=>_(s,o)),n.compilerExtensions.forEach(_=>_(s,o)),s.__beforeBegin=null,[a_,r_,o_].forEach(_=>_(s,o)),s.isCompiled=!0;let c=null;return typeof s.keywords=="object"&&s.keywords.$pattern&&(s.keywords=Object.assign({},s.keywords),c=s.keywords.$pattern,delete s.keywords.$pattern),c=c||/\w+/,s.keywords&&(s.keywords=gi(s.keywords,n.case_insensitive)),l.keywordPatternRe=e(c,!0),o&&(s.begin||(s.begin=/\B|\b/),l.beginRe=e(l.begin),!s.end&&!s.endsWithParent&&(s.end=/\B|\b/),s.end&&(l.endRe=e(l.end)),l.terminatorEnd=Fe(l.end)||"",s.endsWithParent&&o.terminatorEnd&&(l.terminatorEnd+=(s.end?"|":"")+o.terminatorEnd)),s.illegal&&(l.illegalRe=e(s.illegal)),s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map(function(_){return g_(_==="self"?s:_)})),s.contains.forEach(function(_){i(_,l)}),s.starts&&i(s.starts,o),l.matcher=r(l),l}if(n.compilerExtensions||(n.compilerExtensions=[]),n.contains&&n.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return n.classNameAliases=Re(n.classNameAliases||{}),i(n)}function fi(n){return n?n.endsWithParent||fi(n.starts):!1}function g_(n){return n.variants&&!n.cachedVariants&&(n.cachedVariants=n.variants.map(function(e){return Re(n,{variants:null},e)})),n.cachedVariants?n.cachedVariants:fi(n)?Re(n,{starts:n.starts?Re(n.starts):null}):Object.isFrozen(n)?Re(n):n}var T_="11.9.0";class b_ extends Error{constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}}const ct=li,Ci=Re,Ni=Symbol("nomatch"),R_=7,Oi=function(n){const e=Object.create(null),t=Object.create(null),a=[];let r=!0;const i="Could not find the language '{}', did you forget to load/include a language module?",s={disableAutodetect:!0,name:"Plain text",contains:[]};let o={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:xc};function l(b){return o.noHighlightRe.test(b)}function c(b){let v=b.className+" ";v+=b.parentNode?b.parentNode.className:"";const M=o.languageDetectRe.exec(v);if(M){const w=D(M[1]);return w||(bi(i.replace("{}",M[1])),bi("Falling back to no-highlight mode for this block.",b)),w?M[1]:"no-highlight"}return v.split(/\s+/).find(w=>l(w)||D(w))}function _(b,v,M){let w="",B="";typeof v=="object"?(w=b,M=v.ignoreIllegals,B=v.language):(De("10.7.0","highlight(lang, code, ...args) has been deprecated."),De("10.7.0",`Please use highlight(code, options) instead. https://github.com/highlightjs/highlight.js/issues/2277`),B=b,w=v),M===void 0&&(M=!0);const ee={code:w,language:B};k("before:highlight",ee);const ae=ee.result?ee.result:d(ee.language,ee.code,M);return ae.code=ee.code,k("after:highlight",ae),ae}function d(b,v,M,w){const B=Object.create(null);function ee(I,h){return I.keywords[h]}function ae(){if(!x.keywords){te.addText(z);return}let I=0;x.keywordPatternRe.lastIndex=0;let h=x.keywordPatternRe.exec(z),P="";for(;h;){P+=z.substring(I,h.index);const F=_e.case_insensitive?h[0].toLowerCase():h[0],le=ee(x,F);if(le){const[me,Ye]=le;if(te.addText(P),P="",B[F]=(B[F]||0)+1,B[F]<=R_&&(Ne+=Ye),me.startsWith("_"))P+=h[0];else{const qe=_e.classNameAliases[me]||me;V(h[0],qe)}}else P+=h[0];I=x.keywordPatternRe.lastIndex,h=x.keywordPatternRe.exec(z)}P+=z.substring(I),te.addText(P)}function se(){if(z==="")return;let I=null;if(typeof x.subLanguage=="string"){if(!e[x.subLanguage]){te.addText(z);return}I=d(x.subLanguage,z,!0,Pe[x.subLanguage]),Pe[x.subLanguage]=I._top}else I=p(z,x.subLanguage.length?x.subLanguage:null);x.relevance>0&&(Ne+=I.relevance),te.__addSublanguage(I._emitter,I.language)}function G(){x.subLanguage!=null?se():ae(),z=""}function V(I,h){I!==""&&(te.startScope(h),te.addText(I),te.endScope())}function K(I,h){let P=1;const F=h.length-1;for(;P<=F;){if(!I._emit[P]){P++;continue}const le=_e.classNameAliases[I[P]]||I[P],me=h[P];le?V(me,le):(z=me,ae(),z=""),P++}}function Y(I,h){return I.scope&&typeof I.scope=="string"&&te.openNode(_e.classNameAliases[I.scope]||I.scope),I.beginScope&&(I.beginScope._wrap?(V(z,_e.classNameAliases[I.beginScope._wrap]||I.beginScope._wrap),z=""):I.beginScope._multi&&(K(I.beginScope,h),z="")),x=Object.create(I,{parent:{value:x}}),x}function J(I,h,P){let F=Uc(I.endRe,P);if(F){if(I["on:end"]){const le=new si(I);I["on:end"](h,le),le.isMatchIgnored&&(F=!1)}if(F){for(;I.endsParent&&I.parent;)I=I.parent;return I}}if(I.endsWithParent)return J(I.parent,h,P)}function re(I){return x.matcher.regexIndex===0?(z+=I[0],1):(Ee=!0,0)}function ie(I){const h=I[0],P=I.rule,F=new si(P),le=[P.__beforeBegin,P["on:begin"]];for(const me of le)if(me&&(me(I,F),F.isMatchIgnored))return re(h);return P.skip?z+=h:(P.excludeBegin&&(z+=h),G(),!P.returnBegin&&!P.excludeBegin&&(z=h)),Y(P,I),P.returnBegin?0:h.length}function de(I){const h=I[0],P=v.substring(I.index),F=J(x,I,P);if(!F)return Ni;const le=x;x.endScope&&x.endScope._wrap?(G(),V(h,x.endScope._wrap)):x.endScope&&x.endScope._multi?(G(),K(x.endScope,I)):le.skip?z+=h:(le.returnEnd||le.excludeEnd||(z+=h),G(),le.excludeEnd&&(z=h));do x.scope&&te.closeNode(),!x.skip&&!x.subLanguage&&(Ne+=x.relevance),x=x.parent;while(x!==F.parent);return F.starts&&Y(F.starts,I),le.returnEnd?0:h.length}function pe(){const I=[];for(let h=x;h!==_e;h=h.parent)h.scope&&I.unshift(h.scope);I.forEach(h=>te.openNode(h))}let be={};function Le(I,h){const P=h&&h[0];if(z+=I,P==null)return G(),0;if(be.type==="begin"&&h.type==="end"&&be.index===h.index&&P===""){if(z+=v.slice(h.index,h.index+1),!r){const F=new Error(`0 width match regex (${b})`);throw F.languageName=b,F.badRule=be.rule,F}return 1}if(be=h,h.type==="begin")return ie(h);if(h.type==="illegal"&&!M){const F=new Error('Illegal lexeme "'+P+'" for mode "'+(x.scope||"<unnamed>")+'"');throw F.mode=x,F}else if(h.type==="end"){const F=de(h);if(F!==Ni)return F}if(h.type==="illegal"&&P==="")return 1;if(Te>1e5&&Te>h.index*3)throw new Error("potential infinite loop, way more iterations than matches");return z+=P,P.length}const _e=D(b);if(!_e)throw Ae(i.replace("{}",b)),new Error('Unknown language: "'+b+'"');const xe=S_(_e);let Ce="",x=w||xe;const Pe={},te=new o.__emitter(o);pe();let z="",Ne=0,ge=0,Te=0,Ee=!1;try{if(_e.__emitTokens)_e.__emitTokens(v,te);else{for(x.matcher.considerAll();;){Te++,Ee?Ee=!1:x.matcher.considerAll(),x.matcher.lastIndex=ge;const I=x.matcher.exec(v);if(!I)break;const h=v.substring(ge,I.index),P=Le(h,I);ge=I.index+P}Le(v.substring(ge))}return te.finalize(),Ce=te.toHTML(),{language:b,value:Ce,relevance:Ne,illegal:!1,_emitter:te,_top:x}}catch(I){if(I.message&&I.message.includes("Illegal"))return{language:b,value:ct(v),illegal:!0,relevance:0,_illegalBy:{message:I.message,index:ge,context:v.slice(ge-100,ge+100),mode:I.mode,resultSoFar:Ce},_emitter:te};if(r)return{language:b,value:ct(v),illegal:!1,relevance:0,errorRaised:I,_emitter:te,_top:x};throw I}}function u(b){const v={value:ct(b),illegal:!1,relevance:0,_top:s,_emitter:new o.__emitter(o)};return v._emitter.addText(b),v}function p(b,v){v=v||o.languages||Object.keys(e);const M=u(b),w=v.filter(D).filter(y).map(G=>d(G,b,!1));w.unshift(M);const B=w.sort((G,V)=>{if(G.relevance!==V.relevance)return V.relevance-G.relevance;if(G.language&&V.language){if(D(G.language).supersetOf===V.language)return 1;if(D(V.language).supersetOf===G.language)return-1}return 0}),[ee,ae]=B,se=ee;return se.secondBest=ae,se}function E(b,v,M){const w=v&&t[v]||M;b.classList.add("hljs"),b.classList.add(`language-${w}`)}function S(b){let v=null;const M=c(b);if(l(M))return;if(k("before:highlightElement",{el:b,language:M}),b.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",b);return}if(b.children.length>0&&(o.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(b)),o.throwUnescapedHTML))throw new b_("One of your code blocks includes unescaped HTML.",b.innerHTML);v=b;const w=v.textContent,B=M?_(w,{language:M,ignoreIllegals:!0}):p(w);b.innerHTML=B.value,b.dataset.highlighted="yes",E(b,M,B.language),b.result={language:B.language,re:B.relevance,relevance:B.relevance},B.secondBest&&(b.secondBest={language:B.secondBest.language,relevance:B.secondBest.relevance}),k("after:highlightElement",{el:b,result:B,text:w})}function g(b){o=Ci(o,b)}const T=()=>{N(),De("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function R(){N(),De("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let C=!1;function N(){if(document.readyState==="loading"){C=!0;return}document.querySelectorAll(o.cssSelector).forEach(S)}function O(){C&&N()}typeof window<"u"&&window.addEventListener&&window.addEventListener("DOMContentLoaded",O,!1);function f(b,v){let M=null;try{M=v(n)}catch(w){if(Ae("Language definition for '{}' could not be registered.".replace("{}",b)),r)Ae(w);else throw w;M=s}M.name||(M.name=b),e[b]=M,M.rawDefinition=v.bind(null,n),M.aliases&&U(M.aliases,{languageName:b})}function L(b){delete e[b];for(const v of Object.keys(t))t[v]===b&&delete t[v]}function A(){return Object.keys(e)}function D(b){return b=(b||"").toLowerCase(),e[b]||e[t[b]]}function U(b,{languageName:v}){typeof b=="string"&&(b=[b]),b.forEach(M=>{t[M.toLowerCase()]=v})}function y(b){const v=D(b);return v&&!v.disableAutodetect}function q(b){b["before:highlightBlock"]&&!b["before:highlightElement"]&&(b["before:highlightElement"]=v=>{b["before:highlightBlock"](Object.assign({block:v.el},v))}),b["after:highlightBlock"]&&!b["after:highlightElement"]&&(b["after:highlightElement"]=v=>{b["after:highlightBlock"](Object.assign({block:v.el},v))})}function oe(b){q(b),a.push(b)}function Q(b){const v=a.indexOf(b);v!==-1&&a.splice(v,1)}function k(b,v){const M=b;a.forEach(function(w){w[M]&&w[M](v)})}function Z(b){return De("10.7.0","highlightBlock will be removed entirely in v12.0"),De("10.7.0","Please use highlightElement now."),S(b)}Object.assign(n,{highlight:_,highlightAuto:p,highlightAll:N,highlightElement:S,highlightBlock:Z,configure:g,initHighlighting:T,initHighlightingOnLoad:R,registerLanguage:f,unregisterLanguage:L,listLanguages:A,getLanguage:D,registerAliases:U,autoDetection:y,inherit:Ci,addPlugin:oe,removePlugin:Q}),n.debugMode=function(){r=!1},n.safeMode=function(){r=!0},n.versionString=T_,n.regex={concat:Ie,lookahead:di,either:ot,optional:wc,anyNumberOfTimes:Pc};for(const b in Xe)typeof Xe[b]=="object"&&oi(Xe[b]);return Object.assign(n,Xe),n},Me=Oi({});Me.newInstance=()=>Oi({});var f_=Me;Me.HighlightJS=Me,Me.default=Me;var _t,Ii;function C_(){if(Ii)return _t;Ii=1;function n(e){const t="[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]+",i="далее "+"возврат вызватьисключение выполнить для если и из или иначе иначеесли исключение каждого конецесли конецпопытки конеццикла не новый перейти перем по пока попытка прервать продолжить тогда цикл экспорт ",l="загрузитьизфайла "+"вебклиент вместо внешнеесоединение клиент конецобласти мобильноеприложениеклиент мобильноеприложениесервер наклиенте наклиентенасервере наклиентенасерверебезконтекста насервере насерверебезконтекста область перед после сервер толстыйклиентобычноеприложение толстыйклиентуправляемоеприложение тонкийклиент ",c="разделительстраниц разделительстрок символтабуляции ",_="ansitooem oemtoansi ввестивидсубконто ввестиперечисление ввестипериод ввестиплансчетов выбранныйплансчетов датагод датамесяц датачисло заголовоксистемы значениевстроку значениеизстроки каталогиб каталогпользователя кодсимв конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца коннедели лог лог10 максимальноеколичествосубконто названиеинтерфейса названиенабораправ назначитьвид назначитьсчет найтиссылки началопериодаби началостандартногоинтервала начгода начквартала начмесяца начнедели номерднягода номерднянедели номернеделигода обработкаожидания основнойжурналрасчетов основнойплансчетов основнойязык очиститьокносообщений периодстр получитьвремята получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта префиксавтонумерации пропись пустоезначение разм разобратьпозициюдокумента рассчитатьрегистрына рассчитатьрегистрыпо симв создатьобъект статусвозврата стрколичествострок сформироватьпозициюдокумента счетпокоду текущеевремя типзначения типзначениястр установитьтана установитьтапо фиксшаблон шаблон ",d="acos asin atan base64значение base64строка cos exp log log10 pow sin sqrt tan xmlзначение xmlстрока xmlтип xmlтипзнч активноеокно безопасныйрежим безопасныйрежимразделенияданных булево ввестидату ввестизначение ввестистроку ввестичисло возможностьчтенияxml вопрос восстановитьзначение врег выгрузитьжурналрегистрации выполнитьобработкуоповещения выполнитьпроверкуправдоступа вычислить год данныеформывзначение дата день деньгода деньнедели добавитьмесяц заблокироватьданныедляредактирования заблокироватьработупользователя завершитьработусистемы загрузитьвнешнююкомпоненту закрытьсправку записатьjson записатьxml записатьдатуjson записьжурналарегистрации заполнитьзначениясвойств запроситьразрешениепользователя запуститьприложение запуститьсистему зафиксироватьтранзакцию значениевданныеформы значениевстрокувнутр значениевфайл значениезаполнено значениеизстрокивнутр значениеизфайла изxmlтипа импортмоделиxdto имякомпьютера имяпользователя инициализироватьпредопределенныеданные информацияобошибке каталогбиблиотекимобильногоустройства каталогвременныхфайлов каталогдокументов каталогпрограммы кодироватьстроку кодлокализацииинформационнойбазы кодсимвола командасистемы конецгода конецдня конецквартала конецмесяца конецминуты конецнедели конецчаса конфигурациябазыданныхизмененадинамически конфигурацияизменена копироватьданныеформы копироватьфайл краткоепредставлениеошибки лев макс местноевремя месяц мин минута монопольныйрежим найти найтинедопустимыесимволыxml найтиокнопонавигационнойссылке найтипомеченныенаудаление найтипоссылкам найтифайлы началогода началодня началоквартала началомесяца началоминуты началонедели началочаса начатьзапросразрешенияпользователя начатьзапускприложения начатькопированиефайла начатьперемещениефайла начатьподключениевнешнейкомпоненты начатьподключениерасширенияработыскриптографией начатьподключениерасширенияработысфайлами начатьпоискфайлов начатьполучениекаталогавременныхфайлов начатьполучениекаталогадокументов начатьполучениерабочегокаталогаданныхпользователя начатьполучениефайлов начатьпомещениефайла начатьпомещениефайлов начатьсозданиедвоичныхданныхизфайла начатьсозданиекаталога начатьтранзакцию начатьудалениефайлов начатьустановкувнешнейкомпоненты начатьустановкурасширенияработыскриптографией начатьустановкурасширенияработысфайлами неделягода необходимостьзавершениясоединения номерсеансаинформационнойбазы номерсоединенияинформационнойбазы нрег нстр обновитьинтерфейс обновитьнумерациюобъектов обновитьповторноиспользуемыезначения обработкапрерыванияпользователя объединитьфайлы окр описаниеошибки оповестить оповеститьобизменении отключитьобработчикзапросанастроекклиенталицензирования отключитьобработчикожидания отключитьобработчикоповещения открытьзначение открытьиндекссправки открытьсодержаниесправки открытьсправку открытьформу открытьформумодально отменитьтранзакцию очиститьжурналрегистрации очиститьнастройкипользователя очиститьсообщения параметрыдоступа перейтипонавигационнойссылке переместитьфайл подключитьвнешнююкомпоненту подключитьобработчикзапросанастроекклиенталицензирования подключитьобработчикожидания подключитьобработчикоповещения подключитьрасширениеработыскриптографией подключитьрасширениеработысфайлами подробноепредставлениеошибки показатьвводдаты показатьвводзначения показатьвводстроки показатьвводчисла показатьвопрос показатьзначение показатьинформациюобошибке показатьнакарте показатьоповещениепользователя показатьпредупреждение полноеимяпользователя получитьcomобъект получитьxmlтип получитьадреспоместоположению получитьблокировкусеансов получитьвремязавершенияспящегосеанса получитьвремязасыпанияпассивногосеанса получитьвремяожиданияблокировкиданных получитьданныевыбора получитьдополнительныйпараметрклиенталицензирования получитьдопустимыекодылокализации получитьдопустимыечасовыепояса получитьзаголовокклиентскогоприложения получитьзаголовоксистемы получитьзначенияотборажурналарегистрации получитьидентификаторконфигурации получитьизвременногохранилища получитьимявременногофайла получитьимяклиенталицензирования получитьинформациюэкрановклиента получитьиспользованиежурналарегистрации получитьиспользованиесобытияжурналарегистрации получитькраткийзаголовокприложения получитьмакетоформления получитьмаскувсефайлы получитьмаскувсефайлыклиента получитьмаскувсефайлысервера получитьместоположениепоадресу получитьминимальнуюдлинупаролейпользователей получитьнавигационнуюссылку получитьнавигационнуюссылкуинформационнойбазы получитьобновлениеконфигурациибазыданных получитьобновлениепредопределенныхданныхинформационнойбазы получитьобщиймакет получитьобщуюформу получитьокна получитьоперативнуюотметкувремени получитьотключениебезопасногорежима получитьпараметрыфункциональныхопцийинтерфейса получитьполноеимяпредопределенногозначения получитьпредставлениянавигационныхссылок получитьпроверкусложностипаролейпользователей получитьразделительпути получитьразделительпутиклиента получитьразделительпутисервера получитьсеансыинформационнойбазы получитьскоростьклиентскогосоединения получитьсоединенияинформационнойбазы получитьсообщенияпользователю получитьсоответствиеобъектаиформы получитьсоставстандартногоинтерфейсаodata получитьструктурухранениябазыданных получитьтекущийсеансинформационнойбазы получитьфайл получитьфайлы получитьформу получитьфункциональнуюопцию получитьфункциональнуюопциюинтерфейса получитьчасовойпоясинформационнойбазы пользователиос поместитьвовременноехранилище поместитьфайл поместитьфайлы прав праводоступа предопределенноезначение представлениекодалокализации представлениепериода представлениеправа представлениеприложения представлениесобытияжурналарегистрации представлениечасовогопояса предупреждение прекратитьработусистемы привилегированныйрежим продолжитьвызов прочитатьjson прочитатьxml прочитатьдатуjson пустаястрока рабочийкаталогданныхпользователя разблокироватьданныедляредактирования разделитьфайл разорватьсоединениесвнешнимисточникомданных раскодироватьстроку рольдоступна секунда сигнал символ скопироватьжурналрегистрации смещениелетнеговремени смещениестандартноговремени соединитьбуферыдвоичныхданных создатькаталог создатьфабрикуxdto сокрл сокрлп сокрп сообщить состояние сохранитьзначение сохранитьнастройкипользователя сред стрдлина стрзаканчиваетсяна стрзаменить стрнайти стрначинаетсяс строка строкасоединенияинформационнойбазы стрполучитьстроку стрразделить стрсоединить стрсравнить стрчисловхождений стрчислострок стршаблон текущаядата текущаядатасеанса текущаяуниверсальнаядата текущаяуниверсальнаядатавмиллисекундах текущийвариантинтерфейсаклиентскогоприложения текущийвариантосновногошрифтаклиентскогоприложения текущийкодлокализации текущийрежимзапуска текущийязык текущийязыксистемы тип типзнч транзакцияактивна трег удалитьданныеинформационнойбазы удалитьизвременногохранилища удалитьобъекты удалитьфайлы универсальноевремя установитьбезопасныйрежим установитьбезопасныйрежимразделенияданных установитьблокировкусеансов установитьвнешнююкомпоненту установитьвремязавершенияспящегосеанса установитьвремязасыпанияпассивногосеанса установитьвремяожиданияблокировкиданных установитьзаголовокклиентскогоприложения установитьзаголовоксистемы установитьиспользованиежурналарегистрации установитьиспользованиесобытияжурналарегистрации установитькраткийзаголовокприложения установитьминимальнуюдлинупаролейпользователей установитьмонопольныйрежим установитьнастройкиклиенталицензирования установитьобновлениепредопределенныхданныхинформационнойбазы установитьотключениебезопасногорежима установитьпараметрыфункциональныхопцийинтерфейса установитьпривилегированныйрежим установитьпроверкусложностипаролейпользователей установитьрасширениеработыскриптографией установитьрасширениеработысфайлами установитьсоединениесвнешнимисточникомданных установитьсоответствиеобъектаиформы установитьсоставстандартногоинтерфейсаodata установитьчасовойпоясинформационнойбазы установитьчасовойпояссеанса формат цел час часовойпояс часовойпояссеанса число числопрописью этоадресвременногохранилища ",u="wsссылки библиотекакартинок библиотекамакетовоформлениякомпоновкиданных библиотекастилей бизнеспроцессы внешниеисточникиданных внешниеобработки внешниеотчеты встроенныепокупки главныйинтерфейс главныйстиль документы доставляемыеуведомления журналыдокументов задачи информацияобинтернетсоединении использованиерабочейдаты историяработыпользователя константы критерииотбора метаданные обработки отображениерекламы отправкадоставляемыхуведомлений отчеты панельзадачос параметрзапуска параметрысеанса перечисления планывидоврасчета планывидовхарактеристик планыобмена планысчетов полнотекстовыйпоиск пользователиинформационнойбазы последовательности проверкавстроенныхпокупок рабочаядата расширенияконфигурации регистрыбухгалтерии регистрынакопления регистрырасчета регистрысведений регламентныезадания сериализаторxdto справочники средствагеопозиционирования средствакриптографии средствамультимедиа средстваотображениярекламы средствапочты средствателефонии фабрикаxdto файловыепотоки фоновыезадания хранилищанастроек хранилищевариантовотчетов хранилищенастроекданныхформ хранилищеобщихнастроек хранилищепользовательскихнастроекдинамическихсписков хранилищепользовательскихнастроекотчетов хранилищесистемныхнастроек ",p=c+_+d+u,E="webцвета windowsцвета windowsшрифты библиотекакартинок рамкистиля символы цветастиля шрифтыстиля ",S="автоматическоесохранениеданныхформывнастройках автонумерациявформе автораздвижениесерий анимациядиаграммы вариантвыравниванияэлементовизаголовков вариантуправлениявысотойтаблицы вертикальнаяпрокруткаформы вертикальноеположение вертикальноеположениеэлемента видгруппыформы виддекорацииформы виддополненияэлементаформы видизмененияданных видкнопкиформы видпереключателя видподписейкдиаграмме видполяформы видфлажка влияниеразмеранапузырекдиаграммы горизонтальноеположение горизонтальноеположениеэлемента группировкаколонок группировкаподчиненныхэлементовформы группыиэлементы действиеперетаскивания дополнительныйрежимотображения допустимыедействияперетаскивания интервалмеждуэлементамиформы использованиевывода использованиеполосыпрокрутки используемоезначениеточкибиржевойдиаграммы историявыборапривводе источникзначенийоситочекдиаграммы источникзначенияразмерапузырькадиаграммы категориягруппыкоманд максимумсерий начальноеотображениедерева начальноеотображениесписка обновлениетекстаредактирования ориентациядендрограммы ориентациядиаграммы ориентацияметокдиаграммы ориентацияметоксводнойдиаграммы ориентацияэлементаформы отображениевдиаграмме отображениевлегендедиаграммы отображениегруппыкнопок отображениезаголовкашкалыдиаграммы отображениезначенийсводнойдиаграммы отображениезначенияизмерительнойдиаграммы отображениеинтерваладиаграммыганта отображениекнопки отображениекнопкивыбора отображениеобсужденийформы отображениеобычнойгруппы отображениеотрицательныхзначенийпузырьковойдиаграммы отображениепанелипоиска отображениеподсказки отображениепредупрежденияприредактировании отображениеразметкиполосырегулирования отображениестраницформы отображениетаблицы отображениетекстазначениядиаграммыганта отображениеуправленияобычной