window.CodeMirror=function(){"use strict";function t(r,n){if(!(this instanceof t))return new t(r,n);this.options=n=n||{};for(var i in no)!n.hasOwnProperty(i)&&no.hasOwnProperty(i)&&(n[i]=no[i]);h(n);var o="string"==typeof n.value?0:n.value.first,l=this.display=e(r,o);l.wrapper.CodeMirror=this,u(this),n.autofocus&&!Pi&&de(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,draggingText:!1,highlight:new Xn},s(this),n.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap");var a=n.value;"string"==typeof a&&(a=new yo(n.value,n.mode)),oe(this,cn)(this,a),ki&&setTimeout(ti(he,this,!0),20),ge(this);var c;try{c=document.activeElement==l.input}catch(f){}c||n.autofocus&&!Pi?setTimeout(ti(De,this),20):We(this),oe(this,function(){for(var t in ro)ro.propertyIsEnumerable(t)&&ro[t](this,n[t],io);for(var e=0;ee.maxLineLength&&(e.maxLineLength=n,e.maxLine=t)})}function h(t){for(var e=!1,r=0;re.scroller.clientWidth+1,l=i>e.scroller.clientHeight+1;l?(e.scrollbarV.style.display="block",e.scrollbarV.style.bottom=o?ui(e.measure)+"px":"0",e.scrollbarV.firstChild.style.height=i-e.scroller.clientHeight+e.scrollbarV.clientHeight+"px"):(e.scrollbarV.style.display="",e.scrollbarV.firstChild.style.height="0"),o?(e.scrollbarH.style.display="block",e.scrollbarH.style.right=l?ui(e.measure)+"px":"0",e.scrollbarH.firstChild.style.width=e.scroller.scrollWidth-e.scroller.clientWidth+e.scrollbarH.clientWidth+"px"):(e.scrollbarH.style.display="",e.scrollbarH.firstChild.style.width="0"),o&&l?(e.scrollbarFiller.style.display="block",e.scrollbarFiller.style.height=e.scrollbarFiller.style.width=ui(e.measure)+"px"):e.scrollbarFiller.style.display="",o&&t.options.coverGutterNextToScrollbar&&t.options.fixedGutter?(e.gutterFiller.style.display="block",e.gutterFiller.style.height=ui(e.measure)+"px",e.gutterFiller.style.width=e.gutters.offsetWidth+"px"):e.gutterFiller.style.display="",Oi&&0===ui(e.measure)&&(e.scrollbarV.style.minWidth=e.scrollbarH.style.minHeight=Ei?"18px":"12px")}function p(t,e,r){var n=t.scroller.scrollTop,i=t.wrapper.clientHeight;"number"==typeof r?n=r:r&&(n=r.top,i=r.bottom-r.top),n=Math.floor(n-I(t));var o=Math.ceil(n+i);return{from:mn(e,n),to:mn(e,o)}}function g(t){var e=t.display;if(e.alignWidgets||e.gutters.firstChild&&t.options.fixedGutter){for(var r=y(e)-e.scroller.scrollLeft+t.doc.scrollLeft,n=e.gutters.offsetWidth,i=r+"px",o=e.lineDiv.firstChild;o;o=o.nextSibling)if(o.alignable)for(var l=0,s=o.alignable;l=t.display.showingFrom&&s.to<=t.display.showingTo));)e=[];return i&&(Bn(t,"update",t),(t.display.showingFrom!=o||t.display.showingTo!=l)&&Bn(t,"viewportChange",t,t.display.showingFrom,t.display.showingTo)),i}function x(t,e,r,n){var i=t.display,o=t.doc;if(!i.wrapper.clientWidth)return i.showingFrom=i.showingTo=o.first,i.viewOffset=0,void 0;if(!(!n&&0==e.length&&r.from>i.showingFrom&&r.tof&&i.showingTo-f<20&&(f=Math.min(u,i.showingTo)),Yi)for(c=gn(Fr(o,fn(o,c)));u>f&&Rr(o,fn(o,f));)++f;var h=[{from:Math.max(i.showingFrom,o.first),to:Math.min(i.showingTo,u)}];if(h=h[0].from>=h[0].to?[]:L(h,e),Yi)for(var a=0;ap.from)){h.splice(a--,1);break}p.to=g}for(var v=0,a=0;af&&(p.to=f),p.from>=p.to?h.splice(a--,1):v+=p.to-p.from}if(!n&&v==f-c&&c==i.showingFrom&&f==i.showingTo)return w(t),void 0;h.sort(function(t,e){return t.from-e.from});try{var y=document.activeElement}catch(b){}.7*(f-c)>v&&(i.lineDiv.style.display="none"),S(t,c,f,h,s),i.lineDiv.style.display="",y&&document.activeElement!=y&&y.offsetHeight&&y.focus();var x=c!=i.showingFrom||f!=i.showingTo||i.lastSizeC!=i.wrapper.clientHeight;return x&&(i.lastSizeC=i.wrapper.clientHeight,W(t,400)),i.showingFrom=c,i.showingTo=f,C(t),w(t),!0}}function C(t){for(var e,r=t.display,n=r.lineDiv.offsetTop,i=r.lineDiv.firstChild;i;i=i.nextSibling)if(i.lineObj){if(Si){var o=i.offsetTop+i.offsetHeight;e=o-n,n=o}else{var l=si(i);e=l.bottom-l.top}var s=i.lineObj.height-e;if(2>e&&(e=ee(r)),s>.001||-.001>s){pn(i.lineObj,e);var a=i.lineObj.widgets;if(a)for(var u=0;ur;++r){for(var i=e[r],o=[],l=i.diff||0,s=0,a=t.length;a>s;++s){var u=t[s];i.to<=u.from&&i.diff?o.push({from:u.from+l,to:u.to+l}):i.to<=u.from||i.from>=u.to?o.push(u):(i.from>u.from&&o.push({from:u.from,to:i.from}),i.toh){for(;c.lineObj!=e;)c=o(c);a&&h>=i&&c.lineNumber&&li(c.lineNumber,v(t.options,h)),c=c.nextSibling}else{if(e.widgets)for(var m,y=0,b=c;b&&20>y;++y,b=b.nextSibling)if(b.lineObj==e&&/div/i.test(b.nodeName)){m=b;break}var x=M(t,e,h,l,m);if(x!=m)u.insertBefore(x,c);else{for(;c!=m;)c=o(c);c=c.nextSibling}x.lineObj=e}++h});c;)c=o(c)}function M(t,e,r,n,i){var o,l=Qr(t,e),s=e.gutterMarkers,a=t.display;if(!(t.options.lineNumbers||s||e.bgClass||e.wrapClass||e.widgets))return l;if(i){i.alignable=null;for(var u,c=!0,f=0,h=null,d=i.firstChild;d;d=u)if(u=d.nextSibling,/\bCodeMirror-linewidget\b/.test(d.className)){for(var p=0;pe&&(e=0),l.appendChild(ni("div",null,"CodeMirror-selected","position: absolute; left: "+t+"px; top: "+e+"px; width: "+(null==r?s-t:r)+"px; height: "+(n-e)+"px"))}function r(r,n,o){function l(e,n){return Z(t,Ue(r,e),"div",f,n)}var u,c,f=fn(i,r),h=f.text.length;return fi(yn(f),n||0,null==o?h:o,function(t,r,i){var f,d,p,g=l(t,"left");if(t==r)f=g,d=p=g.left;else{if(f=l(r-1,"right"),"rtl"==i){var m=g;g=f,f=m}d=g.left,p=f.right}null==n&&0==t&&(d=a),f.top-g.top>3&&(e(d,g.top,null,g.bottom),d=a,g.bottomc.bottom||f.bottom==c.bottom&&f.right>c.right)&&(c=f),a+1>d&&(d=a),e(d,f.top,p-d,f.bottom)}),{start:u,end:c}}var n=t.display,i=t.doc,o=t.doc.sel,l=document.createDocumentFragment(),s=n.lineSpace.offsetWidth,a=F(t.display);if(o.from.line==o.to.line)r(o.from.line,o.from.ch,o.to.ch);else{var u=fn(i,o.from.line),c=fn(i,o.to.line),f=Fr(i,u)==Fr(i,c),h=r(o.from.line,o.from.ch,f?u.text.length:null).end,d=r(o.to.line,f?0:null,o.to.ch).start;f&&(h.top0&&(e.blinker=setInterval(function(){e.cursor.style.visibility=e.otherCursor.style.visibility=(r=!r)?"":"hidden"},t.options.cursorBlinkRate))}}function W(t,e){t.doc.mode.startState&&t.doc.frontier=t.display.showingTo)){var r,n=+new Date+t.options.workTime,i=mr(e.mode,z(t,e.frontier)),o=[];e.iter(e.frontier,Math.min(e.first+e.size,t.display.showingTo+500),function(l){if(e.frontier>=t.display.showingFrom){var s=l.styles;l.styles=$r(t,l,i);for(var a=!s||s.length!=l.styles.length,u=0;!a&&un?(W(t,t.options.workDelay),!0):void 0}),o.length&&oe(t,function(){for(var t=0;ta;--s){if(s<=o.first)return o.first;var u=fn(o,s-1);if(u.stateAfter&&(!r||s<=o.frontier))return s;var c=_n(u.text,null,t.options.tabSize);(null==i||n>c)&&(i=s-1,n=c)}return i}function z(t,e,r){var n=t.doc,i=t.display;if(!n.mode.startState)return!0;var o=E(t,e,r),l=o>n.first&&fn(n,o-1).stateAfter;return l=l?mr(n.mode,l):vr(n.mode),n.iter(o,e,function(r){qr(t,r,l);var s=o==e-1||0==o%5||o>=i.showingFrom&&oo&&0==l&&(o=1)}return i=l>r?"left":r>l?"right":i,"left"==i&&s.leftSide?s=s.leftSide:"right"==i&&s.rightSide&&(s=s.rightSide),{left:r>l?s.right:s.left,right:l>r?s.left:s.right,top:s.top,bottom:s.bottom}}function B(t,e){for(var r=t.display.measureLineCache,n=0;nv&&(r=v),0>e&&(e=0);for(var n=g.length-2;n>=0;n-=2){var i=g[n],o=g[n+1];if(!(i>r||e>o)&&(e>=i&&o>=r||i>=e&&r>=o||Math.min(r,o)-Math.max(e,i)>=r-e>>1)){g[n]=Math.min(e,i),g[n+1]=Math.max(r,o);break}}return 0>n&&(n=g.length,g.push(e,r)),{left:t.left-p.left,right:t.right-p.left,top:n,bottom:null}}function n(t){t.bottom=g[t.top+1],t.top=g[t.top]}var i=t.display,o=Qn(e.text.length),l=Qr(t,e,o,!0);if(ki&&!Si&&!t.options.lineWrapping&&l.childNodes.length>100){for(var s=document.createDocumentFragment(),a=10,u=l.childNodes.length,c=0,f=Math.ceil(u/a);f>c;++c){for(var h=ni("div",null,null,"display: inline-block"),d=0;a>d&&u;++d)h.appendChild(l.firstChild),--u;s.appendChild(h)}l.appendChild(s)}oi(i.measure,l);var p=si(i.lineDiv),g=[],m=Qn(e.text.length),v=l.offsetHeight;Mi&&i.measure.first!=l&&oi(i.measure,l);for(var y,c=0;c1&&(x=m[c]=r(C[0]),x.rightSide=r(C[C.length-1]))}x||(x=m[c]=r(si(b))),y.measureRight&&(x.right=si(y.measureRight).left),y.leftSide&&(x.leftSide=r(si(y.leftSide)))}ii(t.display.measure);for(var y,c=0;cr.from?o(t-1):o(t,n)}n=n||fn(t.doc,e.line),i||(i=V(t,n));var s=yn(n),a=e.ch;if(!s)return o(a);var u=bi(s,a),c=l(a,u);return null!=zo&&(c.other=l(a,zo)),c}function J(t,e,r,n){var i=new Ue(t,e);return i.xRel=n,r&&(i.outside=!0),i}function Q(t,e,r){var n=t.doc;if(r+=t.display.viewOffset,0>r)return J(n.first,0,!0,-1);var i=mn(n,r),o=n.first+n.size-1;if(i>o)return J(n.first+n.size-1,fn(n,o).text.length,!0,1);for(0>e&&(e=0);;){var l=fn(n,i),s=te(t,l,i,e,r),a=Pr(l),u=a&&a.find();if(!a||!(s.ch>u.from.ch||s.ch==u.from.ch&&s.xRel>0))return s;i=u.to.line}}function te(t,e,r,n,i){function o(n){var i=q(t,Ue(r,n),"line",e,u);return s=!0,l>i.bottom?i.left-a:lm)return J(r,d,v,1);for(;;){if(c?d==h||d==Ci(e,h,1):1>=d-h){for(var y=p>n||m-n>=n-p?h:d,b=n-(y==h?p:m);To.test(e.text.charAt(y));)++y;var x=J(r,y,y==h?g:v,0>b?-1:b?1:0);return x}var C=Math.ceil(f/2),w=h+C;if(c){w=h;for(var L=0;C>L;++L)w=Ci(e,w,1)}var k=o(w);k>n?(d=w,m=k,(v=s)&&(m+=1e3),f=C):(h=w,p=k,g=s,f-=C)}}function ee(t){if(null!=t.cachedTextHeight)return t.cachedTextHeight;if(null==Gi){Gi=ni("pre");for(var e=0;49>e;++e)Gi.appendChild(document.createTextNode("x")),Gi.appendChild(ni("br"));Gi.appendChild(document.createTextNode("x"))}oi(t.measure,Gi);var r=Gi.offsetHeight/50;return r>3&&(t.cachedTextHeight=r),ii(t.measure),r||1}function re(t){if(null!=t.cachedCharWidth)return t.cachedCharWidth;var e=ni("span","x"),r=ni("pre",[e]);oi(t.measure,r);var n=e.offsetWidth;return n>2&&(t.cachedCharWidth=n),n||10}function ne(t){t.curOp={changes:[],forceUpdate:!1,updateInput:null,userSelChange:null,textChanged:null,selectionChanged:!1,cursorActivity:!1,updateMaxLine:!1,updateScrollPos:!1,id:++ji},wo++||(Co=[])}function ie(t){var e=t.curOp,r=t.doc,n=t.display;if(t.curOp=null,e.updateMaxLine&&f(t),n.maxLineChanged&&!t.options.lineWrapping&&n.maxLine){var i=U(t,n.maxLine);n.sizer.style.minWidth=Math.max(0,i+3+Lo)+"px",n.maxLineChanged=!1;var o=Math.max(0,n.sizer.offsetLeft+n.sizer.offsetWidth-n.scroller.clientWidth);os&&r.charCodeAt(s)==o.charCodeAt(s);)++s;var u=i.from,c=i.to;s1e3||o.indexOf("\n")>-1?e.value=t.display.prevInput="":t.display.prevInput=o,l&&ie(t),t.state.pasteIncoming=!1,!0}function he(t,e){var r,n,i=t.doc;if(Xe(i.sel.from,i.sel.to))e&&(t.display.prevInput=t.display.input.value="",ki&&!Mi&&(t.display.inputHasSelection=null));else{t.display.prevInput="",r=Oo&&(i.sel.to.line-i.sel.from.line>100||(n=t.getSelection()).length>1e3);var o=r?"-":n||t.getSelection();t.display.input.value=o,t.state.focused&&$n(t.display.input),ki&&!Mi&&(t.display.inputHasSelection=o)}t.display.inaccurateSelection=r}function de(t){"nocursor"==t.options.readOnly||Pi&&document.activeElement==t.display.input||t.display.input.focus()}function pe(t){return t.options.readOnly||t.doc.cantEdit}function ge(t){function e(){t.state.focused&&setTimeout(ti(de,t),0)}function r(){null==s&&(s=setTimeout(function(){s=null,l.cachedCharWidth=l.cachedTextHeight=No=null,X(t),se(t,ti(ae,t))},100))}function n(){for(var t=l.wrapper.parentNode;t&&t!=document.body;t=t.parentNode);t?setTimeout(n,5e3):Fn(window,"resize",r)}function i(e){Gn(t,e)||t.options.onDragEvent&&t.options.onDragEvent(t,Hn(e))||En(e)}function o(){l.inaccurateSelection&&(l.prevInput="",l.inaccurateSelection=!1,l.input.value=t.getSelection(),$n(l.input))}var l=t.display;Pn(l.scroller,"mousedown",oe(t,ye)),ki?Pn(l.scroller,"dblclick",oe(t,function(e){if(!Gn(t,e)){var r=ve(t,e);if(r&&!be(t,e)&&!me(t.display,e)){Dn(e);var n=dr(fn(t.doc,r.line).text,r);Je(t.doc,n.from,n.to)}}})):Pn(l.scroller,"dblclick",function(e){Gn(t,e)||Dn(e)}),Pn(l.lineSpace,"selectstart",function(t){me(l,t)||Dn(t)}),Xi||Pn(l.scroller,"contextmenu",function(e){Oe(t,e)}),Pn(l.scroller,"scroll",function(){l.scroller.clientHeight&&(we(t,l.scroller.scrollTop),Le(t,l.scroller.scrollLeft,!0),Rn(t,"scroll",t))}),Pn(l.scrollbarV,"scroll",function(){l.scroller.clientHeight&&we(t,l.scrollbarV.scrollTop)}),Pn(l.scrollbarH,"scroll",function(){l.scroller.clientHeight&&Le(t,l.scrollbarH.scrollLeft)}),Pn(l.scroller,"mousewheel",function(e){ke(t,e)}),Pn(l.scroller,"DOMMouseScroll",function(e){ke(t,e)}),Pn(l.scrollbarH,"mousedown",e),Pn(l.scrollbarV,"mousedown",e),Pn(l.wrapper,"scroll",function(){l.wrapper.scrollTop=l.wrapper.scrollLeft=0});var s;Pn(window,"resize",r),setTimeout(n,5e3),Pn(l.input,"keyup",oe(t,function(e){Gn(t,e)||t.options.onKeyEvent&&t.options.onKeyEvent(t,Hn(e))||16==e.keyCode&&(t.doc.sel.shift=!1)})),Pn(l.input,"input",ti(ce,t)),Pn(l.input,"keydown",oe(t,Ne)),Pn(l.input,"keypress",oe(t,He)),Pn(l.input,"focus",ti(De,t)),Pn(l.input,"blur",ti(We,t)),t.options.dragDrop&&(Pn(l.scroller,"dragstart",function(e){Ce(t,e)}),Pn(l.scroller,"dragenter",i),Pn(l.scroller,"dragover",i),Pn(l.scroller,"drop",oe(t,xe))),Pn(l.scroller,"paste",function(e){me(l,e)||(de(t),ce(t))}),Pn(l.input,"paste",function(){if(Ti&&!t.state.fakedLastChar&&!(new Date-t.state.lastMiddleDown<200)){var e=l.input.selectionStart,r=l.input.selectionEnd;l.input.value+="$",l.input.selectionStart=e,l.input.selectionEnd=r,t.state.fakedLastChar=!0}t.state.pasteIncoming=!0,ce(t)}),Pn(l.input,"cut",o),Pn(l.input,"copy",o),Wi&&Pn(l.sizer,"mouseup",function(){document.activeElement==l.input&&l.input.blur(),de(t)})}function me(t,e){for(var r=zn(e);r!=t.wrapper;r=r.parentNode)if(!r||r.ignoreEvents||r.parentNode==t.sizer&&r!=t.mover)return!0}function ve(t,e,r){var n=t.display;if(!r){var i=zn(e);if(i==n.scrollbarH||i==n.scrollbarH.firstChild||i==n.scrollbarV||i==n.scrollbarV.firstChild||i==n.scrollbarFiller||i==n.gutterFiller)return null}var o,l,s=si(n.lineSpace);try{o=e.clientX,l=e.clientY}catch(e){return null}return Q(t,o-s.left,l-s.top)}function ye(t){function e(t){if(!Xe(v,t)){if(v=t,"single"==c)return Je(i.doc,$e(l,a),t),void 0;if(g=$e(l,g),m=$e(l,m),"double"==c){var e=dr(fn(l,t.line).text,t);_e(t,g)?Je(i.doc,e.from,m):Je(i.doc,g,e.to)}else"triple"==c&&(_e(t,g)?Je(i.doc,m,$e(l,Ue(t.line,0))):Je(i.doc,g,$e(l,Ue(t.line+1,0))))}}function r(t){var n=++b,s=ve(i,t,!0);if(s)if(Xe(s,h)){var a=t.clientYy.bottom?20:0;a&&setTimeout(oe(i,function(){b==n&&(o.scroller.scrollTop+=a,r(t))}),50)}else{i.state.focused||De(i),h=s,e(s);var u=p(o,l);(s.line>=u.to||s.lineu-400&&Xe(Ki.pos,a))c="triple",Dn(t),setTimeout(ti(de,i),20),pr(i,a.line);else if(Vi&&Vi.time>u-400&&Xe(Vi.pos,a)){c="double",Ki={time:u,pos:a},Dn(t);var f=dr(fn(l,a.line).text,a);Je(i.doc,f.from,f.to)}else Vi={time:u,pos:a};var h=a;if(i.options.dragDrop&&Ao&&!pe(i)&&!Xe(s.from,s.to)&&!_e(a,s.from)&&!_e(s.to,a)&&"single"==c){var d=oe(i,function(e){Ti&&(o.scroller.draggable=!1),i.state.draggingText=!1,Fn(document,"mouseup",d),Fn(o.scroller,"drop",d),Math.abs(t.clientX-e.clientX)+Math.abs(t.clientY-e.clientY)<10&&(Dn(e),Je(i.doc,a),de(i))});return Ti&&(o.scroller.draggable=!0),i.state.draggingText=d,o.scroller.dragDrop&&o.scroller.dragDrop(),Pn(document,"mouseup",d),Pn(o.scroller,"drop",d),void 0}Dn(t),"single"==c&&Je(i.doc,$e(l,a));var g=s.from,m=s.to,v=a,y=si(o.wrapper),b=0,x=oe(i,function(t){ki||In(t)?r(t):n(t)}),C=oe(i,n);Pn(document,"mousemove",x),Pn(document,"mouseup",C)}}}function be(t,e){var r=t.display;try{var n=e.clientX,i=e.clientY}catch(e){return!1}if(n>=Math.floor(si(r.gutters).right))return!1;if(Dn(e),!Kn(t,"gutterClick"))return!0;var o=si(r.lineDiv);if(i>o.bottom)return!0;i-=o.top-r.viewOffset;for(var l=0;l=n){var a=mn(t.doc,i),u=t.options.gutters[l];Bn(t,"gutterClick",t,a,u,e);break}}return!0}function xe(t){var e=this;if(!(Gn(e,t)||me(e.display,t)||e.options.onDragEvent&&e.options.onDragEvent(e,Hn(t)))){Dn(t),ki&&($i=+new Date);var r=ve(e,t,!0),n=t.dataTransfer.files;if(r&&!pe(e))if(n&&n.length&&window.FileReader&&window.File)for(var i=n.length,o=Array(i),l=0,s=function(t,n){var s=new FileReader;s.onload=function(){o[n]=s.result,++l==i&&(r=$e(e.doc,r),Pe(e.doc,{from:r,to:r,text:Do(o.join("\n")),origin:"paste"},"around"))},s.readAsText(t)},a=0;i>a;++a)s(n[a],a);else{if(e.state.draggingText&&!_e(r,e.doc.sel.from)&&!_e(e.doc.sel.to,r))return e.state.draggingText(t),setTimeout(ti(de,e),20),void 0;try{var o=t.dataTransfer.getData("Text");if(o){var u=e.doc.sel.from,c=e.doc.sel.to;tr(e.doc,r,r),e.state.draggingText&&Ke(e.doc,"",u,c,"paste"),e.replaceSelection(o,null,"paste"),de(e),De(e)}}catch(t){}}}}function Ce(t,e){if(ki&&(!t.state.draggingText||+new Date-$i<100))return En(e),void 0;if(!Gn(t,e)&&!me(t.display,e)){var r=t.getSelection();if(e.dataTransfer.setData("Text",r),e.dataTransfer.setDragImage&&!Di){var n=ni("img",null,null,"position: fixed; left: 0; top: 0;");Hi&&(n.width=n.height=1,t.display.wrapper.appendChild(n),n._top=n.offsetTop),e.dataTransfer.setDragImage(n,0,0),Hi&&n.parentNode.removeChild(n)}}}function we(t,e){Math.abs(t.doc.scrollTop-e)<2||(t.doc.scrollTop=e,Li||b(t,[],e),t.display.scroller.scrollTop!=e&&(t.display.scroller.scrollTop=e),t.display.scrollbarV.scrollTop!=e&&(t.display.scrollbarV.scrollTop=e),Li&&b(t,[]),W(t,100))}function Le(t,e,r){(r?e==t.doc.scrollLeft:Math.abs(t.doc.scrollLeft-e)<2)||(e=Math.min(e,t.display.scroller.scrollWidth-t.display.scroller.clientWidth),t.doc.scrollLeft=e,g(t),t.display.scroller.scrollLeft!=e&&(t.display.scroller.scrollLeft=e),t.display.scrollbarH.scrollLeft!=e&&(t.display.scrollbarH.scrollLeft=e))}function ke(t,e){var r=e.wheelDeltaX,n=e.wheelDeltaY;null==r&&e.detail&&e.axis==e.HORIZONTAL_AXIS&&(r=e.detail),null==n&&e.detail&&e.axis==e.VERTICAL_AXIS?n=e.detail:null==n&&(n=e.wheelDelta);var i=t.display,o=i.scroller;if(r&&o.scrollWidth>o.clientWidth||n&&o.scrollHeight>o.clientHeight){if(n&&Fi&&Ti)for(var l=e.target;l!=o;l=l.parentNode)if(l.lineObj){t.display.currentWheelTarget=l;break}if(r&&!Li&&!Hi&&null!=qi)return n&&we(t,Math.max(0,Math.min(o.scrollTop+n*qi,o.scrollHeight-o.clientHeight))),Le(t,Math.max(0,Math.min(o.scrollLeft+r*qi,o.scrollWidth-o.clientWidth))),Dn(e),i.wheelStartX=null,void 0;if(n&&null!=qi){var s=n*qi,a=t.doc.scrollTop,u=a+i.wrapper.clientHeight;0>s?a=Math.max(0,a+s-50):u=Math.min(t.doc.height,u+s+50),b(t,[],{top:a,bottom:u})}20>Zi&&(null==i.wheelStartX?(i.wheelStartX=o.scrollLeft,i.wheelStartY=o.scrollTop,i.wheelDX=r,i.wheelDY=n,setTimeout(function(){if(null!=i.wheelStartX){var t=o.scrollLeft-i.wheelStartX,e=o.scrollTop-i.wheelStartY,r=e&&i.wheelDY&&e/i.wheelDY||t&&i.wheelDX&&t/i.wheelDX;i.wheelStartX=i.wheelStartY=null,r&&(qi=(qi*Zi+r)/(Zi+1),++Zi)}},200)):(i.wheelDX+=r,i.wheelDY+=n))}}function Se(t,e,r){if("string"==typeof e&&(e=co[e],!e))return!1;t.display.pollingFast&&fe(t)&&(t.display.pollingFast=!1);var n=t.doc,i=n.sel.shift,o=!1;try{pe(t)&&(t.state.suppressEdits=!0),r&&(n.sel.shift=!1),o=e(t)!=ko}finally{n.sel.shift=i,t.state.suppressEdits=!1}return o}function Me(t){var e=t.state.keyMaps.slice(0);return t.options.extraKeys&&e.push(t.options.extraKeys),e.push(t.options.keyMap),e}function Te(t,e){var r=yr(t.options.keyMap),n=r.auto;clearTimeout(Ji),n&&!xr(e)&&(Ji=setTimeout(function(){yr(t.options.keyMap)==r&&(t.options.keyMap=n.call?n.call(null,t):n,l(t))},50));var i=Cr(e,!0),o=!1;if(!i)return!1;var s=Me(t);return o=e.shiftKey?br("Shift-"+i,s,function(e){return Se(t,e,!0)})||br(i,s,function(e){return("string"==typeof e?/^go[A-Z]/.test(e):e.motion)?Se(t,e):void 0}):br(i,s,function(e){return Se(t,e)}),o&&(Dn(e),D(t),Mi&&(e.oldKeyCode=e.keyCode,e.keyCode=0),Bn(t,"keyHandled",t,i,e)),o}function Ae(t,e,r){var n=br("'"+r+"'",Me(t),function(e){return Se(t,e,!0)});return n&&(Dn(e),D(t),Bn(t,"keyHandled",t,"'"+r+"'",e)),n}function Ne(t){var e=this;if(e.state.focused||De(e),!(Gn(e,t)||e.options.onKeyEvent&&e.options.onKeyEvent(e,Hn(t)))){ki&&27==t.keyCode&&(t.returnValue=!1);var r=t.keyCode;e.doc.sel.shift=16==r||t.shiftKey;var n=Te(e,t);Hi&&(to=n?r:null,!n&&88==r&&!Oo&&(Fi?t.metaKey:t.ctrlKey)&&e.replaceSelection(""))}}function He(t){var e=this;if(!(Gn(e,t)||e.options.onKeyEvent&&e.options.onKeyEvent(e,Hn(t)))){var r=t.keyCode,n=t.charCode;if(Hi&&r==to)return to=null,Dn(t),void 0;if(!(Hi&&(!t.which||t.which<10)||Wi)||!Te(e,t)){var i=String.fromCharCode(null==n?r:n);this.options.electricChars&&this.doc.mode.electricChars&&this.options.smartIndent&&!pe(this)&&this.doc.mode.electricChars.indexOf(i)>-1&&setTimeout(oe(e,function(){ur(e,e.doc.sel.to.line,"smart")}),75),Ae(e,t,i)||(ki&&!Mi&&(e.display.inputHasSelection=null),ce(e))}}}function De(t){"nocursor"!=t.options.readOnly&&(t.state.focused||(Rn(t,"focus",t),t.state.focused=!0,-1==t.display.wrapper.className.search(/\bCodeMirror-focused\b/)&&(t.display.wrapper.className+=" CodeMirror-focused"),t.curOp||(he(t,!0),Ti&&setTimeout(ti(he,t,!0),0))),ue(t),D(t))}function We(t){t.state.focused&&(Rn(t,"blur",t),t.state.focused=!1,t.display.wrapper.className=t.display.wrapper.className.replace(" CodeMirror-focused","")),clearInterval(t.display.blinker),setTimeout(function(){t.state.focused||(t.doc.sel.shift=!1)},150)}function Oe(t,e){function r(){if(null!=i.input.selectionStart){var t=i.input.value=" "+(Xe(o.from,o.to)?"":i.input.value);i.prevInput=" ",i.input.selectionStart=1,i.input.selectionEnd=t.length}}function n(){if(i.inputDiv.style.position="relative",i.input.style.cssText=a,Mi&&(i.scrollbarV.scrollTop=i.scroller.scrollTop=s),ue(t),null!=i.input.selectionStart){(!ki||Mi)&&r(),clearTimeout(Qi);var e=0,n=function(){" "==i.prevInput&&0==i.input.selectionStart?oe(t,co.selectAll)(t):e++<10?Qi=setTimeout(n,500):he(t)};Qi=setTimeout(n,200)}}if(!Gn(t,e,"contextmenu")){var i=t.display,o=t.doc.sel;if(!me(i,e)){var l=ve(t,e),s=i.scroller.scrollTop;if(l&&!Hi){(Xe(o.from,o.to)||_e(l,o.from)||!_e(l,o.to))&&oe(t,tr)(t.doc,l,l);var a=i.input.style.cssText;if(i.inputDiv.style.position="absolute",i.input.style.cssText="position: fixed; width: 30px; height: 30px; top: "+(e.clientY-5)+"px; left: "+(e.clientX-5)+"px; z-index: 1000; background: white; outline: none;"+"border-width: 0; outline: none; overflow: hidden; opacity: .05; -ms-opacity: .05; filter: alpha(opacity=5);",de(t),he(t,!0),Xe(o.from,o.to)&&(i.input.value=i.prevInput=" "),ki&&!Mi&&r(),Xi){En(e);var u=function(){Fn(window,"mouseup",u),setTimeout(n,20)};Pn(window,"mouseup",u)}else setTimeout(n,50)}}}}function Ee(t,e,r){if(!_e(e.from,r))return $e(t,r);var n=e.text.length-1-(e.to.line-e.from.line);if(r.line>e.to.line+n){var i=r.line-n,o=t.first+t.size-1;return i>o?Ue(o,fn(t,o).text.length):Ze(r,fn(t,i).text.length)}if(r.line==e.to.line+n)return Ze(r,jn(e.text).length+(1==e.text.length?e.from.ch:0)+fn(t,e.to.line).text.length-e.to.ch);var l=r.line-e.from.line;return Ze(r,e.text[l].length+(l?0:e.from.ch))}function ze(t,e,r){if(r&&"object"==typeof r)return{anchor:Ee(t,e,r.anchor),head:Ee(t,e,r.head)};if("start"==r)return{anchor:e.from,head:e.from};var n=eo(e);if("around"==r)return{anchor:e.from,head:n};if("end"==r)return{anchor:n,head:n};var i=function(t){if(_e(t,e.from))return t;if(!_e(e.to,t))return n;var r=t.line+e.text.length-(e.to.line-e.from.line)-1,i=t.ch;return t.line==e.to.line&&(i+=n.ch-e.to.ch),Ue(r,i)};return{anchor:i(t.sel.anchor),head:i(t.sel.head)}}function Ie(t,e,r){var n={canceled:!1,from:e.from,to:e.to,text:e.text,origin:e.origin,cancel:function(){this.canceled=!0}};return r&&(n.update=function(e,r,n,i){e&&(this.from=$e(t,e)),r&&(this.to=$e(t,r)),n&&(this.text=n),void 0!==i&&(this.origin=i)}),Rn(t,"beforeChange",t,n),t.cm&&Rn(t.cm,"beforeChange",t.cm,n),n.canceled?null:{from:n.from,to:n.to,text:n.text,origin:n.origin}}function Pe(t,e,r,n){if(t.cm){if(!t.cm.curOp)return oe(t.cm,Pe)(t,e,r,n);if(t.cm.state.suppressEdits)return}if(!(Kn(t,"beforeChange")||t.cm&&Kn(t.cm,"beforeChange"))||(e=Ie(t,e,!0))){var i=_i&&!n&&Er(t,e.from,e.to);if(i){for(var o=i.length-1;o>=1;--o)Fe(t,{from:i[o].from,to:i[o].to,text:[""]});i.length&&Fe(t,{from:i[0].from,to:i[0].to,text:e.text},r)}else Fe(t,e,r)}}function Fe(t,e,r){var n=ze(t,e,r);wn(t,e,n,t.cm?t.cm.curOp.id:0/0),Ge(t,e,n,Wr(t,e));var i=[];un(t,function(t,r){r||-1!=Zn(i,t.history)||(An(t.history,e),i.push(t.history)),Ge(t,e,null,Wr(t,e))})}function Re(t,e){if(!t.cm||!t.cm.state.suppressEdits){var r=t.history,n=("undo"==e?r.done:r.undone).pop();if(n){var i={changes:[],anchorBefore:n.anchorAfter,headBefore:n.headAfter,anchorAfter:n.anchorBefore,headAfter:n.headBefore,generation:r.generation};("undo"==e?r.undone:r.done).push(i),r.generation=n.generation||++r.maxGeneration;for(var o=Kn(t,"beforeChange")||t.cm&&Kn(t.cm,"beforeChange"),l=n.changes.length-1;l>=0;--l){var s=n.changes[l];if(s.origin=e,o&&!Ie(t,s,!1))return("undo"==e?r.done:r.undone).length=0,void 0;i.changes.push(Cn(t,s));var a=l?ze(t,s,null):{anchor:n.anchorBefore,head:n.headBefore};Ge(t,s,a,Or(t,s));var u=[];un(t,function(t,e){e||-1!=Zn(u,t.history)||(An(t.history,s),u.push(t.history)),Ge(t,s,null,Or(t,s))})}}}}function Be(t,e){function r(t){return Ue(t.line+e,t.ch)}t.first+=e,t.cm&&ae(t.cm,t.first,t.first,e),t.sel.head=r(t.sel.head),t.sel.anchor=r(t.sel.anchor),t.sel.from=r(t.sel.from),t.sel.to=r(t.sel.to)}function Ge(t,e,r,n){if(t.cm&&!t.cm.curOp)return oe(t.cm,Ge)(t,e,r,n);if(e.to.linet.lastLine())){if(e.from.lineo&&(e={from:e.from,to:Ue(o,fn(t,o).text.length),text:[e.text[0]],origin:e.origin}),e.removed=hn(t,e.from,e.to),r||(r=ze(t,e,null)),t.cm?Ve(t.cm,e,n,r):ln(t,e,n,r)}}function Ve(t,e,r,n){var o=t.doc,l=t.display,s=e.from,a=e.to,u=!1,f=s.line;t.options.lineWrapping||(f=gn(Fr(o,fn(o,s.line))),o.iter(f,a.line+1,function(t){return t==l.maxLine?(u=!0,!0):void 0})),_e(o.sel.head,e.from)||_e(e.to,o.sel.head)||(t.curOp.cursorActivity=!0),ln(o,e,r,n,i(t)),t.options.lineWrapping||(o.iter(f,s.line+e.text.length,function(t){var e=c(o,t);e>l.maxLineLength&&(l.maxLine=t,l.maxLineLength=e,l.maxLineChanged=!0,u=!1)}),u&&(t.curOp.updateMaxLine=!0)),o.frontier=Math.min(o.frontier,s.line),W(t,400);var h=e.text.length-(a.line-s.line)-1;if(ae(t,s.line,a.line+1,h),Kn(t,"change")){var d={from:s,to:a,text:e.text,removed:e.removed,origin:e.origin};if(t.curOp.textChanged){for(var p=t.curOp.textChanged;p.next;p=p.next);p.next=d}else t.curOp.textChanged=d}}function Ke(t,e,r,n,i){if(n||(n=r),_e(n,r)){var o=n;n=r,r=o}"string"==typeof e&&(e=Do(e)),Pe(t,{from:r,to:n,text:e,origin:i},null)}function Ue(t,e){return this instanceof Ue?(this.line=t,this.ch=e,void 0):new Ue(t,e)}function Xe(t,e){return t.line==e.line&&t.ch==e.ch}function _e(t,e){return t.liner?Ue(r,fn(t,r).text.length):Ze(e,fn(t,e.line).text.length)}function Ze(t,e){var r=t.ch;return null==r||r>e?Ue(t.line,e):0>r?Ue(t.line,0):t}function qe(t,e){return e>=t.first&&e=o.ch:u.to>o.ch))){if(n&&(Rn(c,"beforeCursorEnter"),c.explicitlyCleared)){if(s.markedSpans){--a;continue}break}if(!c.atomic)continue;var f=c.find()[0>l?"from":"to"];if(Xe(f,o)&&(f.ch+=l,f.ch<0?f=f.line>t.first?$e(t,Ue(f.line-1)):null:f.ch>s.text.length&&(f=f.line(window.innerHeight||document.documentElement.clientHeight)&&(i=!1),null!=i&&!zi){var o="none"==r.cursor.style.display;o&&(r.cursor.style.display="",r.cursor.style.left=e.left+"px",r.cursor.style.top=e.top-r.viewOffset+"px"),r.cursor.scrollIntoView(i),o&&(r.cursor.style.display="none")}}}function ir(t,e,r){for(null==r&&(r=0);;){var n=!1,i=q(t,e),o=lr(t,i.left,i.top-r,i.left,i.bottom+r),l=t.doc.scrollTop,s=t.doc.scrollLeft;if(null!=o.scrollTop&&(we(t,o.scrollTop),Math.abs(t.doc.scrollTop-l)>1&&(n=!0)),null!=o.scrollLeft&&(Le(t,o.scrollLeft),Math.abs(t.doc.scrollLeft-s)>1&&(n=!0)),!n)return i}}function or(t,e,r,n,i){var o=lr(t,e,r,n,i);null!=o.scrollTop&&we(t,o.scrollTop),null!=o.scrollLeft&&Le(t,o.scrollLeft)}function lr(t,e,r,n,i){var o=t.display,l=ee(t.display);0>r&&(r=0);var s=o.scroller.clientHeight-Lo,a=o.scroller.scrollTop,u={},c=t.doc.height+P(o),f=l>r,h=i>c-l;if(a>r)u.scrollTop=f?0:r;else if(i>a+s){var d=Math.min(r,(h?c:i)-s);d!=a&&(u.scrollTop=d)}var p=o.scroller.clientWidth-Lo,g=o.scroller.scrollLeft;e+=o.gutters.offsetWidth,n+=o.gutters.offsetWidth;var m=o.gutters.offsetWidth,v=m+10>e;return g+m>e||v?(v&&(e=0),u.scrollLeft=Math.max(0,e-10-m)):n>p+g-3&&(u.scrollLeft=n+10-p),u}function sr(t,e,r){t.curOp.updateScrollPos={scrollLeft:null==e?t.doc.scrollLeft:e,scrollTop:null==r?t.doc.scrollTop:r}}function ar(t,e,r){var n=t.curOp.updateScrollPos||(t.curOp.updateScrollPos={scrollLeft:t.doc.scrollLeft,scrollTop:t.doc.scrollTop}),i=t.display.scroller;n.scrollTop=Math.max(0,Math.min(i.scrollHeight-i.clientHeight,n.scrollTop+r)),n.scrollLeft=Math.max(0,Math.min(i.scrollWidth-i.clientWidth,n.scrollLeft+e))}function ur(t,e,r,n){var i=t.doc;if(null==r&&(r="add"),"smart"==r)if(t.doc.mode.indent)var o=z(t,e);else r="prev";var l,s=t.options.tabSize,a=fn(i,e),u=_n(a.text,null,s),c=a.text.match(/^\s*/)[0];if("smart"==r&&(l=t.doc.mode.indent(o,a.text.slice(c.length),a.text),l==ko)){if(!n)return;r="prev"}"prev"==r?l=e>i.first?_n(fn(i,e-1).text,null,s):0:"add"==r?l=u+t.options.indentUnit:"subtract"==r?l=u-t.options.indentUnit:"number"==typeof r&&(l=u+r),l=Math.max(0,l);var f="",h=0;if(t.options.indentWithTabs)for(var d=Math.floor(l/s);d;--d)h+=s,f+=" ";l>h&&(f+=Yn(l-h)),f!=c&&Ke(t.doc,f,Ue(e,0),Ue(e,c.length),"+input"),a.stateAfter=null}function cr(t,e,r){var n=e,i=e,o=t.doc;return"number"==typeof e?i=fn(o,je(o,e)):n=gn(e),null==n?null:r(i,n)?(ae(t,n,n+1),i):null}function fr(t,e,r,n,i){function o(){var e=s+r;return e=t.first+t.size?f=!1:(s=e,c=fn(t,e))}function l(t){var e=(i?Ci:wi)(c,a,r,!0);if(null==e){if(t||!o())return f=!1;a=i?(0>r?gi:pi)(c):0>r?c.text.length:0}else a=e;return!0}var s=e.line,a=e.ch,u=r,c=fn(t,s),f=!0;if("char"==n)l();else if("column"==n)l(!0);else if("word"==n||"group"==n)for(var h=null,d="group"==n,p=!0;!(0>r)||l(!p);p=!1){var g=c.text.charAt(a)||"\n",m=ei(g)?"w":d?/\s/.test(g)?null:"p":null;if(h&&h!=m){0>r&&(r=1,l());break}if(m&&(h=m),r>0&&!l(!p))break}var v=rr(t,Ue(s,a),u,!0);return f||(v.hitSide=!0),v}function hr(t,e,r,n){var i,o=t.doc,l=e.left;if("page"==n){var s=Math.min(t.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight);i=e.top+r*(s-(0>r?1.5:.5)*ee(t.display))}else"line"==n&&(i=r>0?e.bottom+3:e.top-3);for(;;){var a=Q(t,l,i);if(!a.outside)break;if(0>r?0>=i:i>=o.height){a.hitSide=!0;break}i+=5*r}return a}function dr(t,e){var r=e.ch,n=e.ch;if(t){(e.xRel<0||n==t.length)&&r?--r:++n;for(var i=t.charAt(r),o=ei(i)?ei:/\s/.test(i)?function(t){return/\s/.test(t)}:function(t){return!/\s/.test(t)&&!ei(t)};r>0&&o(t.charAt(r-1));)--r;for(;nl;++l){var a=n(o[l]);if(a)return a}return!1}for(var i=0;i=e:o.to>e);(n||(n=[])).push({from:o.from,to:a?null:o.to,marker:l})}}return n}function Dr(t,e,r){if(t)for(var n,i=0;i=e:o.to>e);if(s||"bookmark"==l.type&&o.from==e&&(!r||o.marker.insertLeft)){var a=null==o.from||(l.inclusiveLeft?o.from<=e:o.from0&&s)for(var f=0;ff;++f)p.push(g);p.push(a)}return p}function Or(t,e){var r=kn(t,e),n=Wr(t,e);if(!r)return n;if(!n)return r;for(var i=0;ie)&&(!r||r.widtht.options.maxHighlightLength?(o=!1,u.pos=Math.min(e.length,u.start+5e4),l=null):l=r.token(u,n),o&&a==l||(ss;){var i=n[l];i>t&&n.splice(l,1,t,n[l+1],i),l+=2,s=Math.min(t,i)}if(e)if(o.opaque)n.splice(r,l-r,t,e),l=r+2;else for(;l>r;r+=2){var a=n[r+1];n[r+1]=a?a+" "+e:e}})}return n}function Zr(t,e){return e.styles&&e.styles[0]==t.state.modeGen||(e.styles=$r(t,e,e.stateAfter=z(t,gn(e)))),e.styles}function qr(t,e,r){var n=t.doc.mode,i=new wr(e.text,t.options.tabSize);for(""==e.text&&n.blankLine&&n.blankLine(r);!i.eol()&&i.pos<=t.options.maxHighlightLength;)n.token(i,r),i.start=i.pos}function Jr(t){return t?go[t]||(go[t]="cm-"+t.replace(/ +/g," cm-")):null}function Qr(t,e,r,n){for(var i,o=e,l=!0;i=Ir(o);)o=fn(t.doc,i.find().from.line);var s={pre:ni("pre"),col:0,pos:0,measure:null,measuredSomething:!1,cm:t,copyWidgets:n};o.textClass&&(s.pre.className=o.textClass);do{o.text&&(l=!1),s.measure=o==e&&r,s.pos=0,s.addToken=s.measure?en:tn,(ki||Ti)&&t.getOption("lineWrapping")&&(s.addToken=rn(s.addToken));var a=on(o,s,Zr(t,o));r&&o==e&&!s.measuredSomething&&(r[0]=s.pre.appendChild(ci(t.display.measure)),s.measuredSomething=!0),a&&(o=fn(t.doc,a.to.line))}while(a);!r||s.measuredSomething||r[0]||(r[0]=s.pre.appendChild(l?ni("span"," "):ci(t.display.measure))),s.pre.firstChild||Rr(t.doc,e)||s.pre.appendChild(document.createTextNode(" "));var u;if(r&&ki&&(u=yn(o))){var c=u.length-1;u[c].from==u[c].to&&--c;var f=u[c],h=u[c-1];if(f.from+1==f.to&&h&&f.level="í €"&&"í¯¿">s&&ld)?(null!=b.to&&m>b.to&&(m=b.to,a=""),x.className&&(s+=" "+x.className),x.startStyle&&b.from==d&&(u+=" "+x.startStyle),x.endStyle&&b.to==m&&(a+=" "+x.endStyle),x.title&&!c&&(c=x.title),x.collapsed&&(!f||f.marker.sized&&m>b.from&&(m=b.from),"bookmark"==x.type&&b.from==d&&x.replacedWith&&v.push(x)}if(f&&(f.from||0)==d&&(nn(e,(null==f.to?h:f.to)-d,f.marker,null==f.from),null==f.to))return f.marker.find();if(!f&&v.length)for(var y=0;y=h)break;for(var C=Math.min(h,m);;){if(g){var w=d+g.length;if(!f){var L=w>C?g.slice(0,C-d):g;e.addToken(e,L,l?l+s:s,u,d+L.length==m?a:"",c)}if(w>=C){g=g.slice(C-d),d=C;break}d=w,u=""}g=i.slice(o,o=r[p++]),l=Jr(r[p++])}}else for(var p=1;pg;++g)v.push(new po(u[g],o(g),i));l(f,f.text,d),p&&t.remove(s.line,p),v.length&&t.insert(s.line,v)}else if(c==f)if(1==u.length)l(c,c.text.slice(0,s.ch)+h+c.text.slice(a.ch),d);else{for(var v=[],g=1,m=u.length-1;m>g;++g)v.push(new po(u[g],o(g),i));v.push(new po(h+c.text.slice(a.ch),d,i)),l(c,c.text.slice(0,s.ch)+u[0],o(0)),t.insert(s.line+1,v)}else if(1==u.length)l(c,c.text.slice(0,s.ch)+u[0]+f.text.slice(a.ch),o(0)),t.remove(s.line+1,p);else{l(c,c.text.slice(0,s.ch)+u[0],o(0)),l(f,h+f.text.slice(a.ch),d);for(var g=1,m=u.length-1,v=[];m>g;++g)v.push(new po(u[g],o(g),i));p>1&&t.remove(s.line+1,p-1),t.insert(s.line+1,v)}Bn(t,"change",t,e),tr(t,n.anchor,n.head,null,!0)}function sn(t){this.lines=t,this.parent=null;for(var e=0,r=t.length,n=0;r>e;++e)t[e].parent=this,n+=t[e].height;this.height=n}function an(t){this.children=t;for(var e=0,r=0,n=0,i=t.length;i>n;++n){var o=t[n];e+=o.chunkSize(),r+=o.height,o.parent=this}this.size=e,this.height=r,this.parent=null}function un(t,e,r){function n(t,i,o){if(t.linked)for(var l=0;le){t=n;break}e-=i}return t.lines[e]}function hn(t,e,r){var n=[],i=e.line;return t.iter(e.line,r.line+1,function(t){var o=t.text;i==r.line&&(o=o.slice(0,r.ch)),i==e.line&&(o=o.slice(e.ch)),n.push(o),++i}),n}function dn(t,e,r){var n=[];return t.iter(e,r,function(t){n.push(t.text)}),n}function pn(t,e){for(var r=e-t.height,n=t;n;n=n.parent)n.height+=r}function gn(t){if(null==t.parent)return null;for(var e=t.parent,r=Zn(e.lines,t),n=e.parent;n;e=n,n=n.parent)for(var i=0;n.children[i]!=e;++i)r+=n.children[i].chunkSize();return r+e.first}function mn(t,e){var r=t.first;t:do{for(var n=0,i=t.children.length;i>n;++n){var o=t.children[n],l=o.height;if(l>e){t=o;continue t}e-=l,r+=o.chunkSize()}return r}while(!t.lines);for(var n=0,i=t.lines.length;i>n;++n){var s=t.lines[n],a=s.height;if(a>e)break;e-=a}return r+n}function vn(t,e){e=Fr(t.doc,e);for(var r=0,n=e.parent,i=0;io-t.cm.options.historyEventDelay||"*"==e.origin.charAt(0)))){var s=jn(l.changes);Xe(e.from,e.to)&&Xe(e.from,s.to)?s.to=eo(e):l.changes.push(Cn(t,e)),l.anchorAfter=r.anchor,l.headAfter=r.head}else for(l={changes:[Cn(t,e)],generation:i.generation,anchorBefore:t.sel.anchor,headBefore:t.sel.head,anchorAfter:r.anchor,headAfter:r.head},i.done.push(l),i.generation=++i.maxGeneration;i.done.length>i.undoDepth;)i.done.shift();i.lastTime=o,i.lastOp=n,i.lastOrigin=e.origin}function Ln(t){if(!t)return null;for(var e,r=0;r-1&&(jn(l)[c]=u[c],delete u[c])}}return n}function Mn(t,e,r,n){r0}function Un(t){t.prototype.on=function(t,e){Pn(this,t,e)},t.prototype.off=function(t,e){Fn(this,t,e)}}function Xn(){this.id=null}function _n(t,e,r,n,i){null==e&&(e=t.search(/[^\s\u00a0]/),-1==e&&(e=t.length));for(var o=n||0,l=i||0;e>o;++o)" "==t.charAt(o)?l+=r-l%r:++l;return l}function Yn(t){for(;So.length<=t;)So.push(jn(So)+" ");return So[t]}function jn(t){return t[t.length-1]}function $n(t){if(Ii)t.selectionStart=0,t.selectionEnd=t.value.length;else try{t.select()}catch(e){}}function Zn(t,e){if(t.indexOf)return t.indexOf(e);for(var r=0,n=t.length;n>r;++r)if(t[r]==e)return r;return-1}function qn(t,e){function r(){}r.prototype=t;var n=new r;return e&&Jn(e,n),n}function Jn(t,e){e||(e={});for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}function Qn(t){for(var e=[],r=0;t>r;++r)e.push(void 0);return e}function ti(t){var e=Array.prototype.slice.call(arguments,1);return function(){return t.apply(null,e)}}function ei(t){return/\w/.test(t)||t>"€"&&(t.toUpperCase()!=t.toLowerCase()||Mo.test(t))}function ri(t){for(var e in t)if(t.hasOwnProperty(e)&&t[e])return!1;return!0}function ni(t,e,r,n){var i=document.createElement(t);if(r&&(i.className=r),n&&(i.style.cssText=n),"string"==typeof e)li(i,e);else if(e)for(var o=0;o0;--e)t.removeChild(t.firstChild);return t}function oi(t,e){return ii(t).appendChild(e)}function li(t,e){Mi?(t.innerHTML="",t.appendChild(document.createTextNode(e))):t.textContent=e}function si(t){return t.getBoundingClientRect()}function ai(){return!1}function ui(t){if(null!=No)return No;var e=ni("div",null,null,"width: 50px; height: 50px; overflow-x: scroll");return oi(t,e),e.offsetWidth&&(No=e.offsetHeight-e.clientHeight),No||0}function ci(t){if(null==Ho){var e=ni("span","​");oi(t,ni("span",[e,document.createTextNode("x")])),0!=t.firstChild.offsetHeight&&(Ho=e.offsetWidth<=1&&e.offsetHeight>2&&!Si)}return Ho?ni("span","​"):ni("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px")}function fi(t,e,r,n){if(!t)return n(e,r,"ltr");for(var i=!1,o=0;oe||e==r&&l.to==e)&&(n(Math.max(l.from,e),Math.min(l.to,r),1==l.level?"rtl":"ltr"),i=!0)}i||n(e,r,"ltr")}function hi(t){return t.level%2?t.to:t.from}function di(t){return t.level%2?t.from:t.to}function pi(t){var e=yn(t);return e?hi(e[0]):0}function gi(t){var e=yn(t);return e?di(jn(e)):t.text.length}function mi(t,e){var r=fn(t.doc,e),n=Fr(t.doc,r);n!=r&&(e=gn(n));var i=yn(n),o=i?i[0].level%2?gi(n):pi(n):0;return Ue(e,o)}function vi(t,e){for(var r,n;r=Pr(n=fn(t.doc,e));)e=r.find().to.line;var i=yn(n),o=i?i[0].level%2?pi(n):gi(n):n.text.length;return Ue(e,o)}function yi(t,e,r){var n=t[0].level;return e==n?!0:r==n?!1:r>e}function bi(t,e){for(var r,n=0;ne)return zo=null,n;if(i.from==e||i.to==e){if(null!=r)return yi(t,i.level,t[r].level)?(zo=r,n):(zo=n,r);r=n}}return zo=null,r}function xi(t,e,r,n){if(!n)return e+r;do e+=r;while(e>0&&To.test(t.text.charAt(e)));return e}function Ci(t,e,r,n){var i=yn(t);if(!i)return wi(t,e,r,n);for(var o=bi(i,e),l=i[o],s=xi(t,e,l.level%2?-r:r,n);;){if(s>l.from&&s0==l.level%2?l.to:l.from);if(l=i[o+=r],!l)return null;s=r>0==l.level%2?xi(t,l.to,-1,n):xi(t,l.from,1,n)}}function wi(t,e,r,n){var i=e+r;if(n)for(;i>0&&To.test(t.text.charAt(i));)i+=r;return 0>i||i>t.text.length?null:i}var Li=/gecko\/\d/i.test(navigator.userAgent),ki=/MSIE \d/.test(navigator.userAgent),Si=ki&&(null==document.documentMode||document.documentMode<8),Mi=ki&&(null==document.documentMode||document.documentMode<9),Ti=/WebKit\//.test(navigator.userAgent),Ai=Ti&&/Qt\/\d+\.\d+/.test(navigator.userAgent),Ni=/Chrome\//.test(navigator.userAgent),Hi=/Opera\//.test(navigator.userAgent),Di=/Apple Computer/.test(navigator.vendor),Wi=/KHTML\//.test(navigator.userAgent),Oi=/Mac OS X 1\d\D([7-9]|\d\d)\D/.test(navigator.userAgent),Ei=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(navigator.userAgent),zi=/PhantomJS/.test(navigator.userAgent),Ii=/AppleWebKit/.test(navigator.userAgent)&&/Mobile\/\w+/.test(navigator.userAgent),Pi=Ii||/Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(navigator.userAgent),Fi=Ii||/Mac/.test(navigator.platform),Ri=/win/i.test(navigator.platform),Bi=Hi&&navigator.userAgent.match(/Version\/(\d*\.\d*)/);Bi&&(Bi=Number(Bi[1])),Bi&&Bi>=15&&(Hi=!1,Ti=!0);var Gi,Vi,Ki,Ui=Fi&&(Ai||Hi&&(null==Bi||12.11>Bi)),Xi=Li||ki&&!Mi,_i=!1,Yi=!1,ji=0,$i=0,Zi=0,qi=null;ki?qi=-.53:Li?qi=15:Ni?qi=-.7:Di&&(qi=-1/3);var Ji,Qi,to=null,eo=t.changeEnd=function(t){return t.text?Ue(t.from.line+t.text.length-1,jn(t.text).length+(1==t.text.length?t.from.ch:0)):t.to};t.Pos=Ue,t.prototype={constructor:t,focus:function(){window.focus(),de(this),De(this),ce(this)},setOption:function(t,e){var r=this.options,n=r[t];(r[t]!=e||"mode"==t)&&(r[t]=e,ro.hasOwnProperty(t)&&oe(this,ro[t])(this,e,n))},getOption:function(t){return this.options[t]},getDoc:function(){return this.doc},addKeyMap:function(t,e){this.state.keyMaps[e?"push":"unshift"](t)},removeKeyMap:function(t){for(var e=this.state.keyMaps,r=0;r=n;++n)ur(this,n,t)}),getTokenAt:function(t,e){var r=this.doc;t=$e(r,t);for(var n=z(this,t.line,e),i=this.doc.mode,o=fn(r,t.line),l=new wr(o.text,this.options.tabSize);l.pos>1;if((o?e[2*o-1]:0)>=i)n=o;else{if(!(e[2*o+1]n&&(t=n,r=!0);var i=fn(this.doc,t);return j(this,fn(this.doc,t),{top:0,left:0},e||"page").top+(r?i.height:0)},defaultTextHeight:function(){return ee(this.display)},defaultCharWidth:function(){return re(this.display)},setGutterMarker:oe(null,function(t,e,r){return cr(this,t,function(t){var n=t.gutterMarkers||(t.gutterMarkers={});return n[e]=r,!r&&ri(n)&&(t.gutterMarkers=null),!0})}),clearGutter:oe(null,function(t){var e=this,r=e.doc,n=r.first;r.iter(function(r){r.gutterMarkers&&r.gutterMarkers[t]&&(r.gutterMarkers[t]=null,ae(e,n,n+1),ri(r.gutterMarkers)&&(r.gutterMarkers=null)),++n})}),addLineClass:oe(null,function(t,e,r){return cr(this,t,function(t){var n="text"==e?"textClass":"background"==e?"bgClass":"wrapClass";if(t[n]){if(new RegExp("(?:^|\\s)"+r+"(?:$|\\s)").test(t[n]))return!1;t[n]+=" "+r}else t[n]=r;return!0})}),removeLineClass:oe(null,function(t,e,r){return cr(this,t,function(t){var n="text"==e?"textClass":"background"==e?"bgClass":"wrapClass",i=t[n];if(!i)return!1;if(null==r)t[n]=null;else{var o=i.match(new RegExp("(?:^|\\s+)"+r+"(?:$|\\s+)"));if(!o)return!1;var l=o.index+o[0].length;t[n]=i.slice(0,o.index)+(o.index&&l!=i.length?" ":"")+i.slice(l)||null}return!0})}),addLineWidget:oe(null,function(t,e,r){return Xr(this,t,e,r)}),removeLineWidget:function(t){t.clear()},lineInfo:function(t){if("number"==typeof t){if(!qe(this.doc,t))return null;var e=t;if(t=fn(this.doc,t),!t)return null}else{var e=gn(t);if(null==e)return null}return{line:e,handle:t,text:t.text,gutterMarkers:t.gutterMarkers,textClass:t.textClass,bgClass:t.bgClass,wrapClass:t.wrapClass,widgets:t.widgets}},getViewport:function(){return{from:this.display.showingFrom,to:this.display.showingTo}},addWidget:function(t,e,r,n,i){var o=this.display;t=q(this,$e(this.doc,t));var l=t.bottom,s=t.left;if(e.style.position="absolute",o.sizer.appendChild(e),"over"==n)l=t.top;else if("above"==n||"near"==n){var a=Math.max(o.wrapper.clientHeight,this.doc.height),u=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);("above"==n||t.bottom+e.offsetHeight>a)&&t.top>e.offsetHeight?l=t.top-e.offsetHeight:t.bottom+e.offsetHeight<=a&&(l=t.bottom),s+e.offsetWidth>u&&(s=u-e.offsetWidth)}e.style.top=l+"px",e.style.left=e.style.right="","right"==i?(s=o.sizer.clientWidth-e.offsetWidth,e.style.right="0px"):("left"==i?s=0:"middle"==i&&(s=(o.sizer.clientWidth-e.offsetWidth)/2),e.style.left=s+"px"),r&&or(this,s,l,s+e.offsetWidth,l+e.offsetHeight)},triggerOnKeyDown:oe(null,Ne),execCommand:function(t){return co[t](this)},findPosH:function(t,e,r,n){var i=1;0>e&&(i=-1,e=-e);for(var o=0,l=$e(this.doc,t);e>o&&(l=fr(this.doc,l,i,r,n),!l.hitSide);++o);return l},moveH:oe(null,function(t,e){var r,n=this.doc.sel;r=n.shift||n.extend||Xe(n.from,n.to)?fr(this.doc,n.head,t,e,this.options.rtlMoveVisually):0>t?n.from:n.to,Je(this.doc,r,r,t)}),deleteH:oe(null,function(t,e){var r=this.doc.sel;Xe(r.from,r.to)?Ke(this.doc,"",r.from,fr(this.doc,r.head,t,e,!1),"+delete"):Ke(this.doc,"",r.from,r.to,"+delete"),this.curOp.userSelChange=!0}),findPosV:function(t,e,r,n){var i=1,o=n;0>e&&(i=-1,e=-e);for(var l=0,s=$e(this.doc,t);e>l;++l){var a=q(this,s,"div");if(null==o?o=a.left:a.left=o,s=hr(this,a,i,r),s.hitSide)break}return s},moveV:oe(null,function(t,e){var r=this.doc.sel,n=q(this,r.head,"div");null!=r.goalColumn&&(n.left=r.goalColumn);var i=hr(this,n,t,e);"page"==e&&ar(this,0,Z(this,i,"div").top-n.top),Je(this.doc,i,i,t),r.goalColumn=n.left}),toggleOverwrite:function(t){(null==t||t!=this.state.overwrite)&&((this.state.overwrite=!this.state.overwrite)?this.display.cursor.className+=" CodeMirror-overwrite":this.display.cursor.className=this.display.cursor.className.replace(" CodeMirror-overwrite",""))},hasFocus:function(){return this.state.focused},scrollTo:oe(null,function(t,e){sr(this,t,e)}),getScrollInfo:function(){var t=this.display.scroller,e=Lo;return{left:t.scrollLeft,top:t.scrollTop,height:t.scrollHeight-e,width:t.scrollWidth-e,clientHeight:t.clientHeight-e,clientWidth:t.clientWidth-e}},scrollIntoView:oe(null,function(t,e){"number"==typeof t&&(t=Ue(t,0)),e||(e=0);var r=t;t&&null==t.line||(this.curOp.scrollToPos=t?$e(this.doc,t):this.doc.sel.head,this.curOp.scrollToPosMargin=e,r=q(this,this.curOp.scrollToPos));var n=lr(this,r.left,r.top-e,r.right,r.bottom+e);sr(this,n.scrollLeft,n.scrollTop)}),setSize:oe(null,function(t,e){function r(t){return"number"==typeof t||/^\d+$/.test(String(t))?t+"px":t}null!=t&&(this.display.wrapper.style.width=r(t)),null!=e&&(this.display.wrapper.style.height=r(e)),this.options.lineWrapping&&(this.display.measureLineCache.length=this.display.measureLineCachePos=0),this.curOp.forceUpdate=!0}),operation:function(t){return se(this,t)},refresh:oe(null,function(){X(this),sr(this,this.doc.scrollLeft,this.doc.scrollTop),ae(this)}),swapDoc:oe(null,function(t){var e=this.doc;return e.cm=null,cn(this,t),X(this),he(this,!0),sr(this,t.scrollLeft,t.scrollTop),e}),getInputField:function(){return this.display.input},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},Un(t);var ro=t.optionHandlers={},no=t.defaults={},io=t.Init={toString:function(){return"CodeMirror.Init"}};gr("value","",function(t,e){t.setValue(e)},!0),gr("mode",null,function(t,e){t.doc.modeOption=e,r(t)},!0),gr("indentUnit",2,r,!0),gr("indentWithTabs",!1),gr("smartIndent",!0),gr("tabSize",4,function(t){r(t),X(t),ae(t)},!0),gr("electricChars",!0),gr("rtlMoveVisually",!Ri),gr("theme","default",function(t){s(t),a(t)},!0),gr("keyMap","default",l),gr("extraKeys",null),gr("onKeyEvent",null),gr("onDragEvent",null),gr("lineWrapping",!1,n,!0),gr("gutters",[],function(t){h(t.options),a(t)},!0),gr("fixedGutter",!0,function(t,e){t.display.gutters.style.left=e?y(t.display)+"px":"0",t.refresh()},!0),gr("coverGutterNextToScrollbar",!1,d,!0),gr("lineNumbers",!1,function(t){h(t.options),a(t)},!0),gr("firstLineNumber",1,a,!0),gr("lineNumberFormatter",function(t){return t},a,!0),gr("showCursorWhenSelecting",!1,A,!0),gr("readOnly",!1,function(t,e){"nocursor"==e?(We(t),t.display.input.blur()):e||he(t,!0)}),gr("dragDrop",!0),gr("cursorBlinkRate",530),gr("cursorScrollMargin",0),gr("cursorHeight",1),gr("workTime",100),gr("workDelay",100),gr("flattenSpans",!0),gr("pollInterval",100),gr("undoDepth",40,function(t,e){t.doc.history.undoDepth=e}),gr("historyEventDelay",500),gr("viewportMargin",10,function(t){t.refresh()},!0),gr("maxHighlightLength",1e4,function(t){r(t),t.refresh()},!0),gr("moveInputWithCursor",!0,function(t,e){e||(t.display.inputDiv.style.top=t.display.inputDiv.style.left=0)}),gr("tabindex",null,function(t,e){t.display.input.tabIndex=e||""}),gr("autofocus",null);var oo=t.modes={},lo=t.mimeModes={};t.defineMode=function(e,r){if(t.defaults.mode||"null"==e||(t.defaults.mode=e),arguments.length>2){r.dependencies=[];for(var n=2;n0&&e.ch=this.string.length},sol:function(){return 0==this.pos},peek:function(){return this.string.charAt(this.pos)||void 0},next:function(){return this.pose},eatSpace:function(){for(var t=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>t},skipToEnd:function(){this.pos=this.string.length},skipTo:function(t){var e=this.string.indexOf(t,this.pos);return e>-1?(this.pos=e,!0):void 0},backUp:function(t){this.pos-=t},column:function(){return this.lastColumnPos0?null:(n&&e!==!1&&(this.pos+=n[0].length),n)}var i=function(t){return r?t.toLowerCase():t},o=this.string.substr(this.pos,t.length);return i(o)==i(t)?(e!==!1&&(this.pos+=t.length),!0):void 0},current:function(){return this.string.slice(this.start,this.pos)}},t.StringStream=wr,t.TextMarker=Lr,Un(Lr),Lr.prototype.clear=function(){if(!this.explicitlyCleared){var t=this.doc.cm,e=t&&!t.curOp;if(e&&ne(t),Kn(this,"clear")){var r=this.find();r&&Bn(this,"clear",r.from,r.to)}for(var n=null,i=null,o=0;ot.display.maxLineLength&&(t.display.maxLine=a,t.display.maxLineLength=u,t.display.maxLineChanged=!0)}null!=n&&t&&ae(t,n,i+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,t&&er(t)),e&&ie(t)}},Lr.prototype.find=function(){for(var t,e,r=0;r=e.display.showingFrom&&t.liner;++r){var i=this.lines[r];this.height-=i.height,Yr(i),Bn(i,"delete")}this.lines.splice(t,e)},collapse:function(t){t.splice.apply(t,[t.length,0].concat(this.lines))},insertInner:function(t,e,r){this.height+=r,this.lines=this.lines.slice(0,t).concat(e).concat(this.lines.slice(t));for(var n=0,i=e.length;i>n;++n)e[n].parent=this},iterN:function(t,e,r){for(var n=t+e;n>t;++t)if(r(this.lines[t]))return!0}},an.prototype={chunkSize:function(){return this.size},removeInner:function(t,e){this.size-=e;for(var r=0;rt){var o=Math.min(e,i-t),l=n.height;if(n.removeInner(t,o),this.height-=l-n.height,i==o&&(this.children.splice(r--,1),n.parent=null),0==(e-=o))break;t=0}else t-=i}if(this.size-e<25){var s=[];this.collapse(s),this.children=[new sn(s)],this.children[0].parent=this}},collapse:function(t){for(var e=0,r=this.children.length;r>e;++e)this.children[e].collapse(t)},insertInner:function(t,e,r){this.size+=e.length,this.height+=r; for(var n=0,i=this.children.length;i>n;++n){var o=this.children[n],l=o.chunkSize();if(l>=t){if(o.insertInner(t,e,r),o.lines&&o.lines.length>50){for(;o.lines.length>50;){var s=o.lines.splice(o.lines.length-25,25),a=new sn(s);o.height-=a.height,this.children.splice(n+1,0,a),a.parent=this}this.maybeSpill()}break}t-=l}},maybeSpill:function(){if(!(this.children.length<=10)){var t=this;do{var e=t.children.splice(t.children.length-5,5),r=new an(e);if(t.parent){t.size-=r.size,t.height-=r.height;var n=Zn(t.parent.children,t);t.parent.children.splice(n+1,0,r)}else{var i=new an(t.children);i.parent=t,t.children=[i,r],t=i}r.parent=t.parent}while(t.children.length>10);t.parent.maybeSpill()}},iterN:function(t,e,r){for(var n=0,i=this.children.length;i>n;++n){var o=this.children[n],l=o.chunkSize();if(l>t){var s=Math.min(e,l-t);if(o.iterN(t,s,r))return!0;if(0==(e-=s))break;t=0}else t-=l}}};var vo=0,yo=t.Doc=function(t,e,r){if(!(this instanceof yo))return new yo(t,e,r);null==r&&(r=0),an.call(this,[new sn([new po("",null)])]),this.first=r,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.history=bn(),this.cleanGeneration=1,this.frontier=r;var n=Ue(r,0);this.sel={from:n,to:n,head:n,anchor:n,shift:!1,extend:!1,goalColumn:null},this.id=++vo,this.modeOption=e,"string"==typeof t&&(t=Do(t)),ln(this,{from:n,to:n,text:t},null,{head:n,anchor:n})};yo.prototype=qn(an.prototype,{constructor:yo,iter:function(t,e,r){r?this.iterN(t-this.first,e-t,r):this.iterN(this.first,this.first+this.size,t)},insert:function(t,e){for(var r=0,n=0,i=e.length;i>n;++n)r+=e[n].height;this.insertInner(t-this.first,e,r)},remove:function(t,e){this.removeInner(t-this.first,e)},getValue:function(t){var e=dn(this,this.first,this.first+this.size);return t===!1?e:e.join(t||"\n")},setValue:function(t){var e=Ue(this.first,0),r=this.first+this.size-1;Pe(this,{from:e,to:Ue(r,fn(this,r).text.length),text:Do(t),origin:"setValue"},{head:e,anchor:e},!0)},replaceRange:function(t,e,r,n){e=$e(this,e),r=r?$e(this,r):e,Ke(this,t,e,r,n)},getRange:function(t,e,r){var n=hn(this,$e(this,t),$e(this,e));return r===!1?n:n.join(r||"\n")},getLine:function(t){var e=this.getLineHandle(t);return e&&e.text},setLine:function(t,e){qe(this,t)&&Ke(this,e,Ue(t,0),$e(this,Ue(t)))},removeLine:function(t){t?Ke(this,"",$e(this,Ue(t-1)),$e(this,Ue(t))):Ke(this,"",Ue(0,0),$e(this,Ue(1,0)))},getLineHandle:function(t){return qe(this,t)?fn(this,t):void 0},getLineNumber:function(t){return gn(t)},getLineHandleVisualStart:function(t){return"number"==typeof t&&(t=fn(this,t)),Fr(this,t)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(t){return $e(this,t)},getCursor:function(t){var e,r=this.sel;return e=null==t||"head"==t?r.head:"anchor"==t?r.anchor:"end"==t||t===!1?r.to:r.from,Ye(e)},somethingSelected:function(){return!Xe(this.sel.head,this.sel.anchor)},setCursor:le(function(t,e,r){var n=$e(this,"number"==typeof t?Ue(t,e||0):t);r?Je(this,n):tr(this,n,n)}),setSelection:le(function(t,e,r){tr(this,$e(this,t),$e(this,e||t),r)}),extendSelection:le(function(t,e,r){Je(this,$e(this,t),e&&$e(this,e),r)}),getSelection:function(t){return this.getRange(this.sel.from,this.sel.to,t)},replaceSelection:function(t,e,r){Pe(this,{from:this.sel.from,to:this.sel.to,text:Do(t),origin:r},e||"around")},undo:le(function(){Re(this,"undo")}),redo:le(function(){Re(this,"redo")}),setExtending:function(t){this.sel.extend=t},historySize:function(){var t=this.history;return{undo:t.done.length,redo:t.undone.length}},clearHistory:function(){this.history=bn(this.history.maxGeneration)},markClean:function(){this.cleanGeneration=this.changeGeneration()},changeGeneration:function(){return this.history.lastOp=this.history.lastOrigin=null,this.history.generation},isClean:function(t){return this.history.generation==(t||this.cleanGeneration)},getHistory:function(){return{done:Sn(this.history.done),undone:Sn(this.history.undone)}},setHistory:function(t){var e=this.history=bn(this.history.maxGeneration);e.done=t.done.slice(0),e.undone=t.undone.slice(0)},markText:function(t,e,r){return kr(this,$e(this,t),$e(this,e),r,"range")},setBookmark:function(t,e){var r={replacedWith:e&&(null==e.nodeType?e.widget:e),insertLeft:e&&e.insertLeft};return t=$e(this,t),kr(this,t,t,r,"bookmark")},findMarksAt:function(t){t=$e(this,t);var e=[],r=fn(this,t.line).markedSpans;if(r)for(var n=0;n=t.ch)&&e.push(i.marker.parent||i.marker)}return e},getAllMarks:function(){var t=[];return this.iter(function(e){var r=e.markedSpans;if(r)for(var n=0;nt?(e=t,!0):(t-=i,++r,void 0)}),$e(this,Ue(r,e))},indexFromPos:function(t){t=$e(this,t);var e=t.ch;return t.linee&&(e=t.from),null!=t.to&&t.to1&&45==t.charCodeAt(e-1)){if(/\w/.test(t.charAt(e-2))&&/[^\-?\.]/.test(t.charAt(e)))return!0;if(e>2&&/[\d\.,]/.test(t.charAt(e-2))&&/[\d\.,]/.test(t.charAt(e)))return!1}return/[~!#%&*)=+}\]|\"\.>,:;][({[<]|-[^\-?\.\u2010-\u201f\u2026]|\?[\w~`@#$%\^&*(_=+{[|><]|…[\w~`@#$%\^&*(_=+{[><]/.test(t.slice(e-1,e+1))});var No,Ho,Do=3!="\n\nb".split(/\n/).length?function(t){for(var e=0,r=[],n=t.length;n>=e;){var i=t.indexOf("\n",e);-1==i&&(i=t.length);var o=t.slice(e,"\r"==t.charAt(i-1)?i-1:i),l=o.indexOf("\r");-1!=l?(r.push(o.slice(0,l)),e+=l+1):(r.push(o),e=i+1)}return r}:function(t){return t.split(/\r\n?|\n/)};t.splitLines=Do;var Wo=window.getSelection?function(t){try{return t.selectionStart!=t.selectionEnd}catch(e){return!1}}:function(t){try{var e=t.ownerDocument.selection.createRange()}catch(r){}return e&&e.parentElement()==t?0!=e.compareEndPoints("StartToEnd",e):!1},Oo=function(){var t=ni("div");return"oncopy"in t?!0:(t.setAttribute("oncopy","return;"),"function"==typeof t.oncopy)}(),Eo={3:"Enter",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",91:"Mod",92:"Mod",93:"Mod",109:"-",107:"=",127:"Delete",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63276:"PageUp",63277:"PageDown",63275:"End",63273:"Home",63234:"Left",63232:"Up",63235:"Right",63233:"Down",63302:"Insert",63272:"Delete"};t.keyNames=Eo,function(){for(var t=0;10>t;t++)Eo[t+48]=String(t);for(var t=65;90>=t;t++)Eo[t]=String.fromCharCode(t);for(var t=1;12>=t;t++)Eo[t+111]=Eo[t+63235]="F"+t}();var zo,Io=function(){function t(t){return 255>=t?e.charAt(t):t>=1424&&1524>=t?"R":t>=1536&&1791>=t?r.charAt(t-1536):t>=1792&&2220>=t?"r":"L"}var e="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLL",r="rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmmrrrrrrrrrrrrrrrrrr",n=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,i=/[stwN]/,o=/[LRr]/,l=/[Lb1n]/,s=/[1n]/,a="L";return function(e){if(!n.test(e))return!1;for(var r,u=e.length,c=[],f=0;u>f;++f)c.push(r=t(e.charCodeAt(f)));for(var f=0,h=a;u>f;++f){var r=c[f];"m"==r?c[f]=h:h=r}for(var f=0,d=a;u>f;++f){var r=c[f];"1"==r&&"r"==d?c[f]="n":o.test(r)&&(d=r,"r"==r&&(c[f]="R"))}for(var f=1,h=c[0];u-1>f;++f){var r=c[f];"+"==r&&"1"==h&&"1"==c[f+1]?c[f]="1":","!=r||h!=c[f+1]||"1"!=h&&"n"!=h||(c[f]=h),h=r}for(var f=0;u>f;++f){var r=c[f];if(","==r)c[f]="N";else if("%"==r){for(var p=f+1;u>p&&"%"==c[p];++p);for(var g=f&&"!"==c[f-1]||u-1>p&&"1"==c[p]?"1":"N",m=f;p>m;++m)c[m]=g;f=p-1}}for(var f=0,d=a;u>f;++f){var r=c[f];"L"==d&&"1"==r?c[f]="L":o.test(r)&&(d=r)}for(var f=0;u>f;++f)if(i.test(c[f])){for(var p=f+1;u>p&&i.test(c[p]);++p);for(var v="L"==(f?c[f-1]:a),y="L"==(u-1>p?c[p]:a),g=v||y?"L":"R",m=f;p>m;++m)c[m]=g;f=p-1}for(var b,x=[],f=0;u>f;)if(l.test(c[f])){var C=f;for(++f;u>f&&l.test(c[f]);++f);x.push({from:C,to:f,level:0})}else{var w=f,L=x.length;for(++f;u>f&&"L"!=c[f];++f);for(var m=w;f>m;)if(s.test(c[m])){m>w&&x.splice(L,0,{from:w,to:m,level:1});var k=m;for(++m;f>m&&s.test(c[m]);++m);x.splice(L,0,{from:k,to:m,level:2}),w=m}else++m;f>w&&x.splice(L,0,{from:w,to:f,level:1})}return 1==x[0].level&&(b=e.match(/^\s+/))&&(x[0].from=b[0].length,x.unshift({from:0,to:b[0].length,level:0})),1==jn(x).level&&(b=e.match(/\s+$/))&&(jn(x).to-=b[0].length,x.push({from:u-b[0].length,to:u,level:0})),x[0].level!=jn(x).level&&x.push({from:u,to:u,level:x[0].level}),x}}();return t.version="3.16.1",t}();