ckeditor4
Version:
JavaScript WYSIWYG web text editor.
99 lines • 171 kB
JavaScript
(function(oa,da){"object"===typeof exports&&"undefined"!==typeof module?module.exports=da():"function"===typeof define&&define.amd?define(da):(oa=oa||self,oa.CodeMirror=da())})(this,function(){function oa(a){return new RegExp("(^|\\s)"+a+"(?:$|\\s)\\s*")}function da(a){for(var b=a.childNodes.length;0<b;--b)a.removeChild(a.firstChild);return a}function Z(a,b){return da(a).appendChild(b)}function u(a,b,c,d){a=document.createElement(a);c&&(a.className=c);d&&(a.style.cssText=d);if("string"==typeof b)a.appendChild(document.createTextNode(b));
else if(b)for(c=0;c<b.length;++c)a.appendChild(b[c]);return a}function ab(a,b,c,d){a=u(a,b,c,d);a.setAttribute("role","presentation");return a}function Aa(a,b){3==b.nodeType&&(b=b.parentNode);if(a.contains)return a.contains(b);do if(11==b.nodeType&&(b=b.host),b==a)return!0;while(b=b.parentNode)}function ea(a){var b=a.ownerDocument||a,c;try{c=a.activeElement}catch(d){c=b.body||null}for(;c&&c.shadowRoot&&c.shadowRoot.activeElement;)c=c.shadowRoot.activeElement;return c}function La(a,b){var c=a.className;
oa(b).test(c)||(a.className+=(c?" ":"")+b)}function Sc(a,b){for(var c=a.split(" "),d=0;d<c.length;d++)c[d]&&!oa(c[d]).test(b)&&(b+=" "+c[d]);return b}function Ba(a){return a.display.wrapper.ownerDocument}function fa(a){return a.getRootNode?a.getRootNode():a.ownerDocument}function Tc(a){var b=Array.prototype.slice.call(arguments,1);return function(){return a.apply(null,b)}}function Ma(a,b,c){b||(b={});for(var d in a)!a.hasOwnProperty(d)||!1===c&&b.hasOwnProperty(d)||(b[d]=a[d]);return b}function ga(a,
b,c,d,e){null==b&&(b=a.search(/[^\s\u00a0]/),-1==b&&(b=a.length));d=d||0;for(e=e||0;;){var f=a.indexOf("\t",d);if(0>f||f>=b)return e+(b-d);e+=f-d;e+=c-e%c;d=f+1}}function Q(a,b){for(var c=0;c<a.length;++c)if(a[c]==b)return c;return-1}function Uc(a,b,c){for(var d=0,e=0;;){var f=a.indexOf("\t",d);-1==f&&(f=a.length);var g=f-d;if(f==a.length||e+g>=b)return d+Math.min(g,b-e);e+=f-d;e+=c-e%c;d=f+1;if(e>=b)return d}}function Vc(a){for(;hc.length<=a;)hc.push(y(hc)+" ");return hc[a]}function y(a){return a[a.length-
1]}function ic(a,b){for(var c=[],d=0;d<a.length;d++)c[d]=b(a[d],d);return c}function kg(a,b,c){for(var d=0,e=c(b);d<a.length&&c(a[d])<=e;)d++;a.splice(d,0,b)}function be(){}function ce(a,b){var c;Object.create?c=Object.create(a):(be.prototype=a,c=new be);b&&Ma(b,c);return c}function Wc(a){return/\w/.test(a)||""<a&&(a.toUpperCase()!=a.toLowerCase()||lg.test(a))}function jc(a,b){return b?-1<b.source.indexOf("\\w")&&Wc(a)?!0:b.test(a):Wc(a)}function de(a){for(var b in a)if(a.hasOwnProperty(b)&&a[b])return!1;
return!0}function Xc(a){return 768<=a.charCodeAt(0)&&mg.test(a)}function ee(a,b,c){for(;(0>c?0<b:b<a.length)&&Xc(a.charAt(b));)b+=c;return b}function wb(a,b,c){for(var d=b>c?-1:1;;){if(b==c)return b;var e=(b+c)/2,e=0>d?Math.ceil(e):Math.floor(e);if(e==b)return a(e)?b:c;a(e)?c=e:b=e+d}}function ng(a,b,c,d){if(!a)return d(b,c,"ltr",0);for(var e=!1,f=0;f<a.length;++f){var g=a[f];if(g.from<c&&g.to>b||b==c&&g.to==b)d(Math.max(g.from,b),Math.min(g.to,c),1==g.level?"rtl":"ltr",f),e=!0}e||d(b,c,"ltr")}function xb(a,
b,c){var d;yb=null;for(var e=0;e<a.length;++e){var f=a[e];if(f.from<b&&f.to>b)return e;f.to==b&&(f.from!=f.to&&"before"==c?d=e:yb=e);f.from==b&&(f.from!=f.to&&"before"!=c?d=e:yb=e)}return null!=d?d:yb}function ua(a,b){var c=a.order;null==c&&(c=a.order=og(a.text,b));return c}function aa(a,b,c){if(a.removeEventListener)a.removeEventListener(b,c,!1);else if(a.detachEvent)a.detachEvent("on"+b,c);else{var d=(a=a._handlers)&&a[b];d&&(c=Q(d,c),-1<c&&(a[b]=d.slice(0,c).concat(d.slice(c+1))))}}function H(a,
b){var c=a._handlers&&a._handlers[b]||kc;if(c.length)for(var d=Array.prototype.slice.call(arguments,2),e=0;e<c.length;++e)c[e].apply(null,d)}function J(a,b,c){"string"==typeof b&&(b={type:b,preventDefault:function(){this.defaultPrevented=!0}});H(a,c||b.type,a,b);return Yc(b)||b.codemirrorIgnore}function fe(a){var b=a._handlers&&a._handlers.cursorActivity;if(b){a=a.curOp.cursorActivityHandlers||(a.curOp.cursorActivityHandlers=[]);for(var c=0;c<b.length;++c)-1==Q(a,b[c])&&a.push(b[c])}}function ha(a,
b){return 0<(a._handlers&&a._handlers[b]||kc).length}function bb(a){a.prototype.on=function(a,c){w(this,a,c)};a.prototype.off=function(a,c){aa(this,a,c)}}function T(a){a.preventDefault?a.preventDefault():a.returnValue=!1}function ge(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0}function Yc(a){return null!=a.defaultPrevented?a.defaultPrevented:0==a.returnValue}function zb(a){T(a);ge(a)}function he(a){var b=a.which;null==b&&(a.button&1?b=1:a.button&2?b=3:a.button&4&&(b=2));ia&&a.ctrlKey&&
1==b&&(b=3);return b}function pg(a){if(null==Zc){var b=u("span","");Z(a,u("span",[b,document.createTextNode("x")]));0!=a.firstChild.offsetHeight&&(Zc=1>=b.offsetWidth&&2<b.offsetHeight&&!(A&&8>E))}a=Zc?u("span",""):u("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");a.setAttribute("cm-text","");return a}function qg(a,b){2<arguments.length&&(b.dependencies=Array.prototype.slice.call(arguments,2));$c[a]=b}function lc(a){if("string"==typeof a&&cb.hasOwnProperty(a))a=cb[a];else if(a&&
"string"==typeof a.name&&cb.hasOwnProperty(a.name)){var b=cb[a.name];"string"==typeof b&&(b={name:b});a=ce(b,a);a.name=b.name}else{if("string"==typeof a&&/^[\w\-]+\/[\w\-]+\+xml$/.test(a))return lc("application/xml");if("string"==typeof a&&/^[\w\-]+\/[\w\-]+\+json$/.test(a))return lc("application/json")}return"string"==typeof a?{name:a}:a||{name:"null"}}function ad(a,b){b=lc(b);var c=$c[b.name];if(!c)return ad(a,"text/plain");c=c(a,b);if(db.hasOwnProperty(b.name)){var d=db[b.name],e;for(e in d)d.hasOwnProperty(e)&&
(c.hasOwnProperty(e)&&(c["_"+e]=c[e]),c[e]=d[e])}c.name=b.name;b.helperType&&(c.helperType=b.helperType);if(b.modeProps)for(var f in b.modeProps)c[f]=b.modeProps[f];return c}function rg(a,b){var c=db.hasOwnProperty(a)?db[a]:db[a]={};Ma(b,c)}function Na(a,b){if(!0===b)return b;if(a.copyState)return a.copyState(b);var c={},d;for(d in b){var e=b[d];e instanceof Array&&(e=e.concat([]));c[d]=e}return c}function bd(a,b){for(var c;a.innerMode;){c=a.innerMode(b);if(!c||c.mode==a)break;b=c.state;a=c.mode}return c||
{mode:a,state:b}}function ie(a,b,c){return a.startState?a.startState(b,c):!0}function t(a,b){b-=a.first;if(0>b||b>=a.size)throw Error("There is no line "+(b+a.first)+" in the document.");for(var c=a;!c.lines;)for(var d=0;;++d){var e=c.children[d],f=e.chunkSize();if(b<f){c=e;break}b-=f}return c.lines[b]}function Oa(a,b,c){var d=[],e=b.line;a.iter(b.line,c.line+1,function(a){a=a.text;e==c.line&&(a=a.slice(0,c.ch));e==b.line&&(a=a.slice(b.ch));d.push(a);++e});return d}function cd(a,b,c){var d=[];a.iter(b,
c,function(a){d.push(a.text)});return d}function pa(a,b){var c=b-a.height;if(c)for(var d=a;d;d=d.parent)d.height+=c}function D(a){if(null==a.parent)return null;var b=a.parent;a=Q(b.lines,a);for(var c=b.parent;c;b=c,c=c.parent)for(var d=0;c.children[d]!=b;++d)a+=c.children[d].chunkSize();return a+b.first}function Pa(a,b){var c=a.first;a:do{for(var d=0;d<a.children.length;++d){var e=a.children[d],f=e.height;if(b<f){a=e;continue a}b-=f;c+=e.chunkSize()}return c}while(!a.lines);for(d=0;d<a.lines.length;++d){e=
a.lines[d].height;if(b<e)break;b-=e}return c+d}function Ab(a,b){return b>=a.first&&b<a.first+a.size}function dd(a,b){return String(a.lineNumberFormatter(b+a.firstLineNumber))}function q(a,b,c){void 0===c&&(c=null);if(!(this instanceof q))return new q(a,b,c);this.line=a;this.ch=b;this.sticky=c}function x(a,b){return a.line-b.line||a.ch-b.ch}function ed(a,b){return a.sticky==b.sticky&&0==x(a,b)}function fd(a){return q(a.line,a.ch)}function mc(a,b){return 0>x(a,b)?b:a}function nc(a,b){return 0>x(a,b)?
a:b}function v(a,b){if(b.line<a.first)return q(a.first,0);var c=a.first+a.size-1;if(b.line>c)return q(c,t(a,c).text.length);var c=t(a,b.line).text.length,d=b.ch,c=null==d||d>c?q(b.line,c):0>d?q(b.line,0):b;return c}function je(a,b){for(var c=[],d=0;d<b.length;d++)c[d]=v(a,b[d]);return c}function ke(a,b,c,d){var e=[a.state.modeGen],f={};le(a,b.text,a.doc.mode,c,function(a,b){return e.push(a,b)},f,d);var g=c.state;d=function(d){c.baseTokens=e;var h=a.state.overlays[d],m=1,p=0;c.state=!0;le(a,b.text,
h.mode,c,function(a,b){for(var c=m;p<a;){var d=e[m];d>a&&e.splice(m,1,a,e[m+1],d);m+=2;p=Math.min(a,d)}if(b)if(h.opaque)e.splice(c,m-c,a,"overlay "+b),m=c+2;else for(;c<m;c+=2)d=e[c+1],e[c+1]=(d?d+" ":"")+"overlay "+b},f);c.state=g;c.baseTokens=null;c.baseTokenPos=1};for(var h=0;h<a.state.overlays.length;++h)d(h);return{styles:e,classes:f.bgClass||f.textClass?f:null}}function me(a,b,c){if(!b.styles||b.styles[0]!=a.state.modeGen){var d=Bb(a,D(b)),e=b.text.length>a.options.maxHighlightLength&&Na(a.doc.mode,
d.state),f=ke(a,b,d);e&&(d.state=e);b.stateAfter=d.save(!e);b.styles=f.styles;f.classes?b.styleClasses=f.classes:b.styleClasses&&(b.styleClasses=null);c===a.doc.highlightFrontier&&(a.doc.modeFrontier=Math.max(a.doc.modeFrontier,++a.doc.highlightFrontier))}return b.styles}function Bb(a,b,c){var d=a.doc,e=a.display;if(!d.mode.startState)return new qa(d,!0,b);var f=sg(a,b,c),g=f>d.first&&t(d,f-1).stateAfter,h=g?qa.fromSaved(d,g,f):new qa(d,ie(d.mode),f);d.iter(f,b,function(c){gd(a,c.text,h);var d=h.line;
c.stateAfter=d==b-1||0==d%5||d>=e.viewFrom&&d<e.viewTo?h.save():null;h.nextLine()});c&&(d.modeFrontier=h.line);return h}function gd(a,b,c,d){var e=a.doc.mode;a=new I(b,a.options.tabSize,c);a.start=a.pos=d||0;for(""==b&&ne(e,c.state);!a.eol();)hd(e,a,c.state),a.start=a.pos}function ne(a,b){if(a.blankLine)return a.blankLine(b);if(a.innerMode){var c=bd(a,b);if(c.mode.blankLine)return c.mode.blankLine(c.state)}}function hd(a,b,c,d){for(var e=0;10>e;e++){d&&(d[0]=bd(a,c).mode);var f=a.token(b,c);if(b.pos>
b.start)return f}throw Error("Mode "+a.name+" failed to advance stream.");}function oe(a,b,c,d){var e=a.doc,f=e.mode,g;b=v(e,b);var h=t(e,b.line);c=Bb(a,b.line,c);a=new I(h.text,a.options.tabSize,c);var k;for(d&&(k=[]);(d||a.pos<b.ch)&&!a.eol();)a.start=a.pos,g=hd(f,a,c.state),d&&k.push(new pe(a,g,Na(e.mode,c.state)));return d?k:new pe(a,g,c.state)}function qe(a,b){if(a)for(;;){var c=a.match(/(?:^|\s+)line-(background-)?(\S+)/);if(!c)break;a=a.slice(0,c.index)+a.slice(c.index+c[0].length);var d=c[1]?
"bgClass":"textClass";null==b[d]?b[d]=c[2]:(new RegExp("(?:^|\\s)"+c[2]+"(?:$|\\s)")).test(b[d])||(b[d]+=" "+c[2])}return a}function le(a,b,c,d,e,f,g){var h=c.flattenSpans;null==h&&(h=a.options.flattenSpans);var k=0,l=null,m=new I(b,a.options.tabSize,d),p,n=a.options.addModeClass&&[null];for(""==b&&qe(ne(c,d.state),f);!m.eol();){m.pos>a.options.maxHighlightLength?(h=!1,g&&gd(a,b,d,m.pos),m.pos=b.length,p=null):p=qe(hd(c,m,d.state,n),f);if(n){var r=n[0].name;r&&(p="m-"+(p?r+" "+p:r))}if(!h||l!=p){for(;k<
m.start;)k=Math.min(m.start,k+5E3),e(k,l);l=p}m.start=m.pos}for(;k<m.pos;)a=Math.min(m.pos,k+5E3),e(a,l),k=a}function sg(a,b,c){for(var d,e,f=a.doc,g=c?-1:b-(a.doc.mode.innerMode?1E3:100);b>g;--b){if(b<=f.first)return f.first;var h=t(f,b-1),k=h.stateAfter;if(k&&(!c||b+(k instanceof oc?k.lookAhead:0)<=f.modeFrontier))return b;h=ga(h.text,null,a.options.tabSize);if(null==e||d>h)e=b-1,d=h}return e}function tg(a,b){a.modeFrontier=Math.min(a.modeFrontier,b);if(!(a.highlightFrontier<b-10)){for(var c=a.first,
d=b-1;d>c;d--){var e=t(a,d).stateAfter;if(e&&(!(e instanceof oc)||d+e.lookAhead<b)){c=d+1;break}}a.highlightFrontier=Math.min(a.highlightFrontier,c)}}function pc(a,b,c){this.marker=a;this.from=b;this.to=c}function Cb(a,b){if(a)for(var c=0;c<a.length;++c){var d=a[c];if(d.marker==b)return d}}function id(a,b){if(b.full)return null;var c=Ab(a,b.from.line)&&t(a,b.from.line).markedSpans,d=Ab(a,b.to.line)&&t(a,b.to.line).markedSpans;if(!c&&!d)return null;var e=b.from.ch,f=b.to.ch,g=0==x(b.from,b.to),h;if(c)for(var k=
0;k<c.length;++k){var l=c[k],m=l.marker;if(null==l.from||(m.inclusiveLeft?l.from<=e:l.from<e)||!(l.from!=e||"bookmark"!=m.type||g&&l.marker.insertLeft)){var p=null==l.to||(m.inclusiveRight?l.to>=e:l.to>e);(h||(h=[])).push(new pc(m,l.from,p?null:l.to))}}var c=h,n;if(d)for(h=0;h<d.length;++h)if(k=d[h],l=k.marker,null==k.to||(l.inclusiveRight?k.to>=f:k.to>f)||k.from==f&&"bookmark"==l.type&&(!g||k.marker.insertLeft))m=null==k.from||(l.inclusiveLeft?k.from<=f:k.from<f),(n||(n=[])).push(new pc(l,m?null:
k.from-f,null==k.to?null:k.to-f));d=n;f=1==b.text.length;g=y(b.text).length+(f?e:0);if(c)for(n=0;n<c.length;++n)if(h=c[n],null==h.to)(k=Cb(d,h.marker),k)?f&&(h.to=null==k.to?null:k.to+g):h.to=e;if(d)for(e=0;e<d.length;++e)n=d[e],null!=n.to&&(n.to+=g),null==n.from?Cb(c,n.marker)||(n.from=g,f&&(c||(c=[])).push(n)):(n.from+=g,f&&(c||(c=[])).push(n));c&&(c=re(c));d&&d!=c&&(d=re(d));e=[c];if(!f){var f=b.text.length-2,r;if(0<f&&c)for(g=0;g<c.length;++g)null==c[g].to&&(r||(r=[])).push(new pc(c[g].marker,
null,null));for(c=0;c<f;++c)e.push(r);e.push(d)}return e}function re(a){for(var b=0;b<a.length;++b){var c=a[b];null!=c.from&&c.from==c.to&&!1!==c.marker.clearWhenEmpty&&a.splice(b--,1)}return a.length?a:null}function ug(a,b,c){var d=null;a.iter(b.line,c.line+1,function(a){if(a.markedSpans)for(var b=0;b<a.markedSpans.length;++b){var c=a.markedSpans[b].marker;!c.readOnly||d&&-1!=Q(d,c)||(d||(d=[])).push(c)}});if(!d)return null;a=[{from:b,to:c}];for(b=0;b<d.length;++b){c=d[b];for(var e=c.find(0),f=0;f<
a.length;++f){var g=a[f];if(!(0>x(g.to,e.from)||0<x(g.from,e.to))){var h=[f,1],k=x(g.from,e.from),l=x(g.to,e.to);(0>k||!c.inclusiveLeft&&!k)&&h.push({from:g.from,to:e.from});(0<l||!c.inclusiveRight&&!l)&&h.push({from:e.to,to:g.to});a.splice.apply(a,h);f+=h.length-3}}}return a}function se(a){var b=a.markedSpans;if(b){for(var c=0;c<b.length;++c)b[c].marker.detachLine(a);a.markedSpans=null}}function te(a,b){if(b){for(var c=0;c<b.length;++c)b[c].marker.attachLine(a);a.markedSpans=b}}function jd(a,b){var c=
a.lines.length-b.lines.length;if(0!=c)return c;var c=a.find(),d=b.find(),e=x(c.from,d.from)||(a.inclusiveLeft?-1:0)-(b.inclusiveLeft?-1:0);return e?-e:(c=x(c.to,d.to)||(a.inclusiveRight?1:0)-(b.inclusiveRight?1:0))?c:b.id-a.id}function eb(a,b){var c=va&&a.markedSpans,d;if(c)for(var e=void 0,f=0;f<c.length;++f)e=c[f],e.marker.collapsed&&null==(b?e.from:e.to)&&(!d||0>jd(d,e.marker))&&(d=e.marker);return d}function ue(a,b,c,d,e){a=t(a,b);if(a=va&&a.markedSpans)for(b=0;b<a.length;++b){var f=a[b];if(f.marker.collapsed){var g=
f.marker.find(0),h=x(g.from,c)||(f.marker.inclusiveLeft?-1:0)-(e.inclusiveLeft?-1:0),k=x(g.to,d)||(f.marker.inclusiveRight?1:0)-(e.inclusiveRight?1:0);if(!(0<=h&&0>=k||0>=h&&0<=k)&&(0>=h&&(f.marker.inclusiveRight&&e.inclusiveLeft?0<=x(g.to,c):0<x(g.to,c))||0<=h&&(f.marker.inclusiveRight&&e.inclusiveLeft?0>=x(g.from,d):0>x(g.from,d))))return!0}}}function ja(a){for(var b;b=eb(a,!0);)a=b.find(-1,!0).line;return a}function kd(a,b){var c=t(a,b),d=ja(c);return c==d?b:D(d)}function ve(a,b){if(b>a.lastLine())return b;
var c=t(a,b),d;if(!Ca(a,c))return b;for(;d=eb(c,!1);)c=d.find(1,!0).line;return D(c)+1}function Ca(a,b){var c=va&&b.markedSpans;if(c)for(var d=void 0,e=0;e<c.length;++e)if(d=c[e],d.marker.collapsed&&(null==d.from||!d.marker.widgetNode&&0==d.from&&d.marker.inclusiveLeft&&ld(a,b,d)))return!0}function ld(a,b,c){if(null==c.to)return b=c.marker.find(1,!0),ld(a,b.line,Cb(b.line.markedSpans,c.marker));if(c.marker.inclusiveRight&&c.to==b.text.length)return!0;for(var d=void 0,e=0;e<b.markedSpans.length;++e)if(d=
b.markedSpans[e],d.marker.collapsed&&!d.marker.widgetNode&&d.from==c.to&&(null==d.to||d.to!=c.from)&&(d.marker.inclusiveLeft||c.marker.inclusiveRight)&&ld(a,b,d))return!0}function ra(a){a=ja(a);for(var b=0,c=a.parent,d=0;d<c.lines.length;++d){var e=c.lines[d];if(e==a)break;else b+=e.height}for(a=c.parent;a;c=a,a=c.parent)for(d=0;d<a.children.length&&(e=a.children[d],e!=c);++d)b+=e.height;return b}function qc(a){if(0==a.height)return 0;for(var b=a.text.length,c,d=a;c=eb(d,!0);)c=c.find(0,!0),d=c.from.line,
b+=c.from.ch-c.to.ch;for(d=a;c=eb(d,!1);)a=c.find(0,!0),b-=d.text.length-a.from.ch,d=a.to.line,b+=d.text.length-a.to.ch;return b}function md(a){var b=a.display;a=a.doc;b.maxLine=t(a,a.first);b.maxLineLength=qc(b.maxLine);b.maxLineChanged=!0;a.iter(function(a){var d=qc(a);d>b.maxLineLength&&(b.maxLineLength=d,b.maxLine=a)})}function we(a,b){if(!a||/^\s*$/.test(a))return null;var c=b.addModeClass?vg:wg;return c[a]||(c[a]=a.replace(/\S+/g,"cm-$\x26"))}function xe(a,b){var c=ab("span",null,null,R?"padding-right: .1px":
null),c={pre:ab("pre",[c],"CodeMirror-line"),content:c,col:0,pos:0,cm:a,trailingSpace:!1,splitSpaces:a.getOption("lineWrapping")};b.measure={};for(var d=0;d<=(b.rest?b.rest.length:0);d++){var e=d?b.rest[d-1]:b.line,f=void 0;c.pos=0;c.addToken=xg;var g;g=a.display.measure;if(null!=nd)g=nd;else{var h=Z(g,document.createTextNode("AخA")),k=fb(h,0,1).getBoundingClientRect(),h=fb(h,1,2).getBoundingClientRect();da(g);g=k&&k.left!=k.right?nd=3>h.right-k.right:!1}g&&(f=ua(e,a.doc.direction))&&(c.addToken=
yg(c.addToken,f));c.map=[];g=b!=a.display.externalMeasured&&D(e);a:{f=c;g=me(a,e,g);var l=e.markedSpans,k=e.text,h=0;if(l)for(var m=k.length,p=0,n=1,r="",C=void 0,q=void 0,t=0,u=void 0,w=void 0,x=void 0,v=void 0,A=void 0;;){if(t==p){for(var u=w=x=q="",v=A=null,t=Infinity,z=[],X=void 0,y=0;y<l.length;++y){var O=l[y],K=O.marker;if("bookmark"==K.type&&O.from==p&&K.widgetNode)z.push(K);else if(O.from<=p&&(null==O.to||O.to>p||K.collapsed&&O.to==p&&O.from==p)){null!=O.to&&O.to!=p&&t>O.to&&(t=O.to,w="");
K.className&&(u+=" "+K.className);K.css&&(q=(q?q+";":"")+K.css);K.startStyle&&O.from==p&&(x+=" "+K.startStyle);K.endStyle&&O.to==t&&(X||(X=[])).push(K.endStyle,O.to);K.title&&((A||(A={})).title=K.title);if(K.attributes)for(var B in K.attributes)(A||(A={}))[B]=K.attributes[B];K.collapsed&&(!v||0>jd(v.marker,K))&&(v=O)}else O.from>p&&t>O.from&&(t=O.from)}if(X)for(y=0;y<X.length;y+=2)X[y+1]==t&&(w+=" "+X[y]);if(!v||v.from==p)for(X=0;X<z.length;++X)ye(f,0,z[X]);if(v&&(v.from||0)==p){ye(f,(null==v.to?
m+1:v.to)-p,v.marker,null==v.from);if(null==v.to)break a;v.to==p&&(v=!1)}}if(p>=m)break;for(z=Math.min(m,t);;){if(r){X=p+r.length;v||(y=X>z?r.slice(0,z-p):r,f.addToken(f,y,C?C+u:u,x,p+y.length==t?w:"",q,A));if(X>=z){r=r.slice(z-p);p=z;break}p=X;x=""}r=k.slice(h,h=g[n++]);C=we(g[n++],f.cm.options)}}else for(l=1;l<g.length;l+=2)f.addToken(f,k.slice(h,h=g[l]),we(g[l+1],f.cm.options))}e.styleClasses&&(e.styleClasses.bgClass&&(c.bgClass=Sc(e.styleClasses.bgClass,c.bgClass||"")),e.styleClasses.textClass&&
(c.textClass=Sc(e.styleClasses.textClass,c.textClass||"")));0==c.map.length&&c.map.push(0,0,c.content.appendChild(pg(a.display.measure)));0==d?(b.measure.map=c.map,b.measure.cache={}):((b.measure.maps||(b.measure.maps=[])).push(c.map),(b.measure.caches||(b.measure.caches=[])).push({}))}R&&(B=c.content.lastChild,/\bcm-tab\b/.test(B.className)||B.querySelector&&B.querySelector(".cm-tab"))&&(c.content.className="cm-tab-wrap-hack");H(a,"renderLine",a,b.line,c.pre);c.pre.className&&(c.textClass=Sc(c.pre.className,
c.textClass||""));return c}function zg(a){var b=u("span","•","cm-invalidchar");b.title="\\u"+a.charCodeAt(0).toString(16);b.setAttribute("aria-label",b.title);return b}function xg(a,b,c,d,e,f,g){if(b){var h;if(a.splitSpaces)if(h=a.trailingSpace,1<b.length&&!/ /.test(b))h=b;else{for(var k="",l=0;l<b.length;l++){var m=b.charAt(l);" "!=m||!h||l!=b.length-1&&32!=b.charCodeAt(l+1)||(m=" ");k+=m;h=" "==m}h=k}else h=b;k=h;l=a.cm.state.specialChars;m=!1;if(l.test(b)){h=document.createDocumentFragment();
for(var p=0;;){l.lastIndex=p;var n=l.exec(b),r=n?n.index-p:b.length-p;if(r){var C=document.createTextNode(k.slice(p,p+r));A&&9>E?h.appendChild(u("span",[C])):h.appendChild(C);a.map.push(a.pos,a.pos+r,C);a.col+=r;a.pos+=r}if(!n)break;p+=r+1;r=void 0;"\t"==n[0]?(n=a.cm.options.tabSize,n-=a.col%n,r=h.appendChild(u("span",Vc(n),"cm-tab")),r.setAttribute("role","presentation"),r.setAttribute("cm-text","\t"),a.col+=n):("\r"==n[0]||"\n"==n[0]?(r=h.appendChild(u("span","\r"==n[0]?"␍":"","cm-invalidchar")),
r.setAttribute("cm-text",n[0])):(r=a.cm.options.specialCharPlaceholder(n[0]),r.setAttribute("cm-text",n[0]),A&&9>E?h.appendChild(u("span",[r])):h.appendChild(r)),a.col+=1);a.map.push(a.pos,a.pos+1,r);a.pos++}}else a.col+=b.length,h=document.createTextNode(k),a.map.push(a.pos,a.pos+b.length,h),A&&9>E&&(m=!0),a.pos+=b.length;a.trailingSpace=32==k.charCodeAt(b.length-1);if(c||d||e||m||f||g){b=c||"";d&&(b+=d);e&&(b+=e);d=u("span",[h],b,f);if(g)for(var q in g)g.hasOwnProperty(q)&&"style"!=q&&"class"!=
q&&d.setAttribute(q,g[q]);return a.content.appendChild(d)}a.content.appendChild(h)}}function yg(a,b){return function(c,d,e,f,g,h,k){e=e?e+" cm-force-border":"cm-force-border";for(var l=c.pos,m=l+d.length;;){for(var p=void 0,n=0;n<b.length&&!(p=b[n],p.to>l&&p.from<=l);n++);if(p.to>=m)return a(c,d,e,f,g,h,k);a(c,d.slice(0,p.to-l),e,f,null,h,k);f=null;d=d.slice(p.to-l);l=p.to}}}function ye(a,b,c,d){var e=!d&&c.widgetNode;e&&a.map.push(a.pos,a.pos+b,e);!d&&a.cm.display.input.needsContentAttribute&&(e||
(e=a.content.appendChild(document.createElement("span"))),e.setAttribute("cm-marker",c.id));e&&(a.cm.display.input.setUneditable(e),a.content.appendChild(e));a.pos+=b;a.trailingSpace=!1}function ze(a,b,c){for(var d=this.line=b,e;d=eb(d,!1);)d=d.find(1,!0).line,(e||(e=[])).push(d);this.size=(this.rest=e)?D(y(this.rest))-c+1:1;this.node=this.text=null;this.hidden=Ca(a,b)}function rc(a,b,c){var d=[],e;for(e=b;e<c;)b=new ze(a.doc,t(a.doc,e),e),e+=b.size,d.push(b);return d}function Ag(a,b){var c=a.ownsGroup;
if(c)try{var d=c.delayedCallbacks,e=0;do{for(;e<d.length;e++)d[e].call(null);for(var f=0;f<c.ops.length;f++){var g=c.ops[f];if(g.cursorActivityHandlers)for(;g.cursorActivityCalled<g.cursorActivityHandlers.length;)g.cursorActivityHandlers[g.cursorActivityCalled++].call(null,g.cm)}}while(e<d.length)}finally{gb=null,b(c)}}function L(a,b){var c=a._handlers&&a._handlers[b]||kc;if(c.length){var d=Array.prototype.slice.call(arguments,2),e;gb?e=gb.delayedCallbacks:Db?e=Db:(e=Db=[],setTimeout(Bg,0));for(var f=
function(a){e.push(function(){return c[a].apply(null,d)})},g=0;g<c.length;++g)f(g)}}function Bg(){var a=Db;Db=null;for(var b=0;b<a.length;++b)a[b]()}function Ae(a,b,c,d){for(var e=0;e<b.changes.length;e++){var f=b.changes[e];if("text"==f){var f=a,g=b,h=g.text.className,k=Be(f,g);g.text==g.node&&(g.node=k.pre);g.text.parentNode.replaceChild(k.pre,g.text);g.text=k.pre;k.bgClass!=g.bgClass||k.textClass!=g.textClass?(g.bgClass=k.bgClass,g.textClass=k.textClass,od(f,g)):h&&(g.text.className=h)}else if("gutter"==
f)Ce(a,b,c,d);else if("class"==f)od(a,b);else if("widget"==f){f=a;g=b;h=d;g.alignable&&(g.alignable=null);for(var k=oa("CodeMirror-linewidget"),l=g.node.firstChild,m=void 0;l;l=m)m=l.nextSibling,k.test(l.className)&&g.node.removeChild(l);De(f,g,h)}}b.changes=null}function Eb(a){a.node==a.text&&(a.node=u("div",null,null,"position: relative"),a.text.parentNode&&a.text.parentNode.replaceChild(a.node,a.text),a.node.appendChild(a.text),A&&8>E&&(a.node.style.zIndex=2));return a.node}function Be(a,b){var c=
a.display.externalMeasured;return c&&c.line==b.line?(a.display.externalMeasured=null,b.measure=c.measure,c.built):xe(a,b)}function od(a,b){var c=b.bgClass?b.bgClass+" "+(b.line.bgClass||""):b.line.bgClass;c&&(c+=" CodeMirror-linebackground");if(b.background)c?b.background.className=c:(b.background.parentNode.removeChild(b.background),b.background=null);else if(c){var d=Eb(b);b.background=d.insertBefore(u("div",null,c),d.firstChild);a.display.input.setUneditable(b.background)}b.line.wrapClass?Eb(b).className=
b.line.wrapClass:b.node!=b.text&&(b.node.className="");b.text.className=(b.textClass?b.textClass+" "+(b.line.textClass||""):b.line.textClass)||""}function Ce(a,b,c,d){b.gutter&&(b.node.removeChild(b.gutter),b.gutter=null);b.gutterBackground&&(b.node.removeChild(b.gutterBackground),b.gutterBackground=null);if(b.line.gutterClass){var e=Eb(b);b.gutterBackground=u("div",null,"CodeMirror-gutter-background "+b.line.gutterClass,"left: "+(a.options.fixedGutter?d.fixedPos:-d.gutterTotalWidth)+"px; width: "+
d.gutterTotalWidth+"px");a.display.input.setUneditable(b.gutterBackground);e.insertBefore(b.gutterBackground,b.text)}e=b.line.gutterMarkers;if(a.options.lineNumbers||e){var f=Eb(b),g=b.gutter=u("div",null,"CodeMirror-gutter-wrapper","left: "+(a.options.fixedGutter?d.fixedPos:-d.gutterTotalWidth)+"px");g.setAttribute("aria-hidden","true");a.display.input.setUneditable(g);f.insertBefore(g,b.text);b.line.gutterClass&&(g.className+=" "+b.line.gutterClass);!a.options.lineNumbers||e&&e["CodeMirror-linenumbers"]||
(b.lineNumber=g.appendChild(u("div",dd(a.options,c),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+d.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+a.display.lineNumInnerWidth+"px")));if(e)for(b=0;b<a.display.gutterSpecs.length;++b)c=a.display.gutterSpecs[b].className,(f=e.hasOwnProperty(c)&&e[c])&&g.appendChild(u("div",[f],"CodeMirror-gutter-elt","left: "+d.gutterLeft[c]+"px; width: "+d.gutterWidth[c]+"px"))}}function Cg(a,b,c,d){var e=Be(a,b);b.text=b.node=e.pre;e.bgClass&&(b.bgClass=
e.bgClass);e.textClass&&(b.textClass=e.textClass);od(a,b);Ce(a,b,c,d);De(a,b,d);return b.node}function De(a,b,c){Ee(a,b.line,b,c,!0);if(b.rest)for(var d=0;d<b.rest.length;d++)Ee(a,b.rest[d],b,c,!1)}function Ee(a,b,c,d,e){if(b.widgets){var f=Eb(c),g=0;for(b=b.widgets;g<b.length;++g){var h=b[g],k=u("div",[h.node],"CodeMirror-linewidget"+(h.className?" "+h.className:""));h.handleMouseEvents||k.setAttribute("cm-ignore-events","true");var l=h,m=k,p=d;if(l.noHScroll){(c.alignable||(c.alignable=[])).push(m);
var n=p.wrapperWidth;m.style.left=p.fixedPos+"px";l.coverGutter||(n-=p.gutterTotalWidth,m.style.paddingLeft=p.gutterTotalWidth+"px");m.style.width=n+"px"}l.coverGutter&&(m.style.zIndex=5,m.style.position="relative",l.noHScroll||(m.style.marginLeft=-p.gutterTotalWidth+"px"));a.display.input.setUneditable(k);e&&h.above?f.insertBefore(k,c.gutter||c.text):f.appendChild(k);L(h,"redraw")}}}function Fb(a){if(null!=a.height)return a.height;var b=a.doc.cm;if(!b)return 0;if(!Aa(document.body,a.node)){var c=
"position: relative;";a.coverGutter&&(c+="margin-left: -"+b.display.gutters.offsetWidth+"px;");a.noHScroll&&(c+="width: "+b.display.wrapper.clientWidth+"px;");Z(b.display.measure,u("div",[a.node],null,c))}return a.height=a.node.parentNode.offsetHeight}function wa(a,b){for(var c=b.target||b.srcElement;c!=a.wrapper;c=c.parentNode)if(!c||1==c.nodeType&&"true"==c.getAttribute("cm-ignore-events")||c.parentNode==a.sizer&&c!=a.mover)return!0}function pd(a){return a.mover.offsetHeight-a.lineSpace.offsetHeight}
function Fe(a){if(a.cachedPaddingH)return a.cachedPaddingH;var b=Z(a.measure,u("pre","x","CodeMirror-line-like")),b=window.getComputedStyle?window.getComputedStyle(b):b.currentStyle,b={left:parseInt(b.paddingLeft),right:parseInt(b.paddingRight)};isNaN(b.left)||isNaN(b.right)||(a.cachedPaddingH=b);return b}function sa(a){return 50-a.display.nativeBarWidth}function Qa(a){return a.display.scroller.clientWidth-sa(a)-a.display.barWidth}function qd(a){return a.display.scroller.clientHeight-sa(a)-a.display.barHeight}
function Ge(a,b,c){if(a.line==b)return{map:a.measure.map,cache:a.measure.cache};if(a.rest){for(var d=0;d<a.rest.length;d++)if(a.rest[d]==b)return{map:a.measure.maps[d],cache:a.measure.caches[d]};for(b=0;b<a.rest.length;b++)if(D(a.rest[b])>c)return{map:a.measure.maps[b],cache:a.measure.caches[b],before:!0}}}function rd(a,b){if(b>=a.display.viewFrom&&b<a.display.viewTo)return a.display.view[Ra(a,b)];var c=a.display.externalMeasured;if(c&&b>=c.lineN&&b<c.lineN+c.size)return c}function Sa(a,b){var c=
D(b),d=rd(a,c);d&&!d.text?d=null:d&&d.changes&&(Ae(a,d,c,sd(a)),a.curOp.forceUpdate=!0);if(!d){var e;e=ja(b);d=D(e);e=a.display.externalMeasured=new ze(a.doc,e,d);e.lineN=d;d=e.built=xe(a,e);e.text=d.pre;Z(a.display.lineMeasure,d.pre);d=e}c=Ge(d,b,c);return{line:b,view:d,rect:null,map:c.map,cache:c.cache,before:c.before,hasHeights:!1}}function ka(a,b,c,d,e){b.before&&(c=-1);var f=c+(d||"");if(b.cache.hasOwnProperty(f))a=b.cache[f];else{b.rect||(b.rect=b.view.text.getBoundingClientRect());if(!b.hasHeights){var g=
b.view,h=b.rect,k=a.options.lineWrapping,l=k&&Qa(a);if(!g.measure.heights||k&&g.measure.width!=l){var m=g.measure.heights=[];if(k)for(g.measure.width=l,g=g.text.firstChild.getClientRects(),k=0;k<g.length-1;k++){var l=g[k],p=g[k+1];2<Math.abs(l.bottom-p.bottom)&&m.push((l.bottom+p.top)/2-h.top)}m.push(h.bottom-h.top)}b.hasHeights=!0}m=d;g=He(b.map,c,m);d=g.node;h=g.start;k=g.end;c=g.collapse;var n;if(3==d.nodeType){for(var r=0;4>r;r++){for(;h&&Xc(b.line.text.charAt(g.coverStart+h));)--h;for(;g.coverStart+
k<g.coverEnd&&Xc(b.line.text.charAt(g.coverStart+k));)++k;if(A&&9>E&&0==h&&k==g.coverEnd-g.coverStart)n=d.parentNode.getBoundingClientRect();else{n=fb(d,h,k).getClientRects();k=Ie;if("left"==m)for(l=0;l<n.length&&(k=n[l]).left==k.right;l++);else for(l=n.length-1;0<=l&&(k=n[l]).left==k.right;l--);n=k}if(n.left||n.right||0==h)break;k=h;--h;c="right"}A&&11>E&&((r=!window.screen||null==screen.logicalXDPI||screen.logicalXDPI==screen.deviceXDPI)||(null!=td?r=td:(m=Z(a.display.measure,u("span","x")),r=m.getBoundingClientRect(),
m=fb(m,0,1).getBoundingClientRect(),r=td=1<Math.abs(r.left-m.left)),r=!r),r||(r=screen.logicalXDPI/screen.deviceXDPI,m=screen.logicalYDPI/screen.deviceYDPI,n={left:n.left*r,right:n.right*r,top:n.top*m,bottom:n.bottom*m}))}else 0<h&&(c=m="right"),n=a.options.lineWrapping&&1<(r=d.getClientRects()).length?r["right"==m?r.length-1:0]:d.getBoundingClientRect();!(A&&9>E)||h||n&&(n.left||n.right)||(n=(n=d.parentNode.getClientRects()[0])?{left:n.left,right:n.left+hb(a.display),top:n.top,bottom:n.bottom}:Ie);
d=n.top-b.rect.top;h=n.bottom-b.rect.top;r=(d+h)/2;m=b.view.measure.heights;for(g=0;g<m.length-1&&!(r<m[g]);g++);c={left:("right"==c?n.right:n.left)-b.rect.left,right:("left"==c?n.left:n.right)-b.rect.left,top:g?m[g-1]:0,bottom:m[g]};n.left||n.right||(c.bogus=!0);a.options.singleCursorHeightPerLine||(c.rtop=d,c.rbottom=h);a=c;a.bogus||(b.cache[f]=a)}return{left:a.left,right:a.right,top:e?a.rtop:a.top,bottom:e?a.rbottom:a.bottom}}function He(a,b,c){for(var d,e,f,g,h,k,l=0;l<a.length;l+=3){h=a[l];k=
a[l+1];if(b<h)e=0,f=1,g="left";else if(b<k)e=b-h,f=e+1;else if(l==a.length-3||b==k&&a[l+3]>b)f=k-h,e=f-1,b>=k&&(g="right");if(null!=e){d=a[l+2];h==k&&c==(d.insertLeft?"left":"right")&&(g=c);if("left"==c&&0==e)for(;l&&a[l-2]==a[l-3]&&a[l-1].insertLeft;)d=a[(l-=3)+2],g="left";if("right"==c&&e==k-h)for(;l<a.length-3&&a[l+3]==a[l+4]&&!a[l+5].insertLeft;)d=a[(l+=3)+2],g="right";break}}return{node:d,start:e,end:f,collapse:g,coverStart:h,coverEnd:k}}function Je(a){if(a.measure&&(a.measure.cache={},a.measure.heights=
null,a.rest))for(var b=0;b<a.rest.length;b++)a.measure.caches[b]={}}function Ke(a){a.display.externalMeasure=null;da(a.display.lineMeasure);for(var b=0;b<a.display.view.length;b++)Je(a.display.view[b])}function Gb(a){Ke(a);a.display.cachedCharWidth=a.display.cachedTextHeight=a.display.cachedPaddingH=null;a.options.lineWrapping||(a.display.maxLineChanged=!0);a.display.lineNumChars=null}function Le(a){return Da&&sc?-(a.body.getBoundingClientRect().left-parseInt(getComputedStyle(a.body).marginLeft)):
a.defaultView.pageXOffset||(a.documentElement||a.body).scrollLeft}function Me(a){return Da&&sc?-(a.body.getBoundingClientRect().top-parseInt(getComputedStyle(a.body).marginTop)):a.defaultView.pageYOffset||(a.documentElement||a.body).scrollTop}function ud(a){a=ja(a).widgets;var b=0;if(a)for(var c=0;c<a.length;++c)a[c].above&&(b+=Fb(a[c]));return b}function tc(a,b,c,d,e){e||(e=ud(b),c.top+=e,c.bottom+=e);if("line"==d)return c;d||(d="local");b=ra(b);b="local"==d?b+a.display.lineSpace.offsetTop:b-a.display.viewOffset;
if("page"==d||"window"==d)e=a.display.lineSpace.getBoundingClientRect(),b+=e.top+("window"==d?0:Me(Ba(a))),a=e.left+("window"==d?0:Le(Ba(a))),c.left+=a,c.right+=a;c.top+=b;c.bottom+=b;return c}function Ne(a,b,c){if("div"==c)return b;var d=b.left;b=b.top;"page"==c?(d-=Le(Ba(a)),b-=Me(Ba(a))):"local"!=c&&c||(c=a.display.sizer.getBoundingClientRect(),d+=c.left,b+=c.top);a=a.display.lineSpace.getBoundingClientRect();return{left:d-a.left,top:b-a.top}}function uc(a,b,c,d,e){d||(d=t(a.doc,b.line));var f=
d;b=b.ch;d=ka(a,Sa(a,d),b,e);return tc(a,f,d,c)}function la(a,b,c,d,e,f){function g(b,g){var h=ka(a,e,b,g?"right":"left",f);g?h.left=h.right:h.right=h.left;return tc(a,d,h,c)}function h(a,b,c){return g(c?a-1:a,1==k[b].level!=c)}d=d||t(a.doc,b.line);e||(e=Sa(a,d));var k=ua(d,a.doc.direction),l=b.ch;b=b.sticky;l>=d.text.length?(l=d.text.length,b="before"):0>=l&&(l=0,b="after");if(!k)return g("before"==b?l-1:l,"before"==b);var m=xb(k,l,b),p=yb,m=h(l,m,"before"==b);null!=p&&(m.other=h(l,p,"before"!=b));
return m}function Oe(a,b){var c=0;b=v(a.doc,b);a.options.lineWrapping||(c=hb(a.display)*b.ch);var d=t(a.doc,b.line),e=ra(d)+a.display.lineSpace.offsetTop;return{left:c,right:c,top:e,bottom:e+d.height}}function vd(a,b,c,d,e){a=q(a,b,c);a.xRel=e;d&&(a.outside=d);return a}function wd(a,b,c){var d=a.doc;c+=a.display.viewOffset;if(0>c)return vd(d.first,0,null,-1,-1);var e=Pa(d,c),f=d.first+d.size-1;if(e>f)return vd(d.first+d.size-1,t(d,f).text.length,null,1,1);0>b&&(b=0);for(var g=t(d,e);;){var f=Dg(a,
g,e,b,c),h;h=f.ch+(0<f.xRel||0<f.outside?1:0);var g=va&&g.markedSpans,k=void 0;if(g)for(var l=0;l<g.length;++l){var m=g[l];m.marker.collapsed&&(null==m.from||m.from<h)&&(null==m.to||m.to>h)&&(!k||0>jd(k,m.marker))&&(k=m.marker)}h=k;if(!h)return f;f=h.find(1);if(f.line==e)return f;g=t(d,e=f.line)}}function Pe(a,b,c,d){d-=ud(b);b=b.text.length;var e=wb(function(b){return ka(a,c,b-1).bottom<=d},b,0);b=wb(function(b){return ka(a,c,b).top>d},e,b);return{begin:e,end:b}}function Qe(a,b,c,d){c||(c=Sa(a,b));
d=tc(a,b,ka(a,c,d),"line").top;return Pe(a,b,c,d)}function xd(a,b,c,d){return a.bottom<=c?!1:a.top>c?!0:(d?a.left:a.right)>b}function Dg(a,b,c,d,e){e-=ra(b);var f=Sa(a,b),g=ud(b),h=0,k=b.text.length,l=!0,m=ua(b,a.doc.direction);m&&(m=(a.options.lineWrapping?Eg:Fg)(a,b,c,f,m,d,e),h=(l=1!=m.level)?m.from:m.to-1,k=l?m.to:m.from-1);var p=null,n=null,m=wb(function(b){var c=ka(a,f,b);c.top+=g;c.bottom+=g;if(!xd(c,d,e,!1))return!1;c.top<=e&&c.left<=d&&(p=b,n=c);return!0},h,k),r=!1;n?(h=d-n.left<n.right-
d,l=h==l,m=p+(l?0:1),l=l?"after":"before",h=h?n.left:n.right):(l||m!=k&&m!=h||m++,l=0==m?"after":m==b.text.length?"before":ka(a,f,m-(l?1:0)).bottom+g<=e==l?"after":"before",r=la(a,q(c,m,l),"line",b,f),h=r.left,r=e<r.top?-1:e>=r.bottom?1:0);m=ee(b.text,m,1);return vd(c,m,l,r,d-h)}function Fg(a,b,c,d,e,f,g){var h=wb(function(h){h=e[h];var k=1!=h.level;return xd(la(a,q(c,k?h.to:h.from,k?"before":"after"),"line",b,d),f,g,!0)},0,e.length-1),k=e[h];if(0<h){var l=1!=k.level,l=la(a,q(c,l?k.from:k.to,l?"after":
"before"),"line",b,d);xd(l,f,g,!0)&&l.top>g&&(k=e[h-1])}return k}function Eg(a,b,c,d,e,f,g){g=Pe(a,b,d,g);c=g.begin;g=g.end;/\s/.test(b.text.charAt(g-1))&&g--;for(var h=b=null,k=0;k<e.length;k++){var l=e[k];if(!(l.from>=g||l.to<=c)){var m=ka(a,d,1!=l.level?Math.min(g,l.to)-1:Math.max(c,l.from)).right,m=m<f?f-m+1E9:m-f;if(!b||h>m)b=l,h=m}}b||(b=e[e.length-1]);b.from<c&&(b={from:c,to:b.to,level:b.level});b.to>g&&(b={from:b.from,to:g,level:b.level});return b}function ib(a){if(null!=a.cachedTextHeight)return a.cachedTextHeight;
if(null==Ta){Ta=u("pre",null,"CodeMirror-line-like");for(var b=0;49>b;++b)Ta.appendChild(document.createTextNode("x")),Ta.appendChild(u("br"));Ta.appendChild(document.createTextNode("x"))}Z(a.measure,Ta);b=Ta.offsetHeight/50;3<b&&(a.cachedTextHeight=b);da(a.measure);return b||1}function hb(a){if(null!=a.cachedCharWidth)return a.cachedCharWidth;var b=u("span","xxxxxxxxxx"),c=u("pre",[b],"CodeMirror-line-like");Z(a.measure,c);b=b.getBoundingClientRect();b=(b.right-b.left)/10;2<b&&(a.cachedCharWidth=
b);return b||10}function sd(a){for(var b=a.display,c={},d={},e=b.gutters.clientLeft,f=b.gutters.firstChild,g=0;f;f=f.nextSibling,++g){var h=a.display.gutterSpecs[g].className;c[h]=f.offsetLeft+f.clientLeft+e;d[h]=f.clientWidth}return{fixedPos:yd(b),gutterTotalWidth:b.gutters.offsetWidth,gutterLeft:c,gutterWidth:d,wrapperWidth:b.wrapper.clientWidth}}function yd(a){return a.scroller.getBoundingClientRect().left-a.sizer.getBoundingClientRect().left}function Re(a){var b=ib(a.display),c=a.options.lineWrapping,
d=c&&Math.max(5,a.display.scroller.clientWidth/hb(a.display)-3);return function(e){if(Ca(a.doc,e))return 0;var f=0;if(e.widgets)for(var g=0;g<e.widgets.length;g++)e.widgets[g].height&&(f+=e.widgets[g].height);return c?f+(Math.ceil(e.text.length/d)||1)*b:f+b}}function zd(a){var b=a.doc,c=Re(a);b.iter(function(a){var b=c(a);b!=a.height&&pa(a,b)})}function Ua(a,b,c,d){var e=a.display;if(!c&&"true"==(b.target||b.srcElement).getAttribute("cm-not-content"))return null;var f,g;c=e.lineSpace.getBoundingClientRect();
try{f=b.clientX-c.left,g=b.clientY-c.top}catch(h){return null}b=wd(a,f,g);var k;d&&0<b.xRel&&(k=t(a.doc,b.line).text).length==b.ch&&(d=ga(k,k.length,a.options.tabSize)-k.length,b=q(b.line,Math.max(0,Math.round((f-Fe(a.display).left)/hb(a.display))-d)));return b}function Ra(a,b){if(b>=a.display.viewTo)return null;b-=a.display.viewFrom;if(0>b)return null;for(var c=a.display.view,d=0;d<c.length;d++)if(b-=c[d].size,0>b)return d}function U(a,b,c,d){null==b&&(b=a.doc.first);null==c&&(c=a.doc.first+a.doc.size);
d||(d=0);var e=a.display;d&&c<e.viewTo&&(null==e.updateLineNumbers||e.updateLineNumbers>b)&&(e.updateLineNumbers=b);a.curOp.viewChanged=!0;if(b>=e.viewTo)va&&kd(a.doc,b)<e.viewTo&&Ea(a);else if(c<=e.viewFrom)va&&ve(a.doc,c+d)>e.viewFrom?Ea(a):(e.viewFrom+=d,e.viewTo+=d);else if(b<=e.viewFrom&&c>=e.viewTo)Ea(a);else if(b<=e.viewFrom){var f=vc(a,c,c+d,1);f?(e.view=e.view.slice(f.index),e.viewFrom=f.lineN,e.viewTo+=d):Ea(a)}else if(c>=e.viewTo)(f=vc(a,b,b,-1))?(e.view=e.view.slice(0,f.index),e.viewTo=
f.lineN):Ea(a);else{var f=vc(a,b,b,-1),g=vc(a,c,c+d,1);f&&g?(e.view=e.view.slice(0,f.index).concat(rc(a,f.lineN,g.lineN)).concat(e.view.slice(g.index)),e.viewTo+=d):Ea(a)}if(a=e.externalMeasured)c<a.lineN?a.lineN+=d:b<a.lineN+a.size&&(e.externalMeasured=null)}function Fa(a,b,c){a.curOp.viewChanged=!0;var d=a.display,e=a.display.externalMeasured;e&&b>=e.lineN&&b<e.lineN+e.size&&(d.externalMeasured=null);b<d.viewFrom||b>=d.viewTo||(a=d.view[Ra(a,b)],null!=a.node&&(a=a.changes||(a.changes=[]),-1==Q(a,
c)&&a.push(c)))}function Ea(a){a.display.viewFrom=a.display.viewTo=a.doc.first;a.display.view=[];a.display.viewOffset=0}function vc(a,b,c,d){var e=Ra(a,b),f=a.display.view;if(!va||c==a.doc.first+a.doc.size)return{index:e,lineN:c};for(var g=a.display.viewFrom,h=0;h<e;h++)g+=f[h].size;if(g!=b){if(0<d){if(e==f.length-1)return null;b=g+f[e].size-b;e++}else b=g-b;c+=b}for(;kd(a.doc,c)!=c;){if(e==(0>d?0:f.length-1))return null;c+=d*f[e-(0>d?1:0)].size;e+=d}return{index:e,lineN:c}}function Se(a){a=a.display.view;
for(var b=0,c=0;c<a.length;c++){var d=a[c];d.hidden||d.node&&!d.changes||++b}return b}function Hb(a){a.display.input.showSelection(a.display.input.prepareSelection())}function Te(a,b){void 0===b&&(b=!0);var c=a.doc,d={},e=d.cursors=document.createDocumentFragment(),f=d.selection=document.createDocumentFragment(),g=a.options.$customCursor;g&&(b=!0);for(var h=0;h<c.sel.ranges.length;h++)if(b||h!=c.sel.primIndex){var k=c.sel.ranges[h];if(!(k.from().line>=a.display.viewTo||k.to().line<a.display.viewFrom)){var l=
k.empty();if(g){var m=g(a,k);m&&Ad(a,m,e)}else(l||a.options.showCursorWhenSelecting)&&Ad(a,k.head,e);l||Gg(a,k,f)}}return d}function Ad(a,b,c){var d=la(a,b,"div",null,null,!a.options.singleCursorHeightPerLine),e=c.appendChild(u("div"," ","CodeMirror-cursor"));e.style.left=d.left+"px";e.style.top=d.top+"px";e.style.height=Math.max(0,d.bottom-d.top)*a.options.cursorHeight+"px";/\bcm-fat-cursor\b/.test(a.getWrapperElement().className)&&(b=uc(a,b,"div",null,null),b=b.right-b.left,e.style.width=(0<b?b:
a.defaultCharWidth())+"px");d.other&&(a=c.appendChild(u("div"," ","CodeMirror-cursor CodeMirror-secondarycursor")),a.style.display="",a.style.left=d.other.left+"px",a.style.top=d.other.top+"px",a.style.height=.85*(d.other.bottom-d.other.top)+"px")}function wc(a,b){return a.top-b.top||a.left-b.left}function Gg(a,b,c){function d(a,b,c,d){0>b&&(b=0);b=Math.round(b);d=Math.round(d);h.appendChild(u("div",null,"CodeMirror-selected","position: absolute; left: "+a+"px;\n top: "+
b+"px; width: "+(null==c?m-a:c)+"px;\n height: "+(d-b)+"px"))}function e(b,c,e){function f(c,d){return uc(a,q(b,c),"div",k,d)}function h(b,c,d){b=Qe(a,k,null,b);c="ltr"==c==("after"==d)?"left":"right";d="after"==d?b.begin:b.end-(/\s/.test(k.text.charAt(b.end-1))?2:1);return f(d,c)[c]}var k=t(g,b),n=k.text.length,v,u,w=ua(k,g.direction);ng(w,c||0,null==e?n:e,function(a,b,g,k){var r="ltr"==g,q=f(a,r?"left":"right"),t=f(b-1,r?"right":"left"),x=null==c&&0==a,y=null==e&&b==
n,z=0==k;k=!w||k==w.length-1;3>=t.top-q.top?(b=(p?x:y)&&z?l:(r?q:t).left,d(b,q.top,((p?y:x)&&k?m:(r?t:q).right)-b,q.bottom)):(r?(r=p&&x&&z?l:q.left,x=p?m:h(a,g,"before"),a=p?l:h(b,g,"after"),y=p&&y&&k?m:t.right):(r=p?h(a,g,"before"):l,x=!p&&x&&z?m:q.right,a=!p&&y&&k?l:t.left,y=p?h(b,g,"after"):m),d(r,q.top,x-r,q.bottom),q.bottom<t.top&&d(l,q.bottom,null,t.top),d(a,t.top,y-a,t.bottom));if(!v||0>wc(q,v))v=q;0>wc(t,v)&&(v=t);if(!u||0>wc(q,u))u=q;0>wc(t,u)&&(u=t)});return{start:v,end:u}}var f=a.display,
g=a.doc,h=document.createDocumentFragment(),k=Fe(a.display),l=k.left,m=Math.max(f.sizerWidth,Qa(a)-f.sizer.offsetLeft)-k.right,p="ltr"==g.direction,f=b.from();b=b.to();if(f.line==b.line)e(f.line,f.ch,b.ch);else{var n=t(g,f.line),k=t(g,b.line),k=ja(n)==ja(k),f=e(f.line,f.ch,k?n.text.length+1:null).end;b=e(b.line,k?0:null,b.ch).start;k&&(f.top<b.top-2?(d(f.right,f.top,null,f.bottom),d(l,b.top,b.left,b.bottom)):d(f.right,f.top,b.left-f.right,f.bottom));f.bottom<b.top&&d(l,f.bottom,null,b.top)}c.appendChild(h)}
function Bd(a){if(a.state.focused){var b=a.display;clearInterval(b.blinker);var c=!0;b.cursorDiv.style.visibility="";0<a.options.cursorBlinkRate?b.blinker=setInterval(function(){a.hasFocus()||jb(a);b.cursorDiv.style.visibility=(c=!c)?"":"hidden"},a.options.cursorBlinkRate):0>a.options.cursorBlinkRate&&(b.cursorDiv.style.visibility="hidden")}}function Ue(a){a.hasFocus()||(a.display.input.focus(),a.state.focused||Cd(a))}function Dd(a){a.state.delayingBlurEvent=!0;setTimeout(function(){a.state.delayingBlurEvent&&
(a.state.delayingBlurEvent=!1,a.state.focused&&jb(a))},100)}function Cd(a,b){a.state.delayingBlurEvent&&!a.state.draggingText&&(a.state.delayingBlurEvent=!1);"nocursor"!=a.options.readOnly&&(a.state.focused||(H(a,"focus",a,b),a.state.focused=!0,La(a.display.wrapper,"CodeMirror-focused"),a.curOp||a.display.selForContextMenu==a.doc.sel||(a.display.input.reset(),R&&setTimeout(function(){return a.display.input.reset(!0)},20)),a.display.input.receivedFocus()),Bd(a))}function jb(a,b){a.state.delayingBlurEvent||
(a.state.focused&&(H(a,"blur",a,b),a.state.focused=!1,Va(a.display.wrapper,"CodeMirror-focused")),clearInterval(a.display.blinker),setTimeout(function(){a.state.focused||(a.display.shift=!1)},150))}function xc(a){for(var b=a.display,c=b.lineDiv.offsetTop,d=Math.max(0,b.scroller.getBoundingClientRect().top),e=b.lineDiv.getBoundingClientRect().top,f=0,g=0;g<b.view.length;g++){var h=b.view[g],k=a.options.lineWrapping,l=void 0,m=0;if(!h.hidden){e+=h.line.height;if(A&&8>E)k=h.node.offsetTop+h.node.offsetHeight,
l=k-c,c=k;else{var p=h.node.getBoundingClientRect(),l=p.bottom-p.top;!k&&h.text.firstChild&&(m=h.text.firstChild.getBoundingClientRect().right-p.left-1)}k=h.line.height-l;if(.005<k||-.005>k)if(e<d&&(f-=k),pa(h.line,l),Ve(h.line),h.rest)for(l=0;l<h.rest.length;l++)Ve(h.rest[l]);m>a.display.sizerWidth&&(m=Math.ceil(m/hb(a.display)),m>a.display.maxLineLength&&(a.display.maxLineLength=m,a.display.maxLine=h.line,a.display.maxLineChanged=!0))}}2<Math.abs(f)&&(b.scroller.scrollTop+=f)}function Ve(a){if(a.widgets)for(var b=
0;b<a.widgets.length;++b){var c=a.widgets[b],d=c.node.parentNode;d&&(c.height=d.offsetHeight)}}function yc(a,b,c){var d=c&&null!=c.top?Math.max(0,c.top):a.scroller.scrollTop,d=Math.floor(d-a.lineSpace.offsetTop),e=c&&null!=c.bottom?c.bottom:d+a.wrapper.clientHeight,d=Pa(b,d),e=Pa(b,e);if(c&&c.ensure){var f=c.ensure.from.line;c=c.ensure.to.line;f<d?(d=f,e=Pa(b,ra(t(b,f))+a.wrapper.clientHeight)):Math.min(c,b.lastLine())>=e&&(d=Pa(b,ra(t(b,c))-a.wrapper.clientHeight),e=c)}return{from:d,to:Math.max(e,
d+1)}}function Ed(a,b){var c=a.display,d=ib(a.display);0>b.top&&(b.top=0);var e=a.curOp&&null!=a.curOp.scrollTop?a.curOp.scrollTop:c.scroller.scrollTop,f=qd(a),g={};b.bottom-b.top>f&&(b.bottom=b.top+f);var h=a.doc.height+pd(c),k=b.top<d,d=b.bottom>h-d;b.top<e?g.scrollTop=k?0:b.top:b.bottom>e+f&&(f=Math.min(b.top,(d?h:b.bottom)-f),f!=e&&(g.scrollTop=f));e=a.options.fixedGutter?0:c.gutters.offsetWidth;f=a.curOp&&null!=a.curOp.scrollLeft?a.curOp.scrollLeft:c.scroller.scrollLeft-e;c=Qa(a)-c.gutters.offsetWidth;
if(h=b.right-b.left>c)b.right=b.left+c;10>b.left?g.scrollLeft=0:b.left<f?g.scrollLeft=Math.max(0,b.left+e-(h?0:10)):b.right>c+f-3&&(g.scrollLeft=b.right+(h?0:10)-c);return g}function zc(a,b){null!=b&&(Ac(a),a.curOp.scrollTop=(null==a.curOp.scrollTop?a.doc.scrollTop:a.curOp.scrollTop)+b)}function kb(a){Ac(a);var b=a.getCursor();a.curOp.scrollToPos={from:b,to:b,margin:a.options.cursorScrollMargin}}function Ib(a,b,c){null==b&&null==c||Ac(a);null!=b&&(a.curOp.scrollLeft=b);null!=c&&(a.curOp.scrollTop=
c)}function Ac(a){var b=a.curOp.scrollToPos;if(b){a.curOp.scrollToPos=null;var c=Oe(a,b.from),d=Oe(a,b.to);We(a,c,d,b.margin)}}function We(a,b,c,d){b=Ed(a,{left:Math.min(b.left,c.left),top:Math.min(b.top,c.top)-d,right:Math.max(b.right,c.right),bottom:Math.max(b.bottom,c.bottom)+d});Ib(a,b.scrollLeft,b.scrollTop)}function Jb(a,b){2>Math.abs(a.doc.scrollTop-b)||(xa||Fd(a,{top:b}),Xe(a,b,!0),xa&&Fd(a),Kb(a,100))}function Xe(a,b,c){b=Math.max(0,Math.min(a.display.scroller.scrollHeight-a.display.scroller.clientHeight,
b));if(a.display.scroller.scrollTop!=b||c)a.doc.scrollTop=b,a.display.scrollbars.setScrollTop(b),a.display.scroller.scrollTop!=b&&(a.display.scroller.scrollTop=b)}function Wa(a,b,c,d){b=Math.max(0,Math.min(b,a.display.scroller.scrollWidth-a.display.scroller.clientWidth));(c?b==a.doc.scrollLeft:2>Math.abs(a.doc.scrollLeft-b))&&!d||(a.doc.scrollLeft=b,Ye(a),a.display.scroller.scrollLeft!=b&&(a.display.scroller.scrollLeft=b),a.display.scrollbars.setScrollLeft(b))}function Lb(a){var b=a.display,c=b.gutters.offsetWidth,
d=Math.round(a.doc.height+pd(a.display));return{clientHeight:b.scroller.clientHeight,viewHeight:b.wrapper.clientHeight,scrollWidth:b.scroller.scrollWidth,clientWidth:b.scroller.clientWidth,viewWidth:b.wrapper.clientWidth,barLeft:a.options.fixedGutter?c:0,docHeight:d,scrollHeight:d+sa(a)+b.barHeight,nativeBarWidth:b.nativeBarWidth,gutterWidth:c}}function lb(a,b){b||(b=Lb(a));var c=a.display.barWidth,d=a.display.barHeight;Ze(a,b);for(var e=0;4>e&&c!=a.display.barWidth||d!=a.display.barHeight;e++)c!=
a.display.barWidth&&a.options.lineWrapping&&xc(a),Ze(a,Lb(a)),c=a.display.barWidth,d=a.display.barHeight}function Ze(a,b){var c=a.display,d=c.scrollbars.update(b);c.sizer.style.paddingRight=(c.barWidth=d.right)+"px";c.sizer.style.paddingBottom=(c.barHeight=d.bottom)+"px";c.heightForcer.style.borderBottom=d.bottom+"px solid transparent";d.right&&d.bottom?(c.scrollbarFiller.style.display="block",c.scrollbarFiller.style.height=d.bottom+"px",c.scrollbarFiller.style.width=d.right+"px"):c.scrollbarFiller.style.display=
"";d.bottom&&a.options.coverGutterNextToScrollbar&&a.options.fixedGutter?(c.gutterFiller.style.display="block",c.gutterFiller.style.height=d.bottom+"px",c.gutterFiller.style.width=b.gutterWidth+"px"):c.gutterFiller.style.display=""}function $e(a){a.display.scrollbars&&(a.display.scrollbars.clear(),a.display.scrollbars.addClass&&Va(a.display.wrapper,a.display.scrollbars.addClass));a.display.scrollbars=new af[a.options.scrollbarStyle](function(b){a.display.wrapper.insertBefore(b,a.display.scrollbarFiller);
w(b,"mousedown",function(){a.state.focused&&setTimeout(function(){return a.display.input.focus()},0)});b.setAttribute("cm-not-content","true")},function(b,c){"horizontal"==c?Wa(a,b):Jb(a,b)},a);a.display.scrollbars.addClass&&La(a.display.wrapper,a.display.scrollbars.addClass)}function Xa(a){a.curOp={cm:a,viewChanged:!1,startHeight:a.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,
scrollTop:null,scrollToPos:null,focus:!1,id:++Hg,markArrays:null};a=a.curOp;gb?gb.ops.push(a):a.ownsGroup=gb={ops:[a],delayedCallbacks:[]}}function Ya(a){(a=a.curOp)&&Ag(a,function(a){for(var c=0;c<a.ops.length;c++)a.ops[c].cm.curOp=null;a=a.ops;for(c=0;c<a.length;c++){var d=a[c],e=d.cm,f=e.display,g=e.display;!g.scrollbarsClipped&&g.scroller.offsetWidth&&(g.nativeBarWidth=g.scroller.offsetWidth-g.scroller.clientWidth,g.heightForcer.style.height=sa(e)+"px",g.sizer.style.marginBottom=-g.nativeBarWidth+
"px",g.sizer.style.borderRightWidth=sa(e)+"px",g.scrollbarsClipped=!0);d.updateMaxLine&&md(e);d.mustUpdate=d.viewChanged||d.forceUpdate||null!=d.scrollTop||d.scrollToPos&&(d.scrollToPos.from.line<f.viewFrom||d.scrollToPos.to.line>=f.viewTo)||f.maxLineChanged&&e.options.lineWrapping;d.update=d.mustUpdate&&new Bc(e,d.mustUpdate&&{top:d.scrollTop,ensure:d.scrollToPos},d.forceUpdate)}for(c=0;c<a.length;c++)d=a[c],d.updatedDisplay=d.mustUpdate&&Gd(d.cm,d.update);for(c=0;c<a.length;c++)if(d=a[c],e=d.cm,
f=e.display,d.updatedDisplay&&xc(e),d.barMeasure=Lb(e),f.maxLineChanged&&!e.options.lineWrapping&&(g=void 0,g=f.maxLine.text.length,g=ka(e,Sa(e,f.maxLine),g,void 0),d.adjustWidthTo=g.left+3,e.display.sizerWidth=d.adjustWidthTo,d.barMeasure.scrollWidth=Math.max(f.scroller.clientWidth,f.sizer.offsetLeft+d.adjustWidthTo+sa(e)+e.display.barWidth),d.maxScrollLeft=Math.max(0,f.sizer.offsetLeft+d.adjustWidthTo-Qa(e))),d.updatedDisplay||d.selectionChanged)d.preparedSelection=f.input.prepareSelection();for(c=
0;c<a.length;c++)d=a[c],e=d.cm,null!=d.adjustWidthTo&&(e.display.sizer.styl