mockm
Version:
Analog interface server, painless parallel development of front and back ends.
7 lines • 157 kB
JavaScript
/**
* Minified by jsDelivr using Terser v5.13.1.
* Original file: /gh/codemirror/CodeMirror@5.19.0/lib/codemirror.js
*
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
*/
!function(e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else{if("function"==typeof define&&define.amd)return define([],e);(this||window).CodeMirror=e()}}((function(){"use strict";var e=navigator.userAgent,t=navigator.platform,r=/gecko\/\d/i.test(e),n=/MSIE \d/.test(e),i=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(e),o=n||i,l=o&&(n?document.documentMode||6:i[1]),s=/WebKit\//.test(e),a=s&&/Qt\/\d+\.\d+/.test(e),u=/Chrome\//.test(e),c=/Opera\//.test(e),h=/Apple Computer/.test(navigator.vendor),f=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(e),d=/PhantomJS/.test(e),p=/AppleWebKit/.test(e)&&/Mobile\/\w+/.test(e),g=p||/Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(e),v=p||/Mac/.test(t),m=/\bCrOS\b/.test(e),y=/win/i.test(t),b=c&&e.match(/Version\/(\d*\.\d*)/);b&&(b=Number(b[1])),b&&b>=15&&(c=!1,s=!0);var w=v&&(a||c&&(null==b||b<12.11)),x=r||o&&l>=9,C=!1,S=!1;function L(e,t){if(!(this instanceof L))return new L(e,t);this.options=t=t?Co(t):{},Co(Jr,t,!1),I(t);var r=t.value;"string"==typeof r&&(r=new mi(r,t.mode,null,t.lineSeparator)),this.doc=r;var n=new L.inputStyles[t.inputStyle](this),i=this.display=new T(e,r,n);i.wrapper.CodeMirror=this,D(this),A(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),t.autofocus&&!g&&i.input.focus(),B(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,selectingText:!1,draggingText:!1,highlight:new co,keySeq:null,specialChars:null};var a=this;for(var u in o&&l<11&&setTimeout((function(){a.display.input.reset(!0)}),20),function(e){var t=e.display;Yi(t.scroller,"mousedown",$t(e,cr)),Yi(t.scroller,"dblclick",o&&l<11?$t(e,(function(t){if(!to(e,t)){var r=ur(e,t);if(r&&!fr(e,t)&&!ar(e.display,t)){Gi(t);var n=e.findWordAt(r);Ge(e.doc,n.anchor,n.head)}}})):function(t){to(e,t)||Gi(t)});x||Yi(t.scroller,"contextmenu",(function(t){Dr(e,t)}));var r,n={end:0};function i(){t.activeTouch&&(r=setTimeout((function(){t.activeTouch=null}),1e3),(n=t.activeTouch).end=+new Date)}function s(e){if(1!=e.touches.length)return!1;var t=e.touches[0];return t.radiusX<=1&&t.radiusY<=1}function a(e,t){if(null==t.left)return!0;var r=t.left-e.left,n=t.top-e.top;return r*r+n*n>400}Yi(t.scroller,"touchstart",(function(i){if(!to(e,i)&&!s(i)){clearTimeout(r);var o=+new Date;t.activeTouch={start:o,moved:!1,prev:o-n.end<=300?n:null},1==i.touches.length&&(t.activeTouch.left=i.touches[0].pageX,t.activeTouch.top=i.touches[0].pageY)}})),Yi(t.scroller,"touchmove",(function(){t.activeTouch&&(t.activeTouch.moved=!0)})),Yi(t.scroller,"touchend",(function(r){var n=t.activeTouch;if(n&&!ar(t,r)&&null!=n.left&&!n.moved&&new Date-n.start<300){var o,l=e.coordsChar(t.activeTouch,"page");o=!n.prev||a(n,n.prev)?new He(l,l):!n.prev.prev||a(n,n.prev.prev)?e.findWordAt(l):new He(de(l.line,0),ze(e.doc,de(l.line+1,0))),e.setSelection(o.anchor,o.head),e.focus(),Gi(r)}i()})),Yi(t.scroller,"touchcancel",i),Yi(t.scroller,"scroll",(function(){t.scroller.clientHeight&&(vr(e,t.scroller.scrollTop),mr(e,t.scroller.scrollLeft,!0),Zi(e,"scroll",e))})),Yi(t.scroller,"mousewheel",(function(t){xr(e,t)})),Yi(t.scroller,"DOMMouseScroll",(function(t){xr(e,t)})),Yi(t.wrapper,"scroll",(function(){t.wrapper.scrollTop=t.wrapper.scrollLeft=0})),t.dragFunctions={enter:function(t){to(e,t)||Ki(t)},over:function(t){to(e,t)||(!function(e,t){var r=ur(e,t);if(!r)return;var n=document.createDocumentFragment();rt(e,r,n),e.display.dragCursor||(e.display.dragCursor=Oo("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),e.display.lineSpace.insertBefore(e.display.dragCursor,e.display.cursorDiv));Ho(e.display.dragCursor,n)}(e,t),Ki(t))},start:function(t){!function(e,t){if(o&&(!e.state.draggingText||+new Date-dr<100))return void Ki(t);if(to(e,t)||ar(e.display,t))return;if(t.dataTransfer.setData("Text",e.getSelection()),t.dataTransfer.effectAllowed="copyMove",t.dataTransfer.setDragImage&&!h){var r=Oo("img",null,null,"position: fixed; left: 0; top: 0;");r.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",c&&(r.width=r.height=1,e.display.wrapper.appendChild(r),r._top=r.offsetTop),t.dataTransfer.setDragImage(r,0,0),c&&r.parentNode.removeChild(r)}}(e,t)},drop:$t(e,pr),leave:function(t){to(e,t)||gr(e)}};var u=t.input.getField();Yi(u,"keyup",(function(t){Nr.call(e,t)})),Yi(u,"keydown",$t(e,Mr)),Yi(u,"keypress",$t(e,Wr)),Yi(u,"focus",(function(t){Ar(e,t)})),Yi(u,"blur",(function(t){Or(e,t)}))}(this),function(){if(Go)return;Yi(window,"resize",(function(){null==e&&(e=setTimeout((function(){e=null,Bo(sr)}),100))})),Yi(window,"blur",(function(){Bo(Or)})),Go=!0;var e}(),Ut(this),this.curOp.forceUpdate=!0,xi(this,r),t.autofocus&&!g||a.hasFocus()?setTimeout(So(Ar,this),20):Or(this),en)en.hasOwnProperty(u)&&en[u](this,t[u],rn);j(this),t.finishInit&&t.finishInit(this);for(var f=0;f<sn.length;++f)sn[f](this);Vt(this),s&&t.lineWrapping&&"optimizelegibility"==getComputedStyle(i.lineDiv).textRendering&&(i.lineDiv.style.textRendering="auto")}function T(e,t,n){var i=this;this.input=n,i.scrollbarFiller=Oo("div",null,"CodeMirror-scrollbar-filler"),i.scrollbarFiller.setAttribute("cm-not-content","true"),i.gutterFiller=Oo("div",null,"CodeMirror-gutter-filler"),i.gutterFiller.setAttribute("cm-not-content","true"),i.lineDiv=Oo("div",null,"CodeMirror-code"),i.selectionDiv=Oo("div",null,null,"position: relative; z-index: 1"),i.cursorDiv=Oo("div",null,"CodeMirror-cursors"),i.measure=Oo("div",null,"CodeMirror-measure"),i.lineMeasure=Oo("div",null,"CodeMirror-measure"),i.lineSpace=Oo("div",[i.measure,i.lineMeasure,i.selectionDiv,i.cursorDiv,i.lineDiv],null,"position: relative; outline: none"),i.mover=Oo("div",[Oo("div",[i.lineSpace],"CodeMirror-lines")],null,"position: relative"),i.sizer=Oo("div",[i.mover],"CodeMirror-sizer"),i.sizerWidth=null,i.heightForcer=Oo("div",null,null,"position: absolute; height: "+oo+"px; width: 1px;"),i.gutters=Oo("div",null,"CodeMirror-gutters"),i.lineGutter=null,i.scroller=Oo("div",[i.sizer,i.heightForcer,i.gutters],"CodeMirror-scroll"),i.scroller.setAttribute("tabIndex","-1"),i.wrapper=Oo("div",[i.scrollbarFiller,i.gutterFiller,i.scroller],"CodeMirror"),o&&l<8&&(i.gutters.style.zIndex=-1,i.scroller.style.paddingRight=0),s||r&&g||(i.scroller.draggable=!0),e&&(e.appendChild?e.appendChild(i.wrapper):e(i.wrapper)),i.viewFrom=i.viewTo=t.first,i.reportedViewFrom=i.reportedViewTo=t.first,i.view=[],i.renderedView=null,i.externalMeasured=null,i.viewOffset=0,i.lastWrapHeight=i.lastWrapWidth=0,i.updateLineNumbers=null,i.nativeBarWidth=i.barHeight=i.barWidth=0,i.scrollbarsClipped=!1,i.lineNumWidth=i.lineNumInnerWidth=i.lineNumChars=null,i.alignWidgets=!1,i.cachedCharWidth=i.cachedTextHeight=i.cachedPaddingH=null,i.maxLine=null,i.maxLineLength=0,i.maxLineChanged=!1,i.wheelDX=i.wheelDY=i.wheelStartX=i.wheelStartY=null,i.shift=!1,i.selForContextMenu=null,i.activeTouch=null,n.init(i)}function k(e){e.doc.mode=L.getMode(e.options,e.doc.modeOption),M(e)}function M(e){e.doc.iter((function(e){e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null)})),e.doc.frontier=e.doc.first,ot(e,100),e.state.modeGen++,e.curOp&&tr(e)}function N(e){var t=It(e.display),r=e.options.lineWrapping,n=r&&Math.max(5,e.display.scroller.clientWidth/zt(e.display)-3);return function(i){if(Vn(e.doc,i))return 0;var o=0;if(i.widgets)for(var l=0;l<i.widgets.length;l++)i.widgets[l].height&&(o+=i.widgets[l].height);return r?o+(Math.ceil(i.text.length/n)||1)*t:o+t}}function W(e){var t=e.doc,r=N(e);t.iter((function(e){var t=r(e);t!=e.height&&Ti(e,t)}))}function A(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),Tt(e)}function O(e){D(e),tr(e),setTimeout((function(){K(e)}),20)}function D(e){var t=e.display.gutters,r=e.options.gutters;Do(t);for(var n=0;n<r.length;++n){var i=r[n],o=t.appendChild(Oo("div",null,"CodeMirror-gutter "+i));"CodeMirror-linenumbers"==i&&(e.display.lineGutter=o,o.style.width=(e.display.lineNumWidth||1)+"px")}t.style.display=n?"":"none",H(e)}function H(e){var t=e.display.gutters.offsetWidth;e.display.sizer.style.marginLeft=t+"px"}function P(e){if(0==e.height)return 0;for(var t,r=e.text.length,n=e;t=zn(n);){n=(i=t.find(0,!0)).from.line,r+=i.from.ch-i.to.ch}for(n=e;t=Fn(n);){var i=t.find(0,!0);r-=n.text.length-i.from.ch,r+=(n=i.to.line).text.length-i.to.ch}return r}function E(e){var t=e.display,r=e.doc;t.maxLine=Ci(r,r.first),t.maxLineLength=P(t.maxLine),t.maxLineChanged=!0,r.iter((function(e){var r=P(e);r>t.maxLineLength&&(t.maxLineLength=r,t.maxLine=e)}))}function I(e){var t=yo(e.gutters,"CodeMirror-linenumbers");-1==t&&e.lineNumbers?e.gutters=e.gutters.concat(["CodeMirror-linenumbers"]):t>-1&&!e.lineNumbers&&(e.gutters=e.gutters.slice(0),e.gutters.splice(t,1))}function z(e){var t=e.display,r=t.gutters.offsetWidth,n=Math.round(e.doc.height+ut(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?r:0,docHeight:n,scrollHeight:n+ht(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:r}}function F(e,t,r){this.cm=r;var n=this.vert=Oo("div",[Oo("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),i=this.horiz=Oo("div",[Oo("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");e(n),e(i),Yi(n,"scroll",(function(){n.clientHeight&&t(n.scrollTop,"vertical")})),Yi(i,"scroll",(function(){i.clientWidth&&t(i.scrollLeft,"horizontal")})),this.checkedZeroWidth=!1,o&&l<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")}function R(){}function B(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&zo(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new L.scrollbarModel[e.options.scrollbarStyle]((function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),Yi(t,"mousedown",(function(){e.state.focused&&setTimeout((function(){e.display.input.focus()}),0)})),t.setAttribute("cm-not-content","true")}),(function(t,r){"horizontal"==r?mr(e,t):vr(e,t)}),e),e.display.scrollbars.addClass&&Fo(e.display.wrapper,e.display.scrollbars.addClass)}function G(e,t){t||(t=z(e));var r=e.display.barWidth,n=e.display.barHeight;U(e,t);for(var i=0;i<4&&r!=e.display.barWidth||n!=e.display.barHeight;i++)r!=e.display.barWidth&&e.options.lineWrapping&&J(e),U(e,z(e)),r=e.display.barWidth,n=e.display.barHeight}function U(e,t){var r=e.display,n=r.scrollbars.update(t);r.sizer.style.paddingRight=(r.barWidth=n.right)+"px",r.sizer.style.paddingBottom=(r.barHeight=n.bottom)+"px",r.heightForcer.style.borderBottom=n.bottom+"px solid transparent",n.right&&n.bottom?(r.scrollbarFiller.style.display="block",r.scrollbarFiller.style.height=n.bottom+"px",r.scrollbarFiller.style.width=n.right+"px"):r.scrollbarFiller.style.display="",n.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(r.gutterFiller.style.display="block",r.gutterFiller.style.height=n.bottom+"px",r.gutterFiller.style.width=t.gutterWidth+"px"):r.gutterFiller.style.display=""}function V(e,t,r){var n=r&&null!=r.top?Math.max(0,r.top):e.scroller.scrollTop;n=Math.floor(n-at(e));var i=r&&null!=r.bottom?r.bottom:n+e.wrapper.clientHeight,o=Mi(t,n),l=Mi(t,i);if(r&&r.ensure){var s=r.ensure.from.line,a=r.ensure.to.line;s<o?(o=s,l=Mi(t,Ni(Ci(t,s))+e.wrapper.clientHeight)):Math.min(a,t.lastLine())>=l&&(o=Mi(t,Ni(Ci(t,a))-e.wrapper.clientHeight),l=a)}return{from:o,to:Math.max(l,o+1)}}function K(e){var t=e.display,r=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var n=Y(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=n+"px",l=0;l<r.length;l++)if(!r[l].hidden){e.options.fixedGutter&&(r[l].gutter&&(r[l].gutter.style.left=o),r[l].gutterBackground&&(r[l].gutterBackground.style.left=o));var s=r[l].alignable;if(s)for(var a=0;a<s.length;a++)s[a].style.left=o}e.options.fixedGutter&&(t.gutters.style.left=n+i+"px")}}function j(e){if(!e.options.lineNumbers)return!1;var t=e.doc,r=X(e.options,t.first+t.size-1),n=e.display;if(r.length!=n.lineNumChars){var i=n.measure.appendChild(Oo("div",[Oo("div",r)],"CodeMirror-linenumber CodeMirror-gutter-elt")),o=i.firstChild.offsetWidth,l=i.offsetWidth-o;return n.lineGutter.style.width="",n.lineNumInnerWidth=Math.max(o,n.lineGutter.offsetWidth-l)+1,n.lineNumWidth=n.lineNumInnerWidth+l,n.lineNumChars=n.lineNumInnerWidth?r.length:-1,n.lineGutter.style.width=n.lineNumWidth+"px",H(e),!0}return!1}function X(e,t){return String(e.lineNumberFormatter(t+e.firstLineNumber))}function Y(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function _(e,t,r){var n=e.display;this.viewport=t,this.visible=V(n,e.doc,t),this.editorIsHidden=!n.wrapper.offsetWidth,this.wrapperHeight=n.wrapper.clientHeight,this.wrapperWidth=n.wrapper.clientWidth,this.oldDisplayWidth=ft(e),this.force=r,this.dims=te(e),this.events=[]}function q(e,t){var r=e.display,n=e.doc;if(t.editorIsHidden)return nr(e),!1;if(!t.force&&t.visible.from>=r.viewFrom&&t.visible.to<=r.viewTo&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo)&&r.renderedView==r.view&&0==lr(e))return!1;j(e)&&(nr(e),t.dims=te(e));var i=n.first+n.size,o=Math.max(t.visible.from-e.options.viewportMargin,n.first),l=Math.min(i,t.visible.to+e.options.viewportMargin);r.viewFrom<o&&o-r.viewFrom<20&&(o=Math.max(n.first,r.viewFrom)),r.viewTo>l&&r.viewTo-l<20&&(l=Math.min(i,r.viewTo)),S&&(o=Gn(e.doc,o),l=Un(e.doc,l));var a=o!=r.viewFrom||l!=r.viewTo||r.lastWrapHeight!=t.wrapperHeight||r.lastWrapWidth!=t.wrapperWidth;!function(e,t,r){var n=e.display;0==n.view.length||t>=n.viewTo||r<=n.viewFrom?(n.view=er(e,t,r),n.viewFrom=t):(n.viewFrom>t?n.view=er(e,t,n.viewFrom).concat(n.view):n.viewFrom<t&&(n.view=n.view.slice(ir(e,t))),n.viewFrom=t,n.viewTo<r?n.view=n.view.concat(er(e,n.viewTo,r)):n.viewTo>r&&(n.view=n.view.slice(0,ir(e,r))));n.viewTo=r}(e,o,l),r.viewOffset=Ni(Ci(e.doc,r.viewFrom)),e.display.mover.style.top=r.viewOffset+"px";var u=lr(e);if(!a&&0==u&&!t.force&&r.renderedView==r.view&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo))return!1;var c=Eo();return u>4&&(r.lineDiv.style.display="none"),function(e,t,r){var n=e.display,i=e.options.lineNumbers,o=n.lineDiv,l=o.firstChild;function a(t){var r=t.nextSibling;return s&&v&&e.display.currentWheelTarget==t?t.style.display="none":t.parentNode.removeChild(t),r}for(var u=n.view,c=n.viewFrom,h=0;h<u.length;h++){var f=u[h];if(f.hidden);else if(f.node&&f.node.parentNode==o){for(;l!=f.node;)l=a(l);var d=i&&null!=t&&t<=c&&f.lineNumber;f.changes&&(yo(f.changes,"gutter")>-1&&(d=!1),re(e,f,c,r)),d&&(Do(f.lineNumber),f.lineNumber.appendChild(document.createTextNode(X(e.options,c)))),l=f.node.nextSibling}else{var p=ue(e,f,c,r);o.insertBefore(p,l)}c+=f.size}for(;l;)l=a(l)}(e,r.updateLineNumbers,t.dims),u>4&&(r.lineDiv.style.display=""),r.renderedView=r.view,c&&Eo()!=c&&c.offsetHeight&&c.focus(),Do(r.cursorDiv),Do(r.selectionDiv),r.gutters.style.height=r.sizer.style.minHeight=0,a&&(r.lastWrapHeight=t.wrapperHeight,r.lastWrapWidth=t.wrapperWidth,ot(e,400)),r.updateLineNumbers=null,!0}function $(e,t){for(var r=t.viewport,n=!0;(n&&e.options.lineWrapping&&t.oldDisplayWidth!=ft(e)||(r&&null!=r.top&&(r={top:Math.min(e.doc.height+ut(e.display)-dt(e),r.top)}),t.visible=V(e.display,e.doc,r),!(t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)))&&q(e,t);n=!1){J(e);var i=z(e);et(e),G(e,i),Q(e,i)}t.signal(e,"update",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function Z(e,t){var r=new _(e,t);if(q(e,r)){J(e),$(e,r);var n=z(e);et(e),G(e,n),Q(e,n),r.finish()}}function Q(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.display.heightForcer.style.top=t.docHeight+"px",e.display.gutters.style.height=t.docHeight+e.display.barHeight+ht(e)+"px"}function J(e){for(var t=e.display,r=t.lineDiv.offsetTop,n=0;n<t.view.length;n++){var i,s=t.view[n];if(!s.hidden){if(o&&l<8){var a=s.node.offsetTop+s.node.offsetHeight;i=a-r,r=a}else{var u=s.node.getBoundingClientRect();i=u.bottom-u.top}var c=s.line.height-i;if(i<2&&(i=It(t)),(c>.001||c<-.001)&&(Ti(s.line,i),ee(s.line),s.rest))for(var h=0;h<s.rest.length;h++)ee(s.rest[h])}}}function ee(e){if(e.widgets)for(var t=0;t<e.widgets.length;++t)e.widgets[t].height=e.widgets[t].node.parentNode.offsetHeight}function te(e){for(var t=e.display,r={},n={},i=t.gutters.clientLeft,o=t.gutters.firstChild,l=0;o;o=o.nextSibling,++l)r[e.options.gutters[l]]=o.offsetLeft+o.clientLeft+i,n[e.options.gutters[l]]=o.clientWidth;return{fixedPos:Y(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:r,gutterWidth:n,wrapperWidth:t.wrapper.clientWidth}}function re(e,t,r,n){for(var i=0;i<t.changes.length;i++){var o=t.changes[i];"text"==o?oe(e,t):"gutter"==o?se(e,t,r,n):"class"==o?le(t):"widget"==o&&ae(e,t,n)}t.changes=null}function ne(e){return e.node==e.text&&(e.node=Oo("div",null,null,"position: relative"),e.text.parentNode&&e.text.parentNode.replaceChild(e.node,e.text),e.node.appendChild(e.text),o&&l<8&&(e.node.style.zIndex=2)),e.node}function ie(e,t){var r=e.display.externalMeasured;return r&&r.line==t.line?(e.display.externalMeasured=null,t.measure=r.measure,r.built):si(e,t)}function oe(e,t){var r=t.text.className,n=ie(e,t);t.text==t.node&&(t.node=n.pre),t.text.parentNode.replaceChild(n.pre,t.text),t.text=n.pre,n.bgClass!=t.bgClass||n.textClass!=t.textClass?(t.bgClass=n.bgClass,t.textClass=n.textClass,le(t)):r&&(t.text.className=r)}function le(e){!function(e){var t=e.bgClass?e.bgClass+" "+(e.line.bgClass||""):e.line.bgClass;if(t&&(t+=" CodeMirror-linebackground"),e.background)t?e.background.className=t:(e.background.parentNode.removeChild(e.background),e.background=null);else if(t){var r=ne(e);e.background=r.insertBefore(Oo("div",null,t),r.firstChild)}}(e),e.line.wrapClass?ne(e).className=e.line.wrapClass:e.node!=e.text&&(e.node.className="");var t=e.textClass?e.textClass+" "+(e.line.textClass||""):e.line.textClass;e.text.className=t||""}function se(e,t,r,n){if(t.gutter&&(t.node.removeChild(t.gutter),t.gutter=null),t.gutterBackground&&(t.node.removeChild(t.gutterBackground),t.gutterBackground=null),t.line.gutterClass){var i=ne(t);t.gutterBackground=Oo("div",null,"CodeMirror-gutter-background "+t.line.gutterClass,"left: "+(e.options.fixedGutter?n.fixedPos:-n.gutterTotalWidth)+"px; width: "+n.gutterTotalWidth+"px"),i.insertBefore(t.gutterBackground,t.text)}var o=t.line.gutterMarkers;if(e.options.lineNumbers||o){i=ne(t);var l=t.gutter=Oo("div",null,"CodeMirror-gutter-wrapper","left: "+(e.options.fixedGutter?n.fixedPos:-n.gutterTotalWidth)+"px");if(e.display.input.setUneditable(l),i.insertBefore(l,t.text),t.line.gutterClass&&(l.className+=" "+t.line.gutterClass),!e.options.lineNumbers||o&&o["CodeMirror-linenumbers"]||(t.lineNumber=l.appendChild(Oo("div",X(e.options,r),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+n.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+e.display.lineNumInnerWidth+"px"))),o)for(var s=0;s<e.options.gutters.length;++s){var a=e.options.gutters[s],u=o.hasOwnProperty(a)&&o[a];u&&l.appendChild(Oo("div",[u],"CodeMirror-gutter-elt","left: "+n.gutterLeft[a]+"px; width: "+n.gutterWidth[a]+"px"))}}}function ae(e,t,r){t.alignable&&(t.alignable=null);for(var n=t.node.firstChild;n;n=i){var i=n.nextSibling;"CodeMirror-linewidget"==n.className&&t.node.removeChild(n)}ce(e,t,r)}function ue(e,t,r,n){var i=ie(e,t);return t.text=t.node=i.pre,i.bgClass&&(t.bgClass=i.bgClass),i.textClass&&(t.textClass=i.textClass),le(t),se(e,t,r,n),ce(e,t,n),t.node}function ce(e,t,r){if(he(e,t.line,t,r,!0),t.rest)for(var n=0;n<t.rest.length;n++)he(e,t.rest[n],t,r,!1)}function he(e,t,r,n,i){if(t.widgets)for(var o=ne(r),l=0,s=t.widgets;l<s.length;++l){var a=s[l],u=Oo("div",[a.node],"CodeMirror-linewidget");a.handleMouseEvents||u.setAttribute("cm-ignore-events","true"),fe(a,u,r,n),e.display.input.setUneditable(u),i&&a.above?o.insertBefore(u,r.gutter||r.text):o.appendChild(u),Ji(a,"redraw")}}function fe(e,t,r,n){if(e.noHScroll){(r.alignable||(r.alignable=[])).push(t);var i=n.wrapperWidth;t.style.left=n.fixedPos+"px",e.coverGutter||(i-=n.gutterTotalWidth,t.style.paddingLeft=n.gutterTotalWidth+"px"),t.style.width=i+"px"}e.coverGutter&&(t.style.zIndex=5,t.style.position="relative",e.noHScroll||(t.style.marginLeft=-n.gutterTotalWidth+"px"))}F.prototype=Co({update:function(e){var t=e.scrollWidth>e.clientWidth+1,r=e.scrollHeight>e.clientHeight+1,n=e.nativeBarWidth;if(r){this.vert.style.display="block",this.vert.style.bottom=t?n+"px":"0";var i=e.viewHeight-(t?n:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=r?n+"px":"0",this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(r?n:0);this.horiz.firstChild.style.width=e.scrollWidth-e.clientWidth+o+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==n&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:r?n:0,bottom:t?n:0}},setScrollLeft:function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz)},setScrollTop:function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert)},zeroWidthHack:function(){var e=v&&!f?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new co,this.disableVert=new co},enableZeroWidthBar:function(e,t){e.style.pointerEvents="auto",t.set(1e3,(function r(){var n=e.getBoundingClientRect();document.elementFromPoint(n.left+1,n.bottom-1)!=e?e.style.pointerEvents="none":t.set(1e3,r)}))},clear:function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)}},F.prototype),R.prototype=Co({update:function(){return{bottom:0,right:0}},setScrollLeft:function(){},setScrollTop:function(){},clear:function(){}},R.prototype),L.scrollbarModel={native:F,null:R},_.prototype.signal=function(e,t){no(e,t)&&this.events.push(arguments)},_.prototype.finish=function(){for(var e=0;e<this.events.length;e++)Zi.apply(null,this.events[e])};var de=L.Pos=function(e,t){if(!(this instanceof de))return new de(e,t);this.line=e,this.ch=t},pe=L.cmpPos=function(e,t){return e.line-t.line||e.ch-t.ch};function ge(e){return de(e.line,e.ch)}function ve(e,t){return pe(e,t)<0?t:e}function me(e,t){return pe(e,t)<0?e:t}function ye(e){e.state.focused||(e.display.input.focus(),Ar(e))}var be=null;function we(e,t,r,n,i){var o=e.doc;e.display.shift=!1,n||(n=o.sel);var l=e.state.pasteIncoming||"paste"==i,s=o.splitLines(t),a=null;if(l&&n.ranges.length>1)if(be&&be.text.join("\n")==t){if(n.ranges.length%be.text.length==0){a=[];for(var u=0;u<be.text.length;u++)a.push(o.splitLines(be.text[u]))}}else s.length==n.ranges.length&&(a=bo(s,(function(e){return[e]})));for(u=n.ranges.length-1;u>=0;u--){var c=n.ranges[u],h=c.from(),f=c.to();c.empty()&&(r&&r>0?h=de(h.line,h.ch-r):e.state.overwrite&&!l?f=de(f.line,Math.min(Ci(o,f.line).text.length,f.ch+vo(s).length)):be&&be.lineWise&&be.text.join("\n")==t&&(h=f=de(h.line,0)));var d=e.curOp.updateInput,p={from:h,to:f,text:a?a[u%a.length]:s,origin:i||(l?"paste":e.state.cutIncoming?"cut":"+input")};Fr(e.doc,p),Ji(e,"inputRead",e,p)}t&&!l&&Ce(e,t),Xr(e),e.curOp.updateInput=d,e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=!1}function xe(e,t){var r=e.clipboardData&&e.clipboardData.getData("Text");if(r)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||qt(t,(function(){we(t,r,0,null,"paste")})),!0}function Ce(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var r=e.doc.sel,n=r.ranges.length-1;n>=0;n--){var i=r.ranges[n];if(!(i.head.ch>100||n&&r.ranges[n-1].head.line==i.head.line)){var o=e.getModeAt(i.head),l=!1;if(o.electricChars){for(var s=0;s<o.electricChars.length;s++)if(t.indexOf(o.electricChars.charAt(s))>-1){l=_r(e,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(Ci(e.doc,i.head.line).text.slice(0,i.head.ch))&&(l=_r(e,i.head.line,"smart"));l&&Ji(e,"electricInput",e,i.head.line)}}}function Se(e){for(var t=[],r=[],n=0;n<e.doc.sel.ranges.length;n++){var i=e.doc.sel.ranges[n].head.line,o={anchor:de(i,0),head:de(i+1,0)};r.push(o),t.push(e.getRange(o.anchor,o.head))}return{text:t,ranges:r}}function Le(e,t){e.setAttribute("autocorrect","off"),e.setAttribute("autocapitalize","off"),e.setAttribute("spellcheck",!!t)}function Te(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new co,this.inaccurateSelection=!1,this.hasSelection=!1,this.composing=null}function ke(){var e=Oo("textarea",null,null,"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none"),t=Oo("div",[e],null,"overflow: hidden; position: relative; width: 3px; height: 0px;");return s?e.style.width="1000px":e.setAttribute("wrap","off"),p&&(e.style.border="1px solid black"),Le(e),t}function Me(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new co,this.gracePeriod=!1}function Ne(e,t){var r=vt(e,t.line);if(!r||r.hidden)return null;var n=Ci(e.doc,t.line),i=pt(r,n,t.line),o=Wi(n),l="left";o&&(l=sl(o,t.ch)%2?"right":"left");var s=xt(i.map,t.ch,l);return s.offset="right"==s.collapse?s.end:s.start,s}function We(e,t){return t&&(e.bad=!0),e}function Ae(e,t,r){var n;if(t==e.display.lineDiv){if(!(n=e.display.lineDiv.childNodes[r]))return We(e.clipPos(de(e.display.viewTo-1)),!0);t=null,r=0}else for(n=t;;n=n.parentNode){if(!n||n==e.display.lineDiv)return null;if(n.parentNode&&n.parentNode==e.display.lineDiv)break}for(var i=0;i<e.display.view.length;i++){var o=e.display.view[i];if(o.node==n)return Oe(o,t,r)}}function Oe(e,t,r){var n=e.text.firstChild,i=!1;if(!t||!Po(n,t))return We(de(ki(e.line),0),!0);if(t==n&&(i=!0,t=n.childNodes[r],r=0,!t)){var o=e.rest?vo(e.rest):e.line;return We(de(ki(o),o.text.length),i)}var l=3==t.nodeType?t:null,s=t;for(l||1!=t.childNodes.length||3!=t.firstChild.nodeType||(l=t.firstChild,r&&(r=l.nodeValue.length));s.parentNode!=n;)s=s.parentNode;var a=e.measure,u=a.maps;function c(t,r,n){for(var i=-1;i<(u?u.length:0);i++)for(var o=i<0?a.map:u[i],l=0;l<o.length;l+=3){var s=o[l+2];if(s==t||s==r){var c=ki(i<0?e.line:e.rest[i]),h=o[l]+n;return(n<0||s!=t)&&(h=o[l+(n?1:0)]),de(c,h)}}}var h=c(l,s,r);if(h)return We(h,i);for(var f=s.nextSibling,d=l?l.nodeValue.length-r:0;f;f=f.nextSibling){if(h=c(f,f.firstChild,0))return We(de(h.line,h.ch-d),i);d+=f.textContent.length}var p=s.previousSibling;for(d=r;p;p=p.previousSibling){if(h=c(p,p.firstChild,-1))return We(de(h.line,h.ch+d),i);d+=p.textContent.length}}function De(e,t){this.ranges=e,this.primIndex=t}function He(e,t){this.anchor=e,this.head=t}function Pe(e,t){var r=e[t];e.sort((function(e,t){return pe(e.from(),t.from())})),t=yo(e,r);for(var n=1;n<e.length;n++){var i=e[n],o=e[n-1];if(pe(o.to(),i.from())>=0){var l=me(o.from(),i.from()),s=ve(o.to(),i.to()),a=o.empty()?i.from()==i.head:o.from()==o.head;n<=t&&--t,e.splice(--n,2,new He(a?s:l,a?l:s))}}return new De(e,t)}function Ee(e,t){return new De([new He(e,t||e)],0)}function Ie(e,t){return Math.max(e.first,Math.min(t,e.first+e.size-1))}function ze(e,t){if(t.line<e.first)return de(e.first,0);var r=e.first+e.size-1;return t.line>r?de(r,Ci(e,r).text.length):function(e,t){var r=e.ch;return null==r||r>t?de(e.line,t):r<0?de(e.line,0):e}(t,Ci(e,t.line).text.length)}function Fe(e,t){return t>=e.first&&t<e.first+e.size}function Re(e,t){for(var r=[],n=0;n<t.length;n++)r[n]=ze(e,t[n]);return r}function Be(e,t,r,n){if(e.cm&&e.cm.display.shift||e.extend){var i=t.anchor;if(n){var o=pe(r,i)<0;o!=pe(n,i)<0?(i=r,r=n):o!=pe(r,n)<0&&(r=n)}return new He(i,r)}return new He(n||r,r)}function Ge(e,t,r,n){Xe(e,new De([Be(e,e.sel.primary(),t,r)],0),n)}function Ue(e,t,r){for(var n=[],i=0;i<e.sel.ranges.length;i++)n[i]=Be(e,e.sel.ranges[i],t[i],null);Xe(e,Pe(n,e.sel.primIndex),r)}function Ve(e,t,r,n){var i=e.sel.ranges.slice(0);i[t]=r,Xe(e,Pe(i,e.sel.primIndex),n)}function Ke(e,t,r,n){Xe(e,Ee(t,r),n)}function je(e,t,r){var n=e.history.done,i=vo(n);i&&i.ranges?(n[n.length-1]=t,Ye(e,t,r)):Xe(e,t,r)}function Xe(e,t,r){Ye(e,t,r),function(e,t,r,n){var i=e.history,o=n&&n.origin;r==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||function(e,t,r,n){var i=t.charAt(0);return"*"==i||"+"==i&&r.ranges.length==n.ranges.length&&r.somethingSelected()==n.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}(e,o,vo(i.done),t))?i.done[i.done.length-1]=t:Pi(t,i.done);i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=r,n&&!1!==n.clearRedo&&Di(i.undone)}(e,e.sel,e.cm?e.cm.curOp.id:NaN,r)}function Ye(e,t,r){(no(e,"beforeSelectionChange")||e.cm&&no(e.cm,"beforeSelectionChange"))&&(t=function(e,t,r){var n={ranges:t.ranges,update:function(t){this.ranges=[];for(var r=0;r<t.length;r++)this.ranges[r]=new He(ze(e,t[r].anchor),ze(e,t[r].head))},origin:r&&r.origin};return Zi(e,"beforeSelectionChange",e,n),e.cm&&Zi(e.cm,"beforeSelectionChange",e.cm,n),n.ranges!=t.ranges?Pe(n.ranges,n.ranges.length-1):t}(e,t,r));var n=r&&r.bias||(pe(t.primary().head,e.sel.primary().head)<0?-1:1);_e(e,$e(e,t,n,!0)),r&&!1===r.scroll||!e.cm||Xr(e.cm)}function _e(e,t){t.equals(e.sel)||(e.sel=t,e.cm&&(e.cm.curOp.updateInput=e.cm.curOp.selectionChanged=!0,ro(e.cm)),Ji(e,"cursorActivity",e))}function qe(e){_e(e,$e(e,e.sel,null,!1))}function $e(e,t,r,n){for(var i,o=0;o<t.ranges.length;o++){var l=t.ranges[o],s=t.ranges.length==e.sel.ranges.length&&e.sel.ranges[o],a=Qe(e,l.anchor,s&&s.anchor,r,n),u=Qe(e,l.head,s&&s.head,r,n);(i||a!=l.anchor||u!=l.head)&&(i||(i=t.ranges.slice(0,o)),i[o]=new He(a,u))}return i?Pe(i,t.primIndex):t}function Ze(e,t,r,n,i){var o=Ci(e,t.line);if(o.markedSpans)for(var l=0;l<o.markedSpans.length;++l){var s=o.markedSpans[l],a=s.marker;if((null==s.from||(a.inclusiveLeft?s.from<=t.ch:s.from<t.ch))&&(null==s.to||(a.inclusiveRight?s.to>=t.ch:s.to>t.ch))){if(i&&(Zi(a,"beforeCursorEnter"),a.explicitlyCleared)){if(o.markedSpans){--l;continue}break}if(!a.atomic)continue;if(r){var u,c=a.find(n<0?1:-1);if((n<0?a.inclusiveRight:a.inclusiveLeft)&&(c=Je(e,c,-n,c&&c.line==t.line?o:null)),c&&c.line==t.line&&(u=pe(c,r))&&(n<0?u<0:u>0))return Ze(e,c,t,n,i)}var h=a.find(n<0?-1:1);return(n<0?a.inclusiveLeft:a.inclusiveRight)&&(h=Je(e,h,n,h.line==t.line?o:null)),h?Ze(e,h,t,n,i):null}}return t}function Qe(e,t,r,n,i){var o=n||1,l=Ze(e,t,r,o,i)||!i&&Ze(e,t,r,o,!0)||Ze(e,t,r,-o,i)||!i&&Ze(e,t,r,-o,!0);return l||(e.cantEdit=!0,de(e.first,0))}function Je(e,t,r,n){return r<0&&0==t.ch?t.line>e.first?ze(e,de(t.line-1)):null:r>0&&t.ch==(n||Ci(e,t.line)).text.length?t.line<e.first+e.size-1?de(t.line+1,0):null:new de(t.line,t.ch+r)}function et(e){e.display.input.showSelection(e.display.input.prepareSelection())}function tt(e,t){for(var r=e.doc,n={},i=n.cursors=document.createDocumentFragment(),o=n.selection=document.createDocumentFragment(),l=0;l<r.sel.ranges.length;l++)if(!1!==t||l!=r.sel.primIndex){var s=r.sel.ranges[l];if(!(s.from().line>=e.display.viewTo||s.to().line<e.display.viewFrom)){var a=s.empty();(a||e.options.showCursorWhenSelecting)&&rt(e,s.head,i),a||nt(e,s,o)}}return n}function rt(e,t,r){var n=Ot(e,t,"div",null,null,!e.options.singleCursorHeightPerLine),i=r.appendChild(Oo("div"," ","CodeMirror-cursor"));if(i.style.left=n.left+"px",i.style.top=n.top+"px",i.style.height=Math.max(0,n.bottom-n.top)*e.options.cursorHeight+"px",n.other){var o=r.appendChild(Oo("div"," ","CodeMirror-cursor CodeMirror-secondarycursor"));o.style.display="",o.style.left=n.other.left+"px",o.style.top=n.other.top+"px",o.style.height=.85*(n.other.bottom-n.other.top)+"px"}}function nt(e,t,r){var n=e.display,i=e.doc,o=document.createDocumentFragment(),l=ct(e.display),s=l.left,a=Math.max(n.sizerWidth,ft(e)-n.sizer.offsetLeft)-l.right;function u(e,t,r,n){t<0&&(t=0),t=Math.round(t),n=Math.round(n),o.appendChild(Oo("div",null,"CodeMirror-selected","position: absolute; left: "+e+"px; top: "+t+"px; width: "+(null==r?a-e:r)+"px; height: "+(n-t)+"px"))}function c(t,r,n){var o,l,c=Ci(i,t),h=c.text.length;function f(r,n){return At(e,de(t,r),"div",c,n)}return function(e,t,r,n){if(!e)return n(t,r,"ltr");for(var i=!1,o=0;o<e.length;++o){var l=e[o];(l.from<r&&l.to>t||t==r&&l.to==t)&&(n(Math.max(l.from,t),Math.min(l.to,r),1==l.level?"rtl":"ltr"),i=!0)}i||n(t,r,"ltr")}(Wi(c),r||0,null==n?h:n,(function(e,t,i){var c,d,p,g=f(e,"left");if(e==t)c=g,d=p=g.left;else{if(c=f(t-1,"right"),"rtl"==i){var v=g;g=c,c=v}d=g.left,p=c.right}null==r&&0==e&&(d=s),c.top-g.top>3&&(u(d,g.top,null,g.bottom),d=s,g.bottom<c.top&&u(d,g.bottom,null,c.top)),null==n&&t==h&&(p=a),(!o||g.top<o.top||g.top==o.top&&g.left<o.left)&&(o=g),(!l||c.bottom>l.bottom||c.bottom==l.bottom&&c.right>l.right)&&(l=c),d<s+1&&(d=s),u(d,c.top,p-d,c.bottom)})),{start:o,end:l}}var h=t.from(),f=t.to();if(h.line==f.line)c(h.line,h.ch,f.ch);else{var d=Ci(i,h.line),p=Ci(i,f.line),g=Bn(d)==Bn(p),v=c(h.line,h.ch,g?d.text.length+1:null).end,m=c(f.line,g?0:null,f.ch).start;g&&(v.top<m.top-2?(u(v.right,v.top,null,v.bottom),u(s,m.top,m.left,m.bottom)):u(v.right,v.top,m.left-v.right,v.bottom)),v.bottom<m.top&&u(s,v.bottom,null,m.top)}r.appendChild(o)}function it(e){if(e.state.focused){var t=e.display;clearInterval(t.blinker);var r=!0;t.cursorDiv.style.visibility="",e.options.cursorBlinkRate>0?t.blinker=setInterval((function(){t.cursorDiv.style.visibility=(r=!r)?"":"hidden"}),e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function ot(e,t){e.doc.mode.startState&&e.doc.frontier<e.display.viewTo&&e.state.highlight.set(t,So(lt,e))}function lt(e){var t=e.doc;if(t.frontier<t.first&&(t.frontier=t.first),!(t.frontier>=e.display.viewTo)){var r=+new Date+e.options.workTime,n=un(t.mode,st(e,t.frontier)),i=[];t.iter(t.frontier,Math.min(t.first+t.size,e.display.viewTo+500),(function(o){if(t.frontier>=e.display.viewFrom){var l=o.styles,s=o.text.length>e.options.maxHighlightLength,a=ti(e,o,s?un(t.mode,n):n,!0);o.styles=a.styles;var u=o.styleClasses,c=a.classes;c?o.styleClasses=c:u&&(o.styleClasses=null);for(var h=!l||l.length!=o.styles.length||u!=c&&(!u||!c||u.bgClass!=c.bgClass||u.textClass!=c.textClass),f=0;!h&&f<l.length;++f)h=l[f]!=o.styles[f];h&&i.push(t.frontier),o.stateAfter=s?n:un(t.mode,n)}else o.text.length<=e.options.maxHighlightLength&&ni(e,o.text,n),o.stateAfter=t.frontier%5==0?un(t.mode,n):null;if(++t.frontier,+new Date>r)return ot(e,e.options.workDelay),!0})),i.length&&qt(e,(function(){for(var t=0;t<i.length;t++)rr(e,i[t],"text")}))}}function st(e,t,r){var n=e.doc,i=e.display;if(!n.mode.startState)return!0;var o=function(e,t,r){for(var n,i,o=e.doc,l=r?-1:t-(e.doc.mode.innerMode?1e3:100),s=t;s>l;--s){if(s<=o.first)return o.first;var a=Ci(o,s-1);if(a.stateAfter&&(!r||s<=o.frontier))return s;var u=ho(a.text,null,e.options.tabSize);(null==i||n>u)&&(i=s-1,n=u)}return i}(e,t,r),l=o>n.first&&Ci(n,o-1).stateAfter;return l=l?un(n.mode,l):cn(n.mode),n.iter(o,t,(function(r){ni(e,r.text,l);var s=o==t-1||o%5==0||o>=i.viewFrom&&o<i.viewTo;r.stateAfter=s?un(n.mode,l):null,++o})),r&&(n.frontier=o),l}function at(e){return e.lineSpace.offsetTop}function ut(e){return e.mover.offsetHeight-e.lineSpace.offsetHeight}function ct(e){if(e.cachedPaddingH)return e.cachedPaddingH;var t=Ho(e.measure,Oo("pre","x")),r=window.getComputedStyle?window.getComputedStyle(t):t.currentStyle,n={left:parseInt(r.paddingLeft),right:parseInt(r.paddingRight)};return isNaN(n.left)||isNaN(n.right)||(e.cachedPaddingH=n),n}function ht(e){return oo-e.display.nativeBarWidth}function ft(e){return e.display.scroller.clientWidth-ht(e)-e.display.barWidth}function dt(e){return e.display.scroller.clientHeight-ht(e)-e.display.barHeight}function pt(e,t,r){if(e.line==t)return{map:e.measure.map,cache:e.measure.cache};for(var n=0;n<e.rest.length;n++)if(e.rest[n]==t)return{map:e.measure.maps[n],cache:e.measure.caches[n]};for(n=0;n<e.rest.length;n++)if(ki(e.rest[n])>r)return{map:e.measure.maps[n],cache:e.measure.caches[n],before:!0}}function gt(e,t,r,n){return yt(e,mt(e,t),r,n)}function vt(e,t){if(t>=e.display.viewFrom&&t<e.display.viewTo)return e.display.view[ir(e,t)];var r=e.display.externalMeasured;return r&&t>=r.lineN&&t<r.lineN+r.size?r:void 0}function mt(e,t){var r=ki(t),n=vt(e,r);n&&!n.text?n=null:n&&n.changes&&(re(e,n,r,te(e)),e.curOp.forceUpdate=!0),n||(n=function(e,t){var r=ki(t=Bn(t)),n=e.display.externalMeasured=new Jt(e.doc,t,r);n.lineN=r;var i=n.built=si(e,n);return n.text=i.pre,Ho(e.display.lineMeasure,i.pre),n}(e,t));var i=pt(n,t,r);return{line:t,view:n,rect:null,map:i.map,cache:i.cache,before:i.before,hasHeights:!1}}function yt(e,t,r,n,i){t.before&&(r=-1);var s,a=r+(n||"");return t.cache.hasOwnProperty(a)?s=t.cache[a]:(t.rect||(t.rect=t.view.text.getBoundingClientRect()),t.hasHeights||(!function(e,t,r){var n=e.options.lineWrapping,i=n&&ft(e);if(!t.measure.heights||n&&t.measure.width!=i){var o=t.measure.heights=[];if(n){t.measure.width=i;for(var l=t.text.firstChild.getClientRects(),s=0;s<l.length-1;s++){var a=l[s],u=l[s+1];Math.abs(a.bottom-u.bottom)>2&&o.push((a.bottom+u.top)/2-r.top)}}o.push(r.bottom-r.top)}}(e,t.view,t.rect),t.hasHeights=!0),s=function(e,t,r,n){var i,s=xt(t.map,r,n),a=s.node,u=s.start,c=s.end,h=s.collapse;if(3==a.nodeType){for(var f=0;f<4;f++){for(;u&&Ao(t.line.text.charAt(s.coverStart+u));)--u;for(;s.coverStart+c<s.coverEnd&&Ao(t.line.text.charAt(s.coverStart+c));)++c;if((i=o&&l<9&&0==u&&c==s.coverEnd-s.coverStart?a.parentNode.getBoundingClientRect():Ct(No(a,u,c).getClientRects(),n)).left||i.right||0==u)break;c=u,u-=1,h="right"}o&&l<11&&(i=function(e,t){if(!window.screen||null==screen.logicalXDPI||screen.logicalXDPI==screen.deviceXDPI||!function(e){if(null!=Zo)return Zo;var t=Ho(e,Oo("span","x")),r=t.getBoundingClientRect(),n=No(t,0,1).getBoundingClientRect();return Zo=Math.abs(r.left-n.left)>1}(e))return t;var r=screen.logicalXDPI/screen.deviceXDPI,n=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*r,right:t.right*r,top:t.top*n,bottom:t.bottom*n}}(e.display.measure,i))}else{var d;u>0&&(h=n="right"),i=e.options.lineWrapping&&(d=a.getClientRects()).length>1?d["right"==n?d.length-1:0]:a.getBoundingClientRect()}if(o&&l<9&&!u&&(!i||!i.left&&!i.right)){var p=a.parentNode.getClientRects()[0];i=p?{left:p.left,right:p.left+zt(e.display),top:p.top,bottom:p.bottom}:wt}var g=i.top-t.rect.top,v=i.bottom-t.rect.top,m=(g+v)/2,y=t.view.measure.heights;for(f=0;f<y.length-1&&!(m<y[f]);f++);var b=f?y[f-1]:0,w=y[f],x={left:("right"==h?i.right:i.left)-t.rect.left,right:("left"==h?i.left:i.right)-t.rect.left,top:b,bottom:w};i.left||i.right||(x.bogus=!0);e.options.singleCursorHeightPerLine||(x.rtop=g,x.rbottom=v);return x}(e,t,r,n),s.bogus||(t.cache[a]=s)),{left:s.left,right:s.right,top:i?s.rtop:s.top,bottom:i?s.rbottom:s.bottom}}Te.prototype=Co({init:function(e){var t=this,r=this.cm,n=this.wrapper=ke(),i=this.textarea=n.firstChild;function s(e){if(!to(r,e)){if(r.somethingSelected())be={lineWise:!1,text:r.getSelections()},t.inaccurateSelection&&(t.prevInput="",t.inaccurateSelection=!1,i.value=be.text.join("\n"),mo(i));else{if(!r.options.lineWiseCopyCut)return;var n=Se(r);be={lineWise:!0,text:n.text},"cut"==e.type?r.setSelections(n.ranges,null,so):(t.prevInput="",i.value=n.text.join("\n"),mo(i))}"cut"==e.type&&(r.state.cutIncoming=!0)}}e.wrapper.insertBefore(n,e.wrapper.firstChild),p&&(i.style.width="0px"),Yi(i,"input",(function(){o&&l>=9&&t.hasSelection&&(t.hasSelection=null),t.poll()})),Yi(i,"paste",(function(e){to(r,e)||xe(e,r)||(r.state.pasteIncoming=!0,t.fastPoll())})),Yi(i,"cut",s),Yi(i,"copy",s),Yi(e.scroller,"paste",(function(n){ar(e,n)||to(r,n)||(r.state.pasteIncoming=!0,t.focus())})),Yi(e.lineSpace,"selectstart",(function(t){ar(e,t)||Gi(t)})),Yi(i,"compositionstart",(function(){var e=r.getCursor("from");t.composing&&t.composing.range.clear(),t.composing={start:e,range:r.markText(e,r.getCursor("to"),{className:"CodeMirror-composing"})}})),Yi(i,"compositionend",(function(){t.composing&&(t.poll(),t.composing.range.clear(),t.composing=null)}))},prepareSelection:function(){var e=this.cm,t=e.display,r=e.doc,n=tt(e);if(e.options.moveInputWithCursor){var i=Ot(e,r.sel.primary().head,"div"),o=t.wrapper.getBoundingClientRect(),l=t.lineDiv.getBoundingClientRect();n.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+l.top-o.top)),n.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+l.left-o.left))}return n},showSelection:function(e){var t=this.cm.display;Ho(t.cursorDiv,e.cursors),Ho(t.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},reset:function(e){if(!this.contextMenuPending){var t,r,n=this.cm,i=n.doc;if(n.somethingSelected()){this.prevInput="";var s=i.sel.primary(),a=(t=$o&&(s.to().line-s.from().line>100||(r=n.getSelection()).length>1e3))?"-":r||n.getSelection();this.textarea.value=a,n.state.focused&&mo(this.textarea),o&&l>=9&&(this.hasSelection=a)}else e||(this.prevInput=this.textarea.value="",o&&l>=9&&(this.hasSelection=null));this.inaccurateSelection=t}},getField:function(){return this.textarea},supportsTouch:function(){return!1},focus:function(){if("nocursor"!=this.cm.options.readOnly&&(!g||Eo()!=this.textarea))try{this.textarea.focus()}catch(e){}},blur:function(){this.textarea.blur()},resetPosition:function(){this.wrapper.style.top=this.wrapper.style.left=0},receivedFocus:function(){this.slowPoll()},slowPoll:function(){var e=this;e.pollingFast||e.polling.set(this.cm.options.pollInterval,(function(){e.poll(),e.cm.state.focused&&e.slowPoll()}))},fastPoll:function(){var e=!1,t=this;t.pollingFast=!0,t.polling.set(20,(function r(){t.poll()||e?(t.pollingFast=!1,t.slowPoll()):(e=!0,t.polling.set(60,r))}))},poll:function(){var e=this.cm,t=this.textarea,r=this.prevInput;if(this.contextMenuPending||!e.state.focused||qo(t)&&!r&&!this.composing||e.isReadOnly()||e.options.disableInput||e.state.keySeq)return!1;var n=t.value;if(n==r&&!e.somethingSelected())return!1;if(o&&l>=9&&this.hasSelection===n||v&&/[\uf700-\uf7ff]/.test(n))return e.display.input.reset(),!1;if(e.doc.sel==e.display.selForContextMenu){var i=n.charCodeAt(0);if(8203!=i||r||(r=""),8666==i)return this.reset(),this.cm.execCommand("undo")}for(var s=0,a=Math.min(r.length,n.length);s<a&&r.charCodeAt(s)==n.charCodeAt(s);)++s;var u=this;return qt(e,(function(){we(e,n.slice(s),r.length-s,null,u.composing?"*compose":null),n.length>1e3||n.indexOf("\n")>-1?t.value=u.prevInput="":u.prevInput=n,u.composing&&(u.composing.range.clear(),u.composing.range=e.markText(u.composing.start,e.getCursor("to"),{className:"CodeMirror-composing"}))})),!0},ensurePolled:function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},onKeyPress:function(){o&&l>=9&&(this.hasSelection=null),this.fastPoll()},onContextMenu:function(e){var t=this,r=t.cm,n=r.display,i=t.textarea,a=ur(r,e),u=n.scroller.scrollTop;if(a&&!c){r.options.resetSelectionOnContextMenu&&-1==r.doc.sel.contains(a)&&$t(r,Xe)(r.doc,Ee(a),so);var h=i.style.cssText,f=t.wrapper.style.cssText;t.wrapper.style.cssText="position: absolute";var d=t.wrapper.getBoundingClientRect();if(i.style.cssText="position: absolute; width: 30px; height: 30px; top: "+(e.clientY-d.top-5)+"px; left: "+(e.clientX-d.left-5)+"px; z-index: 1000; background: "+(o?"rgba(255, 255, 255, .05)":"transparent")+"; outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);",s)var p=window.scrollY;if(n.input.focus(),s&&window.scrollTo(null,p),n.input.reset(),r.somethingSelected()||(i.value=t.prevInput=" "),t.contextMenuPending=!0,n.selForContextMenu=r.doc.sel,clearTimeout(n.detectingSelectAll),o&&l>=9&&v(),x){Ki(e);var g=function(){$i(window,"mouseup",g),setTimeout(m,20)};Yi(window,"mouseup",g)}else setTimeout(m,50)}function v(){if(null!=i.selectionStart){var e=r.somethingSelected(),o=""+(e?i.value:"");i.value="⇚",i.value=o,t.prevInput=e?"":"",i.selectionStart=1,i.selectionEnd=o.length,n.selForContextMenu=r.doc.sel}}function m(){if(t.contextMenuPending=!1,t.wrapper.style.cssText=f,i.style.cssText=h,o&&l<9&&n.scrollbars.setScrollTop(n.scroller.scrollTop=u),null!=i.selectionStart){(!o||o&&l<9)&&v();var e=0,s=function(){n.selForContextMenu==r.doc.sel&&0==i.selectionStart&&i.selectionEnd>0&&""==t.prevInput?$t(r,hn.selectAll)(r):e++<10?n.detectingSelectAll=setTimeout(s,500):n.input.reset()};n.detectingSelectAll=setTimeout(s,200)}}},readOnlyChanged:function(e){e||this.reset()},setUneditable:wo,needsContentAttribute:!1},Te.prototype),Me.prototype=Co({init:function(e){var t=this,r=t.cm,n=t.div=e.lineDiv;function i(e){if(!to(r,e)){if(r.somethingSelected())be={lineWise:!1,text:r.getSelections()},"cut"==e.type&&r.replaceSelection("",null,"cut");else{if(!r.options.lineWiseCopyCut)return;var i=Se(r);be={lineWise:!0,text:i.text},"cut"==e.type&&r.operation((function(){r.setSelections(i.ranges,0,so),r.replaceSelection("",null,"cut")}))}if(e.clipboardData){e.clipboardData.clearData();var o=be.text.join("\n");if(e.clipboardData.setData("Text",o),e.clipboardData.getData("Text")==o)return void e.preventDefault()}var l=ke(),s=l.firstChild;r.display.lineSpace.insertBefore(l,r.display.lineSpace.firstChild),s.value=be.text.join("\n");var a=document.activeElement;mo(s),setTimeout((function(){r.display.lineSpace.removeChild(l),a.focus(),a==n&&t.showPrimarySelection()}),50)}}Le(n,r.options.spellcheck),Yi(n,"paste",(function(e){to(r,e)||xe(e,r)||l<=11&&setTimeout($t(r,(function(){t.pollContent()||tr(r)})),20)})),Yi(n,"compositionstart",(function(e){var n=e.data;if(t.composing={sel:r.doc.sel,data:n,startData:n},n){var i=r.doc.sel.primary(),o=r.getLine(i.head.line).indexOf(n,Math.max(0,i.head.ch-n.length));o>-1&&o<=i.head.ch&&(t.composing.sel=Ee(de(i.head.line,o),de(i.head.line,o+n.length)))}})),Yi(n,"compositionupdate",(function(e){t.composing.data=e.data})),Yi(n,"compositionend",(function(e){var r=t.composing;r&&(e.data==r.startData||/\u200b/.test(e.data)||(r.data=e.data),setTimeout((function(){r.handled||t.applyComposition(r),t.composing==r&&(t.composing=null)}),50))})),Yi(n,"touchstart",(function(){t.forceCompositionEnd()})),Yi(n,"input",(function(){t.composing||!r.isReadOnly()&&t.pollContent()||qt(t.cm,(function(){tr(r)}))})),Yi(n,"copy",i),Yi(n,"cut",i)},prepareSelection:function(){var e=tt(this.cm,!1);return e.focus=this.cm.state.focused,e},showSelection:function(e,t){e&&this.cm.display.view.length&&((e.focus||t)&&this.showPrimarySelection(),this.showMultipleSelections(e))},showPrimarySelection:function(){var e=window.getSelection(),t=this.cm.doc.sel.primary(),n=Ae(this.cm,e.anchorNode,e.anchorOffset),i=Ae(this.cm,e.focusNode,e.focusOffset);if(!n||n.bad||!i||i.bad||0!=pe(me(n,i),t.from())||0!=pe(ve(n,i),t.to())){var o=Ne(this.cm,t.from()),l=Ne(this.cm,t.to());if(o||l){var s=this.cm.display.view,a=e.rangeCount&&e.getRangeAt(0);if(o){if(!l){var u=s[s.length-1].measure,c=u.maps?u.maps[u.maps.length-1]:u.map;l={node:c[c.length-1],offset:c[c.length-2]-c[c.length-3]}}}else o={node:s[0].measure.map[2],offset:0};try{var h=No(o.node,o.offset,l.offset,l.node)}catch(e){}h&&(!r&&this.cm.state.focused?(e.collapse(o.node,o.offset),h.collapsed||e.addRange(h)):(e.removeAllRanges(),e.addRange(h)),a&&null==e.anchorNode?e.addRange(a):r&&this.startGracePeriod()),this.rememberSelection()}}},startGracePeriod:function(){var e=this;clearTimeout(this.gracePeriod),this.gracePeriod=setTimeout((function(){e.gracePeriod=!1,e.selectionChanged()&&e.cm.operation((function(){e.cm.curOp.selectionChanged=!0}))}),20)},showMultipleSelections:function(e){Ho(this.cm.display.cursorDiv,e.cursors),Ho(this.cm.display.selectionDiv,e.selection)},rememberSelection:function(){var e=window.getSelection();this.lastAnchorNode=e.anchorNode,this.lastAnchorOffset=e.anchorOffset,this.lastFocusNode=e.focusNode,this.lastFocusOffset=e.focusOffset},selectionInEditor:function(){var e=window.getSelection();if(!e.rangeCount)return!1;var t=e.getRangeAt(0).commonAncestorContainer;return Po(this.div,t)},focus:function(){"nocursor"!=this.cm.options.readOnly&&this.div.focus()},blur:function(){this.div.blur()},getField:function(){return this.div},supportsTouch:function(){return!0},receivedFocus:function(){var e=this;this.selectionInEditor()?this.pollSelection():qt(this.cm,(function(){e.cm.curOp.selectionChanged=!0})),this.polling.set(this.cm.options.pollInterval,(function t(){e.cm.state.focused&&(e.pollSelection(),e.polling.set(e.cm.options.pollInterval,t))}))},selectionChanged:function(){var e=window.getSelection();return e.anchorNode!=this.lastAnchorNode||e.anchorOffset!=this.lastAnchorOffset||e.focusNode!=this.lastFocusNode||e.focusOffset!=this.lastFocusOffset},pollSelection:function(){if(!this.composing&&!this.gracePeriod&&this.selectionChanged()){var e=window.getSelection(),t=this.cm;this.rememberSelection();var r=Ae(t,e.anchorNode,e.anchorOffset),n=Ae(t,e.focusNode,e.focusOffset);r&&n&&qt(t,(function(){Xe(t.doc,Ee(r,n),so),(r.bad||n.bad)&&(t.curOp.selectionChanged=!0)}))}},pollContent:function(){var e,t=this.cm,r=t.display,n=t.doc.sel.primary(),i=n.from(),o=n.to();if(i.line<r.viewFrom||o.line>r.viewTo-1)return!1;if(i.line==r.viewFrom||0==(e=ir(t,i.line)))var l=ki(r.view[0].line),s=r.view[0].node;else l=ki(r.view[e].line),s=r.view[e-1].node.nextSibling;var a=ir(t,o.line);if(a==r.view.length-1)var u=r.viewTo-1,c=r.lineDiv.lastChild;else u=ki(r.view[a+1].line)-1,c=r.view[a+1].node.previousSibling;for(var h=t.doc.split