/**See http://casual-effects.com/markdeep for @license and documentation.markdeep.min.js 1.03 (C) 2018 Morgan McGuire highlight.min.js 9.12.0 (C) 2017 Ivan Sagalaev https://highlightjs.org/*/!function(){"use strict";function e(e,t,r){return"<"+e+(r?" "+r:"")+">"+t+"</"+e+">"}function t(e){try{var t=document.createElement("canvas"),r=t.getContext("2d");return r.font="10pt "+e,r.measureText("M").width}catch(e){return 10}}function r(e,t){if(window.markdeepOptions&&void 0!==window.markdeepOptions[e]){var r=window.markdeepOptions[e];return t?(r=r[t],void 0!==r?r:ne[e][t]):window.markdeepOptions[e]}return void 0!==ne[e]?t?ne[e][t]:ne[e]:void console.warn('Illegal option: "'+e+'"')}function n(t,n){if(r("showLabels")){var a=" {\xa0"+t+"\xa0}";return n?e(n,a):a}return""}function a(e){return r("lang").keyword[e.toLowerCase()]||e}function i(e){return(e+"").rp(/&/g,"&").rp(/</g,"<").rp(/>/g,">").rp(/"/g,""")}function s(e){return e.rp(/</g,"<").rp(/>/g,">").rp(/"/g,'"').rp(/'/g,"'").rp(/–/g,"\u2013").rp(/—/g,"---").rp(/&/g,"&")}function o(e){return e.rp(/<.*?>/g,"")}function c(e){return encodeURI(e.rp(/\s/g,"").toLowerCase())}function l(){for(var t="",r=1;r<=6;++r){t+=".md h"+r+"::before {\ncontent:";for(var n=1;n<=r;++n)t+="counter(h"+n+') "'+(n<r?".":" ")+'"';t+=";\ncounter-increment: h"+r+";margin-right:10px}"}return e("style",t)}function u(e,t){var r=e.innerHTML;return r=r.rp(/<\/https?:.*>|<\/ftp:.*>|<\/[^ "\t\n>]+@[^ "\t\n>]+>/gi,""),r=r.rp(/<(https?|ftp): (.*?)>/gi,function(e,t,r){var n="<"+t+"://"+r.rp(/=""\s/g,"/");return'=""'===n.ss(n.length-3)&&(n=n.ss(0,n.length-3)),n=n.rp(/"/g,""),n+">"}),r=r.rp(/<style class=["']fallback["']>.*?<\/style>/gim,""),r=s(r)}function d(e){function t(e,t,r){for(var n=t,a=t;a<r;++a,++n){var i=e.charCodeAt(n);n+=i>=55296&&i<=56319}return n-r}function r(){u=e.indexOf("\n",s)+1,d=t(e,s+o,s+c),p=p||/\S/.test(e.ss(s,s+o)),g=g||"*"!==e[s+c+d],m=!g&&(m||/[^ *\t\n\r]/.test(e.ss(s+c+d+1,u)))}for(var n={p:e,q:"",s:"",u:""},a=e.indexOf(q);a>=0;a=e.indexOf(q,a+q.length)){var i,s=ie(0,e.lastIndexOf("\n",a))+1,o=a-s;for(i=a+q.length;e[i]===R;++i);var c=i-s-1,l={p:e.ss(0,s),q:"",s:"center",u:e.ss(s,a).rp(/[ \t]+$/," ")},u=0,d=0,p=!1,m=!1,g=!1;r();for(var b=!0,f=i;b;){if(s=u,r(),0===s)return n;if(p?l.s="floatright":m&&(l.s="floatleft"),e[s+o]!==R||p&&e[s+c+d]!==R)b=!1;else{var h;for(h=o;h<c&&e[s+h]===R;++h);var y=s+o,x=s+c+d;if(!p){var v=e.indexOf("\n",y);v!==-1&&(x=Math.min(x,v))}if(l.u+=e.ss(f,y).rp(/^[ \t]*[ \t]/," ").rp(/[ \t][ \t]*$/," "),h===c)return l.u+=e.ss(s+c+1),l;l.q+=e.ss(y+1,x)+"\n",f=x+1}}}return n}function p(e,t,r,n){var a=t.source,i="[^ \\t\\n"+a+"]",s="([^A-Za-z0-9])("+a+")("+i+".*?(\\n.+?)*?)"+a+"(?![A-Za-z0-9])";return e.rp(RegExp(s,"g"),"$1<"+r+(n?" "+n:"")+">$3</"+r+">")}function m(t,n){function a(e){return e.trim().rp(/^\||\|$/g,"")}var i=/(?:\n[ \t]*(?:(?:\|?[ \t\S]+?(?:\|[ \t\S]+?)+\|?)|\|[ \t\S]+\|)(?=\n))/.source,s=/\n[ \t]*(?:(?:\|? *\:?-+\:?(?: *\| *\:?-+\:?)+ *\|?|)|\|[\:-]+\|)(?=\n)/.source,o=/\n[ \t]*\[[^\n\|]+\][ \t]*(?=\n)/.source,c=RegExp(i+s+i+"+("+o+")?","g");return t=t.rp(c,function(t){var i=t.split("\n"),s="",o=""===i[0]?1:0,c=i[i.length-1].trim();c.length>3&&"["===c[0]&&"]"===c[c.length-1]?(i.pop(),c=c.ss(1,c.length-1)):c=void 0;var l=[];a(i[o+1]).rp(/:?-+:?/g,function(e){var t=":"===e[0],r=":"===e[e.length-1];l.push(n(' style="text-align:'+(t&&r?"center":r?"right":"left")+'"'))});for(var u=i[o+1].trim(),d="|"===u[0],p="|"===u[u.length-1],m="th",g=o;g<i.length;++g){u=i[g].trim(),d||"|"!==u[0]||(u=" "+u),p||"|"!==u[u.length-1]||(u+=" "),u=a(u);var b=0;s+=e("tr","<"+m+l[0]+"> "+u.rp(/ *\| */g,function(){return++b," </"+m+"><"+m+l[b]+"> "})+" </"+m+">")+"\n",g==o&&(++g,m="td")}return s=e("table",s,n('class="table"')),c&&(c=e("div",c,n('class="tablecaption"')),s=r("captionAbove","table")?c+s:"\n"+s+c),e("div",s,"class='table'")})}function g(e,t){e=e.rp(/^(\s*)(?:-\s*)?(?:\[ \]|\u2610)(\s+)/gm,"$1\u2610$2"),e=e.rp(/^(\s*)(?:-\s*)?(?:\[x\]|\u2611)(\s+)/gm,"$1\u2611$2");for(var r=/\n\s*\n/.source,n=/[:,]\s*\n/.source,a=RegExp("("+n+"|"+r+"|<p>s*\n|<br/>s*\n?)"+/((?:[ \t]*(?:\d+\.|-|\+|\*|\u2611|\u2610)(?:[ \t]+.+\n(?:[ \t]*\n)?)+)+)/.source,"gm"),i=!0,s={"+":t('class="plus"'),"-":t('class="minus"'),"*":t('class="asterisk"'),"\u2611":t('class="checked"'),"\u2610":t('class="unchecked"')},o=t('class="number"');i;)i=!1,e=e.rp(a,function(e,r,n){var a=r,c=[],l={F:-1};for(n.split("\n").forEach(function(e){var r=e.rp(/^\s*/,""),n=e.length-r.length,u=s[r[0]],d=!!u;u=u||o;var p=/^\d+\.[ \t]/.test(r),m=""===r,g=p?" "+t("start="+r.match(/^\d+/)[0]):"";if((p||d)&&(n+=2),l)if(p||d||!(m||n>=l.F)){if(n!==l.F)if(l.F!==-1&&n<l.F)for(;l&&n<l.F;)c.pop(),a+="\n</li></"+l.tag+">",l=c[c.length-1];else l={F:n,tag:p?"ol":"ul",G:e.ss(0,n-2)},c.push(l),a+="\n<"+l.tag+g+">";else l.F!==-1&&(a+="\n</li>");l?a+="\n"+l.G+"<li "+u+">"+r.rp(/^(\d+\.|-|\+|\*|\u2611|\u2610) /,""):(a+="\n"+e,i=!0)}else a+="\n"+l.G+e;else a+="\n"+e}),a=a.replace(/\s+$/,""),l=c.pop();l;l=c.pop())a+="</li></"+l.tag+">";return a+"\n\n"});return e}function b(t,n){var i=/^(?:[^\|<>\s-\+\*\d].*[12]\d{3}(?!\d).*?|(?:[12]\d{3}(?!\.).*\d.*?)|(?:\d{1,3}(?!\.).*[12]\d{3}(?!\d).*?))/.source,s="("+i+"):"+/[ \t]+([^ \t\n].*)\n/.source,o=/(?:[ \t]*\n)?((?:[ \t]+.+\n(?:[ \t]*\n){0,3})*)/.source,c=s+o,l="\n[ \t]*\n",u=RegExp(c,"gm"),d=n('valign="top"'),p=n('style="width:100px;padding-right:15px" rowspan="2"'),m=n('style="padding-bottom:25px"'),g=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"].map(a),b=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"].map(a),f=b.join("|"),h=["January","February","March","April","May","June","July","August","September","October","November","December"].map(a),y=9;try{var x=0;t=t.rp(RegExp(l+"("+c+"){2,}","gm"),function(t){++x;var a=[],i=!1;t.rp(u,function(t,r,s,o){var c="",l="",u="",h=!1;r=r.trim(),"("===r[0]&&")"===r.slice(-1)&&(r=r.slice(1,-1),h=!0);var v=r.match(RegExp("([0123]?\\d)\\D+([01]?\\d|"+f+")\\D+([12]\\d{3})","i"));if(v)u=v[1],l=v[2],c=v[3];else if(v=r.match(RegExp("([12]\\d{3})\\D+([01]?\\d|"+f+")\\D+([0123]?\\d)","i")))u=v[3],l=v[2],c=v[1];else{if(v=r.match(RegExp("("+f+")\\D+([0123]?\\d)\\D+([12]\\d{3})","i")),!v)throw"Could not parse date";u=v[2],l=v[1],c=v[3]}r=u+" "+l+" "+c;var _=parseInt(l)-1;isNaN(_)&&(_=b.indexOf(l.toLowerCase()));var w=new Date(Date.UTC(parseInt(c),_,parseInt(u),y)),C=w.getUTCDay();return r=g[C]+"<br/>"+r,i=i||0===C||6===C,a.push({date:w,title:s,sourceOrder:a.length,parenthesized:h,text:h?"":e("tr",e("td","<a "+n('class="target" name="schedule'+x+"_"+w.getUTCFullYear()+"-"+(w.getUTCMonth()+1)+"-"+w.getUTCDate()+'"')+"> </a>"+r,p)+e("td",e("b",s)),d)+e("tr",e("td","\n\n"+o,m),d)}),""});var s=r("sortScheduleLists")?a:a.slice(0);a.sort(function(e,t){var r=e.date.getTime(),n=t.date.getTime();return r===n?e.sourceOrder-t.sourceOrder:r-n});var o=864e5,c=(a[a.length-1].date.getTime()-a[0].date.getTime())/o,l=new Date;l=new Date(Date.UTC(l.getUTCFullYear(),l.getUTCMonth(),l.getUTCDate(),y));var v="";if(c>14&&c/a.length<16){var _=n('colspan="2" width="14%" style="padding-top:5px;text-align:center;font-style:italic"'),w=n('width="1%" height="30px" style="text-align:right;border:1px solid #EEE;border-right:none;"'),C=n('width="1%" height="30px" style="color:#BBB;text-align:right;"'),N=n('width="14%" style="border:1px solid #EEE;border-left:none;"'),M=n('class="parenthesized"'),k=a[0].date,A=0,E=!i&&r("hideEmptyWeekends"),S=E?function(e){return e.getUTCDay()>0&&e.getUTCDay()<6}:function(){return!0},T=function(e,t){return oe(e.getTime()-t.getTime())<o/2};for(k=new Date(k.getUTCFullYear(),k.getUTCMonth(),1,y);k.getTime()<a[a.length-1].date.getTime();){for(v+="<table "+n('class="calendar"')+">\n"+e("tr",e("th",h[k.getUTCMonth()]+" "+k.getUTCFullYear(),n('colspan="14"')))+"<tr>",(E?g.slice(1,6):g).forEach(function(t){v+=e("td",t,_)}),v+="</tr>";0!==k.getUTCDay();)k=new Date(k.getTime()-o);if(1!==k.getDate())for(v+="<tr "+d+">";1!==k.getDate();)S(k)&&(v+="<td "+C+">"+k.getUTCDate()+"</td><td> </td>"),k=new Date(k.getTime()+o);do{if(0===k.getUTCDay()&&(v+="<tr "+d+">"),S(k)){var j="";T(k,l)&&(j=n('class="today"'));for(var B="",I=a[A];I&&T(I.date,k);++A,I=a[A])B&&(B+="<br/>"),B+=I.parenthesized?e("span",I.title,M):e("a",I.title,n('href="#schedule'+x+"_"+k.getUTCFullYear()+"-"+(k.getUTCMonth()+1)+"-"+k.getUTCDate()+'"'));v+=B?e("td",e("b",k.getUTCDate()),w+j)+e("td",B,N+j):"<td "+w+j+"></a>"+k.getUTCDate()+"</td><td "+N+j+"> </td>"}6===k.getUTCDay()&&(v+="</tr>"),k=new Date(k.getTime()+o)}while(k.getUTCDate()>1);if(0!==k.getUTCDay()){for(;0!==k.getUTCDay();)S(k)&&(v+="<td "+C+">"+k.getUTCDate()+"</td><td> </td>"),k=new Date(k.getTime()+o);v+="</tr>"}v+="</table><br/>\n",k=new Date(Date.UTC(k.getUTCFullYear(),k.getUTCMonth(),1,y))}}return t="",s.forEach(function(e){t+=e.text}),"\n\n"+v+e("table",t,n('class="schedule"'))+"\n\n"})}catch(e){}return t}function f(t,r){var n=/^.+\n:(?=[ \t])/.source,a="(s*\n|[: \t].+\n)+";return t=t.rp(RegExp("("+n+a+")+","gm"),function(t){var n=[],a=null;t.split("\n").forEach(function(e,t){0===e.trim().length?a&&(a.definition+="\n"):/\s/.test(e[0])||":"===e[0]?(":"===e[0]&&(e=" "+e.ss(1)),a.definition+=e+"\n"):(a={term:e,definition:""},n.push(a))});var i=0;n.forEach(function(e){i=/\n\s*\n/.test(e.definition.trim())?1/0:ie(i,s(o(e.definition)).length)});var c="";if(i<160){var l=r("valign=top");n.forEach(function(t){c+=e("tr",e("td",e("dt",t.term))+e("td",e("dd",e("p",t.definition))),l)}),c=e("table",c)}else n.forEach(function(t){c+=e("dt",t.term)+e("dd",e("p",t.definition))});return e("dl",c)})}function h(t,n){var i="",s="",c=[0],l=0,u=0,d={};t=t.rp(/<h([1-6])>(.*?)<\/h\1>/gi,function(t,r,a){r=parseInt(r),a=a.trim();for(var p=l;p<r;++p)c[p]=0;c.splice(r,l-r),l=r,++c[l-1];var m=c.join("."),g="toc"+m;return d[o(a).trim().toLowerCase()]=m,a=a.rp(/<a\s.*>(.*?)<\/a>/g,"$1"),r<=3&&(i+=Array(r).join(" ")+'<a href="#'+g+'" class="level'+r+'"><span class="tocNumber">'+m+" </span>"+a+"</a><br/>\n",1===r?s+=' · <a href="#'+g+'">'+a+"</a>":++u),e("a"," ",n('class="target" name="'+g+'"'))+t}),s.length>0&&(s=s.ss(10));var p=c[0],m=p+u,g=t.regexIndexOf(/((<a\s+\S+> <\/a>)\s*)*?<h\d>/i);g===-1&&(g=0);var b='<div class="afterTitles"></div>',f=t.indexOf(b);f===-1?f=0:f+=b.length;var h=r("tocStyle"),y="";switch("auto"!==h&&""!==h||(h=m<4&&p<=1||t.length<2048?"none":p<7&&m/p<2.5?"short":g===-1||g/55>m?"medium":"long"),h){case"none":case"":break;case"short":y='<div class="shortTOC">'+s+"</div>";break;case"medium":y='<div class="mediumTOC"><center><b>'+a("Contents")+"</b></center><p>"+i+"</p></div>";break;case"long":f=g,y='<div class="longTOC"><div class="tocHeader">'+a("Contents")+"</div><p>"+i+"</p></div>";break;default:console.log('markdeepOptions.tocStyle = "'+h+'" specified in your document is not a legal value')}return t=t.ss(0,f)+y+t.ss(f),[t,d]}function y(e){return e.rp(/([\.\[\]\(\)\*\+\?\^\$\\\{\}\|])/g,"\\$1")}function x(e,t){return!(!e||!t)&&(e=e.match(/\n/g),t=t.match(/\n/g),e&&e.length>1&&t&&t.length>1)}function v(t,s){function l(e){var t=(T.push(e)-1).toString(S);for(t=t.rp(/x/gi,"z");t.length<j;)t="0"+t;return E+t+E}function u(e){var t=parseInt(e.ss(1,e.length-1).rp(/z/g,"x"),S);return T[t]}function v(e,t){return l(t)}function _(e,t,r){return t+l(r)}function w(t){return function(r,n){return"\n\n</p>\n<a "+l('class="target" name="'+c(o(n))+'"')+"> </a>"+e("h"+t,n)+"\n<p>\n\n"}}function C(t){var n=d(t);if(n.q){var a=/^\n*[ \t]*\[[^\n]+\][ \t]*(?=\n)/;n.u=n.u.rp(a,function(t){return t=t.trim(),t=t.ss(1,t.length-1),n.caption=e("center",e("div",t,l('class="imagecaption"'))),""});var i=M(n.q,n.s),s=r("captionAbove","diagram");return n.p+(n.caption&&s?n.caption:"")+i+(n.caption&&!s?n.caption:"")+"\n"+C(n.u)}return t}var N={},k=0,A={},E="\ue010",S=35,T=[],j=4,B=RegExp(E+"[0-9a-wyz]{"+j+","+j+"}"+E,"g");void 0===s&&(s=!0),void 0!==t.innerHTML&&(t=t.innerHTML),t="\n\n"+t,t=t.rp(/<script\s+type\s*=\s*['"]preformatted['"]\s*>([\s\S]*?)<\/script>/gi,"$1");var I=function(n,a){var i=RegExp("\n([ \\t]*)"+a+"{3,}([ \\t]*\\S*)([ \\t]+.+)?\n([\\s\\S]+?)\n\\1"+a+"{3,}[ \t]*\n([ \\t]*\\[.+(?:\n.+){0,3}\\])?","g");t=t.rp(i,function(t,i,s,o,c,u){u&&(u=u.trim(),u="<div "+l('class="listingcaption '+n+'"')+">"+u.ss(1,u.length-1)+"</div>\n"),s=s?s.trim():s,s=s?[s]:void 0,c=c.rp(RegExp("(^|\n)"+i,"g"),"$1");var d,p,m,g=r("captionAbove","listing"),b="";do{d=p=m=void 0,c=c.rp(RegExp("\\n([ \\t]*)"+a+"{3,}([ \\t]*\\S+)([ \\t]+.+)?\n([\\s\\S]*)"),function(e,t,r,n,a){return p=[r],m=n,d=a,""});var f=hljs.highlightAuto(c,s).value;f=f.rp(/^(.*)$/gm,e("span","$1",'class="line"')),o&&(f=e("div",f,'class="'+o+'"')),b+=f,c=d,s=p,o=m}while(c);return"\n"+i+"</p>"+(u&&g?u:"")+l(e("pre",e("code",b),'class="listing '+n+'"'))+(u&&!g?u:"")+"<p>\n"})};I("tilde","~"),I("backtick","`"),t=t.rp(/(<code\b.*?<\/code>)/gi,v),t=t.rp(/<!--\s[\s\S]+?\s-->/g,""),t=C(t),t=t.rp(/<svg( .*?)?>([\s\S]*?)<\/svg>/gi,function(e,t,r){return"<svg"+l(t)+">"+l(r)+"</svg>"}),t=t.rp(/<style>([\s\S]*?)<\/style>/gi,function(t,r){return e("style",l(r))}),t=t.rp(/<img\s+src=(["'])[\s\S]*?\1\s*>/gi,function(e,t){return"<img "+l(e.ss(5,e.length-1))+">"}),t=t.rp(/(`)(.+?(?:\n.+?)?)`(?!\d)/g,e("code","$2")),t=t.rp(/(<code(?: .*?)?>)([\s\S]*?)<\/code>/gi,function(e,t,r){return l(t+i(r)+"</code>")}),t=t.rp(/(<pre\b[\s\S]*?<\/pre>)/gi,v),t=t.rp(/(<\w[^ \n<>]*?[ \t]+)(.*?)(?=\/?>)/g,_),t=t.rp(/(\$\$[\s\S]+?\$\$)/g,v),t=t.rp(/((?:[^\w\d]))\$(\S(?:[^\$]*?\S(?!US|Can))??)\$(?![\w\d])/g,"$1\\($2\\)"),t=t.rp(/((?:[^\w\d]))\$([ \t][^\$]+?[ \t])\$(?![\w\d])/g,"$1\\($2\\)"),t=t.rp(/(\\\([\s\S]+?\\\))/g,v),t=t.rp(/(\\begin\{equation\}[\s\S]*?\\end\{equation\})/g,v),t=t.rp(/(\\begin\{eqnarray\}[\s\S]*?\\end\{eqnarray\})/g,v),t=t.rp(/(\\begin\{equation\*\}[\s\S]*?\\end\{equation\*\})/g,v),t=t.rp(/(?:^|\s*\n)(.+?)\n[ \t]*={3,}[ \t]*\n/g,w(1)),t=t.rp(/(?:^|\s*\n)(.+?)\n[ \t]*-{3,}[ \t]*\n/g,w(2));for(var L=6;L>0;--L)t=t.rp(RegExp(/^\s*/.source+"#{"+L+","+L+"}(?:[ \t])([^\n]+?)#*[ \t]*\n","gm"),w(L)),t=t.rp(RegExp(/^\s*/.source+"\\(#{"+L+","+L+"}\\)(?:[ \t])([^\n]+?)\\(?#*\\)?\\n[ \t]*\n","gm"),"\n</p>\n"+e("div","$1",l('class="nonumberh'+L+'"'))+"\n<p>\n\n");t=t.rp(/\n[ \t]*((\*|-|_)[ \t]*){3,}[ \t]*\n/g,"\n<hr/>\n"),t=t.rp(/\n[ \t]*\+{5,}[ \t]*\n/g,"\n<hr "+l('class="pagebreak"')+"/>\n"),t=t.rp(/^!!![ \t]*([^\s"'><&\:]*)\:?(.*)\n([ \t]{3,}.*\s*\n)*/gm,function(t,r,n){return t=t.trim(),"\n\n"+e("div",((n?e("div",n,l('class="admonition-title"'))+"\n":"")+t.ss(t.indexOf("\n"))).trim(),l('class="admonition '+r.toLowerCase().trim()+'"'))+"\n\n"});var D=l('class="fancyquote"');t=t.rp(/\n>[ \t]*"(.*(?:\n>.*)*)"[ \t]*(?:\n>[ \t]*)?(\n>[ \t]{2,}\S.*)?\n/g,function(t,r,n){return e("blockquote",e("span",r.rp(/\n>/g,"\n"),D)+(n?e("span",n.rp(/\n>/g,"\n"),l('class="author"')):""),D)});var $=!1;do $=!1,t=t.rp(/(?:\n>.*){2,}/g,function(t){return $=!0,e("blockquote",t.rp(/\n>/g,"\n"))});while($);t=t.rp(/\s*\[\^(\S+)\](?!:)/g,function(e,t){return t=t.toLowerCase().trim(),t in N||(++k,N[t]=k),"<sup><a "+l('href="#endnote-'+t+'"')+">"+N[t]+"</a></sup>"}),t=t.rp(/\[#([^\)\(\[\]\.#\s]+)\](?!:)/g,function(e,t){return t=t.trim(),"[<a "+l('href="#citation-'+t.toLowerCase()+'"')+">"+t+"</a>]"}),t=t.rp(/\n\[#(\S+)\]:[ \t]+((?:[ \t]*\S[^\n]*\n?)*)/g,function(e,t,r){return t=t.trim(),"<div "+l('class="bib"')+">[<a "+l('class="target" name="citation-'+t.toLowerCase()+'"')+"> </a><b>"+t+"</b>] "+r+"</div>"}),t=m(t,l),t=t.rp(/^\[([^\^#].*?)\]:(.*?)$/gm,function(e,t,r){return A[t.toLowerCase().trim()]={link:r.trim(),used:!1},""}),t=t.rp(/(?:<|(?!<)\b)(\S+@(\S+\.)+?\S{2,}?)(?:$|>|(?=<)|(?=\s)(?!>))/g,function(e,t){return"<a "+l('href="mailto:'+t+'"')+">"+t+"</a>"});var z=function(t,r,n){n=n||"";var a,i;return/\.(mp4|m4v|avi|mpg|mov|webm)$/i.test(r)?a="<video "+l('class="markdeep" src="'+r+'"'+n+' width="480px" controls="true"')+"/>":/\.(mp3|mp2|ogg|wav|m4a|aac|flac)$/i.test(r)?a="<audio "+l('class="markdeep" controls '+n+'><source src="'+r+'">')+"</audio>":(i=r.match(/^https:\/\/(?:www\.)?(?:youtube\.com\/\S*?v=|youtu\.be\/)([\w\d-]+)(&.*)?$/i))?a="<iframe "+l('class="markdeep" src="https://www.youtube.com/embed/'+i[1]+'"'+n+' width="480px" height="300px" frameborder="0" allowfullscreen webkitallowfullscreen mozallowfullscreen')+"></iframe>":(i=r.match(/^https:\/\/(?:www\.)?vimeo.com\/\S*?\/([\w\d-]+)$/i))?a="<iframe "+l('class="markdeep" src="https://player.vimeo.com/video/'+i[1]+'"'+n+' width="480px" height="300px" frameborder="0" allowfullscreen webkitallowfullscreen mozallowfullscreen')+"></iframe>":(a="<img "+l('class="markdeep" src="'+r+'"'+n)+" />",a=e("a ",a,l('href="'+r+'" target="_blank"'))),a};t=t.rp(/\b(figure|fig\.|table|tbl\.|listing|lst\.)\s*\[([^\s\]]+)\](?=\()/gi,function(e){return e+"<span/>"}),t=t.rp(/\(http:\/\/g.gravizo.com\/(.*g)\?((?:[^\(\)]|\([^\(\)]*\))*)\)/gi,function(e,t,r){return"(http://g.gravizo.com/"+t+"?"+encodeURIComponent(r)+")"}),t=t.rp(/(^|[^!])\[([^\[\]]+?)\]\(("?)([^<>\s"]+?)\3(\s+[^\)]*?)?\)/g,function(e,t,r,a,i,s){return s=s||"",t+"<a "+l('href="'+i+'"'+s)+">"+r+"</a>"+n(i)}),t=t.rp(/(^|[^!])\[[ \t]*?\]\(("?)([^<>\s"]+?)\2\)/g,function(e,t,r,n){return t+"<a "+l('href="'+n+'"')+">"+n+"</a>"}),t=t.rp(/(!\[[^\[\]]*?\])\[("?)([^"<>\s]+?)\2(\s[^\]]*?)?\]/,function(e,t,r,n,a){n=n.toLowerCase().trim();var i=A[n];if(i){i.used=!0;var s=t+"("+i.link+(i.attribs||"")+")";return s}return console.log("Reference image '"+n+"' never defined"),"?"});var R=l('width="100%"'),q=l('valign="top"');t=t.rp(/(?:\n(?:[ \t]*!\[[^\n]*?\]\(("?)[^<>\s]+?(?:[^\n\)]*?)?\)){2,}[ \t]*)+\n/g,function(t){var r="";return t=t.split("\n"),t.forEach(function(t){t=t.trim(),t&&(r+=e("tr",t.rp(/[ \t]*!\[[^\n]*?\]\([^\)\s]+([^\)]*?)?\)/g,function(t,r){return e("td","\n\n"+t+"\n\n")}),q))}),"\n"+e("table",r,R)+"\n"}),t=t.rp(/(\s*)!\[\]\(("?)([^"<>\s]+?)\2(\s[^\)]*?)?\)(\s*)/g,function(t,r,n,a,i,s){var o=z(t,a,i);return x(r,s)&&(o=e("center",o)),r+o+s});for(var U=!0,O=r("captionAbove","image");U;)U=!1,t=t.rp(/(\s*)!\[([\s\S]+?)?\]\(("?)([^"<>\s]+?)\3(\s[^\)]*?)?\)(\s*)/,function(t,r,a,i,s,o,c){U=!0;var u="",d=x(r,c);o&&!d&&(o=o.rp(/((?:max-)?width)\s*:\s*[^;'"]*/g,function(e,t){return u=e+";",t+":100%"}),o=o.rp(/((?:max-)?width)\s*=\s*('\S+?'|"\S+?")/g,function(e,t,r){return u=t+":"+r.ss(1,r.length-1)+";",'style="'+t+':100%" '}));var p=z(t,s,o);return d?(r+="<center>",c="</center>"+c):u+="float:right;margin:4px 0px 0px 25px;",a=e("div",a+n(s),l('class="imagecaption"')),r+e("div",(O?a:"")+p+(O?"":a),l('class="image" style="'+u+'"'))+c});t=p(t,/\*\*/,"strong",l('class="asterisk"')),t=p(t,/__/,"strong",l('class="underscore"')),t=p(t,/\*/,"em",l('class="asterisk"')),t=p(t,/_/,"em",l('class="underscore"')),t=t.rp(/\~\~([^~].*?)\~\~/g,e("del","$1")),t=t.rp(/(^|[ \t->])(")(?=\w)/gm,"$1"+a("“")),t=t.rp(/([A-Za-z\.,:;\?!=<])(")(?=$|\W)/gm,"$1"+a("”")),t=t.rp(/(\s|^)<==(\s)/g,"$1\u21d0$2"),t=t.rp(/(\s|^)->(\s)/g,"$1→$2"),t=t.rp(/(\s|^)-->(\s)/g,"$1⟶$2"),t=t.rp(/(\s|^)==>(\s)/g,"$1\u21d2$2"),t=t.rp(/(\s|^)<-(\s)/g,"$1←$2"),t=t.rp(/(\s|^)<--(\s)/g,"$1⟵$2"),t=t.rp(/(\s|^)<==>(\s)/g,"$1\u21d4$2"),t=t.rp(/(\s|^)<->(\s)/g,"$1\u2194$2"),t=t.rp(/([^-!\:\|])---([^->\:\|])/g,"$1—$2"),t=t.rp(/([^-!\:\|])--([^->\:\|])/g,"$1—$2"),t=t.rp(/(\d+\s?)x(\s?\d+)/g,"$1×$2"),t=t.rp(/([\s\(\[<\|])-(\d)/g,"$1−$2"),t=t.rp(/(\d) - (\d)/g,"$1 − $2"),t=t.rp(/\^([-+]?\d+)\b/g,"<sup>$1</sup>"),t=t.rp(/(^|\s|\b)\\(pagebreak|newpage)(\b|\s|$)/gi,l('<div style="page-break-after:always"> </div>\n')),t=b(t,l),t=f(t,l),t=g(t,l),t=t.rp(/(\d+?)[ \t-]degree(?:s?)/g,"$1°"),t=t.rp(/(?:<p>)?\n\s*\n+(?!<\/p>)/gi,function(e){return/^<p>/i.test(e)?e:"\n\n</p><p>\n\n"}),t=t.rp(/<p>[\s\n]*<\/p>/gi,""),t=t.rp(/(^|[^!])\[([^\[\]]+?)\]\[(.*?)\]/g,function(e,t,r,n){n.trim()||(n=r),n=n.toLowerCase().trim();var a=A[n];return a?(a.used=!0,t+"<a "+l('href="'+a.link+'"')+">"+r+"</a>"):(console.log("Reference link '"+n+"' never defined"),"?")}),t=t.rp(/\n\[\^(\S+)\]: ((?:.+?\n?)*)/g,function(e,t,r){return t=t.toLowerCase().trim(),t in N?"\n<div "+l('class="endnote"')+"><a "+l('class="target" name="endnote-'+t+'"')+"> </a><sup>"+N[t]+"</sup> "+r+"</div>":"\n"});var F=t.match(/<h([1-6])>(.*?)<\/h\1>/gi);F&&F.forEach(function(e){e=o(e.ss(4,e.length-5)).trim();var r="<a "+l('href="#'+c(e)+'"')+">",n="("+a("section")+"|"+a("subsection")+")",i="(\\b"+y(e)+")";t=t.rp(RegExp(i+"\\s+"+n,"gi"),r+"$1</a> $2"),t=t.rp(RegExp(n+"\\s+"+i,"gi"),"$1 "+r+"$2</a>")});var P={},H={};if(t=t.rp(RegExp(/($|>)\s*/.source+"("+a("figure")+"|"+a("table")+"|"+a("listing")+"|"+a("diagram")+")"+/\s+\[(.+?)\]:/.source,"gim"),function(t,r,a,i){var s=a.toLowerCase(),o=P[s]=(0|P[s])+1,u=s+"_"+c(i.toLowerCase().trim());return H[u]={number:o,used:!1,source:s+" ["+i+"]"},r+e("a"," ",l('class="target" name="'+u+'"'))+e("b",s[0].toUpperCase()+s.ss(1)+" "+o+":",l('style="font-style:normal;"'))+n(i)}),t=t.rp(RegExp("\\b(fig\\.|tbl\\.|lst\\.|"+a("figure")+"|"+a("table")+"|"+a("listing")+"|"+a("diagram")+")\\s+\\[([^\\s\\]]+)\\]","gi"),function(e,t,r){var i=t.toLowerCase();switch(i){case"fig.":i=a("figure").toLowerCase();break;case"tbl.":i=a("table").toLowerCase();break;case"lst.":i=a("listing").toLowerCase()}var s=i+"_"+c(r.toLowerCase().trim()),o=H[s];return o?(o.used=!0,"<a "+l('href="#'+s+'"')+">"+t+" "+o.number+n(r)+"</a>"):(console.log("Reference to undefined '"+i+" ["+r+"]'"),t+" ?")}),t=t.rp(/(?:<|(?!<)\b)(\w{3,6}:\/\/.+?)(?:$|>|(?=<)|(?=\s|\u00A0)(?!<))/g,function(e,t){var r="";return"."==t[t.length-1]&&(t=t.ss(0,t.length-1),r="."),"<a "+("s"!==t[0]&&"p"!==t[0]?l('href="'+t+'" class="url"'):"")+">"+t+"</a>"+r}),!s){var W=/^\s*(?:<\/p><p>)?\s*<strong.*?>([^ \t\*].*?[^ \t\*])<\/strong>(?:<\/p>)?[ \t]*\n/.source,V=/([ {4,}\t][ \t]*\S.*\n)*/.source;t=t.rp(RegExp(W+V,"g"),function(t,r){r=r.trim();var a=t.ss(t.indexOf("\n",t.indexOf("</strong>")));return a=a?a.rp(/[ \t]*(\S.*?)\n/g,'<div class="subtitle"> $1 </div>\n'):"",e("title",o(r))+n(window.location.href,"center")+'<div class="title"> '+r+" </div>\n"+a+'<div class="afterTitles"></div>\n'})}if(t=t.rp(/^\s*<\/p>/,""),!s){var Z=h(t,l);t=Z[0];var G=Z[1];t=t.rp(RegExp("\\b("+a("sec")+"\\.|"+a("section")+"|"+a("subsection")+")\\s\\[(.+?)\\]","gi"),function(e,t,r){var n=G[r.toLowerCase().trim()];return n?t+" <a "+l('href="#toc'+n+'"')+">"+n+"</a>":t+" ?"})}for(;t.indexOf(E)+1;)t=t.rp(B,u);return Object.keys(A).forEach(function(e){A[e].used||console.log("Reference link '["+e+"]' is defined but never used")}),Object.keys(H).forEach(function(e){H[e].used||console.log("'"+H[e].source+"' is never referenced")}),'<span class="md">'+e("p",t)+"</span>"}function _(e){if(Array.from)return Array.from(e);for(var t=[],r=0;r<e.length;++r)t[r]=e[r];return t}function w(e){var t=e.split("\n");t.length>0&&""===t[t.length-1]&&t.pop();var r=0;t.forEach(function(e){r=ie(r,_(e).length)});var n=Array(r+1).join(" "),a="";return t.forEach(function(e){a+=e+n.ss(_(e).length)+"\n"}),a}function C(e){var t=e.split("\n"),r=1/0;if(t.forEach(function(e){if(""!==e.trim()){var t=e.match(/^([ \t]*)/);t&&(r=se(r,t[0].length))}}),0===r)return e;var n="";return t.forEach(function(e){n+=e.ss(r)+"\n"}),n}function N(e){var t=e.charCodeAt(0);return t>=65&&t<=90||t>=97&&t<=122}function M(e,t){function r(e){return F.indexOf(e)+1}function n(e){return P.indexOf(e)!==-1}function a(e){return r(e)||"."===e}function s(e){return r(e)||"'"===e}function o(e){return n(e)||"<"===e||h(e)}function c(e){return n(e)||">"===e||h(e)}function l(e){return H.indexOf(e)+1}function u(e){return W.indexOf(e)+1}function d(e){return"-"===e||r(e)||f(e)}function p(e){return m(e)||f(e)||h(e)}function m(e){return"|"===e||r(e)}function g(e){return"/"===e||r(e)}function b(e){return"\\"===e||r(e)}function f(e){return O.indexOf(e)+1}function h(e){return U.indexOf(e)+1}function y(e){return V.indexOf(e)+1}function x(e,t){return this instanceof x?(void 0===t&&(void 0===e?e=t=0:e instanceof x?(t=e.y,e=e.x):console.error("Vec2 requires one Vec2 or (x, y) as an argument")),this.x=e,this.y=t,void Object.seal(this)):new x(e,t)}function v(e){var t=function(r,n){return void 0===n&&(r instanceof x?(n=r.y,r=r.x):console.error("grid requires either a Vec2 or (x, y)")),r>=0&&r<t.width&&n>=0&&n<t.height?e[n*(t.width+1)+r]:" "};return t._used=[],t.height=e.split("\n").length,"\n"===e[e.length-1]&&--t.height,e=_(e),t.width=e.indexOf("\n"),t.H=function(e,r){void 0===r&&(e instanceof x?(r=e.y,e=e.x):console.error("grid requires either a Vec2 or (x, y)")),e>=0&&e<t.width&&r>=0&&r<t.height&&(t._used[r*(t.width+1)+e]=!0)},t.I=function(e,t){return void 0===t&&(e instanceof x?(t=e.y,e=e.x):console.error("grid requires either a Vec2 or (x, y)")),this._used[t*(this.width+1)+e]===!0},t.J=function(e,r){void 0===r&&(r=e.x,e=e.x);var n=t(e,r-1),i=t(e,r),o=t(e,r+1),c=t(e+1,r-1),l=t(e-1,r-1);return m(i)?a(n)||"^"===n||m(n)||f(n)||s(o)||"v"===o||m(o)||f(o)||h(n)||h(o)||"_"===t(e,r-1)||"_"===l||"_"===c||(a(l)||a(c))&&(s(t(e-1,r+1))||s(t(e+1,r+1))):a(i)||"^"===i?m(o)||f(o)&&"."!==i:s(i)||"v"===i?m(n)||f(n)&&"'"!==i:!!h(i)&&(m(n)||m(o))},t.K=function(e,r){void 0===r&&(r=e.x,e=e.x);var a=t(e-2,r),i=t(e-1,r),s=t(e+0,r),l=t(e+1,r),u=t(e+2,r);return d(s)||d(i)&&f(s)?d(i)?d(l)||c(l)||d(a)||o(a):o(i)?d(l):d(l)&&(d(u)||c(u)):"<"===s?d(l)&&d(u):">"===s?d(i)&&d(a):!!n(s)&&(d(i)&&d(a)||d(l)&&d(u))},t.L=function(e,r){void 0===r&&(r=e.x,e=e.x);var i=t(e,r),o=t(e-1,r-1),c=t(e+1,r+1);return"\\"===i?b(c)||s(c)||h(c)||"v"===c||b(o)||a(o)||h(o)||"^"===o||"/"===t(e,r-1)||"/"===t(e,r+1)||"_"===c||"_"===o:"."===i?"\\"===c:"'"===i?"\\"===o:"^"===i?"\\"===c:"v"===i?"\\"===o:n(i)||h(i)||"|"===i?b(o)||b(c):void 0},t.M=function(e,r){void 0===r&&(r=e.x,e=e.x);var i=t(e,r),o=t(e-1,r+1),c=t(e+1,r-1);return"/"===i&&("\\"===t(e,r-1)||"\\"===t(e,r+1))||(g(i)?g(c)||a(c)||h(c)||"^"===c||"_"===c||g(o)||s(o)||h(o)||"v"===o||"_"===o:"."===i?"/"===o:"'"===i?"/"===c:"^"===i?"/"===o:"v"===i?"/"===c:!(!n(i)&&!h(i)&&"|"!==i)&&(g(o)||g(c)))},t.toString=function(){return e},Object.freeze(t)}function C(e,t,r,n,a){e instanceof x&&t instanceof x||console.error("Path constructor requires at least two Vec2s"),this.A=e,this.B=t,r&&(this.C=r,this.D=n?n:r),this.dashed=a||!1,Object.freeze(this)}function M(){this.da=[]}function k(e){return function(t,r){for(var n=0;n<this.da.length;++n)if(e.call(this.da[n],t,r))return!0}}function A(){this.fa=[]}function E(e,t){function r(t,r,n){var a,i,s=ce(r.x-t.x),o=ce(r.y-t.y);for(a=t.x,i=t.y;a!==r.x||i!==r.y;a+=s,i+=o)if(e(a,i)===n)return!0;return e(a,i)===n}for(var i=0;i<e.width;++i)for(var o=0;o<e.height;++o)if(e.J(i,o)){var c=x(i,o);do e.H(i,o),++o;while(e.J(i,o));var l=x(i,o-1),u=e(c),g=e(c.x,c.y-1);(!n(u)&&("-"===g||"_"===g||"_"===e(c.x-1,c.y-1)||"_"===e(c.x+1,c.y-1)||s(g))||f(g))&&(c.y-=.5);var b=e(l),y=e(l.x,l.y+1);(!n(b)&&("-"===y||a(y))||f(y)||"_"===e(l.x-1,l.y)||"_"===e(l.x+1,l.y))&&(l.y+=.5),c.x===l.x&&c.y===l.y||t.ea(new C(c,l))}else"'"===e(i,o)&&("-"===e(i-1,o)&&"_"===e(i+1,o-1)&&!p(e(i-1,o-1))||"_"===e(i-1,o-1)&&"-"===e(i+1,o)&&!p(e(i+1,o-1)))?t.ea(new C(x(i,o-.5),x(i,o))):"."===e(i,o)&&("_"===e(i-1,o)&&"-"===e(i+1,o)&&!p(e(i+1,o+1))||"-"===e(i-1,o)&&"_"===e(i+1,o)&&!p(e(i-1,o+1)))&&t.ea(new C(x(i,o),x(i,o+.5)));for(var o=0;o<e.height;++o)for(var i=0;i<e.width;++i)if(e.K(i,o)){var c=x(i,o);do e.H(i,o),++i;while(e.K(i,o));var l=x(i-1,o);!n(e(c.x-1,c.y))&&(a(e(c))&&p(e(c.x-1,c.y+1))||s(e(c))&&p(e(c.x-1,c.y-1)))&&++c.x,!n(e(l.x+1,l.y))&&(a(e(l))&&p(e(l.x+1,l.y+1))||s(e(l))&&p(e(l.x+1,l.y-1)))&&--l.x,c.x===l.x&&c.y===l.y||t.ea(new C(c,l))}for(var v=-e.height;v<e.width;++v)for(var i=v,o=0;o<e.height;++o,++i)if(e.L(i,o)){var c=x(i,o);do++i,++o;while(e.L(i,o));var l=x(i-1,o-1);if(r(c,l,"\\")){for(var _=c.x;_<=l.x;++_)e.H(_,c.y+(_-c.x));var w=e(c),u=e(c.x,c.y-1),M=e(c.x-1,c.y-1);"/"===u||"_"===M||"_"===u||!n(w)&&(d(M)||m(M))?(c.x-=.5,c.y-=.5):h(M)&&(c.x-=.25,c.y-=.25);var k=(e(l),e(l.x+1,l.y+1));"/"===e(l.x,l.y+1)||"_"===e(l.x+1,l.y)||"_"===e(l.x-1,l.y)||!n(e(l))&&(d(k)||m(k))?(l.x+=.5,l.y+=.5):h(k)&&(l.x+=.25,l.y+=.25),t.ea(new C(c,l))}}for(var v=-e.height;v<e.width;++v)for(var i=v,o=e.height-1;o>=0;--o,++i)if(e.M(i,o)){var c=x(i,o);do++i,--o;while(e.M(i,o));var l=x(i-1,o+1);if(r(c,l,"/")){for(var _=c.x;_<=l.x;++_)e.H(_,c.y-(_-c.x));var u=e(l.x,l.y-1),A=e(l.x+1,l.y-1);e(l);"\\"===u||"_"===u||"_"===A||!n(e(l))&&(d(A)||m(A))?(l.x+=.5,l.y-=.5):h(A)&&(l.x+=.25,l.y-=.25);var E=e(c.x-1,c.y+1),w=e(c);"\\"===e(c.x,c.y+1)||"_"===e(c.x-1,c.y)||"_"===e(c.x+1,c.y)||!n(e(c))&&(d(E)||m(E))?(c.x-=.5,c.y+=.5):h(E)&&(c.x-=.25,c.y+=.25),t.ea(new C(c,l))}}for(var o=0;o<e.height;++o)for(var i=0;i<e.width;++i){var S=e(i,o);a(S)&&(d(e(i-1,o))&&m(e(i+1,o+1))&&(e.H(i-1,o),e.H(i,o),e.H(i+1,o+1),t.ea(new C(x(i-1,o),x(i+1,o+1),x(i+1.1,o),x(i+1,o+1)))),d(e(i+1,o))&&m(e(i-1,o+1))&&(e.H(i-1,o+1),e.H(i,o),e.H(i+1,o),t.ea(new C(x(i+1,o),x(i-1,o+1),x(i-1.1,o),x(i-1,o+1))))),")"!==S&&!h(S)||"."!==e(i-1,o-1)||"'"!==e(i-1,o+1)||(e.H(i,o),e.H(i-1,o-1),e.H(i-1,o+1),t.ea(new C(x(i-2,o-1),x(i-2,o+1),x(i+.6,o-1),x(i+.6,o+1)))),"("!==S&&!h(S)||"."!==e(i+1,o-1)||"'"!==e(i+1,o+1)||(e.H(i,o),e.H(i+1,o-1),e.H(i+1,o+1),t.ea(new C(x(i+2,o-1),x(i+2,o+1),x(i-.6,o-1),x(i-.6,o+1)))),s(S)&&(d(e(i-1,o))&&m(e(i+1,o-1))&&(e.H(i-1,o),e.H(i,o),e.H(i+1,o-1),t.ea(new C(x(i-1,o),x(i+1,o-1),x(i+1.1,o),x(i+1,o-1)))),d(e(i+1,o))&&m(e(i-1,o-1))&&(e.H(i-1,o-1),e.H(i,o),e.H(i+1,o),t.ea(new C(x(i+1,o),x(i-1,o-1),x(i-1.1,o),x(i-1,o-1)))))}for(var o=0;o<e.height;++o)for(var i=0;i<e.width-2;++i){var T=e(i-1,o);if(!("_"!==e(i,o)||"_"!==e(i+1,o)||N(e(i+2,o))&&"_"!==T||N(T)&&"_"!==e(i+2,o))){var j=e(i-2,o),c=x(i-.5,o+.5);"|"===T||"|"===e(i-1,o+1)||"."===T||"'"===e(i-1,o+1)?(c.x-=.5,"."!==T||"-"!==j&&"."!==j||"("!==e(i-2,o+1)||(c.x-=.5)):"/"===T&&(c.x-=1),"("===T&&"("===j&&"'"===e(i,o+1)&&"."===e(i,o-1)&&(c.x+=.5),T=j=void 0;do e.H(i,o),++i;while("_"===e(i,o));var l=x(i-.5,o+.5),S=e(i,o),B=e(i+1,o),b=e(i,o+1);"|"===S||"|"===b||"."===S||"'"===b?(l.x+=.5,"."!==S||"-"!==B&&"."!==B||")"!==e(i+1,o+1)||(l.x+=.5)):"\\"===S&&(l.x+=1),")"===S&&")"===B&&"'"===e(i-1,o+1)&&"."===e(i-1,o-1)&&(l.x+=-.5),t.ea(new C(c,l))}}}function S(e,t,r){function n(e){return" "===e||/[^a-zA-Z0-9]|[ov]/.test(e)}function a(e,t,r,a){return(n(t)||h(t))&&(n(e)||h(e))&&n(a)&&n(r)}for(var i=0;i<e.width;++i)for(var s=0;s<e.height;++s){var o=e(i,s),c=s;if(f(o))t.Z(i,c-.5)&&t.U(i,c+.5)&&(r.ea(i,c,o),e.H(i,c));else if(h(o)){var d=e(i,c-1),p=e(i,c+1),m=e(i-1,c),g=e(i+1,c);e(i-2,c),e(i+2,c);(t.aa(i-1,c)||t.$(i+1,c)||t.Z(i,c-1)||t.U(i,c+1)||t.U(i,c)||t.Z(i,c)||a(d,p,m,g))&&(r.ea(i,c,o),e.H(i,c))}else if(l(o))r.ea(i,c,o),e.H(i,c);else if(u(o))r.ea(i,c,o),e.H(i,c);else{var b=0;">"===o&&(t.aa(i,c)||t.ca(i,c))?(h(e(i+1,c))&&(b=-.5),r.ea(i+b,c,">",0),e.H(i,c)):"<"===o&&(t.$(i,c)||t.ca(i,c))?(h(e(i-1,c))&&(b=.5),r.ea(i+b,c,">",180),e.H(i,c)):"^"===o?t.U(i,c-.5)?(r.ea(i,c-.5,">",270),e.H(i,c)):t.U(i,c)?(r.ea(i,c,">",270),e.H(i,c)):t.V(i+.5,c-.5)?(r.ea(i+.5,c-.5,">",270+I),e.H(i,c)):t.V(i+.25,c-.25)?(r.ea(i+.25,c-.25,">",270+I),e.H(i,c)):t.V(i,c)?(r.ea(i,c,">",270+I),e.H(i,c)):t.X(i,c)?(r.ea(i,c,o,270-I),e.H(i,c)):t.X(i-.5,c-.5)?(r.ea(i-.5,c-.5,o,270-I),e.H(i,c)):t.X(i-.25,c-.25)?(r.ea(i-.25,c-.25,o,270-I),e.H(i,c)):t.ba(i,c)&&(r.ea(i,c-.5,">",270),e.H(i,c)):"v"===o&&(t.Z(i,c+.5)?(r.ea(i,c+.5,">",90),e.H(i,c)):t.Z(i,c)?(r.ea(i,c,">",90),e.H(i,c)):t.W(i,c)?(r.ea(i,c,">",90+I),e.H(i,c)):t.W(i-.5,c+.5)?(r.ea(i-.5,c+.5,">",90+I),e.H(i,c)):t.W(i-.25,c+.25)?(r.ea(i-.25,c+.25,">",90+I),e.H(i,c)):t.Y(i,c)?(r.ea(i,c,">",90-I),e.H(i,c)):t.Y(i+.5,c+.5)?(r.ea(i+.5,c+.5,">",90-I),e.H(i,c)):t.Y(i+.25,c+.25)?(r.ea(i+.25,c+.25,">",90-I),e.H(i,c)):t.ba(i,c)&&(r.ea(i,c+.5,">",90),e.H(i,c)))}}}e=w(e);var T="\ue004";e=e.rp(/([a-zA-Z]{2})o/g,"$1"+T),e=e.rp(/o([a-zA-Z]{2})/g,T+"$1"),e=e.rp(/([a-zA-Z\ue004])o([a-zA-Z\ue004])/g,"$1"+T+"$2");var j=8,B=2,I=180*Math.atan(1/B)/Math.PI,R=1e-6,q=">v<^",U="o*",O="()",F="+",P=F+".'",H="\u2591\u2592\u2593\u2594\u2589",W="\u25e2\u25e3\u25e4\u25e5",V=q+U+O+H+W;x.prototype.toString=x.prototype.toSVG=function(){return""+this.x*j+","+this.y*j*B+" "};var Z=C.prototype;Z.N=function(){return this.B.x===this.A.x},Z.O=function(){return this.B.y===this.A.y},Z.P=function(){var e=this.B.x-this.A.x,t=this.B.y-this.A.y;return oe(t+e)<R},Z.R=function(){var e=this.B.x-this.A.x,t=this.B.y-this.A.y;return oe(t-e)<R},Z.S=function(){return void 0!==this.C},Z.T=function(e,t){return void 0===t&&(t=e.y,e=e.x),this.A.x===e&&this.A.y===t||this.B.x===e&&this.B.y===t},Z.U=function(e,t){return void 0===t&&(t=e.y,e=e.x),this.N()&&this.A.x===e&&se(this.A.y,this.B.y)===t},Z.V=function(e,t){return!!this.P()&&(void 0===t&&(t=e.y,e=e.x),this.A.y<this.B.y?this.A.x===e&&this.A.y===t:this.B.x===e&&this.B.y===t)},Z.W=function(e,t){return!!this.P()&&(void 0===t&&(t=e.y,e=e.x),this.B.y<this.A.y?this.A.x===e&&this.A.y===t:this.B.x===e&&this.B.y===t)},Z.X=function(e,t){return!!this.R()&&(void 0===t&&(t=e.y,e=e.x),this.A.y<this.B.y?this.A.x===e&&this.A.y===t:this.B.x===e&&this.B.y===t)},Z.Y=function(e,t){return!!this.R()&&(void 0===t&&(t=e.y,e=e.x),this.B.y<this.A.y?this.A.x===e&&this.A.y===t:this.B.x===e&&this.B.y===t)},Z.Z=function(e,t){return void 0===t&&(t=e.y,e=e.x),this.N()&&this.A.x===e&&ie(this.A.y,this.B.y)===t},Z.$=function(e,t){return void 0===t&&(t=e.y,e=e.x),this.O()&&this.A.y===t&&se(this.A.x,this.B.x)===e},Z.aa=function(e,t){return void 0===t&&(t=e.y,e=e.x),this.O()&&this.A.y===t&&ie(this.A.x,this.B.x)===e},Z.ba=function(e,t){return void 0===t&&(t=e.y,e=e.x),this.N()&&this.A.x===e&&se(this.A.y,this.B.y)<=t&&ie(this.A.y,this.B.y)>=t},Z.ca=function(e,t){return void 0===t&&(t=e.y,e=e.x),this.O()&&this.A.y===t&&se(this.A.x,this.B.x)<=e&&ie(this.A.x,this.B.x)>=e},Z.toSVG=function(){var e='<path d="M '+this.A;return e+=this.S()?"C "+this.C+this.D+this.B:"L "+this.B,e+='" style="fill:none;"',this.dashed&&(e+=' stroke-dasharray="3,6"'),e+="/>"};var G=M.prototype;G.ea=function(e){this.da.push(e)},G.U=k(Z.U),G.V=k(Z.V),G.X=k(Z.X),G.W=k(Z.W),G.Y=k(Z.Y),G.Z=k(Z.Z),G.$=k(Z.$),G.aa=k(Z.aa),G.T=k(Z.T),G.ba=k(Z.ba),G.ca=k(Z.ca),G.toSVG=function(){for(var e="",t=0;t<this.da.length;++t)e+=this.da[t].toSVG()+"\n";return e};var J=A.prototype;J.ea=function(e,t,r,n){void 0===r&&(r=t,t=e.y,e=e.x),y(r)||console.error("Illegal decoration character: "+r);var a={C:x(e,t),type:r,angle:n||0};h(r)?this.fa.push(a):this.fa.unshift(a)},J.toSVG=function(){for(var e="",t=0;t<this.fa.length;++t){var r=this.fa[t],n=r.C;if(f(r.type)){var a=")"===r.type?.75:-.75,i=x(n.x,n.y-.5),s=x(n.x,n.y+.5),o=x(n.x+a,n.y-.5),c=x(n.x+a,n.y+.5);e+='<path d="M '+s+" C "+c+o+i+'" style="fill:none;"/>'}else if(h(r.type))e+='<circle cx="'+n.x*j+'" cy="'+n.y*j*B+'" r="'+(j-z)+'" class="'+("*"===r.type?"closed":"open")+'dot"/>';else if(l(r.type)){var d=Math.round(63.75*(3-H.indexOf(r.type)));e+='<rect x="'+(n.x-.5)*j+'" y="'+(n.y-.5)*j*B+'" width="'+j+'" height="'+j*B+'" stroke=none fill="rgb('+d+","+d+","+d+')"/>'}else if(u(r.type)){var p=W.indexOf(r.type),m=.5-(1&p),g=.5-(p>>1);m*=ce(g);var b=x(n.x+m,n.y-g),i=x(n.x+m,n.y+g),s=x(n.x-m,n.y+g);e+='<polygon points="'+b+i+s+'" style="stroke:none"/>\n'}else{var b=x(n.x+1,n.y),i=x(n.x-.5,n.y-.35),s=x(n.x-.5,n.y+.35);e+='<polygon points="'+b+i+s+'" style="stroke:none" transform="rotate('+r.angle+","+n+')"/>\n'}}return e};var K=v(e),Q=new M,X=new A;E(K,Q),S(K,Q,X);var Y='<svg class="diagram" xmlns="http://www.w3.org/2000/svg" version="1.1" height="'+(K.height+1)*j*B+'" width="'+(K.width+1)*j+'"';if("floatleft"===t?Y+=' style="float:left;margin:15px 30px 15px 0;"':"floatright"===t?Y+=' style="float:right;margin:15px 0 15px 30px;"':"center"===t&&(Y+=' style="margin:0 auto 0 auto;"'),Y+='><g transform="translate('+x(1,1)+')">\n',L){Y+='<g style="opacity:0.1">\n';for(var ee=0;ee<K.width;++ee)for(var te=0;te<K.height;++te)Y+='<rect x="'+((ee-.5)*j+1)+'" + y="'+((te-.5)*j*B+2)+'" width="'+(j-2)+'" height="'+(j*B-2)+'" style="fill:',Y+=K.I(ee,te)?"red;":" "===K(ee,te)?"gray;opacity:0.05":"blue;",Y+='"/>\n';Y+="</g>\n"}if(Y+=Q.toSVG(),Y+=X.toSVG(),!$){Y+='<g transform="translate(0,0)">';for(var te=0;te<K.height;++te)for(var ee=0;ee<K.width;++ee){var re=K(ee,te);/[\u2B22\u2B21]/.test(re)?Y+='<text text-anchor="middle" x="'+ee*j+'" y="'+(4+te*j*B)+'" style="font-size:20.5px">'+i(re)+"</text>":" "===re||K.I(ee,te)||(Y+='<text text-anchor="middle" x="'+ee*j+'" y="'+(4+te*j*B)+'">'+i(re)+"</text>")}Y+="</g>"}if(D){Y+='<g transform="translate(2,2)">\n';for(var ee=0;ee<K.width;++ee)for(var te=0;te<K.height;++te){var re=K(ee,te);" "!==re&&(Y+='<text text-anchor="middle" x="'+ee*j+'" y="'+(4+te*j*B)+'" style="fill:#F00;font-family:Menlo,monospace;font-size:12px;text-align:center">'+i(re)+"</text>")}Y+="</g>"}return Y+="</g></svg>",Y=Y.rp(RegExp(T,"g"),"o")}function k(e){return e.search(/markdeep\S*?\.js$/i)!==-1}function A(e){return Array.prototype.slice.call(e)}function E(){var e=document.createElement("script");e.type="text/javascript",e.src=pe,document.getElementsByTagName("head")[0].appendChild(e)}function S(e){return r("detectMath")&&(e.search(/(?:\$\$[\s\S]+\$\$)|(?:\\begin{)/m)!==-1||e.search(/\\\(.*\\\)/)!==-1)}function T(){parent.postMessage(_e+"="+document.body.innerHTML,"*")}function j(e){return e&&e.ss(0,e.lastIndexOf("/")+1)}var B='<div class="markdeepFooter"><i>formatted by <a href="http://casual-effects.com/markdeep" style="color:#999">Markdeep 1.03 </a></i><div style="display:inline-block;font-size:13px;font-family:\'Times New Roman\',serif;vertical-align:middle;transform:translate(-3px,-1px)rotate(135deg);">✒</div></div>',I=String.prototype;I.rp=I.replace,I.ss=I.substring,I.regexIndexOf=function(e,t){var r=this.ss(t||0).search(e);return r>=0?r+(t||0):r};var L=!1,D=L,$=D,z=2,R="*",q=Array(6).join(R);!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(e){function t(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}function r(e){return e.nodeName.toLowerCase()}function n(e,t){var r=e&&e.exec(t);return r&&0===r.index}function a(e){return k.test(e)}function i(e){var t,r,n,i,s=e.className+" ";if(s+=e.parentNode?e.parentNode.className:"",r=A.exec(s))return _(r[1])?r[1]:"no-highlight";for(s=s.split(/\s+/),t=0,n=s.length;n>t;t++)if(i=s[t],a(i)||_(i))return i}function s(e){var t,r={},n=Array.prototype.slice.call(arguments,1);for(t in e)r[t]=e[t];return n.forEach(function(e){for(t in e)r[t]=e[t]}),r}function o(e){var t=[];return function e(n,a){for(var i=n.firstChild;i;i=i.nextSibling)3===i.nodeType?a+=i.nodeValue.length:1===i.nodeType&&(t.push({event:"start",offset:a,node:i}),a=e(i,a),r(i).match(/br|hr|img|input/)||t.push({event:"stop",offset:a,node:i}));return a}(e,0),t}function c(e,n,a){function i(){return e.length&&n.length?e[0].offset!==n[0].offset?e[0].offset<n[0].offset?e:n:"start"===n[0].event?e:n:e.length?e:n}function s(e){function n(e){return" "+e.nodeName+'="'+t(e.value).replace('"',""")+'"'}u+="<"+r(e)+w.map.call(e.attributes,n).join("")+">"}function o(e){u+="</"+r(e)+">"}function c(e){("start"===e.event?s:o)(e.node)}for(var l=0,u="",d=[];e.length||n.length;){var p=i();if(u+=t(a.substring(l,p[0].offset)),l=p[0].offset,p===e){d.reverse().forEach(o);do c(p.splice(0,1)[0]),p=i();while(p===e&&p.length&&p[0].offset===l);d.reverse().forEach(s)}else"start"===p[0].event?d.push(p[0].node):d.pop(),c(p.splice(0,1)[0])}return u+t(a.substr(l))}function l(e){return e.v&&!e.cached_variants&&(e.cached_variants=e.v.map(function(t){return s(e,{v:null},t)})),e.cached_variants||e.eW&&[s(e)]||[e]}function u(e){function t(e){return e&&e.source||e}function r(r,n){return RegExp(t(r),"m"+(e.cI?"i":"")+(n?"g":""))}function n(a,i){if(!a.compiled){if(a.compiled=!0,a.k=a.k||a.bK){var s={},o=function(t,r){e.cI&&(r=r.toLowerCase()),r.split(" ").forEach(function(e){var r=e.split("|");s[r[0]]=[t,r[1]?+r[1]:1]})};"string"==typeof a.k?o("keyword",a.k):C(a.k).forEach(function(e){o(e,a.k[e])}),a.k=s}a.lR=r(a.l||/\w+/,!0),i&&(a.bK&&(a.b="\\b("+a.bK.split(" ").join("|")+")\\b"),a.b||(a.b=/\B|\b/),a.bR=r(a.b),a.e||a.eW||(a.e=/\B|\b/),a.e&&(a.eR=r(a.e)),a.tE=t(a.e)||"",a.eW&&i.tE&&(a.tE+=(a.e?"|":"")+i.tE)),a.i&&(a.iR=r(a.i)),null==a.r&&(a.r=1),a.c||(a.c=[]),a.c=Array.prototype.concat.apply([],a.c.map(function(e){return l("self"===e?a:e)})),a.c.forEach(function(e){n(e,a)}),a.starts&&n(a.starts,i);var c=a.c.map(function(e){return e.bK?"\\.?("+e.b+")\\.?":e.b}).concat([a.tE,a.i]).map(t).filter(Boolean);a.t=c.length?r(c.join("|"),!0):{exec:function(){return null}}}}n(e)}function d(e,r,a,i){function s(e,t){var r,a;for(r=0,a=t.c.length;a>r;r++)if(n(t.c[r].bR,e))return t.c[r]}function o(e,t){if(n(e.eR,t)){for(;e.endsParent&&e.parent;)e=e.parent;return e}return e.eW?o(e.parent,t):void 0}function c(e,t){return!a&&n(t.iR,e)}function l(e,t){var r=x.cI?t[0].toLowerCase():t[0];return e.k.hasOwnProperty(r)&&e.k[r]}function m(e,t,r,n){var a=n?"":T.classPrefix,i='<span class="'+a,s=r?"":S;return i+=e+'">',i+t+s}function g(){var e,r,n,a;if(!w.k)return t(k);for(a="",r=0,w.lR.lastIndex=0,n=w.lR.exec(k);n;)a+=t(k.substring(r,n.index)),e=l(w,n),e?(A+=e[1],a+=m(e[0],t(n[0]))):a+=t(n[0]),r=w.lR.lastIndex,n=w.lR.exec(k);return a+t(k.substr(r))}function b(){var e="string"==typeof w.sL;if(e&&!N[w.sL])return t(k);var r=e?d(w.sL,k,!0,C[w.sL]):p(k,w.sL.length?w.sL:void 0);return w.r>0&&(A+=r.r),e&&(C[w.sL]=r.top),m(r.language,r.value,!1,!0)}function f(){M+=null!=w.sL?b():g(),k=""}function h(e){M+=e.cN?m(e.cN,"",!0):"",w=Object.create(e,{parent:{value:w}})}function y(e,t){if(k+=e,null==t)return f(),0;var r=s(t,w);if(r)return r.skip?k+=t:(r.eB&&(k+=t),f(),r.rB||r.eB||(k=t)),h(r,t),r.rB?0:t.length;var n=o(w,t);if(n){var a=w;a.skip?k+=t:(a.rE||a.eE||(k+=t),f(),a.eE&&(k=t));do w.cN&&(M+=S),w.skip||(A+=w.r),w=w.parent;while(w!==n.parent);return n.starts&&h(n.starts,""),a.rE?0:t.length}if(c(t,w))throw Error('Illegal lexeme "'+t+'" for mode "'+(w.cN||"<unnamed>")+'"');return k+=t,t.length||1}var x=_(e);if(!x)throw Error('Unknown language: "'+e+'"');u(x);var v,w=i||x,C={},M="";for(v=w;v!==x;v=v.parent)v.cN&&(M=m(v.cN,"",!0)+M);var k="",A=0;try{for(var E,j,B=0;w.t.lastIndex=B,E=w.t.exec(r),E;)j=y(r.substring(B,E.index),E[0]),B=E.index+j;for(y(r.substr(B)),v=w;v.parent;v=v.parent)v.cN&&(M+=S);return{r:A,value:M,language:e,top:w}}catch(e){if(e.message&&-1!==e.message.indexOf("Illegal"))return{r:0,value:t(r)};throw e}}function p(e,r){r=r||T.languages||C(N);var n={r:0,value:t(e)},a=n;return r.filter(_).forEach(function(t){var r=d(t,e,!1);r.language=t,r.r>a.r&&(a=r),r.r>n.r&&(a=n,n=r)}),a.language&&(n.second_best=a),n}function m(e){return T.tabReplace||T.useBR?e.replace(E,function(e,t){return T.useBR&&"\n"===e?"<br>":T.tabReplace?t.replace(/\t/g,T.tabReplace):""}):e}function g(e,t,r){var n=t?M[t]:r,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),-1===e.indexOf(n)&&a.push(n),a.join(" ").trim()}function b(e){var t,r,n,s,l,u=i(e);a(u)||(T.useBR?(t=document.createElementNS("http://www.w3.org/1999/xhtml","div"),t.innerHTML=e.innerHTML.replace(/\n/g,"").replace(/<br[ \/]*>/g,"\n")):t=e,l=t.textContent,n=u?d(u,l,!0):p(l),r=o(t),r.length&&(s=document.createElementNS("http://www.w3.org/1999/xhtml","div"),s.innerHTML=n.value,n.value=c(r,o(s),l)),n.value=m(n.value),e.innerHTML=n.value,e.className=g(e.className,u,n.language),e.result={language:n.language,re:n.r},n.second_best&&(e.second_best={language:n.second_best.language,re:n.second_best.r}))}function f(e){T=s(T,e)}function h(){if(!h.called){h.called=!0;var e=document.querySelectorAll("pre code");w.forEach.call(e,b)}}function y(){addEventListener("DOMContentLoaded",h,!1),addEventListener("load",h,!1)}function x(t,r){var n=N[t]=r(e);n.aliases&&n.aliases.forEach(function(e){M[e]=t})}function v(){return C(N)}function _(e){return e=(e||"").toLowerCase(),N[e]||N[M[e]]}var w=[],C=Object.keys,N={},M={},k=/^(no-?highlight|plain|text)$/i,A=/\blang(?:uage)?-([\w-]+)\b/i,E=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,S="</span>",T={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0};return e.highlight=d,e.highlightAuto=p,e.fixMarkup=m,e.highlightBlock=b,e.configure=f,e.initHighlighting=h,e.initHighlightingOnLoad=y,e.g=x,e.h=v,e.j=_,e.inherit=s,e.IR="[a-zA-Z]\\w*",e.UIR="[a-zA-Z_]\\w*",e.NR="\\b\\d+(\\.\\d+)?",e.CNR="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",e.BNR="\\b(0b[01]+)",e.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",e.BE={b:"\\\\[\\s\\S]",r:0},e.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[e.BE]},e.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[e.BE]},e.PWM={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/},e.C=function(t,r,n){var a=e.inherit({cN:"comment",b:t,e:r,c:[]},n||{});return a.c.push(e.PWM),a.c.push({cN:"doctag",b:"(?:TODO|FIXME|NOTE|BUG|XXX):",r:0}),a},e.CLCM=e.C("//","$"),e.CBCM=e.C("/\\*","\\*/"),e.HCM=e.C("#","$"),e.NM={cN:"number",b:e.NR,r:0},e.CNM={cN:"number",b:e.CNR,r:0},e.BNM={cN:"number",b:e.BNR,r:0},e.CSSNM={cN:"number",b:e.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},e.RM={cN:"regexp",b:/\//,e:/\/[gimuy]*/,i:/\n/,c:[e.BE,{b:/\[/,e:/\]/,r:0,c:[e.BE]}]},e.TM={cN:"title",b:e.IR,r:0},e.UTM={cN:"title",b:e.UIR,r:0},e.METHOD_GUARD={b:"\\.\\s*"+e.UIR,r:0},e}),hljs.g("xml",function(e){var t="[A-Za-z0-9\\._:-]+",r={eW:!0,i:/</,r:0,c:[{cN:"attr",b:t,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("<!--","-->",{r:10}),{b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{b:/<\?(php)?/,e:/\?>/,sL:"php",c:[{b:"/\\*",e:"\\*/",skip:!0}]},{cN:"tag",b:"<style(?=\\s|>|$)",e:">",k:{name:"style"},c:[r],starts:{e:"</style>",rE:!0,sL:["css","xml"]}},{cN:"tag",b:"<script(?=\\s|>|$)",e:">",k:{name:"script"},c:[r],starts:{e:"</script>",rE:!0,sL:["actionscript","javascript","handlebars","xml"]}},{cN:"meta",v:[{b:/<\?xml/,e:/\?>/,r:10},{b:/<\?\w+/,e:/\?>/}]},{cN:"tag",b:"</?",e:"/?>",c:[{cN:"name",b:/[^\/><\s]+/,r:0},r]}]}}),hljs.g("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:"^([*+-]|(\\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}]}]}}),hljs.g("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 Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},n={cN:"number",v:[{b:"\\b(0[bB][01]+)"},{b:"\\b(0[oO][0-7]+)"},{b:e.CNR}],r:0},a={cN:"subst",b:"\\$\\{",e:"\\}",k:r,c:[]},i={cN:"string",b:"`",e:"`",c:[e.BE,a]};a.c=[e.ASM,e.QSM,i,n,e.RM];var s=a.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,n,{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}]}]},{b:/</,e:/(\/\w+|\w+\/)>/,sL:"xml",c:[{b:/<\w+\s*\/>/,skip:!0},{b:/<\w+/,e:/(\/\w+|\w+\/)>/,skip:!0,c:[{b:/<\w+\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",e:/\{/,eE:!0}],i:/#(?!!)/}}),hljs.g("lisp",function(e){var t="[a-zA-Z_\\-\\+\\*\\/\\<\\=\\>\\&\\#][a-zA-Z0-9_\\-\\+\\*\\/\\<\\=\\>\\&\\#!]*",r="\\|[^]*?\\|",n="(\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\+|\\-)?\\d+)?",a={cN:"meta",b:"^#!",e:"$"},i={cN:"literal",b:"\\b(t{1}|nil)\\b"},s={cN:"number",v:[{b:n,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)\\("+n+" +"+n,e:"\\)"}]},o=e.inherit(e.QSM,{i:null}),c=e.C(";","$",{r:0}),l={b:"\\*",e:"\\*"},u={cN:"symbol",b:"[:&]"+t},d={b:t,r:0},p={b:r},m={b:"\\(",e:"\\)",c:["self",i,o,s,d]},g={c:[s,o,l,u,m,d],v:[{b:"['`]\\(",e:"\\)"},{b:"\\(quote ",e:"\\)",k:{name:"quote"}},{b:"'"+r}]},b={v:[{b:"'"+t},{b:"#'"+t+"(::"+t+")*"}]},f={b:"\\(\\s*",e:"\\)"},h={eW:!0,r:0};return f.c=[{cN:"name",v:[{b:t},{b:r}]},h],h.c=[g,b,f,i,s,o,c,l,u,p,d],{i:/\S/,c:[s,a,i,o,c,g,b,f,d]}}),hljs.g("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:"'"}]}]}}),hljs.g("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:/["']/}]}]}}),hljs.g("lua",function(e){var t="\\[=*\\[",r="\\]=*\\]",n={b:t,e:r,c:["self"]},a=[e.C("--(?!"+t+")","$"),e.C("--"+t,r,{c:[n],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:a.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:a}].concat(a)},e.CNM,e.ASM,e.QSM,{cN:"string",b:t,e:r,c:[n],r:5}])}}),hljs.g("haskell",function(e){var t={v:[e.C("--","$"),e.C("{-","-}",{c:["self"]})]},r={cN:"meta",b:"{-#",e:"#-}"},n={cN:"meta",b:"^#",e:"$"},a={cN:"type",b:"\\b[A-Z][\\w']*",r:0},i={b:"\\(",e:"\\)",i:'"',c:[r,n,{cN:"type",b:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},e.inherit(e.TM,{b:"[_a-z][\\w']*"}),t]},s={b:"{",e:"}",c:i.c};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:[a,i,t]},{cN:"class",b:"\\b(data|(new)?type)\\b",e:"$",k:"data family type newtype deriving",c:[r,a,i,s,t]},{bK:"default",e:"$",c:[a,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:[a,e.QSM,t]},{cN:"meta",b:"#!\\/usr\\/bin\\/env runhaskell",e:"$"},r,n,e.QSM,e.CNM,a,e.inherit(e.TM,{b:"^[_a-z][\\w']*"}),t,{b:"->|<-"}]}}),hljs.g("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]}]},n={cN:"string",b:/'/,e:/'/};return{aliases:["sh","zsh"],l:/\b-?[a-z\._]+\b/,k:{keyword:"if then else elif fi for while in do done case esac function",literal:"true 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,n,t]}}),hljs.g("java",function(e){var t="[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*",r=t+"(<"+t+"(\\s*,\\s*"+t+")*>)?",n="false synchronized int abstract float private char boolean 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",a="\\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]?",i={cN:"number",b:a,r:0};return{aliases:["jsp"],k:n,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:"("+r+"\\s+)+"+e.UIR+"\\s*\\(",rB:!0,e:/[{;=]/,eE:!0,k:n,c:[{b:e.UIR+"\\s*\\(",rB:!0,r:0,c:[e.UTM]},{cN:"params",b:/\(/,e:/\)/,k:n,r:0,c:[e.ASM,e.QSM,e.CNM,e.CBCM]},e.CLCM,e.CBCM]},i,{cN:"meta",b:"@[A-Za-z]+"}]}}),hljs.g("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 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 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 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},n={b:"->{",e:"}"},a={v:[{b:/\$\d/},{b:/[\$%@](\^\w\b|#\w+(::\w+)*|{\w+}|\w+(::\w*)*)/},{b:/[\$%@][^\s\w{]/,r:0}]},i=[e.BE,r,a],s=[a,e.HCM,e.C("^\\=\\w","\\=cut",{eW:!0}),n,{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,n.c=s,{aliases:["pl","pm"],l:/[\w\.]+/,k:t,c:s}}),hljs.g("coffeescript",function(e){var t={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super yield import export from as default await then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off",built_in:"npm require console print module global window document"},r="[A-Za-z$_][0-9A-Za-z$_]*",n={cN:"subst",b:/#\{/,e:/}/,k:t},a=[e.BNM,e.inherit(e.CNM,{starts:{e:"(\\s*/)?",r:0}}),{cN:"string",v:[{b:/'''/,e:/'''/,c:[e.BE]},{b:/'/,e:/'/,c:[e.BE]},{b:/"""/,e:/"""/,c:[e.BE,n]},{b:/"/,e:/"/,c:[e.BE,n]}]},{cN:"regexp",v:[{b:"///",e:"///",c:[n,e.HCM]},{b:"//[gim]*",r:0},{b:/\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/}]},{b:"@"+r},{sL:"javascript",eB:!0,eE:!0,v:[{b:"```",e:"```"},{b:"`",e:"`"}]}];n.c=a;var i=e.inherit(e.TM,{b:r}),s="(\\(.*\\))?\\s*\\B[-=]>",o={cN:"params",b:"\\([^\\(]",rB:!0,c:[{b:/\(/,e:/\)/,k:t,c:["self"].concat(a)}]};return{aliases:["coffee","cson","iced"],k:t,i:/\/\*/,c:a.concat([e.C("###","###"),e.HCM,{cN:"function",b:"^\\s*"+r+"\\s*=\\s*"+s,e:"[-=]>",rB:!0,c:[i,o]},{b:/[:\(,=]\s*/,r:0,c:[{cN:"function",b:s,e:"[-=]>",rB:!0,c:[o]}]},{cN:"class",bK:"class",e:"$",i:/[:="\[\]]/,c:[{bK:"extends",eW:!0,i:/[:="\[\]]/,c:[i]},i]},{b:r+":",e:":",rB:!0,rE:!0,r:0}])}}),hljs.g("kotlin",function(e){var t={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit initinterface annotation data sealed internal infix operator out by constructor super trait volatile transient native default",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},r={cN:"keyword",b:/\b(break|continue|return|this)\b/,starts:{c:[{cN:"symbol",b:/@\w+/}]}},n={cN:"symbol",b:e.UIR+"@"},a={cN:"subst",b:"\\${",e:"}",c:[e.ASM,e.CNM]},i={cN:"variable",b:"\\$"+e.UIR},s={cN:"string",v:[{b:'"""',e:'"""',c:[i,a]},{b:"'",e:"'",i:/\n/,c:[e.BE]},{b:'"',e:'"',i:/\n/,c:[e.BE,i,a]}]},o={cN:"meta",b:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UIR+")?"},c={cN:"meta",b:"@"+e.UIR,c:[{b:/\(/,e:/\)/,c:[e.inherit(s,{cN:"meta-string"})]}]};return{k:t,c:[e.C("/\\*\\*","\\*/",{r:0,c:[{cN:"doctag",b:"@[A-Za-z]+"}]}),e.CLCM,e.CBCM,r,n,o,c,{cN:"function",bK:"fun",e:"[(]|$",rB:!0,eE:!0,k:t,i:/fun\s+(<.*>)?[^\s\(]+(\s+[^\s\(]+)\s*=/,r:5,c:[{b:e.UIR+"\\s*\\(",rB:!0,r:0,c:[e.UTM]},{cN:"type",b:/</,e:/>/,k:"reified",r:0},{cN:"params",b:/\(/,e:/\)/,endsParent:!0,k:t,r:0,c:[{b:/:/,e:/[=,\/]/,eW:!0,c:[{cN:"type",b:e.UIR},e.CLCM,e.CBCM],r:0},e.CLCM,e.CBCM,o,c,s,e.CNM]},e.CBCM]},{cN:"class",bK:"class interface trait",e:/[:\{(]|$/,eE:!0,i:"extends implements",c:[{bK:"public protected internal private constructor"},e.UTM,{cN:"type",b:/</,e:/>/,eB:!0,eE:!0,r:0},{cN:"type",b:/[,:]\s*/,e:/[<\(,]|$/,eB:!0,rE:!0},o,c]},s,{cN:"meta",b:"^#!/usr/bin/env",e:"$",i:"\n"},e.CNM]}}),hljs.g("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"},n={cN:"doctag",b:"@[A-Za-z]+"},a={b:"#<",e:">"},i=[e.C("#","$",{c:[n]}),e.C("^\\=begin","^\\=end",{c:[n],r:10}),e.C("^__END__","\\n$")],s={cN:"subst",b:"#\\{",e:"}",k:r},o={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+$/}]},c={cN:"params",b:"\\(",e:"\\)",endsParent:!0,k:r},l=[o,a,{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}),c].concat(i)},{b:e.IR+"::"},{cN:"symbol",b:e.UIR+"(\\!|\\?)?:",r:0},{cN:"symbol",b:":(?!\\s)",c:[o,{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:[a,{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,c.c=l;var u="[>?]>",d="[\\w#]+\\(\\w+\\):\\d+:\\d+>",p="(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>",m=[{Lines 1–5 of 7. Load more
/**See http://casual-effects.com/markdeep for @license and documentation. markdeep.min.js 1.03 (C) 2018 Morgan McGuire highlight.min.js 9.12.0 (C) 2017 Ivan Sagalaev https://highlightjs.org/*/ !function(){"use strict";function e(e,t,r){return"<"+e+(r?" "+r:"")+">"+t+"</"+e+">"}function t(e){try{var t=document.createElement("canvas"),r=t.getContext("2d");return r.font="10pt "+e,r.measureText("M").width}catch(e){return 10}}function r(e,t){if(window.markdeepOptions&&void 0!==window.markdeepOptions[e]){var r=window.markdeepOptions[e];return t?(r=r[t],void 0!==r?r:ne[e][t]):window.markdeepOptions[e]}return void 0!==ne[e]?t?ne[e][t]:ne[e]:void console.warn('Illegal option: "'+e+'"')}function n(t,n){if(r("showLabels")){var a=" {\xa0"+t+"\xa0}";return n?e(n,a):a}return""}function a(e){return r("lang").keyword[e.toLowerCase()]||e}function i(e){return(e+"").rp(/&/g,"&").rp(/</g,"<").rp(/>/g,">").rp(/"/g,""")}function s(e){return e.rp(/</g,"<").rp(/>/g,">").rp(/"/g,'"').rp(/'/g,"'").rp(/–/g,"\u2013").rp(/—/g,"---").rp(/&/g,"&")}function o(e){return e.rp(/<.*?>/g,"")}function c(e){return encodeURI(e.rp(/\s/g,"").toLowerCase())}function l(){for(var t="",r=1;r<=6;++r){t+=".md h"+r+"::before {\ncontent:";for(var n=1;n<=r;++n)t+="counter(h"+n+') "'+(n<r?".":" ")+'"';t+=";\ncounter-increment: h"+r+";margin-right:10px}"}return e("style",t)}function u(e,t){var r=e.innerHTML;return r=r.rp(/<\/https?:.*>|<\/ftp:.*>|<\/[^ "\t\n>]+@[^ "\t\n>]+>/gi,""),r=r.rp(/<(https?|ftp): (.*?)>/gi,function(e,t,r){var n="<"+t+"://"+r.rp(/=""\s/g,"/");return'=""'===n.ss(n.length-3)&&(n=n.ss(0,n.length-3)),n=n.rp(/"/g,""),n+">"}),r=r.rp(/<style class=["']fallback["']>.*?<\/style>/gim,""),r=s(r)}function d(e){function t(e,t,r){for(var n=t,a=t;a<r;++a,++n){var i=e.charCodeAt(n);n+=i>=55296&&i<=56319}return n-r}function r(){u=e.indexOf("\n",s)+1,d=t(e,s+o,s+c),p=p||/\S/.test(e.ss(s,s+o)),g=g||"*"!==e[s+c+d],m=!g&&(m||/[^ *\t\n\r]/.test(e.ss(s+c+d+1,u)))}for(var n={p:e,q:"",s:"",u:""},a=e.indexOf(q);a>=0;a=e.indexOf(q,a+q.length)){var i,s=ie(0,e.lastIndexOf("\n",a))+1,o=a-s;for(i=a+q.length;e[i]===R;++i);var c=i-s-1,l={p:e.ss(0,s),q:"",s:"center",u:e.ss(s,a).rp(/[ \t]+$/," ")},u=0,d=0,p=!1,m=!1,g=!1;r();for(var b=!0,f=i;b;){if(s=u,r(),0===s)return n;if(p?l.s="floatright":m&&(l.s="floatleft"),e[s+o]!==R||p&&e[s+c+d]!==R)b=!1;else{var h;for(h=o;h<c&&e[s+h]===R;++h);var y=s+o,x=s+c+d;if(!p){var v=e.indexOf("\n",y);v!==-1&&(x=Math.min(x,v))}if(l.u+=e.ss(f,y).rp(/^[ \t]*[ \t]/," ").rp(/[ \t][ \t]*$/," "),h===c)return l.u+=e.ss(s+c+1),l;l.q+=e.ss(y+1,x)+"\n",f=x+1}}}return n}function p(e,t,r,n){var a=t.source,i="[^ \\t\\n"+a+"]",s="([^A-Za-z0-9])("+a+")("+i+".*?(\\n.+?)*?)"+a+"(?![A-Za-z0-9])";return e.rp(RegExp(s,"g"),"$1<"+r+(n?" "+n:"")+">$3</"+r+">")}function m(t,n){function a(e){return e.trim().rp(/^\||\|$/g,"")}var i=/(?:\n[ \t]*(?:(?:\|?[ \t\S]+?(?:\|[ \t\S]+?)+\|?)|\|[ \t\S]+\|)(?=\n))/.source,s=/\n[ \t]*(?:(?:\|? *\:?-+\:?(?: *\| *\:?-+\:?)+ *\|?|)|\|[\:-]+\|)(?=\n)/.source,o=/\n[ \t]*\[[^\n\|]+\][ \t]*(?=\n)/.source,c=RegExp(i+s+i+"+("+o+")?","g");return t=t.rp(c,function(t){var i=t.split("\n"),s="",o=""===i[0]?1:0,c=i[i.length-1].trim();c.length>3&&"["===c[0]&&"]"===c[c.length-1]?(i.pop(),c=c.ss(1,c.length-1)):c=void 0;var l=[];a(i[o+1]).rp(/:?-+:?/g,function(e){var t=":"===e[0],r=":"===e[e.length-1];l.push(n(' style="text-align:'+(t&&r?"center":r?"right":"left")+'"'))});for(var u=i[o+1].trim(),d="|"===u[0],p="|"===u[u.length-1],m="th",g=o;g<i.length;++g){u=i[g].trim(),d||"|"!==u[0]||(u=" "+u),p||"|"!==u[u.length-1]||(u+=" "),u=a(u);var b=0;s+=e("tr","<"+m+l[0]+"> "+u.rp(/ *\| */g,function(){return++b," </"+m+"><"+m+l[b]+"> "})+" </"+m+">")+"\n",g==o&&(++g,m="td")}return s=e("table",s,n('class="table"')),c&&(c=e("div",c,n('class="tablecaption"')),s=r("captionAbove","table")?c+s:"\n"+s+c),e("div",s,"class='table'")})}function g(e,t){e=e.rp(/^(\s*)(?:-\s*)?(?:\[ \]|\u2610)(\s+)/gm,"$1\u2610$2"),e=e.rp(/^(\s*)(?:-\s*)?(?:\[x\]|\u2611)(\s+)/gm,"$1\u2611$2");for(var r=/\n\s*\n/.source,n=/[:,]\s*\n/.source,a=RegExp("("+n+"|"+r+"|<p>s*\n|<br/>s*\n?)"+/((?:[ \t]*(?:\d+\.|-|\+|\*|\u2611|\u2610)(?:[ \t]+.+\n(?:[ \t]*\n)?)+)+)/.source,"gm"),i=!0,s={"+":t('class="plus"'),"-":t('class="minus"'),"*":t('class="asterisk"'),"\u2611":t('class="checked"'),"\u2610":t('class="unchecked"')},o=t('class="number"');i;)i=!1,e=e.rp(a,function(e,r,n){var a=r,c=[],l={F:-1};for(n.split("\n").forEach(function(e){var r=e.rp(/^\s*/,""),n=e.length-r.length,u=s[r[0]],d=!!u;u=u||o;var p=/^\d+\.[ \t]/.test(r),m=""===r,g=p?" "+t("start="+r.match(/^\d+/)[0]):"";if((p||d)&&(n+=2),l)if(p||d||!(m||n>=l.F)){if(n!==l.F)if(l.F!==-1&&n<l.F)for(;l&&n<l.F;)c.pop(),a+="\n</li></"+l.tag+">",l=c[c.length-1];else l={F:n,tag:p?"ol":"ul",G:e.ss(0,n-2)},c.push(l),a+="\n<"+l.tag+g+">";else l.F!==-1&&(a+="\n</li>");l?a+="\n"+l.G+"<li "+u+">"+r.rp(/^(\d+\.|-|\+|\*|\u2611|\u2610) /,""):(a+="\n"+e,i=!0)}else a+="\n"+l.G+e;else a+="\n"+e}),a=a.replace(/\s+$/,""),l=c.pop();l;l=c.pop())a+="</li></"+l.tag+">";return a+"\n\n"});return e}function b(t,n){var i=/^(?:[^\|<>\s-\+\*\d].*[12]\d{3}(?!\d).*?|(?:[12]\d{3}(?!\.).*\d.*?)|(?:\d{1,3}(?!\.).*[12]\d{3}(?!\d).*?))/.source,s="("+i+"):"+/[ \t]+([^ \t\n].*)\n/.source,o=/(?:[ \t]*\n)?((?:[ \t]+.+\n(?:[ \t]*\n){0,3})*)/.source,c=s+o,l="\n[ \t]*\n",u=RegExp(c,"gm"),d=n('valign="top"'),p=n('style="width:100px;padding-right:15px" rowspan="2"'),m=n('style="padding-bottom:25px"'),g=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"].map(a),b=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"].map(a),f=b.join("|"),h=["January","February","March","April","May","June","July","August","September","October","November","December"].map(a),y=9;try{var x=0;t=t.rp(RegExp(l+"("+c+"){2,}","gm"),function(t){++x;var a=[],i=!1;t.rp(u,function(t,r,s,o){var c="",l="",u="",h=!1;r=r.trim(),"("===r[0]&&")"===r.slice(-1)&&(r=r.slice(1,-1),h=!0);var v=r.match(RegExp("([0123]?\\d)\\D+([01]?\\d|"+f+")\\D+([12]\\d{3})","i"));if(v)u=v[1],l=v[2],c=v[3];else if(v=r.match(RegExp("([12]\\d{3})\\D+([01]?\\d|"+f+")\\D+([0123]?\\d)","i")))u=v[3],l=v[2],c=v[1];else{if(v=r.match(RegExp("("+f+")\\D+([0123]?\\d)\\D+([12]\\d{3})","i")),!v)throw"Could not parse date";u=v[2],l=v[1],c=v[3]}r=u+" "+l+" "+c;var _=parseInt(l)-1;isNaN(_)&&(_=b.indexOf(l.toLowerCase()));var w=new Date(Date.UTC(parseInt(c),_,parseInt(u),y)),C=w.getUTCDay();return r=g[C]+"<br/>"+r,i=i||0===C||6===C,a.push({date:w,title:s,sourceOrder:a.length,parenthesized:h,text:h?"":e("tr",e("td","<a "+n('class="target" name="schedule'+x+"_"+w.getUTCFullYear()+"-"+(w.getUTCMonth()+1)+"-"+w.getUTCDate()+'"')+"> </a>"+r,p)+e("td",e("b",s)),d)+e("tr",e("td","\n\n"+o,m),d)}),""});var s=r("sortScheduleLists")?a:a.slice(0);a.sort(function(e,t){var r=e.date.getTime(),n=t.date.getTime();return r===n?e.sourceOrder-t.sourceOrder:r-n});var o=864e5,c=(a[a.length-1].date.getTime()-a[0].date.getTime())/o,l=new Date;l=new Date(Date.UTC(l.getUTCFullYear(),l.getUTCMonth(),l.getUTCDate(),y));var v="";if(c>14&&c/a.length<16){var _=n('colspan="2" width="14%" style="padding-top:5px;text-align:center;font-style:italic"'),w=n('width="1%" height="30px" style="text-align:right;border:1px solid #EEE;border-right:none;"'),C=n('width="1%" height="30px" style="color:#BBB;text-align:right;"'),N=n('width="14%" style="border:1px solid #EEE;border-left:none;"'),M=n('class="parenthesized"'),k=a[0].date,A=0,E=!i&&r("hideEmptyWeekends"),S=E?function(e){return e.getUTCDay()>0&&e.getUTCDay()<6}:function(){return!0},T=function(e,t){return oe(e.getTime()-t.getTime())<o/2};for(k=new Date(k.getUTCFullYear(),k.getUTCMonth(),1,y);k.getTime()<a[a.length-1].date.getTime();){for(v+="<table "+n('class="calendar"')+">\n"+e("tr",e("th",h[k.getUTCMonth()]+" "+k.getUTCFullYear(),n('colspan="14"')))+"<tr>",(E?g.slice(1,6):g).forEach(function(t){v+=e("td",t,_)}),v+="</tr>";0!==k.getUTCDay();)k=new Date(k.getTime()-o);if(1!==k.getDate())for(v+="<tr "+d+">";1!==k.getDate();)S(k)&&(v+="<td "+C+">"+k.getUTCDate()+"</td><td> </td>"),k=new Date(k.getTime()+o);do{if(0===k.getUTCDay()&&(v+="<tr "+d+">"),S(k)){var j="";T(k,l)&&(j=n('class="today"'));for(var B="",I=a[A];I&&T(I.date,k);++A,I=a[A])B&&(B+="<br/>"),B+=I.parenthesized?e("span",I.title,M):e("a",I.title,n('href="#schedule'+x+"_"+k.getUTCFullYear()+"-"+(k.getUTCMonth()+1)+"-"+k.getUTCDate()+'"'));v+=B?e("td",e("b",k.getUTCDate()),w+j)+e("td",B,N+j):"<td "+w+j+"></a>"+k.getUTCDate()+"</td><td "+N+j+"> </td>"}6===k.getUTCDay()&&(v+="</tr>"),k=new Date(k.getTime()+o)}while(k.getUTCDate()>1);if(0!==k.getUTCDay()){for(;0!==k.getUTCDay();)S(k)&&(v+="<td "+C+">"+k.getUTCDate()+"</td><td> </td>"),k=new Date(k.getTime()+o);v+="</tr>"}v+="</table><br/>\n",k=new Date(Date.UTC(k.getUTCFullYear(),k.getUTCMonth(),1,y))}}return t="",s.forEach(function(e){t+=e.text}),"\n\n"+v+e("table",t,n('class="schedule"'))+"\n\n"})}catch(e){}return t}function f(t,r){var n=/^.+\n:(?=[ \t])/.source,a="(s*\n|[: \t].+\n)+";return t=t.rp(RegExp("("+n+a+")+","gm"),function(t){var n=[],a=null;t.split("\n").forEach(function(e,t){0===e.trim().length?a&&(a.definition+="\n"):/\s/.test(e[0])||":"===e[0]?(":"===e[0]&&(e=" "+e.ss(1)),a.definition+=e+"\n"):(a={term:e,definition:""},n.push(a))});var i=0;n.forEach(function(e){i=/\n\s*\n/.test(e.definition.trim())?1/0:ie(i,s(o(e.definition)).length)});var c="";if(i<160){var l=r("valign=top");n.forEach(function(t){c+=e("tr",e("td",e("dt",t.term))+e("td",e("dd",e("p",t.definition))),l)}),c=e("table",c)}else n.forEach(function(t){c+=e("dt",t.term)+e("dd",e("p",t.definition))});return e("dl",c)})}function h(t,n){var i="",s="",c=[0],l=0,u=0,d={};t=t.rp(/<h([1-6])>(.*?)<\/h\1>/gi,function(t,r,a){r=parseInt(r),a=a.trim();for(var p=l;p<r;++p)c[p]=0;c.splice(r,l-r),l=r,++c[l-1];var m=c.join("."),g="toc"+m;return d[o(a).trim().toLowerCase()]=m,a=a.rp(/<a\s.*>(.*?)<\/a>/g,"$1"),r<=3&&(i+=Array(r).join(" ")+'<a href="#'+g+'" class="level'+r+'"><span class="tocNumber">'+m+" </span>"+a+"</a><br/>\n",1===r?s+=' · <a href="#'+g+'">'+a+"</a>":++u),e("a"," ",n('class="target" name="'+g+'"'))+t}),s.length>0&&(s=s.ss(10));var p=c[0],m=p+u,g=t.regexIndexOf(/((<a\s+\S+> <\/a>)\s*)*?<h\d>/i);g===-1&&(g=0);var b='<div class="afterTitles"></div>',f=t.indexOf(b);f===-1?f=0:f+=b.length;var h=r("tocStyle"),y="";switch("auto"!==h&&""!==h||(h=m<4&&p<=1||t.length<2048?"none":p<7&&m/p<2.5?"short":g===-1||g/55>m?"medium":"long"),h){case"none":case"":break;case"short":y='<div class="shortTOC">'+s+"</div>";break;case"medium":y='<div class="mediumTOC"><center><b>'+a("Contents")+"</b></center><p>"+i+"</p></div>";break;case"long":f=g,y='<div class="longTOC"><div class="tocHeader">'+a("Contents")+"</div><p>"+i+"</p></div>";break;default:console.log('markdeepOptions.tocStyle = "'+h+'" specified in your document is not a legal value')}return t=t.ss(0,f)+y+t.ss(f),[t,d]}function y(e){return e.rp(/([\.\[\]\(\)\*\+\?\^\$\\\{\}\|])/g,"\\$1")}function x(e,t){return!(!e||!t)&&(e=e.match(/\n/g),t=t.match(/\n/g),e&&e.length>1&&t&&t.length>1)}function v(t,s){function l(e){var t=(T.push(e)-1).toString(S);for(t=t.rp(/x/gi,"z");t.length<j;)t="0"+t;return E+t+E}function u(e){var t=parseInt(e.ss(1,e.length-1).rp(/z/g,"x"),S);return T[t]}function v(e,t){return l(t)}function _(e,t,r){return t+l(r)}function w(t){return function(r,n){return"\n\n</p>\n<a "+l('class="target" name="'+c(o(n))+'"')+"> </a>"+e("h"+t,n)+"\n<p>\n\n"}}function C(t){var n=d(t);if(n.q){var a=/^\n*[ \t]*\[[^\n]+\][ \t]*(?=\n)/;n.u=n.u.rp(a,function(t){return t=t.trim(),t=t.ss(1,t.length-1),n.caption=e("center",e("div",t,l('class="imagecaption"'))),""});var i=M(n.q,n.s),s=r("captionAbove","diagram");return n.p+(n.caption&&s?n.caption:"")+i+(n.caption&&!s?n.caption:"")+"\n"+C(n.u)}return t}var N={},k=0,A={},E="\ue010",S=35,T=[],j=4,B=RegExp(E+"[0-9a-wyz]{"+j+","+j+"}"+E,"g");void 0===s&&(s=!0),void 0!==t.innerHTML&&(t=t.innerHTML),t="\n\n"+t,t=t.rp(/<script\s+type\s*=\s*['"]preformatted['"]\s*>([\s\S]*?)<\/script>/gi,"$1");var I=function(n,a){var i=RegExp("\n([ \\t]*)"+a+"{3,}([ \\t]*\\S*)([ \\t]+.+)?\n([\\s\\S]+?)\n\\1"+a+"{3,}[ \t]*\n([ \\t]*\\[.+(?:\n.+){0,3}\\])?","g");t=t.rp(i,function(t,i,s,o,c,u){u&&(u=u.trim(),u="<div "+l('class="listingcaption '+n+'"')+">"+u.ss(1,u.length-1)+"</div>\n"),s=s?s.trim():s,s=s?[s]:void 0,c=c.rp(RegExp("(^|\n)"+i,"g"),"$1");var d,p,m,g=r("captionAbove","listing"),b="";do{d=p=m=void 0,c=c.rp(RegExp("\\n([ \\t]*)"+a+"{3,}([ \\t]*\\S+)([ \\t]+.+)?\n([\\s\\S]*)"),function(e,t,r,n,a){return p=[r],m=n,d=a,""});var f=hljs.highlightAuto(c,s).value;f=f.rp(/^(.*)$/gm,e("span","$1",'class="line"')),o&&(f=e("div",f,'class="'+o+'"')),b+=f,c=d,s=p,o=m}while(c);return"\n"+i+"</p>"+(u&&g?u:"")+l(e("pre",e("code",b),'class="listing '+n+'"'))+(u&&!g?u:"")+"<p>\n"})};I("tilde","~"),I("backtick","`"),t=t.rp(/(<code\b.*?<\/code>)/gi,v),t=t.rp(/<!--\s[\s\S]+?\s-->/g,""),t=C(t),t=t.rp(/<svg( .*?)?>([\s\S]*?)<\/svg>/gi,function(e,t,r){return"<svg"+l(t)+">"+l(r)+"</svg>"}),t=t.rp(/<style>([\s\S]*?)<\/style>/gi,function(t,r){return e("style",l(r))}),t=t.rp(/<img\s+src=(["'])[\s\S]*?\1\s*>/gi,function(e,t){return"<img "+l(e.ss(5,e.length-1))+">"}),t=t.rp(/(`)(.+?(?:\n.+?)?)`(?!\d)/g,e("code","$2")),t=t.rp(/(<code(?: .*?)?>)([\s\S]*?)<\/code>/gi,function(e,t,r){return l(t+i(r)+"</code>")}),t=t.rp(/(<pre\b[\s\S]*?<\/pre>)/gi,v),t=t.rp(/(<\w[^ \n<>]*?[ \t]+)(.*?)(?=\/?>)/g,_),t=t.rp(/(\$\$[\s\S]+?\$\$)/g,v),t=t.rp(/((?:[^\w\d]))\$(\S(?:[^\$]*?\S(?!US|Can))??)\$(?![\w\d])/g,"$1\\($2\\)"),t=t.rp(/((?:[^\w\d]))\$([ \t][^\$]+?[ \t])\$(?![\w\d])/g,"$1\\($2\\)"),t=t.rp(/(\\\([\s\S]+?\\\))/g,v),t=t.rp(/(\\begin\{equation\}[\s\S]*?\\end\{equation\})/g,v),t=t.rp(/(\\begin\{eqnarray\}[\s\S]*?\\end\{eqnarray\})/g,v),t=t.rp(/(\\begin\{equation\*\}[\s\S]*?\\end\{equation\*\})/g,v),t=t.rp(/(?:^|\s*\n)(.+?)\n[ \t]*={3,}[ \t]*\n/g,w(1)),t=t.rp(/(?:^|\s*\n)(.+?)\n[ \t]*-{3,}[ \t]*\n/g,w(2));for(var L=6;L>0;--L)t=t.rp(RegExp(/^\s*/.source+"#{"+L+","+L+"}(?:[ \t])([^\n]+?)#*[ \t]*\n","gm"),w(L)),t=t.rp(RegExp(/^\s*/.source+"\\(#{"+L+","+L+"}\\)(?:[ \t])([^\n]+?)\\(?#*\\)?\\n[ \t]*\n","gm"),"\n</p>\n"+e("div","$1",l('class="nonumberh'+L+'"'))+"\n<p>\n\n");t=t.rp(/\n[ \t]*((\*|-|_)[ \t]*){3,}[ \t]*\n/g,"\n<hr/>\n"),t=t.rp(/\n[ \t]*\+{5,}[ \t]*\n/g,"\n<hr "+l('class="pagebreak"')+"/>\n"),t=t.rp(/^!!![ \t]*([^\s"'><&\:]*)\:?(.*)\n([ \t]{3,}.*\s*\n)*/gm,function(t,r,n){return t=t.trim(),"\n\n"+e("div",((n?e("div",n,l('class="admonition-title"'))+"\n":"")+t.ss(t.indexOf("\n"))).trim(),l('class="admonition '+r.toLowerCase().trim()+'"'))+"\n\n"});var D=l('class="fancyquote"');t=t.rp(/\n>[ \t]*"(.*(?:\n>.*)*)"[ \t]*(?:\n>[ \t]*)?(\n>[ \t]{2,}\S.*)?\n/g,function(t,r,n){return e("blockquote",e("span",r.rp(/\n>/g,"\n"),D)+(n?e("span",n.rp(/\n>/g,"\n"),l('class="author"')):""),D)});var $=!1;do $=!1,t=t.rp(/(?:\n>.*){2,}/g,function(t){return $=!0,e("blockquote",t.rp(/\n>/g,"\n"))});while($);t=t.rp(/\s*\[\^(\S+)\](?!:)/g,function(e,t){return t=t.toLowerCase().trim(),t in N||(++k,N[t]=k),"<sup><a "+l('href="#endnote-'+t+'"')+">"+N[t]+"</a></sup>"}),t=t.rp(/\[#([^\)\(\[\]\.#\s]+)\](?!:)/g,function(e,t){return t=t.trim(),"[<a "+l('href="#citation-'+t.toLowerCase()+'"')+">"+t+"</a>]"}),t=t.rp(/\n\[#(\S+)\]:[ \t]+((?:[ \t]*\S[^\n]*\n?)*)/g,function(e,t,r){return t=t.trim(),"<div "+l('class="bib"')+">[<a "+l('class="target" name="citation-'+t.toLowerCase()+'"')+"> </a><b>"+t+"</b>] "+r+"</div>"}),t=m(t,l),t=t.rp(/^\[([^\^#].*?)\]:(.*?)$/gm,function(e,t,r){return A[t.toLowerCase().trim()]={link:r.trim(),used:!1},""}),t=t.rp(/(?:<|(?!<)\b)(\S+@(\S+\.)+?\S{2,}?)(?:$|>|(?=<)|(?=\s)(?!>))/g,function(e,t){return"<a "+l('href="mailto:'+t+'"')+">"+t+"</a>"});var z=function(t,r,n){n=n||"";var a,i;return/\.(mp4|m4v|avi|mpg|mov|webm)$/i.test(r)?a="<video "+l('class="markdeep" src="'+r+'"'+n+' width="480px" controls="true"')+"/>":/\.(mp3|mp2|ogg|wav|m4a|aac|flac)$/i.test(r)?a="<audio "+l('class="markdeep" controls '+n+'><source src="'+r+'">')+"</audio>":(i=r.match(/^https:\/\/(?:www\.)?(?:youtube\.com\/\S*?v=|youtu\.be\/)([\w\d-]+)(&.*)?$/i))?a="<iframe "+l('class="markdeep" src="https://www.youtube.com/embed/'+i[1]+'"'+n+' width="480px" height="300px" frameborder="0" allowfullscreen webkitallowfullscreen mozallowfullscreen')+"></iframe>":(i=r.match(/^https:\/\/(?:www\.)?vimeo.com\/\S*?\/([\w\d-]+)$/i))?a="<iframe "+l('class="markdeep" src="https://player.vimeo.com/video/'+i[1]+'"'+n+' width="480px" height="300px" frameborder="0" allowfullscreen webkitallowfullscreen mozallowfullscreen')+"></iframe>":(a="<img "+l('class="markdeep" src="'+r+'"'+n)+" />",a=e("a ",a,l('href="'+r+'" target="_blank"'))),a};t=t.rp(/\b(figure|fig\.|table|tbl\.|listing|lst\.)\s*\[([^\s\]]+)\](?=\()/gi,function(e){return e+"<span/>"}),t=t.rp(/\(http:\/\/g.gravizo.com\/(.*g)\?((?:[^\(\)]|\([^\(\)]*\))*)\)/gi,function(e,t,r){return"(http://g.gravizo.com/"+t+"?"+encodeURIComponent(r)+")"}),t=t.rp(/(^|[^!])\[([^\[\]]+?)\]\(("?)([^<>\s"]+?)\3(\s+[^\)]*?)?\)/g,function(e,t,r,a,i,s){return s=s||"",t+"<a "+l('href="'+i+'"'+s)+">"+r+"</a>"+n(i)}),t=t.rp(/(^|[^!])\[[ \t]*?\]\(("?)([^<>\s"]+?)\2\)/g,function(e,t,r,n){return t+"<a "+l('href="'+n+'"')+">"+n+"</a>"}),t=t.rp(/(!\[[^\[\]]*?\])\[("?)([^"<>\s]+?)\2(\s[^\]]*?)?\]/,function(e,t,r,n,a){n=n.toLowerCase().trim();var i=A[n];if(i){i.used=!0;var s=t+"("+i.link+(i.attribs||"")+")";return s}return console.log("Reference image '"+n+"' never defined"),"?"});var R=l('width="100%"'),q=l('valign="top"');t=t.rp(/(?:\n(?:[ \t]*!\[[^\n]*?\]\(("?)[^<>\s]+?(?:[^\n\)]*?)?\)){2,}[ \t]*)+\n/g,function(t){var r="";return t=t.split("\n"),t.forEach(function(t){t=t.trim(),t&&(r+=e("tr",t.rp(/[ \t]*!\[[^\n]*?\]\([^\)\s]+([^\)]*?)?\)/g,function(t,r){return e("td","\n\n"+t+"\n\n")}),q))}),"\n"+e("table",r,R)+"\n"}),t=t.rp(/(\s*)!\[\]\(("?)([^"<>\s]+?)\2(\s[^\)]*?)?\)(\s*)/g,function(t,r,n,a,i,s){var o=z(t,a,i);return x(r,s)&&(o=e("center",o)),r+o+s});for(var U=!0,O=r("captionAbove","image");U;)U=!1,t=t.rp(/(\s*)!\[([\s\S]+?)?\]\(("?)([^"<>\s]+?)\3(\s[^\)]*?)?\)(\s*)/,function(t,r,a,i,s,o,c){U=!0;var u="",d=x(r,c);o&&!d&&(o=o.rp(/((?:max-)?width)\s*:\s*[^;'"]*/g,function(e,t){return u=e+";",t+":100%"}),o=o.rp(/((?:max-)?width)\s*=\s*('\S+?'|"\S+?")/g,function(e,t,r){return u=t+":"+r.ss(1,r.length-1)+";",'style="'+t+':100%" '}));var p=z(t,s,o);return d?(r+="<center>",c="</center>"+c):u+="float:right;margin:4px 0px 0px 25px;",a=e("div",a+n(s),l('class="imagecaption"')),r+e("div",(O?a:"")+p+(O?"":a),l('class="image" style="'+u+'"'))+c});t=p(t,/\*\*/,"strong",l('class="asterisk"')),t=p(t,/__/,"strong",l('class="underscore"')),t=p(t,/\*/,"em",l('class="asterisk"')),t=p(t,/_/,"em",l('class="underscore"')),t=t.rp(/\~\~([^~].*?)\~\~/g,e("del","$1")),t=t.rp(/(^|[ \t->])(")(?=\w)/gm,"$1"+a("“")),t=t.rp(/([A-Za-z\.,:;\?!=<])(")(?=$|\W)/gm,"$1"+a("”")),t=t.rp(/(\s|^)<==(\s)/g,"$1\u21d0$2"),t=t.rp(/(\s|^)->(\s)/g,"$1→$2"),t=t.rp(/(\s|^)-->(\s)/g,"$1⟶$2"),t=t.rp(/(\s|^)==>(\s)/g,"$1\u21d2$2"),t=t.rp(/(\s|^)<-(\s)/g,"$1←$2"),t=t.rp(/(\s|^)<--(\s)/g,"$1⟵$2"),t=t.rp(/(\s|^)<==>(\s)/g,"$1\u21d4$2"),t=t.rp(/(\s|^)<->(\s)/g,"$1\u2194$2"),t=t.rp(/([^-!\:\|])---([^->\:\|])/g,"$1—$2"),t=t.rp(/([^-!\:\|])--([^->\:\|])/g,"$1—$2"),t=t.rp(/(\d+\s?)x(\s?\d+)/g,"$1×$2"),t=t.rp(/([\s\(\[<\|])-(\d)/g,"$1−$2"),t=t.rp(/(\d) - (\d)/g,"$1 − $2"),t=t.rp(/\^([-+]?\d+)\b/g,"<sup>$1</sup>"),t=t.rp(/(^|\s|\b)\\(pagebreak|newpage)(\b|\s|$)/gi,l('<div style="page-break-after:always"> </div>\n')),t=b(t,l),t=f(t,l),t=g(t,l),t=t.rp(/(\d+?)[ \t-]degree(?:s?)/g,"$1°"),t=t.rp(/(?:<p>)?\n\s*\n+(?!<\/p>)/gi,function(e){return/^<p>/i.test(e)?e:"\n\n</p><p>\n\n"}),t=t.rp(/<p>[\s\n]*<\/p>/gi,""),t=t.rp(/(^|[^!])\[([^\[\]]+?)\]\[(.*?)\]/g,function(e,t,r,n){n.trim()||(n=r),n=n.toLowerCase().trim();var a=A[n];return a?(a.used=!0,t+"<a "+l('href="'+a.link+'"')+">"+r+"</a>"):(console.log("Reference link '"+n+"' never defined"),"?")}),t=t.rp(/\n\[\^(\S+)\]: ((?:.+?\n?)*)/g,function(e,t,r){return t=t.toLowerCase().trim(),t in N?"\n<div "+l('class="endnote"')+"><a "+l('class="target" name="endnote-'+t+'"')+"> </a><sup>"+N[t]+"</sup> "+r+"</div>":"\n"});var F=t.match(/<h([1-6])>(.*?)<\/h\1>/gi);F&&F.forEach(function(e){e=o(e.ss(4,e.length-5)).trim();var r="<a "+l('href="#'+c(e)+'"')+">",n="("+a("section")+"|"+a("subsection")+")",i="(\\b"+y(e)+")";t=t.rp(RegExp(i+"\\s+"+n,"gi"),r+"$1</a> $2"),t=t.rp(RegExp(n+"\\s+"+i,"gi"),"$1 "+r+"$2</a>")});var P={},H={};if(t=t.rp(RegExp(/($|>)\s*/.source+"("+a("figure")+"|"+a("table")+"|"+a("listing")+"|"+a("diagram")+")"+/\s+\[(.+?)\]:/.source,"gim"),function(t,r,a,i){var s=a.toLowerCase(),o=P[s]=(0|P[s])+1,u=s+"_"+c(i.toLowerCase().trim());return H[u]={number:o,used:!1,source:s+" ["+i+"]"},r+e("a"," ",l('class="target" name="'+u+'"'))+e("b",s[0].toUpperCase()+s.ss(1)+" "+o+":",l('style="font-style:normal;"'))+n(i)}),t=t.rp(RegExp("\\b(fig\\.|tbl\\.|lst\\.|"+a("figure")+"|"+a("table")+"|"+a("listing")+"|"+a("diagram")+")\\s+\\[([^\\s\\]]+)\\]","gi"),function(e,t,r){var i=t.toLowerCase();switch(i){case"fig.":i=a("figure").toLowerCase();break;case"tbl.":i=a("table").toLowerCase();break;case"lst.":i=a("listing").toLowerCase()}var s=i+"_"+c(r.toLowerCase().trim()),o=H[s];return o?(o.used=!0,"<a "+l('href="#'+s+'"')+">"+t+" "+o.number+n(r)+"</a>"):(console.log("Reference to undefined '"+i+" ["+r+"]'"),t+" ?")}),t=t.rp(/(?:<|(?!<)\b)(\w{3,6}:\/\/.+?)(?:$|>|(?=<)|(?=\s|\u00A0)(?!<))/g,function(e,t){var r="";return"."==t[t.length-1]&&(t=t.ss(0,t.length-1),r="."),"<a "+("s"!==t[0]&&"p"!==t[0]?l('href="'+t+'" class="url"'):"")+">"+t+"</a>"+r}),!s){var W=/^\s*(?:<\/p><p>)?\s*<strong.*?>([^ \t\*].*?[^ \t\*])<\/strong>(?:<\/p>)?[ \t]*\n/.source,V=/([ {4,}\t][ \t]*\S.*\n)*/.source;t=t.rp(RegExp(W+V,"g"),function(t,r){r=r.trim();var a=t.ss(t.indexOf("\n",t.indexOf("</strong>")));return a=a?a.rp(/[ \t]*(\S.*?)\n/g,'<div class="subtitle"> $1 </div>\n'):"",e("title",o(r))+n(window.location.href,"center")+'<div class="title"> '+r+" </div>\n"+a+'<div class="afterTitles"></div>\n'})}if(t=t.rp(/^\s*<\/p>/,""),!s){var Z=h(t,l);t=Z[0];var G=Z[1];t=t.rp(RegExp("\\b("+a("sec")+"\\.|"+a("section")+"|"+a("subsection")+")\\s\\[(.+?)\\]","gi"),function(e,t,r){var n=G[r.toLowerCase().trim()];return n?t+" <a "+l('href="#toc'+n+'"')+">"+n+"</a>":t+" ?"})}for(;t.indexOf(E)+1;)t=t.rp(B,u);return Object.keys(A).forEach(function(e){A[e].used||console.log("Reference link '["+e+"]' is defined but never used")}),Object.keys(H).forEach(function(e){H[e].used||console.log("'"+H[e].source+"' is never referenced")}),'<span class="md">'+e("p",t)+"</span>"}function _(e){if(Array.from)return Array.from(e);for(var t=[],r=0;r<e.length;++r)t[r]=e[r];return t}function w(e){var t=e.split("\n");t.length>0&&""===t[t.length-1]&&t.pop();var r=0;t.forEach(function(e){r=ie(r,_(e).length)});var n=Array(r+1).join(" "),a="";return t.forEach(function(e){a+=e+n.ss(_(e).length)+"\n"}),a}function C(e){var t=e.split("\n"),r=1/0;if(t.forEach(function(e){if(""!==e.trim()){var t=e.match(/^([ \t]*)/);t&&(r=se(r,t[0].length))}}),0===r)return e;var n="";return t.forEach(function(e){n+=e.ss(r)+"\n"}),n}function N(e){var t=e.charCodeAt(0);return t>=65&&t<=90||t>=97&&t<=122}function M(e,t){function r(e){return F.indexOf(e)+1}function n(e){return P.indexOf(e)!==-1}function a(e){return r(e)||"."===e}function s(e){return r(e)||"'"===e}function o(e){return n(e)||"<"===e||h(e)}function c(e){return n(e)||">"===e||h(e)}function l(e){return H.indexOf(e)+1}function u(e){return W.indexOf(e)+1}function d(e){return"-"===e||r(e)||f(e)}function p(e){return m(e)||f(e)||h(e)}function m(e){return"|"===e||r(e)}function g(e){return"/"===e||r(e)}function b(e){return"\\"===e||r(e)}function f(e){return O.indexOf(e)+1}function h(e){return U.indexOf(e)+1}function y(e){return V.indexOf(e)+1}function x(e,t){return this instanceof x?(void 0===t&&(void 0===e?e=t=0:e instanceof x?(t=e.y,e=e.x):console.error("Vec2 requires one Vec2 or (x, y) as an argument")),this.x=e,this.y=t,void Object.seal(this)):new x(e,t)}function v(e){var t=function(r,n){return void 0===n&&(r instanceof x?(n=r.y,r=r.x):console.error("grid requires either a Vec2 or (x, y)")),r>=0&&r<t.width&&n>=0&&n<t.height?e[n*(t.width+1)+r]:" "};return t._used=[],t.height=e.split("\n").length,"\n"===e[e.length-1]&&--t.height,e=_(e),t.width=e.indexOf("\n"),t.H=function(e,r){void 0===r&&(e instanceof x?(r=e.y,e=e.x):console.error("grid requires either a Vec2 or (x, y)")),e>=0&&e<t.width&&r>=0&&r<t.height&&(t._used[r*(t.width+1)+e]=!0)},t.I=function(e,t){return void 0===t&&(e instanceof x?(t=e.y,e=e.x):console.error("grid requires either a Vec2 or (x, y)")),this._used[t*(this.width+1)+e]===!0},t.J=function(e,r){void 0===r&&(r=e.x,e=e.x);var n=t(e,r-1),i=t(e,r),o=t(e,r+1),c=t(e+1,r-1),l=t(e-1,r-1);return m(i)?a(n)||"^"===n||m(n)||f(n)||s(o)||"v"===o||m(o)||f(o)||h(n)||h(o)||"_"===t(e,r-1)||"_"===l||"_"===c||(a(l)||a(c))&&(s(t(e-1,r+1))||s(t(e+1,r+1))):a(i)||"^"===i?m(o)||f(o)&&"."!==i:s(i)||"v"===i?m(n)||f(n)&&"'"!==i:!!h(i)&&(m(n)||m(o))},t.K=function(e,r){void 0===r&&(r=e.x,e=e.x);var a=t(e-2,r),i=t(e-1,r),s=t(e+0,r),l=t(e+1,r),u=t(e+2,r);return d(s)||d(i)&&f(s)?d(i)?d(l)||c(l)||d(a)||o(a):o(i)?d(l):d(l)&&(d(u)||c(u)):"<"===s?d(l)&&d(u):">"===s?d(i)&&d(a):!!n(s)&&(d(i)&&d(a)||d(l)&&d(u))},t.L=function(e,r){void 0===r&&(r=e.x,e=e.x);var i=t(e,r),o=t(e-1,r-1),c=t(e+1,r+1);return"\\"===i?b(c)||s(c)||h(c)||"v"===c||b(o)||a(o)||h(o)||"^"===o||"/"===t(e,r-1)||"/"===t(e,r+1)||"_"===c||"_"===o:"."===i?"\\"===c:"'"===i?"\\"===o:"^"===i?"\\"===c:"v"===i?"\\"===o:n(i)||h(i)||"|"===i?b(o)||b(c):void 0},t.M=function(e,r){void 0===r&&(r=e.x,e=e.x);var i=t(e,r),o=t(e-1,r+1),c=t(e+1,r-1);return"/"===i&&("\\"===t(e,r-1)||"\\"===t(e,r+1))||(g(i)?g(c)||a(c)||h(c)||"^"===c||"_"===c||g(o)||s(o)||h(o)||"v"===o||"_"===o:"."===i?"/"===o:"'"===i?"/"===c:"^"===i?"/"===o:"v"===i?"/"===c:!(!n(i)&&!h(i)&&"|"!==i)&&(g(o)||g(c)))},t.toString=function(){return e},Object.freeze(t)}function C(e,t,r,n,a){e instanceof x&&t instanceof x||console.error("Path constructor requires at least two Vec2s"),this.A=e,this.B=t,r&&(this.C=r,this.D=n?n:r),this.dashed=a||!1,Object.freeze(this)}function M(){this.da=[]}function k(e){return function(t,r){for(var n=0;n<this.da.length;++n)if(e.call(this.da[n],t,r))return!0}}function A(){this.fa=[]}function E(e,t){function r(t,r,n){var a,i,s=ce(r.x-t.x),o=ce(r.y-t.y);for(a=t.x,i=t.y;a!==r.x||i!==r.y;a+=s,i+=o)if(e(a,i)===n)return!0;return e(a,i)===n}for(var i=0;i<e.width;++i)for(var o=0;o<e.height;++o)if(e.J(i,o)){var c=x(i,o);do e.H(i,o),++o;while(e.J(i,o));var l=x(i,o-1),u=e(c),g=e(c.x,c.y-1);(!n(u)&&("-"===g||"_"===g||"_"===e(c.x-1,c.y-1)||"_"===e(c.x+1,c.y-1)||s(g))||f(g))&&(c.y-=.5);var b=e(l),y=e(l.x,l.y+1);(!n(b)&&("-"===y||a(y))||f(y)||"_"===e(l.x-1,l.y)||"_"===e(l.x+1,l.y))&&(l.y+=.5),c.x===l.x&&c.y===l.y||t.ea(new C(c,l))}else"'"===e(i,o)&&("-"===e(i-1,o)&&"_"===e(i+1,o-1)&&!p(e(i-1,o-1))||"_"===e(i-1,o-1)&&"-"===e(i+1,o)&&!p(e(i+1,o-1)))?t.ea(new C(x(i,o-.5),x(i,o))):"."===e(i,o)&&("_"===e(i-1,o)&&"-"===e(i+1,o)&&!p(e(i+1,o+1))||"-"===e(i-1,o)&&"_"===e(i+1,o)&&!p(e(i-1,o+1)))&&t.ea(new C(x(i,o),x(i,o+.5)));for(var o=0;o<e.height;++o)for(var i=0;i<e.width;++i)if(e.K(i,o)){var c=x(i,o);do e.H(i,o),++i;while(e.K(i,o));var l=x(i-1,o);!n(e(c.x-1,c.y))&&(a(e(c))&&p(e(c.x-1,c.y+1))||s(e(c))&&p(e(c.x-1,c.y-1)))&&++c.x,!n(e(l.x+1,l.y))&&(a(e(l))&&p(e(l.x+1,l.y+1))||s(e(l))&&p(e(l.x+1,l.y-1)))&&--l.x,c.x===l.x&&c.y===l.y||t.ea(new C(c,l))}for(var v=-e.height;v<e.width;++v)for(var i=v,o=0;o<e.height;++o,++i)if(e.L(i,o)){var c=x(i,o);do++i,++o;while(e.L(i,o));var l=x(i-1,o-1);if(r(c,l,"\\")){for(var _=c.x;_<=l.x;++_)e.H(_,c.y+(_-c.x));var w=e(c),u=e(c.x,c.y-1),M=e(c.x-1,c.y-1);"/"===u||"_"===M||"_"===u||!n(w)&&(d(M)||m(M))?(c.x-=.5,c.y-=.5):h(M)&&(c.x-=.25,c.y-=.25);var k=(e(l),e(l.x+1,l.y+1));"/"===e(l.x,l.y+1)||"_"===e(l.x+1,l.y)||"_"===e(l.x-1,l.y)||!n(e(l))&&(d(k)||m(k))?(l.x+=.5,l.y+=.5):h(k)&&(l.x+=.25,l.y+=.25),t.ea(new C(c,l))}}for(var v=-e.height;v<e.width;++v)for(var i=v,o=e.height-1;o>=0;--o,++i)if(e.M(i,o)){var c=x(i,o);do++i,--o;while(e.M(i,o));var l=x(i-1,o+1);if(r(c,l,"/")){for(var _=c.x;_<=l.x;++_)e.H(_,c.y-(_-c.x));var u=e(l.x,l.y-1),A=e(l.x+1,l.y-1);e(l);"\\"===u||"_"===u||"_"===A||!n(e(l))&&(d(A)||m(A))?(l.x+=.5,l.y-=.5):h(A)&&(l.x+=.25,l.y-=.25);var E=e(c.x-1,c.y+1),w=e(c);"\\"===e(c.x,c.y+1)||"_"===e(c.x-1,c.y)||"_"===e(c.x+1,c.y)||!n(e(c))&&(d(E)||m(E))?(c.x-=.5,c.y+=.5):h(E)&&(c.x-=.25,c.y+=.25),t.ea(new C(c,l))}}for(var o=0;o<e.height;++o)for(var i=0;i<e.width;++i){var S=e(i,o);a(S)&&(d(e(i-1,o))&&m(e(i+1,o+1))&&(e.H(i-1,o),e.H(i,o),e.H(i+1,o+1),t.ea(new C(x(i-1,o),x(i+1,o+1),x(i+1.1,o),x(i+1,o+1)))),d(e(i+1,o))&&m(e(i-1,o+1))&&(e.H(i-1,o+1),e.H(i,o),e.H(i+1,o),t.ea(new C(x(i+1,o),x(i-1,o+1),x(i-1.1,o),x(i-1,o+1))))),")"!==S&&!h(S)||"."!==e(i-1,o-1)||"'"!==e(i-1,o+1)||(e.H(i,o),e.H(i-1,o-1),e.H(i-1,o+1),t.ea(new C(x(i-2,o-1),x(i-2,o+1),x(i+.6,o-1),x(i+.6,o+1)))),"("!==S&&!h(S)||"."!==e(i+1,o-1)||"'"!==e(i+1,o+1)||(e.H(i,o),e.H(i+1,o-1),e.H(i+1,o+1),t.ea(new C(x(i+2,o-1),x(i+2,o+1),x(i-.6,o-1),x(i-.6,o+1)))),s(S)&&(d(e(i-1,o))&&m(e(i+1,o-1))&&(e.H(i-1,o),e.H(i,o),e.H(i+1,o-1),t.ea(new C(x(i-1,o),x(i+1,o-1),x(i+1.1,o),x(i+1,o-1)))),d(e(i+1,o))&&m(e(i-1,o-1))&&(e.H(i-1,o-1),e.H(i,o),e.H(i+1,o),t.ea(new C(x(i+1,o),x(i-1,o-1),x(i-1.1,o),x(i-1,o-1)))))}for(var o=0;o<e.height;++o)for(var i=0;i<e.width-2;++i){var T=e(i-1,o);if(!("_"!==e(i,o)||"_"!==e(i+1,o)||N(e(i+2,o))&&"_"!==T||N(T)&&"_"!==e(i+2,o))){var j=e(i-2,o),c=x(i-.5,o+.5);"|"===T||"|"===e(i-1,o+1)||"."===T||"'"===e(i-1,o+1)?(c.x-=.5,"."!==T||"-"!==j&&"."!==j||"("!==e(i-2,o+1)||(c.x-=.5)):"/"===T&&(c.x-=1),"("===T&&"("===j&&"'"===e(i,o+1)&&"."===e(i,o-1)&&(c.x+=.5),T=j=void 0;do e.H(i,o),++i;while("_"===e(i,o));var l=x(i-.5,o+.5),S=e(i,o),B=e(i+1,o),b=e(i,o+1);"|"===S||"|"===b||"."===S||"'"===b?(l.x+=.5,"."!==S||"-"!==B&&"."!==B||")"!==e(i+1,o+1)||(l.x+=.5)):"\\"===S&&(l.x+=1),")"===S&&")"===B&&"'"===e(i-1,o+1)&&"."===e(i-1,o-1)&&(l.x+=-.5),t.ea(new C(c,l))}}}function S(e,t,r){function n(e){return" "===e||/[^a-zA-Z0-9]|[ov]/.test(e)}function a(e,t,r,a){return(n(t)||h(t))&&(n(e)||h(e))&&n(a)&&n(r)}for(var i=0;i<e.width;++i)for(var s=0;s<e.height;++s){var o=e(i,s),c=s;if(f(o))t.Z(i,c-.5)&&t.U(i,c+.5)&&(r.ea(i,c,o),e.H(i,c));else if(h(o)){var d=e(i,c-1),p=e(i,c+1),m=e(i-1,c),g=e(i+1,c);e(i-2,c),e(i+2,c);(t.aa(i-1,c)||t.$(i+1,c)||t.Z(i,c-1)||t.U(i,c+1)||t.U(i,c)||t.Z(i,c)||a(d,p,m,g))&&(r.ea(i,c,o),e.H(i,c))}else if(l(o))r.ea(i,c,o),e.H(i,c);else if(u(o))r.ea(i,c,o),e.H(i,c);else{var b=0;">"===o&&(t.aa(i,c)||t.ca(i,c))?(h(e(i+1,c))&&(b=-.5),r.ea(i+b,c,">",0),e.H(i,c)):"<"===o&&(t.$(i,c)||t.ca(i,c))?(h(e(i-1,c))&&(b=.5),r.ea(i+b,c,">",180),e.H(i,c)):"^"===o?t.U(i,c-.5)?(r.ea(i,c-.5,">",270),e.H(i,c)):t.U(i,c)?(r.ea(i,c,">",270),e.H(i,c)):t.V(i+.5,c-.5)?(r.ea(i+.5,c-.5,">",270+I),e.H(i,c)):t.V(i+.25,c-.25)?(r.ea(i+.25,c-.25,">",270+I),e.H(i,c)):t.V(i,c)?(r.ea(i,c,">",270+I),e.H(i,c)):t.X(i,c)?(r.ea(i,c,o,270-I),e.H(i,c)):t.X(i-.5,c-.5)?(r.ea(i-.5,c-.5,o,270-I),e.H(i,c)):t.X(i-.25,c-.25)?(r.ea(i-.25,c-.25,o,270-I),e.H(i,c)):t.ba(i,c)&&(r.ea(i,c-.5,">",270),e.H(i,c)):"v"===o&&(t.Z(i,c+.5)?(r.ea(i,c+.5,">",90),e.H(i,c)):t.Z(i,c)?(r.ea(i,c,">",90),e.H(i,c)):t.W(i,c)?(r.ea(i,c,">",90+I),e.H(i,c)):t.W(i-.5,c+.5)?(r.ea(i-.5,c+.5,">",90+I),e.H(i,c)):t.W(i-.25,c+.25)?(r.ea(i-.25,c+.25,">",90+I),e.H(i,c)):t.Y(i,c)?(r.ea(i,c,">",90-I),e.H(i,c)):t.Y(i+.5,c+.5)?(r.ea(i+.5,c+.5,">",90-I),e.H(i,c)):t.Y(i+.25,c+.25)?(r.ea(i+.25,c+.25,">",90-I),e.H(i,c)):t.ba(i,c)&&(r.ea(i,c+.5,">",90),e.H(i,c)))}}}e=w(e);var T="\ue004";e=e.rp(/([a-zA-Z]{2})o/g,"$1"+T),e=e.rp(/o([a-zA-Z]{2})/g,T+"$1"),e=e.rp(/([a-zA-Z\ue004])o([a-zA-Z\ue004])/g,"$1"+T+"$2");var j=8,B=2,I=180*Math.atan(1/B)/Math.PI,R=1e-6,q=">v<^",U="o*",O="()",F="+",P=F+".'",H="\u2591\u2592\u2593\u2594\u2589",W="\u25e2\u25e3\u25e4\u25e5",V=q+U+O+H+W;x.prototype.toString=x.prototype.toSVG=function(){return""+this.x*j+","+this.y*j*B+" "};var Z=C.prototype;Z.N=function(){return this.B.x===this.A.x},Z.O=function(){return this.B.y===this.A.y},Z.P=function(){var e=this.B.x-this.A.x,t=this.B.y-this.A.y; return oe(t+e)<R},Z.R=function(){var e=this.B.x-this.A.x,t=this.B.y-this.A.y;return oe(t-e)<R},Z.S=function(){return void 0!==this.C},Z.T=function(e,t){return void 0===t&&(t=e.y,e=e.x),this.A.x===e&&this.A.y===t||this.B.x===e&&this.B.y===t},Z.U=function(e,t){return void 0===t&&(t=e.y,e=e.x),this.N()&&this.A.x===e&&se(this.A.y,this.B.y)===t},Z.V=function(e,t){return!!this.P()&&(void 0===t&&(t=e.y,e=e.x),this.A.y<this.B.y?this.A.x===e&&this.A.y===t:this.B.x===e&&this.B.y===t)},Z.W=function(e,t){return!!this.P()&&(void 0===t&&(t=e.y,e=e.x),this.B.y<this.A.y?this.A.x===e&&this.A.y===t:this.B.x===e&&this.B.y===t)},Z.X=function(e,t){return!!this.R()&&(void 0===t&&(t=e.y,e=e.x),this.A.y<this.B.y?this.A.x===e&&this.A.y===t:this.B.x===e&&this.B.y===t)},Z.Y=function(e,t){return!!this.R()&&(void 0===t&&(t=e.y,e=e.x),this.B.y<this.A.y?this.A.x===e&&this.A.y===t:this.B.x===e&&this.B.y===t)},Z.Z=function(e,t){return void 0===t&&(t=e.y,e=e.x),this.N()&&this.A.x===e&&ie(this.A.y,this.B.y)===t},Z.$=function(e,t){return void 0===t&&(t=e.y,e=e.x),this.O()&&this.A.y===t&&se(this.A.x,this.B.x)===e},Z.aa=function(e,t){return void 0===t&&(t=e.y,e=e.x),this.O()&&this.A.y===t&&ie(this.A.x,this.B.x)===e},Z.ba=function(e,t){return void 0===t&&(t=e.y,e=e.x),this.N()&&this.A.x===e&&se(this.A.y,this.B.y)<=t&&ie(this.A.y,this.B.y)>=t},Z.ca=function(e,t){return void 0===t&&(t=e.y,e=e.x),this.O()&&this.A.y===t&&se(this.A.x,this.B.x)<=e&&ie(this.A.x,this.B.x)>=e},Z.toSVG=function(){var e='<path d="M '+this.A;return e+=this.S()?"C "+this.C+this.D+this.B:"L "+this.B,e+='" style="fill:none;"',this.dashed&&(e+=' stroke-dasharray="3,6"'),e+="/>"};var G=M.prototype;G.ea=function(e){this.da.push(e)},G.U=k(Z.U),G.V=k(Z.V),G.X=k(Z.X),G.W=k(Z.W),G.Y=k(Z.Y),G.Z=k(Z.Z),G.$=k(Z.$),G.aa=k(Z.aa),G.T=k(Z.T),G.ba=k(Z.ba),G.ca=k(Z.ca),G.toSVG=function(){for(var e="",t=0;t<this.da.length;++t)e+=this.da[t].toSVG()+"\n";return e};var J=A.prototype;J.ea=function(e,t,r,n){void 0===r&&(r=t,t=e.y,e=e.x),y(r)||console.error("Illegal decoration character: "+r);var a={C:x(e,t),type:r,angle:n||0};h(r)?this.fa.push(a):this.fa.unshift(a)},J.toSVG=function(){for(var e="",t=0;t<this.fa.length;++t){var r=this.fa[t],n=r.C;if(f(r.type)){var a=")"===r.type?.75:-.75,i=x(n.x,n.y-.5),s=x(n.x,n.y+.5),o=x(n.x+a,n.y-.5),c=x(n.x+a,n.y+.5);e+='<path d="M '+s+" C "+c+o+i+'" style="fill:none;"/>'}else if(h(r.type))e+='<circle cx="'+n.x*j+'" cy="'+n.y*j*B+'" r="'+(j-z)+'" class="'+("*"===r.type?"closed":"open")+'dot"/>';else if(l(r.type)){var d=Math.round(63.75*(3-H.indexOf(r.type)));e+='<rect x="'+(n.x-.5)*j+'" y="'+(n.y-.5)*j*B+'" width="'+j+'" height="'+j*B+'" stroke=none fill="rgb('+d+","+d+","+d+')"/>'}else if(u(r.type)){var p=W.indexOf(r.type),m=.5-(1&p),g=.5-(p>>1);m*=ce(g);var b=x(n.x+m,n.y-g),i=x(n.x+m,n.y+g),s=x(n.x-m,n.y+g);e+='<polygon points="'+b+i+s+'" style="stroke:none"/>\n'}else{var b=x(n.x+1,n.y),i=x(n.x-.5,n.y-.35),s=x(n.x-.5,n.y+.35);e+='<polygon points="'+b+i+s+'" style="stroke:none" transform="rotate('+r.angle+","+n+')"/>\n'}}return e};var K=v(e),Q=new M,X=new A;E(K,Q),S(K,Q,X);var Y='<svg class="diagram" xmlns="http://www.w3.org/2000/svg" version="1.1" height="'+(K.height+1)*j*B+'" width="'+(K.width+1)*j+'"';if("floatleft"===t?Y+=' style="float:left;margin:15px 30px 15px 0;"':"floatright"===t?Y+=' style="float:right;margin:15px 0 15px 30px;"':"center"===t&&(Y+=' style="margin:0 auto 0 auto;"'),Y+='><g transform="translate('+x(1,1)+')">\n',L){Y+='<g style="opacity:0.1">\n';for(var ee=0;ee<K.width;++ee)for(var te=0;te<K.height;++te)Y+='<rect x="'+((ee-.5)*j+1)+'" + y="'+((te-.5)*j*B+2)+'" width="'+(j-2)+'" height="'+(j*B-2)+'" style="fill:',Y+=K.I(ee,te)?"red;":" "===K(ee,te)?"gray;opacity:0.05":"blue;",Y+='"/>\n';Y+="</g>\n"}if(Y+=Q.toSVG(),Y+=X.toSVG(),!$){Y+='<g transform="translate(0,0)">';for(var te=0;te<K.height;++te)for(var ee=0;ee<K.width;++ee){var re=K(ee,te);/[\u2B22\u2B21]/.test(re)?Y+='<text text-anchor="middle" x="'+ee*j+'" y="'+(4+te*j*B)+'" style="font-size:20.5px">'+i(re)+"</text>":" "===re||K.I(ee,te)||(Y+='<text text-anchor="middle" x="'+ee*j+'" y="'+(4+te*j*B)+'">'+i(re)+"</text>")}Y+="</g>"}if(D){Y+='<g transform="translate(2,2)">\n';for(var ee=0;ee<K.width;++ee)for(var te=0;te<K.height;++te){var re=K(ee,te);" "!==re&&(Y+='<text text-anchor="middle" x="'+ee*j+'" y="'+(4+te*j*B)+'" style="fill:#F00;font-family:Menlo,monospace;font-size:12px;text-align:center">'+i(re)+"</text>")}Y+="</g>"}return Y+="</g></svg>",Y=Y.rp(RegExp(T,"g"),"o")}function k(e){return e.search(/markdeep\S*?\.js$/i)!==-1}function A(e){return Array.prototype.slice.call(e)}function E(){var e=document.createElement("script");e.type="text/javascript",e.src=pe,document.getElementsByTagName("head")[0].appendChild(e)}function S(e){return r("detectMath")&&(e.search(/(?:\$\$[\s\S]+\$\$)|(?:\\begin{)/m)!==-1||e.search(/\\\(.*\\\)/)!==-1)}function T(){parent.postMessage(_e+"="+document.body.innerHTML,"*")}function j(e){return e&&e.ss(0,e.lastIndexOf("/")+1)}var B='<div class="markdeepFooter"><i>formatted by <a href="http://casual-effects.com/markdeep" style="color:#999">Markdeep 1.03 </a></i><div style="display:inline-block;font-size:13px;font-family:\'Times New Roman\',serif;vertical-align:middle;transform:translate(-3px,-1px)rotate(135deg);">✒</div></div>',I=String.prototype;I.rp=I.replace,I.ss=I.substring,I.regexIndexOf=function(e,t){var r=this.ss(t||0).search(e);return r>=0?r+(t||0):r};var L=!1,D=L,$=D,z=2,R="*",q=Array(6).join(R);!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(e){function t(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}function r(e){return e.nodeName.toLowerCase()}function n(e,t){var r=e&&e.exec(t);return r&&0===r.index}function a(e){return k.test(e)}function i(e){var t,r,n,i,s=e.className+" ";if(s+=e.parentNode?e.parentNode.className:"",r=A.exec(s))return _(r[1])?r[1]:"no-highlight";for(s=s.split(/\s+/),t=0,n=s.length;n>t;t++)if(i=s[t],a(i)||_(i))return i}function s(e){var t,r={},n=Array.prototype.slice.call(arguments,1);for(t in e)r[t]=e[t];return n.forEach(function(e){for(t in e)r[t]=e[t]}),r}function o(e){var t=[];return function e(n,a){for(var i=n.firstChild;i;i=i.nextSibling)3===i.nodeType?a+=i.nodeValue.length:1===i.nodeType&&(t.push({event:"start",offset:a,node:i}),a=e(i,a),r(i).match(/br|hr|img|input/)||t.push({event:"stop",offset:a,node:i}));return a}(e,0),t}function c(e,n,a){function i(){return e.length&&n.length?e[0].offset!==n[0].offset?e[0].offset<n[0].offset?e:n:"start"===n[0].event?e:n:e.length?e:n}function s(e){function n(e){return" "+e.nodeName+'="'+t(e.value).replace('"',""")+'"'}u+="<"+r(e)+w.map.call(e.attributes,n).join("")+">"}function o(e){u+="</"+r(e)+">"}function c(e){("start"===e.event?s:o)(e.node)}for(var l=0,u="",d=[];e.length||n.length;){var p=i();if(u+=t(a.substring(l,p[0].offset)),l=p[0].offset,p===e){d.reverse().forEach(o);do c(p.splice(0,1)[0]),p=i();while(p===e&&p.length&&p[0].offset===l);d.reverse().forEach(s)}else"start"===p[0].event?d.push(p[0].node):d.pop(),c(p.splice(0,1)[0])}return u+t(a.substr(l))}function l(e){return e.v&&!e.cached_variants&&(e.cached_variants=e.v.map(function(t){return s(e,{v:null},t)})),e.cached_variants||e.eW&&[s(e)]||[e]}function u(e){function t(e){return e&&e.source||e}function r(r,n){return RegExp(t(r),"m"+(e.cI?"i":"")+(n?"g":""))}function n(a,i){if(!a.compiled){if(a.compiled=!0,a.k=a.k||a.bK){var s={},o=function(t,r){e.cI&&(r=r.toLowerCase()),r.split(" ").forEach(function(e){var r=e.split("|");s[r[0]]=[t,r[1]?+r[1]:1]})};"string"==typeof a.k?o("keyword",a.k):C(a.k).forEach(function(e){o(e,a.k[e])}),a.k=s}a.lR=r(a.l||/\w+/,!0),i&&(a.bK&&(a.b="\\b("+a.bK.split(" ").join("|")+")\\b"),a.b||(a.b=/\B|\b/),a.bR=r(a.b),a.e||a.eW||(a.e=/\B|\b/),a.e&&(a.eR=r(a.e)),a.tE=t(a.e)||"",a.eW&&i.tE&&(a.tE+=(a.e?"|":"")+i.tE)),a.i&&(a.iR=r(a.i)),null==a.r&&(a.r=1),a.c||(a.c=[]),a.c=Array.prototype.concat.apply([],a.c.map(function(e){return l("self"===e?a:e)})),a.c.forEach(function(e){n(e,a)}),a.starts&&n(a.starts,i);var c=a.c.map(function(e){return e.bK?"\\.?("+e.b+")\\.?":e.b}).concat([a.tE,a.i]).map(t).filter(Boolean);a.t=c.length?r(c.join("|"),!0):{exec:function(){return null}}}}n(e)}function d(e,r,a,i){function s(e,t){var r,a;for(r=0,a=t.c.length;a>r;r++)if(n(t.c[r].bR,e))return t.c[r]}function o(e,t){if(n(e.eR,t)){for(;e.endsParent&&e.parent;)e=e.parent;return e}return e.eW?o(e.parent,t):void 0}function c(e,t){return!a&&n(t.iR,e)}function l(e,t){var r=x.cI?t[0].toLowerCase():t[0];return e.k.hasOwnProperty(r)&&e.k[r]}function m(e,t,r,n){var a=n?"":T.classPrefix,i='<span class="'+a,s=r?"":S;return i+=e+'">',i+t+s}function g(){var e,r,n,a;if(!w.k)return t(k);for(a="",r=0,w.lR.lastIndex=0,n=w.lR.exec(k);n;)a+=t(k.substring(r,n.index)),e=l(w,n),e?(A+=e[1],a+=m(e[0],t(n[0]))):a+=t(n[0]),r=w.lR.lastIndex,n=w.lR.exec(k);return a+t(k.substr(r))}function b(){var e="string"==typeof w.sL;if(e&&!N[w.sL])return t(k);var r=e?d(w.sL,k,!0,C[w.sL]):p(k,w.sL.length?w.sL:void 0);return w.r>0&&(A+=r.r),e&&(C[w.sL]=r.top),m(r.language,r.value,!1,!0)}function f(){M+=null!=w.sL?b():g(),k=""}function h(e){M+=e.cN?m(e.cN,"",!0):"",w=Object.create(e,{parent:{value:w}})}function y(e,t){if(k+=e,null==t)return f(),0;var r=s(t,w);if(r)return r.skip?k+=t:(r.eB&&(k+=t),f(),r.rB||r.eB||(k=t)),h(r,t),r.rB?0:t.length;var n=o(w,t);if(n){var a=w;a.skip?k+=t:(a.rE||a.eE||(k+=t),f(),a.eE&&(k=t));do w.cN&&(M+=S),w.skip||(A+=w.r),w=w.parent;while(w!==n.parent);return n.starts&&h(n.starts,""),a.rE?0:t.length}if(c(t,w))throw Error('Illegal lexeme "'+t+'" for mode "'+(w.cN||"<unnamed>")+'"');return k+=t,t.length||1}var x=_(e);if(!x)throw Error('Unknown language: "'+e+'"');u(x);var v,w=i||x,C={},M="";for(v=w;v!==x;v=v.parent)v.cN&&(M=m(v.cN,"",!0)+M);var k="",A=0;try{for(var E,j,B=0;w.t.lastIndex=B,E=w.t.exec(r),E;)j=y(r.substring(B,E.index),E[0]),B=E.index+j;for(y(r.substr(B)),v=w;v.parent;v=v.parent)v.cN&&(M+=S);return{r:A,value:M,language:e,top:w}}catch(e){if(e.message&&-1!==e.message.indexOf("Illegal"))return{r:0,value:t(r)};throw e}}function p(e,r){r=r||T.languages||C(N);var n={r:0,value:t(e)},a=n;return r.filter(_).forEach(function(t){var r=d(t,e,!1);r.language=t,r.r>a.r&&(a=r),r.r>n.r&&(a=n,n=r)}),a.language&&(n.second_best=a),n}function m(e){return T.tabReplace||T.useBR?e.replace(E,function(e,t){return T.useBR&&"\n"===e?"<br>":T.tabReplace?t.replace(/\t/g,T.tabReplace):""}):e}function g(e,t,r){var n=t?M[t]:r,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),-1===e.indexOf(n)&&a.push(n),a.join(" ").trim()}function b(e){var t,r,n,s,l,u=i(e);a(u)||(T.useBR?(t=document.createElementNS("http://www.w3.org/1999/xhtml","div"),t.innerHTML=e.innerHTML.replace(/\n/g,"").replace(/<br[ \/]*>/g,"\n")):t=e,l=t.textContent,n=u?d(u,l,!0):p(l),r=o(t),r.length&&(s=document.createElementNS("http://www.w3.org/1999/xhtml","div"),s.innerHTML=n.value,n.value=c(r,o(s),l)),n.value=m(n.value),e.innerHTML=n.value,e.className=g(e.className,u,n.language),e.result={language:n.language,re:n.r},n.second_best&&(e.second_best={language:n.second_best.language,re:n.second_best.r}))}function f(e){T=s(T,e)}function h(){if(!h.called){h.called=!0;var e=document.querySelectorAll("pre code");w.forEach.call(e,b)}}function y(){addEventListener("DOMContentLoaded",h,!1),addEventListener("load",h,!1)}function x(t,r){var n=N[t]=r(e);n.aliases&&n.aliases.forEach(function(e){M[e]=t})}function v(){return C(N)}function _(e){return e=(e||"").toLowerCase(),N[e]||N[M[e]]}var w=[],C=Object.keys,N={},M={},k=/^(no-?highlight|plain|text)$/i,A=/\blang(?:uage)?-([\w-]+)\b/i,E=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,S="</span>",T={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0};return e.highlight=d,e.highlightAuto=p,e.fixMarkup=m,e.highlightBlock=b,e.configure=f,e.initHighlighting=h,e.initHighlightingOnLoad=y,e.g=x,e.h=v,e.j=_,e.inherit=s,e.IR="[a-zA-Z]\\w*",e.UIR="[a-zA-Z_]\\w*",e.NR="\\b\\d+(\\.\\d+)?",e.CNR="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",e.BNR="\\b(0b[01]+)",e.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",e.BE={b:"\\\\[\\s\\S]",r:0},e.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[e.BE]},e.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[e.BE]},e.PWM={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/},e.C=function(t,r,n){var a=e.inherit({cN:"comment",b:t,e:r,c:[]},n||{});return a.c.push(e.PWM),a.c.push({cN:"doctag",b:"(?:TODO|FIXME|NOTE|BUG|XXX):",r:0}),a},e.CLCM=e.C("//","$"),e.CBCM=e.C("/\\*","\\*/"),e.HCM=e.C("#","$"),e.NM={cN:"number",b:e.NR,r:0},e.CNM={cN:"number",b:e.CNR,r:0},e.BNM={cN:"number",b:e.BNR,r:0},e.CSSNM={cN:"number",b:e.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},e.RM={cN:"regexp",b:/\//,e:/\/[gimuy]*/,i:/\n/,c:[e.BE,{b:/\[/,e:/\]/,r:0,c:[e.BE]}]},e.TM={cN:"title",b:e.IR,r:0},e.UTM={cN:"title",b:e.UIR,r:0},e.METHOD_GUARD={b:"\\.\\s*"+e.UIR,r:0},e}),hljs.g("xml",function(e){var t="[A-Za-z0-9\\._:-]+",r={eW:!0,i:/</,r:0,c:[{cN:"attr",b:t,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("<!--","-->",{r:10}),{b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{b:/<\?(php)?/,e:/\?>/,sL:"php",c:[{b:"/\\*",e:"\\*/",skip:!0}]},{cN:"tag",b:"<style(?=\\s|>|$)",e:">",k:{name:"style"},c:[r],starts:{e:"</style>",rE:!0,sL:["css","xml"]}},{cN:"tag",b:"<script(?=\\s|>|$)",e:">",k:{name:"script"},c:[r],starts:{e:"</script>",rE:!0,sL:["actionscript","javascript","handlebars","xml"]}},{cN:"meta",v:[{b:/<\?xml/,e:/\?>/,r:10},{b:/<\?\w+/,e:/\?>/}]},{cN:"tag",b:"</?",e:"/?>",c:[{cN:"name",b:/[^\/><\s]+/,r:0},r]}]}}),hljs.g("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:"^([*+-]|(\\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}]}]}}),hljs.g("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 Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},n={cN:"number",v:[{b:"\\b(0[bB][01]+)"},{b:"\\b(0[oO][0-7]+)"},{b:e.CNR}],r:0},a={cN:"subst",b:"\\$\\{",e:"\\}",k:r,c:[]},i={cN:"string",b:"`",e:"`",c:[e.BE,a]};a.c=[e.ASM,e.QSM,i,n,e.RM];var s=a.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,n,{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}]}]},{b:/</,e:/(\/\w+|\w+\/)>/,sL:"xml",c:[{b:/<\w+\s*\/>/,skip:!0},{b:/<\w+/,e:/(\/\w+|\w+\/)>/,skip:!0,c:[{b:/<\w+\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",e:/\{/,eE:!0}],i:/#(?!!)/}}),hljs.g("lisp",function(e){var t="[a-zA-Z_\\-\\+\\*\\/\\<\\=\\>\\&\\#][a-zA-Z0-9_\\-\\+\\*\\/\\<\\=\\>\\&\\#!]*",r="\\|[^]*?\\|",n="(\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\+|\\-)?\\d+)?",a={cN:"meta",b:"^#!",e:"$"},i={cN:"literal",b:"\\b(t{1}|nil)\\b"},s={cN:"number",v:[{b:n,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)\\("+n+" +"+n,e:"\\)"}]},o=e.inherit(e.QSM,{i:null}),c=e.C(";","$",{r:0}),l={b:"\\*",e:"\\*"},u={cN:"symbol",b:"[:&]"+t},d={b:t,r:0},p={b:r},m={b:"\\(",e:"\\)",c:["self",i,o,s,d]},g={c:[s,o,l,u,m,d],v:[{b:"['`]\\(",e:"\\)"},{b:"\\(quote ",e:"\\)",k:{name:"quote"}},{b:"'"+r}]},b={v:[{b:"'"+t},{b:"#'"+t+"(::"+t+")*"}]},f={b:"\\(\\s*",e:"\\)"},h={eW:!0,r:0};return f.c=[{cN:"name",v:[{b:t},{b:r}]},h],h.c=[g,b,f,i,s,o,c,l,u,p,d],{i:/\S/,c:[s,a,i,o,c,g,b,f,d]}}),hljs.g("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:"'"}]}]}}),hljs.g("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:/["']/}]}]}}),hljs.g("lua",function(e){var t="\\[=*\\[",r="\\]=*\\]",n={b:t,e:r,c:["self"]},a=[e.C("--(?!"+t+")","$"),e.C("--"+t,r,{c:[n],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:a.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:a}].concat(a)},e.CNM,e.ASM,e.QSM,{cN:"string",b:t,e:r,c:[n],r:5}])}}),hljs.g("haskell",function(e){var t={v:[e.C("--","$"),e.C("{-","-}",{c:["self"]})]},r={cN:"meta",b:"{-#",e:"#-}"},n={cN:"meta",b:"^#",e:"$"},a={cN:"type",b:"\\b[A-Z][\\w']*",r:0},i={b:"\\(",e:"\\)",i:'"',c:[r,n,{cN:"type",b:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},e.inherit(e.TM,{b:"[_a-z][\\w']*"}),t]},s={b:"{",e:"}",c:i.c};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:[a,i,t]},{cN:"class",b:"\\b(data|(new)?type)\\b",e:"$",k:"data family type newtype deriving",c:[r,a,i,s,t]},{bK:"default",e:"$",c:[a,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:[a,e.QSM,t]},{cN:"meta",b:"#!\\/usr\\/bin\\/env runhaskell",e:"$"},r,n,e.QSM,e.CNM,a,e.inherit(e.TM,{b:"^[_a-z][\\w']*"}),t,{b:"->|<-"}]}}),hljs.g("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]}]},n={cN:"string",b:/'/,e:/'/};return{aliases:["sh","zsh"],l:/\b-?[a-z\._]+\b/,k:{keyword:"if then else elif fi for while in do done case esac function",literal:"true 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,n,t]}}),hljs.g("java",function(e){var t="[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*",r=t+"(<"+t+"(\\s*,\\s*"+t+")*>)?",n="false synchronized int abstract float private char boolean 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",a="\\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]?",i={cN:"number",b:a,r:0};return{aliases:["jsp"],k:n,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:"("+r+"\\s+)+"+e.UIR+"\\s*\\(",rB:!0,e:/[{;=]/,eE:!0,k:n,c:[{b:e.UIR+"\\s*\\(",rB:!0,r:0,c:[e.UTM]},{cN:"params",b:/\(/,e:/\)/,k:n,r:0,c:[e.ASM,e.QSM,e.CNM,e.CBCM]},e.CLCM,e.CBCM]},i,{cN:"meta",b:"@[A-Za-z]+"}]}}),hljs.g("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 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 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 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},n={b:"->{",e:"}"},a={v:[{b:/\$\d/},{b:/[\$%@](\^\w\b|#\w+(::\w+)*|{\w+}|\w+(::\w*)*)/},{b:/[\$%@][^\s\w{]/,r:0}]},i=[e.BE,r,a],s=[a,e.HCM,e.C("^\\=\\w","\\=cut",{eW:!0}),n,{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,n.c=s,{aliases:["pl","pm"],l:/[\w\.]+/,k:t,c:s}}),hljs.g("coffeescript",function(e){var t={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super yield import export from as default await then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off",built_in:"npm require console print module global window document"},r="[A-Za-z$_][0-9A-Za-z$_]*",n={cN:"subst",b:/#\{/,e:/}/,k:t},a=[e.BNM,e.inherit(e.CNM,{starts:{e:"(\\s*/)?",r:0}}),{cN:"string",v:[{b:/'''/,e:/'''/,c:[e.BE]},{b:/'/,e:/'/,c:[e.BE]},{b:/"""/,e:/"""/,c:[e.BE,n]},{b:/"/,e:/"/,c:[e.BE,n]}]},{cN:"regexp",v:[{b:"///",e:"///",c:[n,e.HCM]},{b:"//[gim]*",r:0},{b:/\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/}]},{b:"@"+r},{sL:"javascript",eB:!0,eE:!0,v:[{b:"```",e:"```"},{b:"`",e:"`"}]}];n.c=a;var i=e.inherit(e.TM,{b:r}),s="(\\(.*\\))?\\s*\\B[-=]>",o={cN:"params",b:"\\([^\\(]",rB:!0,c:[{b:/\(/,e:/\)/,k:t,c:["self"].concat(a)}]};return{aliases:["coffee","cson","iced"],k:t,i:/\/\*/,c:a.concat([e.C("###","###"),e.HCM,{cN:"function",b:"^\\s*"+r+"\\s*=\\s*"+s,e:"[-=]>",rB:!0,c:[i,o]},{b:/[:\(,=]\s*/,r:0,c:[{cN:"function",b:s,e:"[-=]>",rB:!0,c:[o]}]},{cN:"class",bK:"class",e:"$",i:/[:="\[\]]/,c:[{bK:"extends",eW:!0,i:/[:="\[\]]/,c:[i]},i]},{b:r+":",e:":",rB:!0,rE:!0,r:0}])}}),hljs.g("kotlin",function(e){var t={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit initinterface annotation data sealed internal infix operator out by constructor super trait volatile transient native default",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},r={cN:"keyword",b:/\b(break|continue|return|this)\b/,starts:{c:[{cN:"symbol",b:/@\w+/}]}},n={cN:"symbol",b:e.UIR+"@"},a={cN:"subst",b:"\\${",e:"}",c:[e.ASM,e.CNM]},i={cN:"variable",b:"\\$"+e.UIR},s={cN:"string",v:[{b:'"""',e:'"""',c:[i,a]},{b:"'",e:"'",i:/\n/,c:[e.BE]},{b:'"',e:'"',i:/\n/,c:[e.BE,i,a]}]},o={cN:"meta",b:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UIR+")?"},c={cN:"meta",b:"@"+e.UIR,c:[{b:/\(/,e:/\)/,c:[e.inherit(s,{cN:"meta-string"})]}]};return{k:t,c:[e.C("/\\*\\*","\\*/",{r:0,c:[{cN:"doctag",b:"@[A-Za-z]+"}]}),e.CLCM,e.CBCM,r,n,o,c,{cN:"function",bK:"fun",e:"[(]|$",rB:!0,eE:!0,k:t,i:/fun\s+(<.*>)?[^\s\(]+(\s+[^\s\(]+)\s*=/,r:5,c:[{b:e.UIR+"\\s*\\(",rB:!0,r:0,c:[e.UTM]},{cN:"type",b:/</,e:/>/,k:"reified",r:0},{cN:"params",b:/\(/,e:/\)/,endsParent:!0,k:t,r:0,c:[{b:/:/,e:/[=,\/]/,eW:!0,c:[{cN:"type",b:e.UIR},e.CLCM,e.CBCM],r:0},e.CLCM,e.CBCM,o,c,s,e.CNM]},e.CBCM]},{cN:"class",bK:"class interface trait",e:/[:\{(]|$/,eE:!0,i:"extends implements",c:[{bK:"public protected internal private constructor"},e.UTM,{cN:"type",b:/</,e:/>/,eB:!0,eE:!0,r:0},{cN:"type",b:/[,:]\s*/,e:/[<\(,]|$/,eB:!0,rE:!0},o,c]},s,{cN:"meta",b:"^#!/usr/bin/env",e:"$",i:"\n"},e.CNM]}}),hljs.g("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"},n={cN:"doctag",b:"@[A-Za-z]+"},a={b:"#<",e:">"},i=[e.C("#","$",{c:[n]}),e.C("^\\=begin","^\\=end",{c:[n],r:10}),e.C("^__END__","\\n$")],s={cN:"subst",b:"#\\{",e:"}",k:r},o={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+$/}]},c={cN:"params",b:"\\(",e:"\\)",endsParent:!0,k:r},l=[o,a,{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}),c].concat(i)},{b:e.IR+"::"},{cN:"symbol",b:e.UIR+"(\\!|\\?)?:",r:0},{cN:"symbol",b:":(?!\\s)",c:[o,{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:[a,{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,c.c=l;var u="[>?]>",d="[\\w#]+\\(\\w+\\):\\d+:\\d+>",p="(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>",m=[{