(function(a){if(typeof exports=="object"&&typeof module=="object"){module.exports=a()}else{if(typeof define=="function"&&define.amd){return define([],a)}else{this.CodeMirror=a()}}})(function(){var d2=navigator.userAgent;var ed=navigator.platform;var co=/gecko\/\d/i.test(d2);var eO=/MSIE \d/.test(d2);var bJ=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(d2);var dL=eO||bJ;var k=dL&&(eO?document.documentMode||6:bJ[1]);var c0=/WebKit\//.test(d2);var dO=c0&&/Qt\/\d+\.\d+/.test(d2);var dd=/Chrome\//.test(d2);var d5=/Opera\//.test(d2);var aC=/Apple Computer/.test(navigator.vendor);var c7=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(d2);var fz=/PhantomJS/.test(d2);var e5=/AppleWebKit/.test(d2)&&/Mobile\/\w+/.test(d2);var ej=e5||/Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(d2);var b7=e5||/Mac/.test(ed);var aP=/win/i.test(ed);var aZ=d5&&d2.match(/Version\/(\d*\.\d*)/);if(aZ){aZ=Number(aZ[1])}if(aZ&&aZ>=15){d5=false;c0=true}var bQ=b7&&(dO||d5&&(aZ==null||aZ<12.11));var gf=co||(dL&&k>=9);var gi=false,a7=false;function H(gp,gr){if(!(this instanceof H)){return new H(gp,gr)}this.options=gr=gr?aN(gr):{};aN(e7,gr,false);ce(gr);var gv=gr.value;if(typeof gv=="string"){gv=new at(gv,gr.mode,null,gr.lineSeparator)}this.doc=gv;var gq=new H.inputStyles[gr.inputStyle](this);var gu=this.display=new eM(gp,gv,gq);gu.wrapper.CodeMirror=this;ef(this);cO(this);if(gr.lineWrapping){this.display.wrapper.className+=" CodeMirror-wrap"}if(gr.autofocus&&!ej){gu.input.focus()}aD(this);this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:false,delayingBlurEvent:false,focused:false,suppressEdits:false,pasteIncoming:false,cutIncoming:false,selectingText:false,draggingText:false,highlight:new gn(),keySeq:null,specialChars:null};var go=this;if(dL&&k<11){setTimeout(function(){go.display.input.reset(true)},20)}fV(this);bj();cI(this);this.curOp.forceUpdate=true;ee(this,gv);if((gr.autofocus&&!ej)||go.hasFocus()){setTimeout(cv(cB,this),20)}else{aV(this)}for(var gt in bf){if(bf.hasOwnProperty(gt)){bf[gt](this,gr[gt],cc)}}d7(this);if(gr.finishInit){gr.finishInit(this)}for(var gs=0;gsgq.maxLineLength){gq.maxLineLength=gr;gq.maxLine=gs}})}function ce(go){var gp=di(go.gutters,"CodeMirror-linenumbers");if(gp==-1&&go.lineNumbers){go.gutters=go.gutters.concat(["CodeMirror-linenumbers"])}else{if(gp>-1&&!go.lineNumbers){go.gutters=go.gutters.slice(0);go.gutters.splice(gp,1)}}}function dB(go){var gr=go.display,gq=gr.gutters.offsetWidth;var gp=Math.round(go.doc.height+bI(go.display));return{clientHeight:gr.scroller.clientHeight,viewHeight:gr.wrapper.clientHeight,scrollWidth:gr.scroller.scrollWidth,clientWidth:gr.scroller.clientWidth,viewWidth:gr.wrapper.clientWidth,barLeft:go.options.fixedGutter?gq:0,docHeight:gp,scrollHeight:gp+cT(go)+gr.barHeight,nativeBarWidth:gr.nativeBarWidth,gutterWidth:gq}}function dl(gq,gp,go){this.cm=go;var gr=this.vert=f8("div",[f8("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar");var gs=this.horiz=f8("div",[f8("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");gq(gr);gq(gs);bX(gr,"scroll",function(){if(gr.clientHeight){gp(gr.scrollTop,"vertical")}});bX(gs,"scroll",function(){if(gs.clientWidth){gp(gs.scrollLeft,"horizontal")}});this.checkedOverlay=false;if(dL&&k<8){this.horiz.style.minHeight=this.vert.style.minWidth="18px"}}dl.prototype=aN({update:function(gr){var gs=gr.scrollWidth>gr.clientWidth+1;var gq=gr.scrollHeight>gr.clientHeight+1;var gt=gr.nativeBarWidth;if(gq){this.vert.style.display="block";this.vert.style.bottom=gs?gt+"px":"0";var gp=gr.viewHeight-(gs?gt:0);this.vert.firstChild.style.height=Math.max(0,gr.scrollHeight-gr.clientHeight+gp)+"px"}else{this.vert.style.display="";this.vert.firstChild.style.height="0"}if(gs){this.horiz.style.display="block";this.horiz.style.right=gq?gt+"px":"0";this.horiz.style.left=gr.barLeft+"px";var go=gr.viewWidth-gr.barLeft-(gq?gt:0);this.horiz.firstChild.style.width=(gr.scrollWidth-gr.clientWidth+go)+"px"}else{this.horiz.style.display="";this.horiz.firstChild.style.width="0"}if(!this.checkedOverlay&&gr.clientHeight>0){if(gt==0){this.overlayHack()}this.checkedOverlay=true}return{right:gq?gt:0,bottom:gs?gt:0}},setScrollLeft:function(go){if(this.horiz.scrollLeft!=go){this.horiz.scrollLeft=go}},setScrollTop:function(go){if(this.vert.scrollTop!=go){this.vert.scrollTop=go}},overlayHack:function(){var go=b7&&!c7?"12px":"18px";this.horiz.style.minHeight=this.vert.style.minWidth=go;var gp=this;var gq=function(gr){if(L(gr)!=gp.vert&&L(gr)!=gp.horiz){c2(gp.cm,ez)(gr)}};bX(this.vert,"mousedown",gq);bX(this.horiz,"mousedown",gq)},clear:function(){var go=this.horiz.parentNode;go.removeChild(this.horiz);go.removeChild(this.vert)}},dl.prototype);function e8(){}e8.prototype=aN({update:function(){return{bottom:0,right:0}},setScrollLeft:function(){},setScrollTop:function(){},clear:function(){}},e8.prototype);H.scrollbarModel={"native":dl,"null":e8};function aD(go){if(go.display.scrollbars){go.display.scrollbars.clear();if(go.display.scrollbars.addClass){f(go.display.wrapper,go.display.scrollbars.addClass)}}go.display.scrollbars=new H.scrollbarModel[go.options.scrollbarStyle](function(gp){go.display.wrapper.insertBefore(gp,go.display.scrollbarFiller);bX(gp,"mousedown",function(){if(go.state.focused){setTimeout(function(){go.display.input.focus()},0)}});gp.setAttribute("cm-not-content","true")},function(gq,gp){if(gp=="horizontal"){bE(go,gq)}else{N(go,gq)}},go);if(go.display.scrollbars.addClass){fF(go.display.wrapper,go.display.scrollbars.addClass)}}function e2(gq,gs){if(!gs){gs=dB(gq)}var gp=gq.display.barWidth,go=gq.display.barHeight;aU(gq,gs);for(var gr=0;gr<4&&gp!=gq.display.barWidth||go!=gq.display.barHeight;gr++){if(gp!=gq.display.barWidth&&gq.options.lineWrapping){a9(gq)}aU(gq,dB(gq));gp=gq.display.barWidth;go=gq.display.barHeight}}function aU(go,gp){var gr=go.display;var gq=gr.scrollbars.update(gp);gr.sizer.style.paddingRight=(gr.barWidth=gq.right)+"px";gr.sizer.style.paddingBottom=(gr.barHeight=gq.bottom)+"px";if(gq.right&&gq.bottom){gr.scrollbarFiller.style.display="block";gr.scrollbarFiller.style.height=gq.bottom+"px";gr.scrollbarFiller.style.width=gq.right+"px"}else{gr.scrollbarFiller.style.display=""}if(gq.bottom&&go.options.coverGutterNextToScrollbar&&go.options.fixedGutter){gr.gutterFiller.style.display="block";gr.gutterFiller.style.height=gq.bottom+"px";gr.gutterFiller.style.width=gp.gutterWidth+"px"}else{gr.gutterFiller.style.display=""}}function b6(gr,gv,gq){var gs=gq&&gq.top!=null?Math.max(0,gq.top):gr.scroller.scrollTop;gs=Math.floor(gs-fd(gr));var go=gq&&gq.bottom!=null?gq.bottom:gs+gr.wrapper.clientHeight;var gt=bG(gv,gs),gu=bG(gv,go);if(gq&&gq.ensure){var gp=gq.ensure.from.line,gw=gq.ensure.to.line;if(gp=gu){gt=bG(gv,bM(fk(gv,gw))-gr.wrapper.clientHeight);gu=gw}}}return{from:gt,to:Math.max(gu,gt+1)}}function eI(gw){var gu=gw.display,gv=gu.view;if(!gu.alignWidgets&&(!gu.gutters.firstChild||!gw.options.fixedGutter)){return}var gs=dY(gu)-gu.scroller.scrollLeft+gw.doc.scrollLeft;var go=gu.gutters.offsetWidth,gp=gs+"px";for(var gr=0;gr=gs.viewFrom&&gr.visible.to<=gs.viewTo&&(gs.updateLineNumbers==null||gs.updateLineNumbers>=gs.viewTo)&&gs.renderedView==gs.view&&dc(gx)==0){return false}if(d7(gx)){eB(gx);gr.dims=fi(gx)}var gq=gw.first+gw.size;var gu=Math.max(gr.visible.from-gx.options.viewportMargin,gw.first);var gv=Math.min(gq,gr.visible.to+gx.options.viewportMargin);if(gs.viewFromgv&&gs.viewTo-gv<20){gv=Math.min(gq,gs.viewTo)}if(a7){gu=aW(gx.doc,gu);gv=d4(gx.doc,gv)}var gp=gu!=gs.viewFrom||gv!=gs.viewTo||gs.lastWrapHeight!=gr.wrapperHeight||gs.lastWrapWidth!=gr.wrapperWidth;cR(gx,gu,gv);gs.viewOffset=bM(fk(gx.doc,gs.viewFrom));gx.display.mover.style.top=gs.viewOffset+"px";var go=dc(gx);if(!gp&&go==0&&!gr.force&&gs.renderedView==gs.view&&(gs.updateLineNumbers==null||gs.updateLineNumbers>=gs.viewTo)){return false}var gt=dP();if(go>4){gs.lineDiv.style.display="none"}cm(gx,gs.updateLineNumbers,gr.dims);if(go>4){gs.lineDiv.style.display=""}gs.renderedView=gs.view;if(gt&&dP()!=gt&>.offsetHeight){gt.focus()}d3(gs.cursorDiv);d3(gs.selectionDiv);gs.gutters.style.height=gs.sizer.style.minHeight=0;if(gp){gs.lastWrapHeight=gr.wrapperHeight;gs.lastWrapWidth=gr.wrapperWidth;ei(gx,400)}gs.updateLineNumbers=null;return true}function cj(gp,gs){var go=gs.viewport;for(var gr=true;;gr=false){if(!gr||!gp.options.lineWrapping||gs.oldDisplayWidth==dm(gp)){if(go&&go.top!=null){go={top:Math.min(gp.doc.height+bI(gp.display)-cV(gp),go.top)}}gs.visible=b6(gp.display,gp.doc,go);if(gs.visible.from>=gp.display.viewFrom&&gs.visible.to<=gp.display.viewTo){break}}if(!B(gp,gs)){break}a9(gp);var gq=dB(gp);bC(gp);dA(gp,gq);e2(gp,gq)}gs.signal(gp,"update",gp);if(gp.display.viewFrom!=gp.display.reportedViewFrom||gp.display.viewTo!=gp.display.reportedViewTo){gs.signal(gp,"viewportChange",gp,gp.display.viewFrom,gp.display.viewTo);gp.display.reportedViewFrom=gp.display.viewFrom;gp.display.reportedViewTo=gp.display.viewTo}}function dU(gp,go){var gr=new aI(gp,go);if(B(gp,gr)){a9(gp);cj(gp,gr);var gq=dB(gp);bC(gp);dA(gp,gq);e2(gp,gq);gr.finish()}}function dA(go,gp){go.display.sizer.style.minHeight=gp.docHeight+"px";var gq=gp.docHeight+go.display.barHeight;go.display.heightForcer.style.top=gq+"px";go.display.gutters.style.height=Math.max(gq+cT(go),gp.clientHeight)+"px"}function a9(gv){var gt=gv.display;var gp=gt.lineDiv.offsetTop;for(var gq=0;gq0.001||gu<-0.001){gb(gw.line,gx);cb(gw.line);if(gw.rest){for(var go=0;go-1){gx=false}ab(gz,gs,gt,gy)}if(gx){d3(gs.lineNumber);gs.lineNumber.appendChild(document.createTextNode(ew(gz.options,gt)))}gA=gs.node.nextSibling}}gt+=gs.size}while(gA){gA=gu(gA)}}function ab(go,gq,gs,gt){for(var gp=0;gp1){if(bm&&bm.join("\n")==gs){if(gp.ranges.length%bm.length==0){go=[];for(var gt=0;gt=0;gt--){var gu=gp.ranges[gt];var gz=gu.from(),gy=gu.to();if(gu.empty()){if(gq&&gq>0){gz=W(gz.line,gz.ch-gq)}else{if(gC.state.overwrite&&!gr){gy=W(gy.line,Math.min(fk(gA,gy.line).text.length,gy.ch+fL(gv).length))}}}var gw=gC.curOp.updateInput;var gx={from:gz,to:gy,text:go?go[gt%go.length]:gv,origin:gB||(gr?"paste":gC.state.cutIncoming?"cut":"+input")};bg(gC.doc,gx);ae(gC,"inputRead",gC,gx)}if(gs&&!gr){f1(gC,gs)}fK(gC);gC.curOp.updateInput=gw;gC.curOp.typing=true;gC.state.pasteIncoming=gC.state.cutIncoming=false}function ba(gq,go){var gp=gq.clipboardData&&gq.clipboardData.getData("text/plain");if(gp){gq.preventDefault();if(!aj(go)&&!go.options.disableInput){cM(go,function(){f4(go,gp,0,null,"paste")})}return true}}function f1(go,gs){if(!go.options.electricChars||!go.options.smartIndent){return}var gt=go.doc.sel;for(var gr=gt.ranges.length-1;gr>=0;gr--){var gp=gt.ranges[gr];if(gp.head.ch>100||(gr&>.ranges[gr-1].head.line==gp.head.line)){continue}var gu=go.getModeAt(gp.head);var gv=false;if(gu.electricChars){for(var gq=0;gq-1){gv=ad(go,gp.head.line,"smart");break}}}else{if(gu.electricInput){if(gu.electricInput.test(fk(go.doc,gp.head.line).text.slice(0,gp.head.ch))){gv=ad(go,gp.head.line,"smart")}}}if(gv){ae(go,"electricInput",go,gp.head.line)}}}function dk(go){var gt=[],gq=[];for(var gr=0;gr=9&&gp.hasSelection){gp.hasSelection=null}gp.poll()});bX(gr,"paste",function(gu){if(ba(gu,go)){return true}go.state.pasteIncoming=true;gp.fastPoll()});function gs(gv){if(go.somethingSelected()){bm=go.getSelections();if(gp.inaccurateSelection){gp.prevInput="";gp.inaccurateSelection=false;gr.value=bm.join("\n");dM(gr)}}else{if(!go.options.lineWiseCopyCut){return}else{var gu=dk(go);bm=gu.text;if(gv.type=="cut"){go.setSelections(gu.ranges,null,Z)}else{gp.prevInput="";gr.value=gu.text.join("\n");dM(gr)}}}if(gv.type=="cut"){go.state.cutIncoming=true}}bX(gr,"cut",gs);bX(gr,"copy",gs);bX(gq.scroller,"paste",function(gu){if(bb(gq,gu)){return}go.state.pasteIncoming=true;gp.focus()});bX(gq.lineSpace,"selectstart",function(gu){if(!bb(gq,gu)){cG(gu)}});bX(gr,"compositionstart",function(){var gu=go.getCursor("from");if(gp.composing){gp.composing.range.clear()}gp.composing={start:gu,range:go.markText(gu,go.getCursor("to"),{className:"CodeMirror-composing"})}});bX(gr,"compositionend",function(){if(gp.composing){gp.poll();gp.composing.range.clear();gp.composing=null}})},prepareSelection:function(){var gp=this.cm,gt=gp.display,gs=gp.doc;var go=fN(gp);if(gp.options.moveInputWithCursor){var gu=dV(gp,gs.sel.primary().head,"div");var gq=gt.wrapper.getBoundingClientRect(),gr=gt.lineDiv.getBoundingClientRect();go.teTop=Math.max(0,Math.min(gt.wrapper.clientHeight-10,gu.top+gr.top-gq.top));go.teLeft=Math.max(0,Math.min(gt.wrapper.clientWidth-10,gu.left+gr.left-gq.left))}return go},showSelection:function(gq){var go=this.cm,gp=go.display;bR(gp.cursorDiv,gq.cursors);bR(gp.selectionDiv,gq.selection);if(gq.teTop!=null){this.wrapper.style.top=gq.teTop+"px";this.wrapper.style.left=gq.teLeft+"px"}},reset:function(gs){if(this.contextMenuPending){return}var gp,gr,go=this.cm,gu=go.doc;if(go.somethingSelected()){this.prevInput="";var gq=gu.sel.primary();gp=da&&(gq.to().line-gq.from().line>100||(gr=go.getSelection()).length>1000);var gt=gp?"-":gr||go.getSelection();this.textarea.value=gt;if(go.state.focused){dM(this.textarea)}if(dL&&k>=9){this.hasSelection=gt}}else{if(!gs){this.prevInput=this.textarea.value="";if(dL&&k>=9){this.hasSelection=null}}}this.inaccurateSelection=gp},getField:function(){return this.textarea},supportsTouch:function(){return false},focus:function(){if(this.cm.options.readOnly!="nocursor"&&(!ej||dP()!=this.textarea)){try{this.textarea.focus()}catch(go){}}},blur:function(){this.textarea.blur()},resetPosition:function(){this.wrapper.style.top=this.wrapper.style.left=0},receivedFocus:function(){this.slowPoll()},slowPoll:function(){var go=this;if(go.pollingFast){return}go.polling.set(this.cm.options.pollInterval,function(){go.poll();if(go.cm.state.focused){go.slowPoll()}})},fastPoll:function(){var gp=false,go=this;go.pollingFast=true;function gq(){var gr=go.poll();if(!gr&&!gp){gp=true;go.polling.set(60,gq)}else{go.pollingFast=false;go.slowPoll()}}go.polling.set(20,gq)},poll:function(){var go=this.cm,gr=this.textarea,gs=this.prevInput;if(this.contextMenuPending||!go.state.focused||(bs(gr)&&!gs&&!this.composing)||aj(go)||go.options.disableInput||go.state.keySeq){return false}var gu=gr.value;if(gu==gs&&!go.somethingSelected()){return false}if(dL&&k>=9&&this.hasSelection===gu||b7&&/[\uf700-\uf7ff]/.test(gu)){go.display.input.reset();return false}if(go.doc.sel==go.display.selForContextMenu){var gt=gu.charCodeAt(0);if(gt==8203&&!gs){gs="\u200b"}if(gt==8666){this.reset();return this.cm.execCommand("undo")}}var gv=0,gp=Math.min(gs.length,gu.length);while(gv1000||gu.indexOf("\n")>-1){gr.value=gq.prevInput=""}else{gq.prevInput=gu}if(gq.composing){gq.composing.range.clear();gq.composing.range=go.markText(gq.composing.start,go.getCursor("to"),{className:"CodeMirror-composing"})}});return true},ensurePolled:function(){if(this.pollingFast&&this.poll()){this.pollingFast=false}},onKeyPress:function(){if(dL&&k>=9){this.hasSelection=null}this.fastPoll()},onContextMenu:function(gt){var gy=this,gz=gy.cm,gv=gz.display,gp=gy.textarea;var gx=cn(gz,gt),go=gv.scroller.scrollTop;if(!gx||d5){return}var gs=gz.options.resetSelectionOnContextMenu;if(gs&&gz.doc.sel.contains(gx)==-1){c2(gz,bU)(gz.doc,eW(gx),Z)}var gu=gp.style.cssText;gy.wrapper.style.position="absolute";gp.style.cssText="position: fixed; width: 30px; height: 30px; top: "+(gt.clientY-5)+"px; left: "+(gt.clientX-5)+"px; z-index: 1000; background: "+(dL?"rgba(255, 255, 255, .05)":"transparent")+"; outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";if(c0){var gA=window.scrollY}gv.input.focus();if(c0){window.scrollTo(null,gA)}gv.input.reset();if(!gz.somethingSelected()){gp.value=gy.prevInput=" "}gy.contextMenuPending=true;gv.selForContextMenu=gz.doc.sel;clearTimeout(gv.detectingSelectAll);function gr(){if(gp.selectionStart!=null){var gB=gz.somethingSelected();var gC="\u200b"+(gB?gp.value:"");gp.value="\u21da";gp.value=gC;gy.prevInput=gB?"":"\u200b";gp.selectionStart=1;gp.selectionEnd=gC.length;gv.selForContextMenu=gz.doc.sel}}function gw(){gy.contextMenuPending=false;gy.wrapper.style.position="relative";gp.style.cssText=gu;if(dL&&k<9){gv.scrollbars.setScrollTop(gv.scroller.scrollTop=go)}if(gp.selectionStart!=null){if(!dL||(dL&&k<9)){gr()}var gB=0,gC=function(){if(gv.selForContextMenu==gz.doc.sel&&gp.selectionStart==0&&gp.selectionEnd>0&&gy.prevInput=="\u200b"){c2(gz,eH.selectAll)(gz)}else{if(gB++<10){gv.detectingSelectAll=setTimeout(gC,500)}else{gv.input.reset()}}};gv.detectingSelectAll=setTimeout(gC,200)}}if(dL&&k>=9){gr()}if(gf){ev(gt);var gq=function(){eg(window,"mouseup",gq);setTimeout(gw,20)};bX(window,"mouseup",gq)}else{setTimeout(gw,50)}},readOnlyChanged:function(go){if(!go){this.reset()}},setUneditable:f0,needsContentAttribute:false},Y.prototype);function dw(go){this.cm=go;this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null;this.polling=new gn();this.gracePeriod=false}dw.prototype=aN({init:function(gr){var gq=this,go=gq.cm;var gs=gq.div=gr.lineDiv;fU(gs);bX(gs,"paste",function(gt){ba(gt,go)});bX(gs,"compositionstart",function(gx){var gw=gx.data;gq.composing={sel:go.doc.sel,data:gw,startData:gw};if(!gw){return}var gu=go.doc.sel.primary();var gt=go.getLine(gu.head.line);var gv=gt.indexOf(gw,Math.max(0,gu.head.ch-gw.length));if(gv>-1&&gv<=gu.head.ch){gq.composing.sel=eW(W(gu.head.line,gv),W(gu.head.line,gv+gw.length))}});bX(gs,"compositionupdate",function(gt){gq.composing.data=gt.data});bX(gs,"compositionend",function(gu){var gt=gq.composing;if(!gt){return}if(gu.data!=gt.startData&&!/\u200b/.test(gu.data)){gt.data=gu.data}setTimeout(function(){if(!gt.handled){gq.applyComposition(gt)}if(gq.composing==gt){gq.composing=null}},50)});bX(gs,"touchstart",function(){gq.forceCompositionEnd()});bX(gs,"input",function(){if(gq.composing){return}if(aj(go)||!gq.pollContent()){cM(gq.cm,function(){ah(go)})}});function gp(gw){if(go.somethingSelected()){bm=go.getSelections();if(gw.type=="cut"){go.replaceSelection("",null,"cut")}}else{if(!go.options.lineWiseCopyCut){return}else{var gu=dk(go);bm=gu.text;if(gw.type=="cut"){go.operation(function(){go.setSelections(gu.ranges,0,Z);go.replaceSelection("",null,"cut")})}}}if(gw.clipboardData&&!e5){gw.preventDefault();gw.clipboardData.clearData();gw.clipboardData.setData("text/plain",bm.join("\n"))}else{var gv=aX(),gx=gv.firstChild;go.display.lineSpace.insertBefore(gv,go.display.lineSpace.firstChild);gx.value=bm.join("\n");var gt=document.activeElement;dM(gx);setTimeout(function(){go.display.lineSpace.removeChild(gv);gt.focus()},50)}}bX(gs,"copy",gp);bX(gs,"cut",gp)},prepareSelection:function(){var go=fN(this.cm,false);go.focus=this.cm.state.focused;return go},showSelection:function(go){if(!go||!this.cm.display.view.length){return}if(go.focus){this.showPrimarySelection()}this.showMultipleSelections(go)},showPrimarySelection:function(){var gs=window.getSelection(),gv=this.cm.doc.sel.primary();var gt=az(this.cm,gs.anchorNode,gs.anchorOffset);var gx=az(this.cm,gs.focusNode,gs.focusOffset);if(gt&&!gt.bad&&gx&&!gx.bad&&cf(ar(gt,gx),gv.from())==0&&cf(bx(gt,gx),gv.to())==0){return}var gr=cz(this.cm,gv.from());var gw=cz(this.cm,gv.to());if(!gr&&!gw){return}var gz=this.cm.display.view;var gu=gs.rangeCount&&gs.getRangeAt(0);if(!gr){gr={node:gz[0].measure.map[2],offset:0}}else{if(!gw){var gq=gz[gz.length-1].measure;var gp=gq.maps?gq.maps[gq.maps.length-1]:gq.map;gw={node:gp[gp.length-1],offset:gp[gp.length-2]-gp[gp.length-3]}}}try{var go=cl(gr.node,gr.offset,gw.offset,gw.node)}catch(gy){}if(go){gs.removeAllRanges();gs.addRange(go);if(gu&&gs.anchorNode==null){gs.addRange(gu)}else{if(co){this.startGracePeriod()}}}this.rememberSelection()},startGracePeriod:function(){var go=this;clearTimeout(this.gracePeriod);this.gracePeriod=setTimeout(function(){go.gracePeriod=false;if(go.selectionChanged()){go.cm.operation(function(){go.cm.curOp.selectionChanged=true})}},20)},showMultipleSelections:function(go){bR(this.cm.display.cursorDiv,go.cursors);bR(this.cm.display.selectionDiv,go.selection)},rememberSelection:function(){var go=window.getSelection();this.lastAnchorNode=go.anchorNode;this.lastAnchorOffset=go.anchorOffset;this.lastFocusNode=go.focusNode;this.lastFocusOffset=go.focusOffset},selectionInEditor:function(){var gp=window.getSelection();if(!gp.rangeCount){return false}var go=gp.getRangeAt(0).commonAncestorContainer;return gg(this.div,go)},focus:function(){if(this.cm.options.readOnly!="nocursor"){this.div.focus()}},blur:function(){this.div.blur()},getField:function(){return this.div},supportsTouch:function(){return true},receivedFocus:function(){var go=this;if(this.selectionInEditor()){this.pollSelection()}else{cM(this.cm,function(){go.cm.curOp.selectionChanged=true})}function gp(){if(go.cm.state.focused){go.pollSelection();go.polling.set(go.cm.options.pollInterval,gp)}}this.polling.set(this.cm.options.pollInterval,gp)},selectionChanged:function(){var go=window.getSelection();return go.anchorNode!=this.lastAnchorNode||go.anchorOffset!=this.lastAnchorOffset||go.focusNode!=this.lastFocusNode||go.focusOffset!=this.lastFocusOffset},pollSelection:function(){if(!this.composing&&!this.gracePeriod&&this.selectionChanged()){var gr=window.getSelection(),go=this.cm;this.rememberSelection();var gp=az(go,gr.anchorNode,gr.anchorOffset);var gq=az(go,gr.focusNode,gr.focusOffset);if(gp&&gq){cM(go,function(){bU(go.doc,eW(gp,gq),Z);if(gp.bad||gq.bad){go.curOp.selectionChanged=true}})}}},pollContent:function(){var gy=this.cm,gI=gy.display,gG=gy.doc.sel.primary();var gH=gG.from(),gs=gG.to();if(gH.linegI.viewTo-1){return false}var gv;if(gH.line==gI.viewFrom||(gv=ds(gy,gH.line))==0){var gt=bN(gI.view[0].line);var gx=gI.view[0].node}else{var gt=bN(gI.view[gv].line);var gx=gI.view[gv-1].node.nextSibling}var gF=ds(gy,gs.line);if(gF==gI.view.length-1){var gA=gI.viewTo-1;var gD=gI.lineDiv.lastChild}else{var gA=bN(gI.view[gF+1].line)-1;var gD=gI.view[gF+1].node.previousSibling}var gJ=gy.doc.splitLines(f5(gy,gx,gD,gt,gA));var gC=ga(gy.doc,W(gt,0),W(gA,fk(gy.doc,gA).text.length));while(gJ.length>1&&gC.length>1){if(fL(gJ)==fL(gC)){gJ.pop();gC.pop();gA--}else{if(gJ[0]==gC[0]){gJ.shift();gC.shift();gt++}else{break}}}var gE=0,gq=0;var gz=gJ[0],gp=gC[0],go=Math.min(gz.length,gp.length);while(gE1||gJ[0]||cf(gu,gB)){a1(gy.doc,gJ,gu,gB,"+input");return true}},ensurePolled:function(){this.forceCompositionEnd()},reset:function(){this.forceCompositionEnd()},forceCompositionEnd:function(){if(!this.composing||this.composing.handled){return}this.applyComposition(this.composing);this.composing.handled=true;this.div.blur();this.div.focus()},applyComposition:function(go){if(aj(this.cm)){c2(this.cm,ah)(this.cm)}else{if(go.data&&go.data!=go.startData){c2(this.cm,f4)(this.cm,go.data,0,go.sel)}}},setUneditable:function(go){go.contentEditable="false"},onKeyPress:function(go){go.preventDefault();if(!aj(this.cm)){c2(this.cm,f4)(this.cm,String.fromCharCode(go.charCode==null?go.keyCode:go.charCode),0)}},readOnlyChanged:function(go){this.div.contentEditable=String(go!="nocursor")},onContextMenu:f0,resetPosition:f0,needsContentAttribute:true},dw.prototype);function cz(gu,gs){var gt=fg(gu,gs.line);if(!gt||gt.hidden){return null}var gw=fk(gu.doc,gs.line);var gp=ct(gt,gw,gs.line);var gq=a(gw),gr="left";if(gq){var go=aG(gq,gs.ch);gr=go%2?"right":"left"}var gv=aL(gp.map,gs.ch,gr);gv.offset=gv.collapse=="right"?gv.end:gv.start;return gv}function ex(gp,go){if(go){gp.bad=true}return gp}function az(go,gr,gt){var gs;if(gr==go.display.lineDiv){gs=go.display.lineDiv.childNodes[gt];if(!gs){return ex(go.clipPos(W(go.display.viewTo-1)),true)}gr=null;gt=0}else{for(gs=gr;;gs=gs.parentNode){if(!gs||gs==go.display.lineDiv){return null}if(gs.parentNode&&gs.parentNode==go.display.lineDiv){break}}}for(var gq=0;gq=0&&cf(gr,gp.to())<=0){return gq}}return -1}};function dZ(go,gp){this.anchor=go;this.head=gp}dZ.prototype={from:function(){return ar(this.anchor,this.head)},to:function(){return bx(this.anchor,this.head)},empty:function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch}};function cw(go,gv){var gq=go[gv];go.sort(function(gy,gx){return cf(gy.from(),gx.from())});gv=di(go,gq);for(var gs=1;gs=0){var gt=ar(gp.from(),gw.from()),gu=bx(gp.to(),gw.to());var gr=gp.empty()?gw.from()==gw.head:gp.from()==gp.head;if(gs<=gv){--gv}go.splice(--gs,2,new dZ(gr?gu:gt,gr?gt:gu))}}return new f9(go,gv)}function eW(go,gp){return new f9([new dZ(go,gp||go)],0)}function c5(go,gp){return Math.max(go.first,Math.min(gp,go.first+go.size-1))}function fO(gp,gq){if(gq.linego){return W(go,fk(gp,go).text.length)}return fx(gq,fk(gp,gq.line).text.length)}function fx(gq,gp){var go=gq.ch;if(go==null||go>gp){return W(gq.line,gp)}else{if(go<0){return W(gq.line,0)}else{return gq}}}function b9(gp,go){return go>=gp.first&&go=gq.ch:go.to>gq.ch))){if(gu){aE(gp,"beforeCursorEnter");if(gp.explicitlyCleared){if(!gz.markedSpans){break}else{--gs;continue}}}if(!gp.atomic){continue}var gv=gp.find(gr<0?-1:1);if(cf(gv,gq)==0){gv.ch+=gr;if(gv.ch<0){if(gv.line>gx.first){gv=fO(gx,W(gv.line-1))}else{gv=null}}else{if(gv.ch>gz.text.length){if(gv.line3){gz(gT,gR.top,null,gR.bottom);gT=gr;if(gR.bottomgG.bottom||gS.bottom==gG.bottom&&gS.right>gG.right){gG=gS}if(gT0){gq.blinker=setInterval(function(){gq.cursorDiv.style.visibility=(gp=!gp)?"":"hidden"},go.options.cursorBlinkRate)}else{if(go.options.cursorBlinkRate<0){gq.cursorDiv.style.visibility="hidden"}}}function ei(go,gp){if(go.doc.mode.startState&&go.doc.frontier=go.display.viewTo){return}var gq=+new Date+go.options.workTime;var gr=b3(gs.mode,dD(go,gs.frontier));var gp=[];gs.iter(gs.frontier,Math.min(gs.first+gs.size,go.display.viewTo+500),function(gt){if(gs.frontier>=go.display.viewFrom){var gw=gt.styles,gA=gt.text.length>go.options.maxHighlightLength;var gy=fE(go,gt,gA?b3(gs.mode,gr):gr,true);gt.styles=gy.styles;var gv=gt.styleClasses,gx=gy.classes;if(gx){gt.styleClasses=gx}else{if(gv){gt.styleClasses=null}}var gz=!gw||gw.length!=gt.styles.length||gv!=gx&&(!gv||!gx||gv.bgClass!=gx.bgClass||gv.textClass!=gx.textClass);for(var gu=0;!gz&&gugq){ei(go,go.options.workDelay);return true}});if(gp.length){cM(go,function(){for(var gt=0;gtgq;--gx){if(gx<=gt.first){return gt.first}var gw=fk(gt,gx-1);if(gw.stateAfter&&(!gr||gx<=gt.frontier)){return gx}var gv=bT(gw.text,null,gu.options.tabSize);if(gs==null||gp>gv){gs=gx-1;gp=gv}}return gs}function dD(go,gu,gp){var gs=go.doc,gr=go.display;if(!gs.mode.startState){return true}var gt=cy(go,gu,gp),gq=gt>gs.first&&fk(gs,gt-1).stateAfter;if(!gq){gq=b0(gs.mode)}else{gq=b3(gs.mode,gq)}gs.iter(gt,gu,function(gv){dy(go,gv.text,gq);var gw=gt==gu-1||gt%5==0||gt>=gr.viewFrom&>2){gt.push((gw.bottom+gp.top)/2-gu.top)}}}gt.push(gu.bottom-gu.top)}}function ct(gq,go,gr){if(gq.line==go){return{map:gq.measure.map,cache:gq.measure.cache}}for(var gp=0;gpgr){return{map:gq.measure.maps[gp],cache:gq.measure.caches[gp],before:true}}}}function c1(go,gq){gq=x(gq);var gs=bN(gq);var gp=go.display.externalMeasured=new bv(go.doc,gq,gs);gp.lineN=gs;var gr=gp.built=eV(go,gp);gp.text=gr.pre;bR(go.display.lineMeasure,gr.pre);return gp}function ek(go,gp,gr,gq){return C(go,a4(go,gp),gr,gq)}function fg(go,gq){if(gq>=go.display.viewFrom&&gq=gp.lineN&&gqgo){gt=gx-gs;gq=gt-1;if(go>=gx){gw="right"}}}}if(gq!=null){gr=gp[gu+2];if(gs==gx&&gv==(gr.insertLeft?"left":"right")){gw=gv}if(gv=="left"&&gq==0){while(gu&&gp[gu-2]==gp[gu-3]&&gp[gu-1].insertLeft){gr=gp[(gu-=3)+2];gw="left"}}if(gv=="right"&&gq==gx-gs){while(gu0){go=gt="right"}var gq;if(gv.options.lineWrapping&&(gq=gD.getClientRects()).length>1){gp=gq[gt=="right"?gq.length-1:0]}else{gp=gD.getBoundingClientRect()}}if(dL&&k<9&&!gs&&(!gp||!gp.left&&!gp.right)){var gu=gD.parentNode.getClientRects()[0];if(gu){gp={left:gu.left,right:gu.left+dE(gv.display),top:gu.top,bottom:gu.bottom}}else{gp=eF}}var gB=gp.top-gF.rect.top,gz=gp.bottom-gF.rect.top;var gH=(gB+gz)/2;var gG=gF.view.measure.heights;for(var gE=0;gEgB.from){return gs(gD-1)}return gs(gD,gC)}var gt=a(gu),go=gw.ch;if(!gt){return gs(go)}var gp=aG(gt,go);var gr=gy(go,gp);if(e6!=null){gr.other=gy(go,e6)}return gr}function dI(go,gs){var gr=0,gs=fO(go.doc,gs);if(!go.options.lineWrapping){gr=dE(go.display)*gs.ch}var gp=fk(go.doc,gs.line);var gq=bM(gp)+fd(go.display);return{left:gr,right:gr,top:gq,bottom:gq+gp.height}}function f7(go,gp,gq,gs){var gr=W(go,gp);gr.xRel=gs;if(gq){gr.outside=true}return gr}function fT(gv,gs,gr){var gu=gv.doc;gr+=gv.display.viewOffset;if(gr<0){return f7(gu.first,0,true,-1)}var gq=bG(gu,gr),gw=gu.first+gu.size-1;if(gq>gw){return f7(gu.first+gu.size-1,fk(gu,gw).text.length,true,1)}if(gs<0){gs=0}var gp=fk(gu,gq);for(;;){var gx=cZ(gv,gp,gq,gs,gr);var gt=ey(gp);var go=gt&>.find(0,true);if(gt&&(gx.ch>go.from.ch||gx.ch==go.from.ch&&gx.xRel>0)){gq=bN(gp=go.to.line)}else{return gx}}}function cZ(gy,gq,gB,gA,gz){var gx=gz-bM(gq);var gu=false,gH=2*gy.display.wrapper.clientWidth;var gE=a4(gy,gq);function gL(gN){var gO=dV(gy,W(gB,gN),"line",gq,gE);gu=true;if(gx>gO.bottom){return gO.left-gH}else{if(gxgp){return f7(gB,gr,gt,1)}for(;;){if(gD?gr==gI||gr==u(gq,gI,1):gr-gI<=1){var gC=gA1?1:0);return gw}var gv=Math.ceil(gG/2),gM=gI+gv;if(gD){gM=gI;for(var gJ=0;gJgA){gr=gM;gp=gs;if(gt=gu){gp+=1000}gG=gv}else{gI=gM;gF=gs;go=gu;gG-=gv}}}var aH;function aY(gq){if(gq.cachedTextHeight!=null){return gq.cachedTextHeight}if(aH==null){aH=f8("pre");for(var gp=0;gp<49;++gp){aH.appendChild(document.createTextNode("x"));aH.appendChild(f8("br"))}aH.appendChild(document.createTextNode("x"))}bR(gq.measure,aH);var go=aH.offsetHeight/50;if(go>3){gq.cachedTextHeight=go}d3(gq.measure);return go||1}function dE(gs){if(gs.cachedCharWidth!=null){return gs.cachedCharWidth}var go=f8("span","xxxxxxxxxx");var gr=f8("pre",[go]);bR(gs.measure,gr);var gq=go.getBoundingClientRect(),gp=(gq.right-gq.left)/10;if(gp>2){gs.cachedCharWidth=gp}return gp||10}var bp=null;var ea=0;function cI(go){go.curOp={cm:go,viewChanged:false,startHeight:go.doc.height,forceUpdate:false,updateInput:null,typing:false,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:false,updateMaxLine:false,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:false,id:++ea};if(bp){bp.ops.push(go.curOp)}else{go.curOp.ownsGroup=bp={ops:[go.curOp],delayedCallbacks:[]}}}function cU(gr){var gq=gr.delayedCallbacks,gp=0;do{for(;gp=gp.viewTo)||gp.maxLineChanged&&go.options.lineWrapping;gq.update=gq.mustUpdate&&new aI(go,gq.mustUpdate&&{top:gq.scrollTop,ensure:gq.scrollToPos},gq.forceUpdate)}function aq(go){go.updatedDisplay=go.mustUpdate&&B(go.cm,go.update)}function b2(gq){var go=gq.cm,gp=go.display;if(gq.updatedDisplay){a9(go)}gq.barMeasure=dB(go);if(gp.maxLineChanged&&!go.options.lineWrapping){gq.adjustWidthTo=ek(go,gp.maxLine,gp.maxLine.text.length).left+3;go.display.sizerWidth=gq.adjustWidthTo;gq.barMeasure.scrollWidth=Math.max(gp.scroller.clientWidth,gp.sizer.offsetLeft+gq.adjustWidthTo+cT(go)+go.display.barWidth);gq.maxScrollLeft=Math.max(0,gp.sizer.offsetLeft+gq.adjustWidthTo-dm(go))}if(gq.updatedDisplay||gq.selectionChanged){gq.preparedSelection=gp.input.prepareSelection()}}function ap(gp){var go=gp.cm;if(gp.adjustWidthTo!=null){go.display.sizer.style.minWidth=gp.adjustWidthTo+"px";if(gp.maxScrollLeftgt)){gq.updateLineNumbers=gt}gv.curOp.viewChanged=true;if(gt>=gq.viewTo){if(a7&&aW(gv.doc,gt)gq.viewFrom){eB(gv)}else{gq.viewFrom+=gw;gq.viewTo+=gw}}else{if(gt<=gq.viewFrom&&gu>=gq.viewTo){eB(gv)}else{if(gt<=gq.viewFrom){var gs=df(gv,gu,gu+gw,1);if(gs){gq.view=gq.view.slice(gs.index);gq.viewFrom=gs.lineN;gq.viewTo+=gw}else{eB(gv)}}else{if(gu>=gq.viewTo){var gs=df(gv,gt,gt,-1);if(gs){gq.view=gq.view.slice(0,gs.index);gq.viewTo=gs.lineN}else{eB(gv)}}else{var gr=df(gv,gt,gt,-1);var gp=df(gv,gu,gu+gw,1);if(gr&&gp){gq.view=gq.view.slice(0,gr.index).concat(eZ(gv,gr.lineN,gp.lineN)).concat(gq.view.slice(gp.index));gq.viewTo+=gw}else{eB(gv)}}}}}}var go=gq.externalMeasured;if(go){if(gu=gs.lineN&&gq=gu.viewTo){return}var gr=gu.view[ds(gp,gq)];if(gr.node==null){return}var go=gr.changes||(gr.changes=[]);if(di(go,gt)==-1){go.push(gt)}}function eB(go){go.display.viewFrom=go.display.viewTo=go.doc.first;go.display.view=[];go.display.viewOffset=0}function ds(go,gr){if(gr>=go.display.viewTo){return null}gr-=go.display.viewFrom;if(gr<0){return null}var gp=go.display.view;for(var gq=0;gq0){if(gt==gu.length-1){return null}gv=(go+gu[gt].size)-gq;gt++}else{gv=go-gq}gq+=gv;gs+=gv}while(aW(gw.doc,gs)!=gs){if(gt==(gp<0?0:gu.length-1)){return null}gs+=gp*gu[gt-(gp<0?1:0)].size;gt+=gp}return{index:gt,lineN:gs}}function cR(go,gs,gr){var gq=go.display,gp=gq.view;if(gp.length==0||gs>=gq.viewTo||gr<=gq.viewFrom){gq.view=eZ(go,gs,gr);gq.viewFrom=gs}else{if(gq.viewFrom>gs){gq.view=eZ(go,gs,gq.viewFrom).concat(gq.view)}else{if(gq.viewFromgr){gq.view=gq.view.slice(0,ds(go,gr))}}}gq.viewTo=gr}function dc(go){var gp=go.display.view,gs=0;for(var gr=0;gr20*20}bX(gt.scroller,"touchstart",function(gx){if(!gr(gx)){clearTimeout(gv);var gw=+new Date;gt.activeTouch={start:gw,moved:false,prev:gw-go.end<=300?go:null};if(gx.touches.length==1){gt.activeTouch.left=gx.touches[0].pageX;gt.activeTouch.top=gx.touches[0].pageY}}});bX(gt.scroller,"touchmove",function(){if(gt.activeTouch){gt.activeTouch.moved=true}});bX(gt.scroller,"touchend",function(gx){var gz=gt.activeTouch;if(gz&&!bb(gt,gx)&&gz.left!=null&&!gz.moved&&new Date-gz.start<300){var gy=gp.coordsChar(gt.activeTouch,"page"),gw;if(!gz.prev||gq(gz,gz.prev)){gw=new dZ(gy,gy)}else{if(!gz.prev.prev||gq(gz,gz.prev.prev)){gw=gp.findWordAt(gy)}else{gw=new dZ(W(gy.line,0),fO(gp.doc,W(gy.line+1,0)))}}gp.setSelection(gw.anchor,gw.head);gp.focus();cG(gx)}gu()});bX(gt.scroller,"touchcancel",gu);bX(gt.scroller,"scroll",function(){if(gt.scroller.clientHeight){N(gp,gt.scroller.scrollTop);bE(gp,gt.scroller.scrollLeft,true);aE(gp,"scroll",gp)}});bX(gt.scroller,"mousewheel",function(gw){b(gp,gw)});bX(gt.scroller,"DOMMouseScroll",function(gw){b(gp,gw)});bX(gt.wrapper,"scroll",function(){gt.wrapper.scrollTop=gt.wrapper.scrollLeft=0});gt.dragFunctions={enter:function(gw){if(!aR(gp,gw)){ev(gw)}},over:function(gw){if(!aR(gp,gw)){gl(gp,gw);ev(gw)}},start:function(gw){Q(gp,gw)},drop:c2(gp,bk),leave:function(){db(gp)}};var gs=gt.input.getField();bX(gs,"keyup",function(gw){bi.call(gp,gw)});bX(gs,"keydown",c2(gp,p));bX(gs,"keypress",c2(gp,cx));bX(gs,"focus",cv(cB,gp));bX(gs,"blur",cv(aV,gp))}function f6(gp,gs,gq){var gt=gq&&gq!=H.Init;if(!gs!=!gt){var gr=gp.display.dragFunctions;var go=gs?bX:eg;go(gp.display.scroller,"dragstart",gr.start);go(gp.display.scroller,"dragenter",gr.enter);go(gp.display.scroller,"dragover",gr.over);go(gp.display.scroller,"dragleave",gr.leave);go(gp.display.scroller,"drop",gr.drop)}}function aT(go){var gp=go.display;if(gp.lastWrapHeight==gp.wrapper.clientHeight&&gp.lastWrapWidth==gp.wrapper.clientWidth){return}gp.cachedCharWidth=gp.cachedTextHeight=gp.cachedPaddingH=null;gp.scrollbarsClipped=false;go.setSize()}function bb(gp,go){for(var gq=L(go);gq!=gp.wrapper;gq=gq.parentNode){if(!gq||(gq.nodeType==1&&gq.getAttribute("cm-ignore-events")=="true")||(gq.parentNode==gp.sizer&&gq!=gp.mover)){return true}}}function cn(gx,gs,gp,gq){var gt=gx.display;if(!gp&&L(gs).getAttribute("cm-not-content")=="true"){return null}var gw,gu,go=gt.lineSpace.getBoundingClientRect();try{gw=gs.clientX-go.left;gu=gs.clientY-go.top}catch(gs){return null}var gv=fT(gx,gw,gu),gy;if(gq&&gv.xRel==1&&(gy=fk(gx.doc,gv.line).text).length==gv.ch){var gr=bT(gy,gy.length,gx.options.tabSize)-gy.length;gv=W(gv.line,Math.max(0,Math.round((gw-e9(gx.display).left)/dE(gx.display))-gr))}return gv}function ez(gq){var go=this,gp=go.display;if(gp.activeTouch&&gp.input.supportsTouch()||aR(go,gq)){return}gp.shift=gq.shiftKey;if(bb(gp,gq)){if(!c0){gp.scroller.draggable=false;setTimeout(function(){gp.scroller.draggable=true},100)}return}if(l(go,gq)){return}var gr=cn(go,gq);window.focus();switch(fS(gq)){case 1:if(go.state.selectingText){go.state.selectingText(gq)}else{if(gr){ax(go,gq,gr)}else{if(L(gq)==gp.scroller){cG(gq)}}}break;case 2:if(c0){go.state.lastMiddleDown=+new Date}if(gr){f2(go.doc,gr)}setTimeout(function(){gp.input.focus()},20);cG(gq);break;case 3:if(gf){ay(go,gq)}else{al(go)}break}}var dp,de;function ax(gp,gu,gv){if(dL){setTimeout(cv(r,gp),0)}else{gp.curOp.focus=dP()}var gq=+new Date,gs;if(de&&de.time>gq-400&&cf(de.pos,gv)==0){gs="triple"}else{if(dp&&dp.time>gq-400&&cf(dp.pos,gv)==0){gs="double";de={time:gq,pos:gv}}else{gs="single";dp={time:gq,pos:gv}}}var gt=gp.doc.sel,go=b7?gu.metaKey:gu.ctrlKey,gr;if(gp.options.dragDrop&&eP&&!aj(gp)&&gs=="single"&&(gr=gt.contains(gv))>-1&&(cf((gr=gt.ranges[gr]).from(),gv)<0||gv.xRel>0)&&(cf(gr.to(),gv)>0||gv.xRel<0)){a3(gp,gu,gv,go)}else{m(gp,gu,gv,gs,go)}}function a3(gq,gt,gu,gp){var gs=gq.display,gr=+new Date;var go=c2(gq,function(gv){if(c0){gs.scroller.draggable=false}gq.state.draggingText=false;eg(document,"mouseup",go);eg(gs.scroller,"drop",go);if(Math.abs(gt.clientX-gv.clientX)+Math.abs(gt.clientY-gv.clientY)<10){cG(gv);if(!gp&&+new Date-200-1){gq=go[gH]}else{gq=new dZ(gr,gr)}}else{gq=gI.sel.primary();gH=gI.sel.primIndex}if(gG.altKey){gp="rect";if(!gu){gq=new dZ(gr,gr)}gr=cn(gs,gG,true,true);gH=-1}else{if(gp=="double"){var gE=gs.findWordAt(gr);if(gs.display.shift||gI.extend){gq=fA(gI,gq,gE.anchor,gE.head)}else{gq=gE}}else{if(gp=="triple"){var gx=new dZ(W(gr.line,0),fO(gI,W(gr.line+1,0)));if(gs.display.shift||gI.extend){gq=fA(gI,gq,gx.anchor,gx.head)}else{gq=gx}}else{gq=fA(gI,gq,gr)}}}if(!gu){gH=0;bU(gI,new f9([gq],0),M);gt=gI.sel}else{if(gH==-1){gH=go.length;bU(gI,cw(go.concat([gq]),gH),{scroll:false,origin:"*mouse"})}else{if(go.length>1&&go[gH].empty()&&gp=="single"&&!gG.shiftKey){bU(gI,cw(go.slice(0,gH).concat(go.slice(gH+1)),0),{scroll:false,origin:"*mouse"});gt=gI.sel}else{e(gI,gH,gq,M)}}}var gC=gr;function gB(gT){if(cf(gC,gT)==0){return}gC=gT;if(gp=="rect"){var gK=[],gQ=gs.options.tabSize;var gJ=bT(fk(gI,gr.line).text,gr.ch,gQ);var gW=bT(fk(gI,gT.line).text,gT.ch,gQ);var gL=Math.min(gJ,gW),gU=Math.max(gJ,gW);for(var gX=Math.min(gr.line,gT.line),gN=Math.min(gs.lastLine(),Math.max(gr.line,gT.line));gX<=gN;gX++){var gV=fk(gI,gX).text,gM=eu(gV,gL,gQ);if(gL==gU){gK.push(new dZ(W(gX,gM),W(gX,gM)))}else{if(gV.length>gM){gK.push(new dZ(W(gX,gM),W(gX,eu(gV,gU,gQ))))}}}if(!gK.length){gK.push(new dZ(gr,gr))}bU(gI,cw(gt.ranges.slice(0,gH).concat(gK),gH),{origin:"*mouse",scroll:false});gs.scrollIntoView(gT)}else{var gR=gq;var gO=gR.anchor,gS=gT;if(gp!="single"){if(gp=="double"){var gP=gs.findWordAt(gT)}else{var gP=new dZ(W(gT.line,0),fO(gI,W(gT.line+1,0)))}if(cf(gP.anchor,gO)>0){gS=gP.head;gO=ar(gR.from(),gP.anchor)}else{gS=gP.anchor;gO=bx(gR.to(),gP.head)}}var gK=gt.ranges.slice(0);gK[gH]=new dZ(fO(gI,gO),gS);bU(gI,cw(gK,gH),M)}}var gz=gD.wrapper.getBoundingClientRect();var gv=0;function gF(gL){var gJ=++gv;var gN=cn(gs,gL,true,gp=="rect");if(!gN){return}if(cf(gN,gC)!=0){gs.curOp.focus=dP();gB(gN);var gM=b6(gD,gI);if(gN.line>=gM.to||gN.linegz.bottom?20:0;if(gK){setTimeout(c2(gs,function(){if(gv!=gJ){return}gD.scroller.scrollTop+=gK;gF(gL)}),50)}}}function gy(gJ){gs.state.selectingText=false;gv=Infinity;cG(gJ);gD.input.focus();eg(document,"mousemove",gA);eg(document,"mouseup",gw);gI.history.lastSelOrigin=null}var gA=c2(gs,function(gJ){if(!fS(gJ)){gy(gJ)}else{gF(gJ)}});var gw=c2(gs,gy);gs.state.selectingText=gw;bX(document,"mousemove",gA);bX(document,"mouseup",gw)}function gm(gz,gv,gx,gy,gr){try{var gp=gv.clientX,go=gv.clientY}catch(gv){return false}if(gp>=Math.floor(gz.display.gutters.getBoundingClientRect().right)){return false}if(gy){cG(gv)}var gw=gz.display;var gu=gw.lineDiv.getBoundingClientRect();if(go>gu.bottom||!fn(gz,gx)){return bL(gv)}go-=gu.top-gw.viewOffset;for(var gs=0;gs=gp){var gA=bG(gz.doc,go);var gq=gz.options.gutters[gs];gr(gz,gx,gz,gA,gq,gv);return bL(gv)}}}function l(go,gp){return gm(go,gp,"gutterClick",true,ae)}var ag=0;function bk(gu){var gw=this;db(gw);if(aR(gw,gu)||bb(gw.display,gu)){return}cG(gu);if(dL){ag=+new Date}var gv=cn(gw,gu,true),go=gu.dataTransfer.files;if(!gv||aj(gw)){return}if(go&&go.length&&window.FileReader&&window.File){var gq=go.length,gx=Array(gq),gp=0;var gs=function(gA,gz){if(gw.options.allowDropFileTypes&&di(gw.options.allowDropFileTypes,gA.type)==-1){return}var gy=new FileReader;gy.onload=c2(gw,function(){var gB=gy.result;if(/[\x00-\x08\x0e-\x1f]{2}/.test(gB)){gB=""}gx[gz]=gB;if(++gp==gq){gv=fO(gw.doc,gv);var gC={from:gv,to:gv,text:gw.doc.splitLines(gx.join(gw.doc.lineSeparator())),origin:"paste"};bg(gw.doc,gC);fc(gw.doc,eW(gv,cX(gC)))}});gy.readAsText(gA)};for(var gt=0;gt-1){gw.state.draggingText(gu);setTimeout(function(){gw.display.input.focus()},20);return}try{var gx=gu.dataTransfer.getData("Text");if(gx){if(gw.state.draggingText&&!(b7?gu.altKey:gu.ctrlKey)){var gr=gw.listSelections()}et(gw.doc,eW(gv,gv));if(gr){for(var gt=0;gtgx.clientWidth;var gq=gx.scrollHeight>gx.clientHeight;if(!(gC&&gr||gB&&gq)){return}if(gB&&b7&&c0){outer:for(var gz=gs.target,gw=gu.view;gz!=gx;gz=gz.parentNode){for(var gp=0;gp=0;--go){K(gr,{from:gp[go].from,to:gp[go].to,text:go?[""]:gs.text})}}else{K(gr,gs)}}function K(gq,gr){if(gr.text.length==1&&gr.text[0]==""&&cf(gr.from,gr.to)==0){return}var gp=fp(gq,gr);fR(gq,gr,gp,gq.cm?gq.cm.curOp.id:NaN);eh(gq,gr,gp,en(gq,gr));var go=[];d9(gq,function(gt,gs){if(!gs&&di(go,gt.history)==-1){dF(gt.history,gr);go.push(gt.history)}eh(gt,gr,null,en(gt,gr))})}function b8(gz,gx,gB){if(gz.cm&&gz.cm.state.suppressEdits){return}var gw=gz.history,gq,gs=gz.sel;var go=gx=="undo"?gw.done:gw.undone,gA=gx=="undo"?gw.undone:gw.done;for(var gt=0;gt=0;--gt){var gy=gq.changes[gt];gy.origin=gx;if(gr&&!dS(gz,gy,false)){go.length=0;return}gv.push(dv(gz,gy));var gp=gt?fp(gz,gy):fL(go);eh(gz,gy,gp,eb(gz,gy));if(!gt&&gz.cm){gz.cm.scrollIntoView({from:gy.from,to:cX(gy)})}var gu=[];d9(gz,function(gD,gC){if(!gC&&di(gu,gD.history)==-1){dF(gD.history,gy);gu.push(gD.history)}eh(gD,gy,null,eb(gD,gy))})}}function fs(gp,gr){if(gr==0){return}gp.first+=gr;gp.sel=new f9(bS(gp.sel.ranges,function(gs){return new dZ(W(gs.anchor.line+gr,gs.anchor.ch),W(gs.head.line+gr,gs.head.ch))}),gp.sel.primIndex);if(gp.cm){ah(gp.cm,gp.first,gp.first-gr,gr);for(var gq=gp.cm.display,go=gq.viewFrom;gogs.lastLine()){return}if(gt.from.linegq){gt={from:gt.from,to:W(gq,fk(gs,gq).text.length),text:[gt.text[0]],origin:gt.origin}}gt.removed=ga(gs,gt.from,gt.to);if(!gr){gr=fp(gs,gt)}if(gs.cm){aJ(gs.cm,gt,gp)}else{fD(gs,gt,gp)}et(gs,gr,Z)}function aJ(gz,gv,gt){var gy=gz.doc,gu=gz.display,gw=gv.from,gx=gv.to;var go=false,gs=gw.line;if(!gz.options.lineWrapping){gs=bN(x(fk(gy,gw.line)));gy.iter(gs,gx.line+1,function(gB){if(gB==gu.maxLine){go=true;return true}})}if(gy.sel.contains(gv.from,gv.to)>-1){V(gz)}fD(gy,gv,gt,be(gz));if(!gz.options.lineWrapping){gy.iter(gs,gw.line+gv.text.length,function(gC){var gB=er(gC);if(gB>gu.maxLineLength){gu.maxLine=gC;gu.maxLineLength=gB;gu.maxLineChanged=true;go=false}});if(go){gz.curOp.updateMaxLine=true}}gy.frontier=Math.min(gy.frontier,gw.line);ei(gz,400);var gA=gv.text.length-(gx.line-gw.line)-1;if(gv.full){ah(gz)}else{if(gw.line==gx.line&&gv.text.length==1&&!dT(gz.doc,gv)){R(gz,gw.line,"text")}else{ah(gz,gw.line,gx.line+1,gA)}}var gq=fn(gz,"changes"),gr=fn(gz,"change");if(gr||gq){var gp={from:gw,to:gx,text:gv.text,removed:gv.removed,origin:gv.origin};if(gr){ae(gz,"change",gz,gp)}if(gq){(gz.curOp.changeObjs||(gz.curOp.changeObjs=[])).push(gp)}}gz.display.selForContextMenu=null}function a1(gr,gq,gt,gs,go){if(!gs){gs=gt}if(cf(gs,gt)<0){var gp=gs;gs=gt;gt=gp}if(typeof gq=="string"){gq=gr.splitLines(gq)}bg(gr,{from:gt,to:gs,text:gq,origin:go})}function d8(gp,gs){if(aR(gp,"scrollCursorIntoView")){return}var gt=gp.display,gq=gt.sizer.getBoundingClientRect(),go=null;if(gs.top+gq.top<0){go=true}else{if(gs.bottom+gq.top>(window.innerHeight||document.documentElement.clientHeight)){go=false}}if(go!=null&&!fz){var gr=f8("div","\u200b",null,"position: absolute; top: "+(gs.top-gt.viewOffset-fd(gp.display))+"px; height: "+(gs.bottom-gs.top+cT(gp)+gt.barHeight)+"px; left: "+gs.left+"px; width: 2px;");gp.display.lineSpace.appendChild(gr);gr.scrollIntoView(go);gp.display.lineSpace.removeChild(gr)}}function D(gy,gw,gs,gr){if(gr==null){gr=0}for(var gt=0;gt<5;gt++){var gu=false,gx=dV(gy,gw);var go=!gs||gs==gw?gx:dV(gy,gs);var gq=G(gy,Math.min(gx.left,go.left),Math.min(gx.top,go.top)-gr,Math.max(gx.left,go.left),Math.max(gx.bottom,go.bottom)+gr);var gv=gy.doc.scrollTop,gp=gy.doc.scrollLeft;if(gq.scrollTop!=null){N(gy,gq.scrollTop);if(Math.abs(gy.doc.scrollTop-gv)>1){gu=true}}if(gq.scrollLeft!=null){bE(gy,gq.scrollLeft);if(Math.abs(gy.doc.scrollLeft-gp)>1){gu=true}}if(!gu){break}}return gx}function E(go,gq,gs,gp,gr){var gt=G(go,gq,gs,gp,gr);if(gt.scrollTop!=null){N(go,gt.scrollTop)}if(gt.scrollLeft!=null){bE(go,gt.scrollLeft)}}function G(gA,gr,gz,gp,gy){var gw=gA.display,gu=aY(gA.display);if(gz<0){gz=0}var gs=gA.curOp&&gA.curOp.scrollTop!=null?gA.curOp.scrollTop:gw.scroller.scrollTop;var gC=cV(gA),gE={};if(gy-gz>gC){gy=gz+gC}var gq=gA.doc.height+bI(gw);var go=gzgq-gu;if(gzgs+gC){var gx=Math.min(gz,(gv?gq:gy)-gC);if(gx!=gs){gE.scrollTop=gx}}}var gD=gA.curOp&&gA.curOp.scrollLeft!=null?gA.curOp.scrollLeft:gw.scroller.scrollLeft;var gB=dm(gA)-(gA.options.fixedGutter?gw.gutters.offsetWidth:0);var gt=gp-gr>gB;if(gt){gp=gr+gB}if(gr<10){gE.scrollLeft=0}else{if(grgB+gD-3){gE.scrollLeft=gp+(gt?0:10)-gB}}}return gE}function cL(go,gq,gp){if(gq!=null||gp!=null){fH(go)}if(gq!=null){go.curOp.scrollLeft=(go.curOp.scrollLeft==null?go.doc.scrollLeft:go.curOp.scrollLeft)+gq}if(gp!=null){go.curOp.scrollTop=(go.curOp.scrollTop==null?go.doc.scrollTop:go.curOp.scrollTop)+gp}}function fK(go){fH(go);var gp=go.getCursor(),gr=gp,gq=gp;if(!go.options.lineWrapping){gr=gp.ch?W(gp.line,gp.ch-1):gp;gq=W(gp.line,gp.ch+1)}go.curOp.scrollToPos={from:gr,to:gq,margin:go.options.cursorScrollMargin,isCursor:true}}function fH(go){var gq=go.curOp.scrollToPos;if(gq){go.curOp.scrollToPos=null;var gs=dI(go,gq.from),gr=dI(go,gq.to);var gp=G(go,Math.min(gs.left,gr.left),Math.min(gs.top,gr.top)-gq.margin,Math.max(gs.right,gr.right),Math.max(gs.bottom,gr.bottom)+gq.margin);go.scrollTo(gp.scrollLeft,gp.scrollTop)}}function ad(gB,gr,gA,gq){var gz=gB.doc,gp;if(gA==null){gA="add"}if(gA=="smart"){if(!gz.mode.indent){gA="prev"}else{gp=dD(gB,gr)}}var gv=gB.options.tabSize;var gC=fk(gz,gr),gu=bT(gC.text,null,gv);if(gC.stateAfter){gC.stateAfter=null}var go=gC.text.match(/^\s*/)[0],gx;if(!gq&&!/\S/.test(gC.text)){gx=0;gA="not"}else{if(gA=="smart"){gx=gz.mode.indent(gp,gC.text.slice(go.length),gC.text);if(gx==ca||gx>150){if(!gq){return}gA="prev"}}}if(gA=="prev"){if(gr>gz.first){gx=bT(fk(gz,gr-1).text,null,gv)}else{gx=0}}else{if(gA=="add"){gx=gu+gB.options.indentUnit}else{if(gA=="subtract"){gx=gu-gB.options.indentUnit}else{if(typeof gA=="number"){gx=gu+gA}}}}gx=Math.max(0,gx);var gy="",gw=0;if(gB.options.indentWithTabs){for(var gs=Math.floor(gx/gv);gs;--gs){gw+=gv;gy+="\t"}}if(gw=0;gv--){a1(go.doc,"",gs[gv].from,gs[gv].to,"+delete")}fK(go)})}function bw(gG,gs,gA,gz,gu){var gx=gs.line,gy=gs.ch,gF=gA;var gp=fk(gG,gx);var gD=true;function gE(){var gH=gx+gA;if(gH=gG.first+gG.size){return(gD=false)}gx=gH;return gp=fk(gG,gH)}function gC(gI){var gH=(gu?u:ai)(gp,gy,gA,true);if(gH==null){if(!gI&&gE()){if(gu){gy=(gA<0?cS:cE)(gp)}else{gy=gA<0?gp.text.length:0}}else{return(gD=false)}}else{gy=gH}return true}if(gz=="char"){gC()}else{if(gz=="column"){gC(true)}else{if(gz=="word"||gz=="group"){var gB=null,gv=gz=="group";var go=gG.cm&&gG.cm.getHelper(gs,"wordChars");for(var gt=true;;gt=false){if(gA<0&&!gC(!gt)){break}var gq=gp.text.charAt(gy)||"\n";var gr=cA(gq,go)?"w":gv&&gq=="\n"?"n":!gv||/\s/.test(gq)?null:"p";if(gv&&!gt&&!gr){gr="s"}if(gB&&gB!=gr){if(gA<0){gA=1;gC()}break}if(gr){gB=gr}if(gA>0&&!gC(!gt)){break}}}}}var gw=bV(gG,W(gx,gy),gF,true);if(!gD){gw.hitSide=true}return gw}function bq(gw,gr,go,gv){var gu=gw.doc,gt=gr.left,gs;if(gv=="page"){var gq=Math.min(gw.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight);gs=gr.top+go*(gq-(go<0?1.5:0.5)*aY(gw.display))}else{if(gv=="line"){gs=go>0?gr.bottom+3:gr.top-3}}for(;;){var gp=fT(gw,gt,gs);if(!gp.outside){break}if(go<0?gs<=0:gs>=gu.height){gp.hitSide=true;break}gs+=go*5}return gp}H.prototype={constructor:H,focus:function(){window.focus();this.display.input.focus()},setOption:function(gq,gr){var gp=this.options,go=gp[gq];if(gp[gq]==gr&&gq!="mode"){return}gp[gq]=gr;if(bf.hasOwnProperty(gq)){c2(this,bf[gq])(this,gr,go)}},getOption:function(go){return this.options[go]},getDoc:function(){return this.doc},addKeyMap:function(gp,go){this.state.keyMaps[go?"push":"unshift"](f3(gp))},removeKeyMap:function(gp){var gq=this.state.keyMaps;for(var go=0;go0){e(this.doc,gt,new dZ(gv,gq[gt].to()),Z)}}else{if(gu.head.line>gr){ad(this,gu.head.line,gx,true);gr=gu.head.line;if(gt==this.doc.sel.primIndex){fK(this)}}}}}),getTokenAt:function(gp,go){return cq(this,gp,go)},getLineTokens:function(gp,go){return cq(this,W(gp),go,true)},getTokenTypeAt:function(gv){gv=fO(this.doc,gv);var gr=c6(this,fk(this.doc,gv.line));var gt=0,gu=(gr.length-1)/2,gq=gv.ch;var gp;if(gq==0){gp=gr[2]}else{for(;;){var go=(gt+gu)>>1;if((go?gr[go*2-1]:0)>=gq){gu=go}else{if(gr[go*2+1]gr){gp=gr;go=true}}gq=fk(this.doc,gp)}else{gq=gp}return eU(this,gq,{top:0,left:0},gs||"page").top+(go?this.doc.height-bM(gq):0)},defaultTextHeight:function(){return aY(this.display)},defaultCharWidth:function(){return dE(this.display)},setGutterMarker:c8(function(go,gp,gq){return eD(this.doc,go,"gutter",function(gr){var gs=gr.gutterMarkers||(gr.gutterMarkers={});gs[gp]=gq;if(!gq&&eY(gs)){gr.gutterMarkers=null}return true})}),clearGutter:c8(function(gq){var go=this,gr=go.doc,gp=gr.first;gr.iter(function(gs){if(gs.gutterMarkers&&gs.gutterMarkers[gq]){gs.gutterMarkers[gq]=null;R(go,gp,"gutter");if(eY(gs.gutterMarkers)){gs.gutterMarkers=null}}++gp})}),lineInfo:function(go){if(typeof go=="number"){if(!b9(this.doc,go)){return null}var gp=go;go=fk(this.doc,go);if(!go){return null}}else{var gp=bN(go);if(gp==null){return null}}return{line:gp,handle:go,text:go.text,gutterMarkers:go.gutterMarkers,textClass:go.textClass,bgClass:go.bgClass,wrapClass:go.wrapClass,widgets:go.widgets}},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(gt,gq,gv,gr,gx){var gs=this.display;gt=dV(this,fO(this.doc,gt));var gu=gt.bottom,gp=gt.left;gq.style.position="absolute";gq.setAttribute("cm-ignore-events","true");this.display.input.setUneditable(gq);gs.sizer.appendChild(gq);if(gr=="over"){gu=gt.top}else{if(gr=="above"||gr=="near"){var go=Math.max(gs.wrapper.clientHeight,this.doc.height),gw=Math.max(gs.sizer.clientWidth,gs.lineSpace.clientWidth);if((gr=="above"||gt.bottom+gq.offsetHeight>go)&>.top>gq.offsetHeight){gu=gt.top-gq.offsetHeight}else{if(gt.bottom+gq.offsetHeight<=go){gu=gt.bottom}}if(gp+gq.offsetWidth>gw){gp=gw-gq.offsetWidth}}}gq.style.top=gu+"px";gq.style.left=gq.style.right="";if(gx=="right"){gp=gs.sizer.clientWidth-gq.offsetWidth;gq.style.right="0px"}else{if(gx=="left"){gp=0}else{if(gx=="middle"){gp=(gs.sizer.clientWidth-gq.offsetWidth)/2}}gq.style.left=gp+"px"}if(gv){E(this,gp,gu,gp+gq.offsetWidth,gu+gq.offsetHeight)}},triggerOnKeyDown:c8(p),triggerOnKeyPress:c8(cx),triggerOnKeyUp:bi,execCommand:function(go){if(eH.hasOwnProperty(go)){return eH[go].call(null,this)}},triggerElectric:c8(function(go){f1(this,go)}),findPosH:function(gu,gr,gs,gp){var go=1;if(gr<0){go=-1;gr=-gr}for(var gq=0,gt=fO(this.doc,gu);gq0&&go(gr.charAt(gu-1))){--gu}while(gq0.5){X(this)}aE(this,"refresh",this)}),swapDoc:c8(function(gp){var go=this.doc;go.cm=null;ee(this,gp);ak(this);this.display.input.reset();this.scrollTo(gp.scrollLeft,gp.scrollTop);this.curOp.forceScroll=true;ae(this,"swapDoc",this,go);return go}),getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}};by(H);var e7=H.defaults={};var bf=H.optionHandlers={};function s(go,gr,gq,gp){H.defaults[go]=gr;if(gq){bf[go]=gp?function(gs,gu,gt){if(gt!=cc){gq(gs,gu,gt)}}:gq}}var cc=H.Init={toString:function(){return"CodeMirror.Init"}};s("value","",function(go,gp){go.setValue(gp)},true);s("mode",null,function(go,gp){go.doc.modeOption=gp;br(go)},true);s("indentUnit",2,br,true);s("indentWithTabs",false);s("smartIndent",true);s("tabSize",4,function(go){ep(go);ak(go);ah(go)},true);s("lineSeparator",null,function(go,gr){go.doc.lineSep=gr;if(!gr){return}var gq=[],gs=go.doc.first;go.doc.iter(function(gt){for(var gv=0;;){var gu=gt.text.indexOf(gr,gv);if(gu==-1){break}gv=gu+gr.length;gq.push(W(gs,gu))}gs++});for(var gp=gq.length-1;gp>=0;gp--){a1(go.doc,gr,gq[gp],W(gq[gp].line,gq[gp].ch+gr.length))}});s("specialChars",/[\t\u0000-\u0019\u00ad\u200b-\u200f\u2028\u2029\ufeff]/g,function(go,gq,gp){go.state.specialChars=new RegExp(gq.source+(gq.test("\t")?"":"|\t"),"g");if(gp!=H.Init){go.refresh()}});s("specialCharPlaceholder",fh,function(go){go.refresh()},true);s("electricChars",true);s("inputStyle",ej?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},true);s("rtlMoveVisually",!aP);s("wholeLineUpdateBefore",true);s("theme","default",function(go){cO(go);dx(go)},true);s("keyMap","default",function(go,gs,gp){var gq=f3(gs);var gr=gp!=H.Init&&f3(gp);if(gr&&gr.detach){gr.detach(go,gq)}if(gq.attach){gq.attach(go,gr||null)}});s("extraKeys",null);s("lineWrapping",false,eK,true);s("gutters",[],function(go){ce(go.options);dx(go)},true);s("fixedGutter",true,function(go,gp){go.display.gutters.style.left=gp?dY(go.display)+"px":"0";go.refresh()},true);s("coverGutterNextToScrollbar",false,function(go){e2(go)},true);s("scrollbarStyle","native",function(go){aD(go);e2(go);go.display.scrollbars.setScrollTop(go.doc.scrollTop);go.display.scrollbars.setScrollLeft(go.doc.scrollLeft)},true);s("lineNumbers",false,function(go){ce(go.options);dx(go)},true);s("firstLineNumber",1,dx,true);s("lineNumberFormatter",function(go){return go},dx,true);s("showCursorWhenSelecting",false,bC,true);s("resetSelectionOnContextMenu",true);s("lineWiseCopyCut",true);s("readOnly",false,function(go,gp){if(gp=="nocursor"){aV(go);go.display.input.blur();go.display.disabled=true}else{go.display.disabled=false}go.display.input.readOnlyChanged(gp)});s("disableInput",false,function(go,gp){if(!gp){go.display.input.reset()}},true);s("dragDrop",true,f6);s("allowDropFileTypes",null);s("cursorBlinkRate",530);s("cursorScrollMargin",0);s("cursorHeight",1,bC,true);s("singleCursorHeightPerLine",true,bC,true);s("workTime",100);s("workDelay",100);s("flattenSpans",true,ep,true);s("addModeClass",false,ep,true);s("pollInterval",100);s("undoDepth",200,function(go,gp){go.doc.history.undoDepth=gp});s("historyEventDelay",1250);s("viewportMargin",10,function(go){go.refresh()},true);s("maxHighlightLength",10000,ep,true);s("moveInputWithCursor",true,function(go,gp){if(!gp){go.display.input.resetPosition()}});s("tabindex",null,function(go,gp){go.display.input.getField().tabIndex=gp||""});s("autofocus",null);var dt=H.modes={},aS=H.mimeModes={};H.defineMode=function(go,gp){if(!H.defaults.mode&&go!="null"){H.defaults.mode=go}if(arguments.length>2){gp.dependencies=Array.prototype.slice.call(arguments,2)}dt[go]=gp};H.defineMIME=function(gp,go){aS[gp]=go};H.resolveMode=function(go){if(typeof go=="string"&&aS.hasOwnProperty(go)){go=aS[go]}else{if(go&&typeof go.name=="string"&&aS.hasOwnProperty(go.name)){var gp=aS[go.name];if(typeof gp=="string"){gp={name:gp}}go=ck(gp,go);go.name=gp.name}else{if(typeof go=="string"&&/^[\w\-]+\/[\w\-]+\+xml$/.test(go)){return H.resolveMode("application/xml")}}}if(typeof go=="string"){return{name:go}}else{return go||{name:"null"}}};H.getMode=function(gp,go){var go=H.resolveMode(go);var gr=dt[go.name];if(!gr){return H.getMode(gp,"text/plain")}var gs=gr(gp,go);if(dq.hasOwnProperty(go.name)){var gq=dq[go.name];for(var gt in gq){if(!gq.hasOwnProperty(gt)){continue}if(gs.hasOwnProperty(gt)){gs["_"+gt]=gs[gt]}gs[gt]=gq[gt]}}gs.name=go.name;if(go.helperType){gs.helperType=go.helperType}if(go.modeProps){for(var gt in go.modeProps){gs[gt]=go.modeProps[gt]}}return gs};H.defineMode("null",function(){return{token:function(go){go.skipToEnd()}}});H.defineMIME("text/plain","null");var dq=H.modeExtensions={};H.extendMode=function(gq,gp){var go=dq.hasOwnProperty(gq)?dq[gq]:(dq[gq]={});aN(gp,go)};H.defineExtension=function(go,gp){H.prototype[go]=gp};H.defineDocExtension=function(go,gp){at.prototype[go]=gp};H.defineOption=s;var a8=[];H.defineInitHook=function(go){a8.push(go)};var ft=H.helpers={};H.registerHelper=function(gp,go,gq){if(!ft.hasOwnProperty(gp)){ft[gp]=H[gp]={_global:[]}}ft[gp][go]=gq};H.registerGlobalHelper=function(gq,gp,go,gr){H.registerHelper(gq,gp,gr);ft[gq]._global.push({pred:go,val:gr})};var b3=H.copyState=function(gr,go){if(go===true){return go}if(gr.copyState){return gr.copyState(go)}var gq={};for(var gs in go){var gp=go[gs];if(gp instanceof Array){gp=gp.concat([])}gq[gs]=gp}return gq};var b0=H.startState=function(gq,gp,go){return gq.startState?gq.startState(gp,go):true};H.innerMode=function(gq,go){while(gq.innerMode){var gp=gq.innerMode(go);if(!gp||gp.mode==gq){break}go=gp.state;gq=gp.mode}return gp||{mode:gq,state:go}};var eH=H.commands={selectAll:function(go){go.setSelection(W(go.firstLine(),0),W(go.lastLine()),Z)},singleSelection:function(go){go.setSelection(go.getCursor("anchor"),go.getCursor("head"),Z)},killLine:function(go){e1(go,function(gq){if(gq.empty()){var gp=fk(go.doc,gq.head.line).text.length;if(gq.head.ch==gp&&gq.head.line0){gu=new W(gu.line,gu.ch+1);go.replaceRange(gp.charAt(gu.ch-1)+gp.charAt(gu.ch-2),W(gu.line,gu.ch-2),gu,"+transpose")}else{if(gu.line>go.doc.first){var gt=fk(go.doc,gu.line-1).text;if(gt){go.replaceRange(gp.charAt(0)+go.doc.lineSeparator()+gt.charAt(gt.length-1),W(gu.line-1,gt.length-1),W(gu.line,1),"+transpose")}}}}gq.push(new dZ(gu,gu))}go.setSelections(gq)})},newlineAndIndent:function(go){cM(go,function(){var gp=go.listSelections().length;for(var gr=0;gr=this.string.length},sol:function(){return this.pos==this.lineStart},peek:function(){return this.string.charAt(this.pos)||undefined},next:function(){if(this.posgp},eatSpace:function(){var go=this.pos;while(/[\s\u00a0]/.test(this.string.charAt(this.pos))){++this.pos}return this.pos>go},skipToEnd:function(){this.pos=this.string.length},skipTo:function(go){var gp=this.string.indexOf(go,this.pos);if(gp>-1){this.pos=gp;return true}},backUp:function(go){this.pos-=go},column:function(){if(this.lastColumnPos0){return null}if(gq&&gp!==false){this.pos+=gq[0].length}return gq}},current:function(){return this.string.slice(this.start,this.pos)},hideFirstChars:function(gp,go){this.lineStart+=gp;try{return go()}finally{this.lineStart-=gp}}};var a5=0;var P=H.TextMarker=function(gp,go){this.lines=[];this.type=go;this.doc=gp;this.id=++a5};by(P);P.prototype.clear=function(){if(this.explicitlyCleared){return}var gv=this.doc.cm,gp=gv&&!gv.curOp;if(gp){cI(gv)}if(fn(this,"clear")){var gw=this.find();if(gw){ae(this,"clear",gw.from,gw.to)}}var gq=null,gt=null;for(var gr=0;grgv.display.maxLineLength){gv.display.maxLine=go;gv.display.maxLineLength=gs;gv.display.maxLineChanged=true}}}if(gq!=null&&gv&&this.collapsed){ah(gv,gq,gt+1)}this.lines.length=0;this.explicitlyCleared=true;if(this.atomic&&this.doc.cantEdit){this.doc.cantEdit=false;if(gv){eC(gv.doc)}}if(gv){ae(gv,"markerCleared",gv,this)}if(gp){am(gv)}if(this.parent){this.parent.clear()}};P.prototype.find=function(gr,gp){if(gr==null&&this.type=="bookmark"){gr=1}var gu,gt;for(var gq=0;gq0||gx==0&&gr.clearWhenEmpty!==false){return gr}if(gr.replacedWith){gr.collapsed=true;gr.widgetNode=f8("span",[gr.replacedWith],"CodeMirror-widget");if(!gy.handleMouseEvents){gr.widgetNode.setAttribute("cm-ignore-events","true")}if(gy.insertLeft){gr.widgetNode.insertLeft=true}}if(gr.collapsed){if(z(gw,gu.line,gu,gv,gr)||gu.line!=gv.line&&z(gw,gv.line,gu,gv,gr)){throw new Error("Inserting collapsed marker partially overlapping an existing one")}a7=true}if(gr.addToHistory){fR(gw,{from:gu,to:gv,origin:"markText"},gw.sel,NaN)}var gp=gu.line,gt=gw.cm,go;gw.iter(gp,gv.line+1,function(gz){if(gt&&gr.collapsed&&!gt.options.lineWrapping&&x(gz)==gt.display.maxLine){go=true}if(gr.collapsed&&gp!=gu.line){gb(gz,0)}cd(gz,new el(gr,gp==gu.line?gu.ch:null,gp==gv.line?gv.ch:null));++gp});if(gr.collapsed){gw.iter(gu.line,gv.line+1,function(gz){if(fB(gw,gz)){gb(gz,0)}})}if(gr.clearOnEnter){bX(gr,"beforeCursorEnter",function(){gr.clear()})}if(gr.readOnly){gi=true;if(gw.history.done.length||gw.history.undone.length){gw.clearHistory()}}if(gr.collapsed){gr.id=++a5;gr.atomic=true}if(gt){if(go){gt.curOp.updateMaxLine=true}if(gr.collapsed){ah(gt,gu.line,gv.line+1)}else{if(gr.className||gr.title||gr.startStyle||gr.endStyle||gr.css){for(var gq=gu.line;gq<=gv.line;gq++){R(gt,gq,"text")}}}if(gr.atomic){eC(gt.doc)}ae(gt,"markerAdded",gt,gr)}return gr}var y=H.SharedTextMarker=function(gq,gp){this.markers=gq;this.primary=gp;for(var go=0;go=gq:gw.to>gq);(gv||(gv=[])).push(new el(gt,gw.from,gr?null:gw.to))}}}return gv}function aB(gp,gr,gu){if(gp){for(var gs=0,gv;gs=gr:gw.to>gr);if(gq||gw.from==gr&>.type=="bookmark"&&(!gu||gw.marker.insertLeft)){var go=gw.from==null||(gt.inclusiveLeft?gw.from<=gr:gw.from0&&gu){for(var gr=0;gr0){continue}var gx=[gr,1],go=cf(gp.from,gq.from),gw=cf(gp.to,gq.to);if(go<0||!gv.inclusiveLeft&&!go){gx.push({from:gp.from,to:gq.from})}if(gw>0||!gv.inclusiveRight&&!gw){gx.push({from:gq.to,to:gp.to})}gt.splice.apply(gt,gx);gr+=gx.length-1}}return gt}function ge(go){var gq=go.markedSpans;if(!gq){return}for(var gp=0;gp=0&><=0||gx<=0&>>=0){continue}if(gx<=0&&(cf(gy.to,gu)>0||(gp.marker.inclusiveRight&&gs.inclusiveLeft))||gx>=0&&(cf(gy.from,gv)<0||(gp.marker.inclusiveLeft&&gs.inclusiveRight))){return true}}}}function x(gp){var go;while(go=eS(gp)){gp=go.find(-1,true).line}return gp}function g(gq){var go,gp;while(go=ey(gq)){gq=go.find(1,true).line;(gp||(gp=[])).push(gq)}return gp}function aW(gr,gp){var go=fk(gr,gp),gq=x(go);if(go==gq){return gp}return bN(gq)}function d4(gr,gq){if(gq>gr.lastLine()){return gq}var gp=fk(gr,gq),go;if(!fB(gr,gp)){return gq}while(go=ey(gp)){gp=go.find(1,true).line}return bN(gp)+1}function fB(gs,gp){var go=a7&&gp.markedSpans;if(go){for(var gr,gq=0;gqgs.start){return gq}}throw new Error("Mode "+gt.name+" failed to advance stream.")}function cq(gx,gv,gs,gr){function go(gA){return{start:gy.start,end:gy.pos,string:gy.current(),type:gq||null,state:gA?b3(gw.mode,gp):gp}}var gw=gx.doc,gt=gw.mode,gq;gv=fO(gw,gv);var gz=fk(gw,gv.line),gp=dD(gx,gv.line,gs);var gy=new eX(gz.text,gx.options.tabSize),gu;if(gr){gu=[]}while((gr||gy.posgy.options.maxHighlightLength){gq=false;if(gs){dy(gy,gA,gp,gz.pos)}gz.pos=gA.length;go=null}else{go=dj(eE(gt,gz,gp,gC),gr)}if(gC){var gB=gC[0].name;if(gB){go="m-"+(go?gB+" "+go:gB)}}if(!gq||gv!=go){while(gwgy){gw.splice(gu,1,gy,gw[gu+1],gz)}gu+=2;gq=Math.min(gy,gz)}if(!gA){return}if(gt.opaque){gw.splice(gC,gu-gC,gy,"cm-overlay "+gA);gu=gC+2}else{for(;gCgp.options.maxHighlightLength?b3(gp.doc.mode,gr):gr);gq.stateAfter=gr;gq.styles=go.styles;if(go.classes){gq.styleClasses=go.classes}else{if(gq.styleClasses){gq.styleClasses=null}}if(gs===gp.doc.frontier){gp.doc.frontier++}}return gq.styles}function dy(go,gt,gq,gp){var gs=go.doc.mode;var gr=new eX(gt,go.options.tabSize);gr.start=gr.pos=gp||0;if(gt==""){fv(gs,gq)}while(!gr.eol()){eE(gs,gr,gq);gr.start=gr.pos}}var dX={},b1={};function e0(gq,gp){if(!gq||/^\s*$/.test(gq)){return null}var go=gp.addModeClass?b1:dX;return go[gq]||(go[gq]=gq.replace(/\S+/g,"cm-$&"))}function eV(gp,gt){var gu=f8("span",null,null,c0?"padding-right: .1px":null);var gr={pre:f8("pre",[gu],"CodeMirror-line"),content:gu,col:0,pos:0,cm:gp,splitSpaces:(dL||c0)&&gp.getOption("lineWrapping")};gt.measure={};for(var gs=0;gs<=(gt.rest?gt.rest.length:0);gs++){var gq=gs?gt.rest[gs-1]:gt.line,go;gr.pos=0;gr.addToken=t;if(bO(gp.display.measure)&&(go=a(gq))){gr.addToken=U(gr.addToken,go)}gr.map=[];var gv=gt!=gp.display.externalMeasured&&bN(gq);bo(gq,gr,c6(gp,gq,gv));if(gq.styleClasses){if(gq.styleClasses.bgClass){gr.bgClass=fY(gq.styleClasses.bgClass,gr.bgClass||"")}if(gq.styleClasses.textClass){gr.textClass=fY(gq.styleClasses.textClass,gr.textClass||"")}}if(gr.map.length==0){gr.map.push(0,0,gr.content.appendChild(bn(gp.display.measure)))}if(gs==0){gt.measure.map=gr.map;gt.measure.cache={}}else{(gt.measure.maps||(gt.measure.maps=[])).push(gr.map);(gt.measure.caches||(gt.measure.caches=[])).push({})}}if(c0&&/\bcm-tab\b/.test(gr.content.lastChild.className)){gr.content.className="cm-tab-wrap-hack"}aE(gp,"renderLine",gp,gt.line,gr.pre);if(gr.pre.className){gr.textClass=fY(gr.pre.className,gr.textClass||"")}return gr}function fh(gp){var go=f8("span","\u2022","cm-invalidchar");go.title="\\u"+gp.charCodeAt(0).toString(16);go.setAttribute("aria-label",go.title);return go}function t(gz,gu,gE,gB,gx,gG,gt){if(!gu){return}var gD=gz.splitSpaces?gu.replace(/ {3,}/g,cF):gu;var go=gz.cm.state.specialChars,gp=false;if(!go.test(gu)){gz.col+=gu.length;var gC=document.createTextNode(gD);gz.map.push(gz.pos,gz.pos+gu.length,gC);if(dL&&k<9){gp=true}gz.pos+=gu.length}else{var gC=document.createDocumentFragment(),gr=0;while(true){go.lastIndex=gr;var gA=go.exec(gu);var gF=gA?gA.index-gr:gu.length-gr;if(gF){var gw=document.createTextNode(gD.slice(gr,gr+gF));if(dL&&k<9){gC.appendChild(f8("span",[gw]))}else{gC.appendChild(gw)}gz.map.push(gz.pos,gz.pos+gF,gw);gz.col+=gF;gz.pos+=gF}if(!gA){break}gr+=gF+1;if(gA[0]=="\t"){var gy=gz.cm.options.tabSize,gv=gy-gz.col%gy;var gw=gC.appendChild(f8("span",cp(gv),"cm-tab"));gw.setAttribute("role","presentation");gw.setAttribute("cm-text","\t");gz.col+=gv}else{if(gA[0]=="\r"||gA[0]=="\n"){var gw=gC.appendChild(f8("span",gA[0]=="\r"?"\u240d":"\u2424","cm-invalidchar"));gw.setAttribute("cm-text",gA[0]);gz.col+=1}else{var gw=gz.cm.options.specialCharPlaceholder(gA[0]);gw.setAttribute("cm-text",gA[0]);if(dL&&k<9){gC.appendChild(f8("span",[gw]))}else{gC.appendChild(gw)}gz.col+=1}}gz.map.push(gz.pos,gz.pos+1,gw);gz.pos++}}if(gE||gB||gx||gp||gt){var gq=gE||"";if(gB){gq+=gB}if(gx){gq+=gx}var gs=f8("span",[gC],gq,gt);if(gG){gs.title=gG}return gz.content.appendChild(gs)}gz.content.appendChild(gC)}function cF(go){var gp=" ";for(var gq=0;gqgr&&gs.from<=gr){break}}if(gs.to>=gt){return gp(gx,gz,gq,gu,gA,gy,gw)}gp(gx,gz.slice(0,gs.to-gr),gq,gu,null,gy,gw);gu=null;gz=gz.slice(gs.to-gr);gr=gs.to}}}function ac(gp,gr,go,gq){var gs=!gq&&go.widgetNode;if(gs){gp.map.push(gp.pos,gp.pos+gr,gs)}if(!gq&&gp.cm.display.input.needsContentAttribute){if(!gs){gs=gp.content.appendChild(document.createElement("span"))}gs.setAttribute("cm-marker",go.id)}if(gs){gp.cm.display.input.setUneditable(gs);gp.content.appendChild(gs)}gp.pos+=gr}function bo(gx,gE,gw){var gt=gx.markedSpans,gv=gx.text,gC=0;if(!gt){for(var gH=1;gHgs||gD.collapsed&&gG.to==gs&&gG.from==gs)){if(gG.to!=null&&gG.to!=gs&&gL>gG.to){gL=gG.to;gK=""}if(gD.className){go+=" "+gD.className}if(gD.css){gy=gD.css}if(gD.startStyle&&gG.from==gs){gB+=" "+gD.startStyle}if(gD.endStyle&&gG.to==gL){gK+=" "+gD.endStyle}if(gD.title&&!gM){gM=gD.title}if(gD.collapsed&&(!gq||dR(gq.marker,gD)<0)){gq=gG}}else{if(gG.from>gs&&gL>gG.from){gL=gG.from}}}}if(gq&&(gq.from||0)==gs){ac(gE,(gq.to==null?gI+1:gq.to)-gs,gq.marker,gq.from==null);if(gq.to==null){return}if(gq.to==gs){gq=false}}if(!gq&&gu.length){for(var gF=0;gF=gI){break}var gz=Math.min(gI,gL);while(true){if(gA){var gp=gs+gA.length;if(!gq){var gr=gp>gz?gA.slice(0,gz-gs):gA;gE.addToken(gE,gr,gJ?gJ+go:go,gB,gs+gr.length==gL?gK:"",gM,gy)}if(gp>=gz){gA=gA.slice(gz-gs);gs=gz;break}gs=gp;gB=""}gA=gv.slice(gC,gC=gw[gH++]);gJ=e0(gw[gH++],gE.cm.options)}}}function dT(go,gp){return gp.from.ch==0&&gp.to.ch==0&&fL(gp.text)==""&&(!go.cm||go.cm.options.wholeLineUpdateBefore)}function fD(gB,gw,gp,gs){function gC(gE){return gp?gp[gE]:null}function gq(gE,gG,gF){eq(gE,gG,gF,gs);ae(gE,"change",gE,gw)}function go(gH,gF){for(var gG=gH,gE=[];gG1){gB.remove(gA.line+1,gu-1)}gB.insert(gA.line+1,gt)}}}}ae(gB,"change",gB,gw)}function e3(gp){this.lines=gp;this.parent=null;for(var gq=0,go=0;gq1||!(this.children[0] instanceof e3))){var gp=[];this.collapse(gp);this.children=[new e3(gp)];this.children[0].parent=this}},collapse:function(go){for(var gp=0;gp50){while(gv.lines.length>50){var gs=gv.lines.splice(gv.lines.length-25,25);var gr=new e3(gs);gv.height-=gr.height;this.children.splice(gt+1,0,gr);gr.parent=this}this.maybeSpill()}break}gp-=gu}},maybeSpill:function(){if(this.children.length<=10){return}var gr=this;do{var gp=gr.children.splice(gr.children.length-5,5);var gq=new fC(gp);if(!gr.parent){var gs=new fC(gr.children);gs.parent=gr;gr.children=[gs,gq];gr=gs}else{gr.size-=gq.size;gr.height-=gq.height;var go=di(gr.parent.children,gr);gr.parent.children.splice(go+1,0,gq)}gq.parent=gr.parent}while(gr.children.length>10);gr.parent.maybeSpill()},iterN:function(go,gu,gt){for(var gp=0;gp=0;gr--){bg(this,gs[gr])}if(go){fc(this,go)}else{if(this.cm){fK(this.cm)}}}),undo:cD(function(){b8(this,"undo")}),redo:cD(function(){b8(this,"redo")}),undoSelection:cD(function(){b8(this,"undo",true)}),redoSelection:cD(function(){b8(this,"redo",true)}),setExtending:function(go){this.extend=go},getExtending:function(){return this.extend},historySize:function(){var gr=this.history,go=0,gq=0;for(var gp=0;gp=gs.ch)){gr.push(gq.marker.parent||gq.marker)}}}return gr},findMarks:function(gs,gr,go){gs=fO(this,gs);gr=fO(this,gr);var gp=[],gq=gs.line;this.iter(gs.line,gr.line+1,function(gt){var gv=gt.markedSpans;if(gv){for(var gu=0;gugw.to||gw.from==null&&gq!=gs.line||gq==gr.line&&gw.from>gr.ch)&&(!go||go(gw.marker))){gp.push(gw.marker.parent||gw.marker)}}}++gq});return gp},getAllMarks:function(){var go=[];this.iter(function(gq){var gp=gq.markedSpans;if(gp){for(var gr=0;grgp){go=gp;return true}gp-=gs;++gq});return fO(this,W(gq,go))},indexFromPos:function(gp){gp=fO(this,gp);var go=gp.ch;if(gp.linegr){gr=go.from}if(go.to!=null&&go.to=gr.size){throw new Error("There is no line "+(gt+gr.first)+" in the document.")}for(var go=gr;!go.lines;){for(var gp=0;;++gp){var gs=go.children[gp],gq=gs.chunkSize();if(gt1&&!gp.done[gp.done.length-2].ranges){gp.done.pop();return fL(gp.done)}}}}function fR(gu,gs,go,gr){var gq=gu.history;gq.undone.length=0;var gp=+new Date,gv;if((gq.lastOp==gr||gq.lastOrigin==gs.origin&&gs.origin&&((gs.origin.charAt(0)=="+"&&gu.cm&&gq.lastModTime>gp-gu.cm.options.historyEventDelay)||gs.origin.charAt(0)=="*"))&&(gv=eQ(gq,gq.lastOp==gr))){var gw=fL(gv.changes);if(cf(gs.from,gs.to)==0&&cf(gs.from,gw.to)==0){gw.to=cX(gs)}else{gv.changes.push(dv(gu,gs))}}else{var gt=fL(gq.done);if(!gt||!gt.ranges){cN(gu.sel,gq.done)}gv={changes:[dv(gu,gs)],generation:gq.generation};gq.done.push(gv);while(gq.done.length>gq.undoDepth){gq.done.shift();if(!gq.done[0].ranges){gq.done.shift()}}}gq.done.push(go);gq.generation=++gq.maxGeneration;gq.lastModTime=gq.lastSelTime=gp;gq.lastOp=gq.lastSelOp=gr;gq.lastOrigin=gq.lastSelOrigin=gs.origin;if(!gw){aE(gu,"historyAdded")}}function bA(gs,go,gq,gr){var gp=go.charAt(0);return gp=="*"||gp=="+"&&gq.ranges.length==gr.ranges.length&&gq.somethingSelected()==gr.somethingSelected()&&new Date-gs.history.lastSelTime<=(gs.cm?gs.cm.options.historyEventDelay:500)}function gh(gt,gr,go,gq){var gs=gt.history,gp=gq&&gq.origin;if(go==gs.lastSelOp||(gp&&gs.lastSelOrigin==gp&&(gs.lastModTime==gs.lastSelTime&&gs.lastOrigin==gp||bA(gt,gp,fL(gs.done),gr)))){gs.done[gs.done.length-1]=gr}else{cN(gr,gs.done)}gs.lastSelTime=+new Date;gs.lastSelOrigin=gp;gs.lastSelOp=go;if(gq&&gq.clearRedo!==false){fG(gs.undone)}}function cN(gp,go){var gq=fL(go);if(!(gq&&gq.ranges&&gq.equals(gp))){go.push(gp)}}function bY(gp,gt,gs,gr){var go=gt["spans_"+gp.id],gq=0;gp.iter(Math.max(gp.first,gs),Math.min(gp.first+gp.size,gr),function(gu){if(gu.markedSpans){(go||(go=gt["spans_"+gp.id]={}))[gq]=gu.markedSpans}++gq})}function bl(gq){if(!gq){return null}for(var gp=0,go;gp-1){fL(gx)[go]=gv[go];delete gv[go]}}}}}}return gp}function I(gr,gq,gp,go){if(gp0?go.slice():fa}else{return go||fa}}var eg=H.off=function(gs,gq,gr){if(gs.removeEventListener){gs.removeEventListener(gq,gr,false)}else{if(gs.detachEvent){gs.detachEvent("on"+gq,gr)}else{var go=eo(gs,gq,false);for(var gp=0;gp0}function by(go){go.prototype.on=function(gp,gq){bX(this,gp,gq)};go.prototype.off=function(gp,gq){eg(this,gp,gq)}}var dK=30;var ca=H.Pass={toString:function(){return"CodeMirror.Pass"}};var Z={scroll:false},M={origin:"*mouse"},cW={origin:"+move"};function gn(){this.id=null}gn.prototype.set=function(go,gp){clearTimeout(this.id);this.id=setTimeout(gp,go)};var bT=H.countColumn=function(gr,gp,gt,gu,gq){if(gp==null){gp=gr.search(/[^\s\u00a0]/);if(gp==-1){gp=gr.length}}for(var gs=gu||0,gv=gq||0;;){var go=gr.indexOf("\t",gs);if(go<0||go>=gp){return gv+(gp-gs)}gv+=go-gs;gv+=gt-(gv%gt);gs=go+1}};var eu=H.findColumn=function(gs,gr,gt){for(var gu=0,gq=0;;){var gp=gs.indexOf("\t",gu);if(gp==-1){gp=gs.length}var go=gp-gu;if(gp==gs.length||gq+go>=gr){return gu+Math.min(go,gr-gq)}gq+=gp-gu;gq+=gt-(gq%gt);gu=gp+1;if(gq>=gr){return gu}}};var a0=[""];function cp(go){while(a0.length<=go){a0.push(fL(a0)+" ")}return a0[go]}function fL(go){return go[go.length-1]}var dM=function(go){go.select()};if(e5){dM=function(go){go.selectionStart=0;go.selectionEnd=go.value.length}}else{if(dL){dM=function(gp){try{gp.select()}catch(go){}}}}function di(gq,go){for(var gp=0;gp"\x80"&&(go.toUpperCase()!=go.toLowerCase()||bc.test(go))};function cA(go,gp){if(!gp){return fI(go)}if(gp.source.indexOf("\\w")>-1&&fI(go)){return true}return gp.test(go)}function eY(go){for(var gp in go){if(go.hasOwnProperty(gp)&&go[gp]){return false}}return true}var eN=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function fu(go){return go.charCodeAt(0)>=768&&eN.test(go)}function f8(go,gs,gr,gq){var gt=document.createElement(go);if(gr){gt.className=gr}if(gq){gt.style.cssText=gq}if(typeof gs=="string"){gt.appendChild(document.createTextNode(gs))}else{if(gs){for(var gp=0;gp0;--go){gp.removeChild(gp.firstChild)}return gp}function bR(go,gp){return d3(go).appendChild(gp)}var gg=H.contains=function(go,gp){if(gp.nodeType==3){gp=gp.parentNode}if(go.contains){return go.contains(gp)}do{if(gp.nodeType==11){gp=gp.host}if(gp==go){return true}}while(gp=gp.parentNode)};function dP(){var go=document.activeElement;while(go&&go.root&&go.root.activeElement){go=go.root.activeElement}return go}if(dL&&k<11){dP=function(){try{return document.activeElement}catch(go){return document.body}}}function S(go){return new RegExp("(^|\\s)"+go+"(?:$|\\s)\\s*")}var f=H.rmClass=function(gq,go){var gr=gq.className;var gp=S(go).exec(gr);if(gp){var gs=gr.slice(gp.index+gp[0].length);gq.className=gr.slice(0,gp.index)+(gs?gp[1]+gs:"")}};var fF=H.addClass=function(gp,go){var gq=gp.className;if(!S(go).test(gq)){gp.className+=(gq?" ":"")+go}};function fY(gq,go){var gp=gq.split(" ");for(var gr=0;gr2&&!(dL&&k<8)}}var gp=fQ?f8("span","\u200b"):f8("span","\u00a0",null,"display: inline-block; width: 1px; margin-right: -1px");gp.setAttribute("cm-text","");return gp}var fP;function bO(gr){if(fP!=null){return fP}var go=bR(gr,document.createTextNode("A\u062eA"));var gq=cl(go,0,1).getBoundingClientRect();if(!gq||gq.left==gq.right){return false}var gp=cl(go,1,2).getBoundingClientRect();return fP=(gp.right-gq.right<3)}var fX=H.splitLines="\n\nb".split(/\n/).length!=3?function(gt){var gu=0,go=[],gs=gt.length;while(gu<=gs){var gr=gt.indexOf("\n",gu);if(gr==-1){gr=gt.length}var gq=gt.slice(gu,gt.charAt(gr-1)=="\r"?gr-1:gr);var gp=gq.indexOf("\r");if(gp!=-1){go.push(gq.slice(0,gp));gu+=gp+1}else{go.push(gq);gu=gr+1}}return go}:function(go){return go.split(/\r\n?|\n/)};var bs=window.getSelection?function(gp){try{return gp.selectionStart!=gp.selectionEnd}catch(go){return false}}:function(gq){try{var go=gq.ownerDocument.selection.createRange()}catch(gp){}if(!go||go.parentElement()!=gq){return false}return go.compareEndPoints("StartToEnd",go)!=0};var da=(function(){var go=f8("div");if("oncopy" in go){return true}go.setAttribute("oncopy","return;");return typeof go.oncopy=="function"})();var fb=null;function aK(gp){if(fb!=null){return fb}var gq=bR(gp,f8("span","x"));var gr=gq.getBoundingClientRect();var go=cl(gq,0,1).getBoundingClientRect();return fb=Math.abs(gr.left-go.left)>1}var fl=H.keyNames={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:";",61:"=",91:"Mod",92:"Mod",93:"Mod",106:"*",107:"=",109:"-",110:".",111:"/",127:"Delete",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63232:"Up",63233:"Down",63234:"Left",63235:"Right",63272:"Delete",63273:"Home",63275:"End",63276:"PageUp",63277:"PageDown",63302:"Insert"};(function(){for(var go=0;go<10;go++){fl[go+48]=fl[go+96]=String(go)}for(var go=65;go<=90;go++){fl[go]=String.fromCharCode(go)}for(var go=1;go<=12;go++){fl[go+111]=fl[go+63235]="F"+go}})();function d6(go,gu,gt,gs){if(!go){return gs(gu,gt,"ltr")}var gr=false;for(var gq=0;gqgu||gu==gt&&gp.to==gu){gs(Math.max(gp.from,gu),Math.min(gp.to,gt),gp.level==1?"rtl":"ltr");gr=true}}if(!gr){gs(gu,gt,"ltr")}}function dz(go){return go.level%2?go.to:go.from}function gj(go){return go.level%2?go.from:go.to}function cE(gp){var go=a(gp);return go?dz(go[0]):0}function cS(gp){var go=a(gp);if(!go){return gp.text.length}return gj(fL(go))}function bt(gp,gs){var gq=fk(gp.doc,gs);var gt=x(gq);if(gt!=gq){gs=bN(gt)}var go=a(gt);var gr=!go?0:go[0].level%2?cS(gt):cE(gt);return W(gs,gr)}function dQ(gq,gt){var gp,gr=fk(gq.doc,gt);while(gp=ey(gr)){gr=gp.find(1,true).line;gt=null}var go=a(gr);var gs=!go?gr.text.length:go[0].level%2?cE(gr):cS(gr);return W(gt==null?bN(gr):gt,gs)}function dJ(gp,gu){var gt=bt(gp,gu.line);var gq=fk(gp.doc,gt.line);var go=a(gq);if(!go||go[0].level==0){var gs=Math.max(0,gq.text.search(/\S/));var gr=gu.line==gt.line&&gu.ch<=gs&&gu.ch;return W(gt.line,gr?0:gs)}return gt}function an(gp,gq,go){var gr=gp[0].level;if(gq==gr){return true}if(go==gr){return false}return gqgs){return gp}if((gr.from==gs||gr.to==gs)){if(gq==null){gq=gp}else{if(an(go,gr.level,go[gq].level)){if(gr.from!=gr.to){e6=gq}return gp}else{if(gr.from!=gr.to){e6=gp}return gq}}}}return gq}function fj(go,gr,gp,gq){if(!gq){return gr+gp}do{gr+=gp}while(gr>0&&fu(go.text.charAt(gr)));return gr}function u(go,gv,gq,gr){var gs=a(go);if(!gs){return ai(go,gv,gq,gr)}var gu=aG(gs,gv),gp=gs[gu];var gt=fj(go,gv,gp.level%2?-gq:gq,gr);for(;;){if(gt>gp.from&>0)==gp.level%2?gp.to:gp.from}else{gp=gs[gu+=gq];if(!gp){return null}if((gq>0)==gp.level%2){gt=fj(go,gp.to,-1,gr)}else{gt=fj(go,gp.from,1,gr)}}}}function ai(go,gs,gp,gq){var gr=gs+gp;if(gq){while(gr>0&&fu(go.text.charAt(gr))){gr+=gp}}return gr<0||gr>go.text.length?null:gr}var bh=(function(){var gu="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN";var gs="rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmm";function gr(gy){if(gy<=247){return gu.charAt(gy)}else{if(1424<=gy&&gy<=1524){return"R"}else{if(1536<=gy&&gy<=1773){return gs.charAt(gy-1536)}else{if(1774<=gy&&gy<=2220){return"r"}else{if(8192<=gy&&gy<=8203){return"w"}else{if(gy==8204){return"b"}else{return"L"}}}}}}}var go=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/;var gx=/[stwN]/,gq=/[LRr]/,gp=/[Lb1n]/,gt=/[1n]/;var gw="L";function gv(gA,gz,gy){this.level=gA;this.from=gz;this.to=gy}return function(gI){if(!go.test(gI)){return false}var gO=gI.length,gE=[];for(var gN=0,gA;gN