codemirror.min.js 70 KB

1
  1. var CodeMirror=(function(){function o(aA,ax){var bJ={},a6=o.defaults;for(var am in a6){if(a6.hasOwnProperty(am)){bJ[am]=(ax&&ax.hasOwnProperty(am)?ax:a6)[am]}}var ct=bJ.document;var aq=ct.createElement("div");aq.className="CodeMirror"+(bJ.lineWrapping?" CodeMirror-wrap":"");aq.innerHTML='<div style="overflow: hidden; position: relative; width: 3px; height: 0px;"><textarea style="position: absolute; padding: 0; width: 1px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll" tabindex="-1"><div style="position: relative"><div style="position: relative"><div class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative"><div style="position: absolute; width: 100%; height: 0; overflow: hidden; visibility: hidden"></div><pre class="CodeMirror-cursor">&#160;</pre><div></div></div></div></div></div></div>';if(aA.appendChild){aA.appendChild(aq)}else{aA(aq)}var bG=aq.firstChild,a9=bG.firstChild,a7=aq.lastChild,bw=a7.firstChild,bY=bw.firstChild,av=bY.firstChild,aN=av.firstChild,bh=av.nextSibling.firstChild,ai=bh.firstChild,a0=ai.nextSibling,ae=a0.nextSibling;ck();if(/AppleWebKit/.test(navigator.userAgent)&&/Mobile\/\w+/.test(navigator.userAgent)){a9.style.width="0px"}if(!d){bh.draggable=true}if(bJ.tabindex!=null){a9.tabIndex=bJ.tabindex}if(!bJ.gutter&&!bJ.lineNumbers){av.style.display="none"}try{ca("x")}catch(bQ){if(bQ.message.match(/runtime/i)){bQ=new Error("A CodeMirror inside a P-style element does not work in Internet Explorer. (innerHTML bug)")}throw bQ}var bP=new s(),aj=new s(),cx;var bT,cf=new f([new W([new c("")])]),bZ,b1;bC();var cE={from:{line:0,ch:0},to:{line:0,ch:0},inverted:false};var b0,bc,aO,aZ,b5=false;var b7,bO,ao,cu,aD,a3,aG,ch;var a1=0,cy=0,bv=0,bx=0;var bM;var bo="",at,bg=aK();af(function(){aL(bJ.value||"");b7=false})();var aX=new h();m(a7,"mousedown",af(b2));m(a7,"dblclick",af(bF));m(bh,"dragstart",aw);m(bh,"selectstart",K);if(!F){m(a7,"contextmenu",aQ)}m(a7,"scroll",function(){bV([]);if(bJ.fixedGutter){av.style.left=a7.scrollLeft+"px"}if(bJ.onScroll){bJ.onScroll(bR)}});m(window,"resize",function(){bV(true)});m(a9,"keyup",af(b3));m(a9,"input",aE);m(a9,"keydown",af(bU));m(a9,"keypress",af(ba));m(a9,"focus",cC);m(a9,"blur",ar);m(a7,"dragenter",q);m(a7,"dragover",q);m(a7,"drop",af(ac));m(a7,"paste",function(){bm();aE()});m(a9,"paste",aE);m(a9,"cut",af(function(){be("")}));var cd;try{cd=(ct.activeElement==a9)}catch(bQ){}if(cd){setTimeout(cC,20)}else{ar()}function bd(cH){return cH>=0&&cH<cf.size}var bR=aq.CodeMirror={getValue:bK,setValue:af(aL),getSelection:bL,replaceSelection:af(be),focus:function(){bm();cC();aE()},setOption:function(cI,cJ){var cH=bJ[cI];bJ[cI]=cJ;if(cI=="mode"||cI=="indentUnit"){bC()}else{if(cI=="readOnly"&&cJ){ar();a9.blur()}else{if(cI=="theme"){ck()}else{if(cI=="lineWrapping"&&cH!=cJ){af(cn)()}else{if(cI=="tabSize"){af(cD)()}}}}}if(cI=="lineNumbers"||cI=="gutter"||cI=="firstLineNumber"||cI=="theme"){af(a2)()}},getOption:function(cH){return bJ[cH]},undo:af(cB),redo:af(cq),indentLine:af(function(cI,cH){if(bd(cI)){bl(cI,cH==null?"smart":cH?"add":"subtract")}}),indentSelection:af(ci),historySize:function(){return{undo:aX.done.length,redo:aX.undone.length}},clearHistory:function(){aX=new h()},matchBrackets:af(function(){bW(true)}),getTokenAt:af(function(cH){cH=aH(cH);return cm(cH.line).getTokenAt(bT,cb(cH.line),cH.ch)}),getStateAfter:function(cH){cH=bH(cH==null?cf.size-1:cH);return cb(cH+1)},cursorCoords:function(cH){if(cH==null){cH=cE.inverted}return ad(cH?cE.from:cE.to)},charCoords:function(cH){return ad(aH(cH))},coordsChar:function(cH){var cI=Z(bh);return br(cH.x-cI.left,cH.y-cI.top)},markText:af(bp),setBookmark:aI,setMarker:af(bE),clearMarker:af(ah),setLineClass:af(a8),hideLine:af(function(cH){return cr(cH,true)}),showLine:af(function(cH){return cr(cH,false)}),onDeleteLine:function(cH,cI){if(typeof cH=="number"){if(!bd(cH)){return null}cH=cm(cH)}(cH.handlers||(cH.handlers=[])).push(cI);return cH},lineInfo:aJ,addWidget:function(cL,cJ,cN,cK,cP){cL=cz(aH(cL));var cM=cL.yBot,cI=cL.x;cJ.style.position="absolute";bw.appendChild(cJ);if(cK=="over"){cM=cL.y}else{if(cK=="near"){var cH=Math.max(a7.offsetHeight,cf.height*by()),cO=Math.max(bw.clientWidth,bh.clientWidth)-aU();if(cL.yBot+cJ.offsetHeight>cH&&cL.y>cJ.offsetHeight){cM=cL.y-cJ.offsetHeight}if(cI+cJ.offsetWidth>cO){cI=cO-cJ.offsetWidth}}}cJ.style.top=(cM+b9())+"px";cJ.style.left=cJ.style.right="";if(cP=="right"){cI=bw.clientWidth-cJ.offsetWidth;cJ.style.right="0px"}else{if(cP=="left"){cI=0}else{if(cP=="middle"){cI=(bw.clientWidth-cJ.offsetWidth)/2}}cJ.style.left=(cI+aU())+"px"}if(cN){an(cI,cM,cI+cJ.offsetWidth,cM+cJ.offsetHeight)}},lineCount:function(){return cf.size},clipPos:aH,getCursor:function(cH){if(cH==null){cH=cE.inverted}return R(cH?cE.from:cE.to)},somethingSelected:function(){return !T(cE.from,cE.to)},setCursor:af(function(cH,cJ,cI){if(cJ==null&&typeof cH.line=="number"){aV(cH.line,cH.ch,cI)}else{aV(cH,cJ,cI)}}),setSelection:af(function(cJ,cI,cH){(cH?bk:bj)(aH(cJ),aH(cI||cJ))}),getLine:function(cH){if(bd(cH)){return cm(cH).text}},getLineHandle:function(cH){if(bd(cH)){return cm(cH)}},setLine:af(function(cH,cI){if(bd(cH)){bz(cI,{line:cH,ch:0},{line:cH,ch:cm(cH).text.length})}}),removeLine:af(function(cH){if(bd(cH)){bz("",{line:cH,ch:0},aH({line:cH+1,ch:0}))}}),replaceRange:af(bz),getRange:function(cI,cH){return cw(aH(cI),aH(cH))},execCommand:function(cH){return C[cH](bR)},moveH:af(cl),deleteH:af(b4),moveV:af(ce),toggleOverwrite:function(){b5=!b5},posFromIndex:function(cI){var cJ=0,cH;cf.iter(0,cf.size,function(cK){var cL=cK.text.length+1;if(cL>cI){cH=cI;return true}cI-=cL;++cJ});return aH({line:cJ,ch:cH})},indexFromPos:function(cI){if(cI.line<0||cI.ch<0){return 0}var cH=cI.ch;cf.iter(0,cI.line,function(cJ){cH+=cJ.text.length+1});return cH},operation:function(cH){return af(cH)()},refresh:function(){bV(true)},getInputField:function(){return a9},getWrapperElement:function(){return aq},getScrollerElement:function(){return a7},getGutterElement:function(){return av}};function cm(cH){return u(cf,cH)}function aR(cI,cH){aG=true;var cJ=cH-cI.height;for(var cK=cI;cK;cK=cK.parent){cK.height+=cJ}}function aL(cH){var cI={line:0,ch:0};aC(cI,{line:cf.size-1,ch:cm(cf.size-1).text.length},t(cH),cI,cI);b7=true}function bK(cH){var cI=[];cf.iter(0,cf.size,function(cJ){cI.push(cJ.text)});return cI.join("\n")}function b2(cN){aT(cN.shiftKey);for(var cK=g(cN);cK!=aq;cK=cK.parentNode){if(cK.parentNode==bw&&cK!=bY){return}}for(var cK=g(cN);cK!=aq;cK=cK.parentNode){if(cK.parentNode==aN){if(bJ.onGutterClick){bJ.onGutterClick(bR,l(aN.childNodes,cK)+cy,cN)}return K(cN)}}var cH=aS(cN);switch(r(cN)){case 3:if(F&&!D){aQ(cN)}return;case 2:if(cH){aV(cH.line,cH.ch,true)}return}if(!cH){if(g(cN)==a7){K(cN)}return}if(!b1){cC()}var cI=+new Date;if(aO&&aO.time>cI-400&&T(aO.pos,cH)){K(cN);setTimeout(bm,20);return ay(cH.line)}else{if(bc&&bc.time>cI-400&&T(bc.pos,cH)){aO={time:cI,pos:cH};K(cN);return bs(cH)}else{bc={time:cI,pos:cH}}}var cP=cH,cJ;if(x&&!T(cE.from,cE.to)&&!Q(cH,cE.from)&&!Q(cE.to,cH)){if(d){bh.draggable=true}var cM=m(ct,"mouseup",af(function(cQ){if(d){bh.draggable=false}aZ=false;cM();if(Math.abs(cN.clientX-cQ.clientX)+Math.abs(cN.clientY-cQ.clientY)<10){K(cQ);aV(cH.line,cH.ch,true);bm()}}),true);aZ=true;return}K(cN);aV(cH.line,cH.ch,true);function cO(cQ){var cS=aS(cQ,true);if(cS&&!T(cS,cP)){if(!b1){cC()}cP=cS;bk(cH,cS);b7=false;var cR=bn();if(cS.line>=cR.to||cS.line<cR.from){cJ=setTimeout(af(function(){cO(cQ)}),150)}}}var cL=m(ct,"mousemove",af(function(cQ){clearTimeout(cJ);K(cQ);cO(cQ)}),true);var cM=m(ct,"mouseup",af(function(cQ){clearTimeout(cJ);var cR=aS(cQ);if(cR){bk(cH,cR)}K(cQ);bm();b7=true;cL();cM()}),true)}function bF(cH){for(var cJ=g(cH);cJ!=aq;cJ=cJ.parentNode){if(cJ.parentNode==aN){return K(cH)}}var cI=aS(cH);if(!cI){return}aO={time:+new Date,pos:cI};K(cH);bs(cI)}function ac(cO){cO.preventDefault();var cP=aS(cO,true),cH=cO.dataTransfer.files;if(!cP||bJ.readOnly){return}if(cH&&cH.length&&window.FileReader&&window.File){function cL(cU,cT){var cS=new FileReader;cS.onload=function(){cR[cT]=cS.result;if(++cI==cJ){cP=aH(cP);af(function(){var cV=bz(cR.join(""),cP,cP);bk(cP,cV)})()}};cS.readAsText(cU)}var cJ=cH.length,cR=Array(cJ),cI=0;for(var cM=0;cM<cJ;++cM){cL(cH[cM],cM)}}else{try{var cR=cO.dataTransfer.getData("Text");if(cR){var cK=bz(cR,cP,cP);var cQ=cE.from,cN=cE.to;bk(cP,cK);if(aZ){bz("",cQ,cN)}bm()}}catch(cO){}}}function aw(cI){var cH=bL();G(cH);cI.dataTransfer.setDragImage(X,0,0);cI.dataTransfer.setData("Text",cH)}function cs(cM){var cJ=I[cM.keyCode],cL=p[bJ.keyMap].auto,cK,cH;if(cJ==null||cM.altGraphKey){if(cL){bJ.keyMap=cL}return null}if(cM.altKey){cJ="Alt-"+cJ}if(cM.ctrlKey){cJ="Ctrl-"+cJ}if(cM.metaKey){cJ="Cmd-"+cJ}if(cM.shiftKey&&(cK=i("Shift-"+cJ,bJ.extraKeys,bJ.keyMap))){cH=true}else{cK=i(cJ,bJ.extraKeys,bJ.keyMap)}if(typeof cK=="string"){if(C.propertyIsEnumerable(cK)){cK=C[cK]}else{cK=null}}if(cL&&(cK||!H(cM))){bJ.keyMap=cL}if(!cK){return false}if(cH){var cI=b0;b0=null;cK(bR);b0=cI}else{cK(bR)}K(cM);return true}var cp=null;function bU(cJ){if(!b1){cC()}var cH=cJ.keyCode;if(z&&cH==27){cJ.returnValue=false}aT(cH==16||cJ.shiftKey);if(bJ.onKeyEvent&&bJ.onKeyEvent(bR,E(cJ))){return}var cI=cs(cJ);if(window.opera){cp=cI?cJ.keyCode:null;if(!cI&&(D?cJ.metaKey:cJ.ctrlKey)&&cJ.keyCode==88){be("")}}}function ba(cI){if(window.opera&&cI.keyCode==cp){cp=null;K(cI);return}if(bJ.onKeyEvent&&bJ.onKeyEvent(bR,E(cI))){return}if(window.opera&&!cI.which&&cs(cI)){return}if(bJ.electricChars&&bT.electricChars){var cH=String.fromCharCode(cI.charCode==null?cI.keyCode:cI.charCode);if(bT.electricChars.indexOf(cH)>-1){setTimeout(af(function(){bl(cE.to.line,"smart")}),75)}}aE()}function b3(cH){if(bJ.onKeyEvent&&bJ.onKeyEvent(bR,E(cH))){return}if(cH.keyCode==16){b0=null}}function cC(){if(bJ.readOnly){return}if(!b1){if(bJ.onFocus){bJ.onFocus(bR)}b1=true;if(aq.className.search(/\bCodeMirror-focused\b/)==-1){aq.className+=" CodeMirror-focused"}if(!a3){cj(true)}}ab();cv()}function ar(){if(b1){if(bJ.onBlur){bJ.onBlur(bR)}b1=false;aq.className=aq.className.replace(" CodeMirror-focused","")}clearInterval(cx);setTimeout(function(){if(!b1){b0=null}},150)}function aC(cM,cL,cK,cI,cH){if(aX){var cJ=[];cf.iter(cM.line,cL.line+1,function(cN){cJ.push(cN.text)});aX.addChange(cM.line,cK.length,cJ);while(aX.done.length>bJ.undoDepth){aX.done.shift()}}ag(cM,cL,cK,cI,cH)}function bS(cM,cL){var cK=cM.pop();if(cK){var cI=[],cH=cK.start+cK.added;cf.iter(cK.start,cH,function(cN){cI.push(cN.text)});cL.push({start:cK.start,added:cK.old.length,old:cI});var cJ=aH({line:cK.start+cK.old.length-1,ch:N(cI[cI.length-1],cK.old[cK.old.length-1])});ag({line:cK.start,ch:0},{line:cH-1,ch:cm(cH-1).text.length},cK.old,cJ,cJ);b7=true}}function cB(){bS(aX.done,aX.undone)}function cq(){bS(aX.undone,aX.done)}function ag(cW,cL,c2,cH,c3){var c1=false,cK=bo.length;if(!bJ.lineWrapping){cf.iter(cW.line,cL.line,function(c4){if(c4.text.length==cK){c1=true;return true}})}if(cW.line!=cL.line||c2.length>1){aG=true}var cT=cL.line-cW.line,cS=cm(cW.line),cI=cm(cL.line);if(cW.ch==0&&cL.ch==0&&c2[c2.length-1]==""){var cQ=[],cR=null;if(cW.line){cR=cm(cW.line-1);cR.fixMarkEnds(cI)}else{cI.fixMarkStarts()}for(var cY=0,c0=c2.length-1;cY<c0;++cY){cQ.push(c.inheritMarks(c2[cY],cR))}if(cT){cf.remove(cW.line,cT,ch)}if(cQ.length){cf.insert(cW.line,cQ)}}else{if(cS==cI){if(c2.length==1){cS.replace(cW.ch,cL.ch,c2[0])}else{cI=cS.split(cL.ch,c2[c2.length-1]);cS.replace(cW.ch,null,c2[0]);cS.fixMarkEnds(cI);var cQ=[];for(var cY=1,c0=c2.length-1;cY<c0;++cY){cQ.push(c.inheritMarks(c2[cY],cS))}cQ.push(cI);cf.insert(cW.line+1,cQ)}}else{if(c2.length==1){cS.replace(cW.ch,null,c2[0]);cI.replace(null,cL.ch,"");cS.append(cI);cf.remove(cW.line+1,cT,ch)}else{var cQ=[];cS.replace(cW.ch,null,c2[0]);cI.replace(null,cL.ch,c2[c2.length-1]);cS.fixMarkEnds(cI);for(var cY=1,c0=c2.length-1;cY<c0;++cY){cQ.push(c.inheritMarks(c2[cY],cS))}if(cT>1){cf.remove(cW.line+1,cT-1,ch)}cf.insert(cW.line+1,cQ)}}}if(bJ.lineWrapping){var cN=a7.clientWidth/a5()-3;cf.iter(cW.line,cW.line+c2.length,function(c4){if(c4.hidden){return}var c5=Math.ceil(c4.text.length/cN)||1;if(c5!=c4.height){aR(c4,c5)}})}else{cf.iter(cW.line,cY+c2.length,function(c5){var c4=c5.text;if(c4.length>cK){bo=c4;cK=c4.length;at=null;c1=false}});if(c1){cK=0;bo="";at=null;cf.iter(0,cf.size,function(c5){var c4=c5.text;if(c4.length>cK){cK=c4.length;bo=c4}})}}var cJ=[],cP=c2.length-cT-1;for(var cY=0,cV=bZ.length;cY<cV;++cY){var cZ=bZ[cY];if(cZ<cW.line){cJ.push(cZ)}else{if(cZ>cL.line){cJ.push(cZ+cP)}}}var cX=cW.line+Math.min(c2.length,500);co(cW.line,cX);cJ.push(cX);bZ=cJ;bq(100);ao.push({from:cW.line,to:cL.line+1,diff:cP});var cO={from:cW,to:cL,text:c2};if(cu){for(var cM=cu;cM.next;cM=cM.next){}cM.next=cO}else{cu=cO}function cU(c4){return c4<=Math.min(cL.line,cL.line+cP)?c4:c4+cP}bj(cH,c3,cU(cE.from.line),cU(cE.to.line));bw.style.height=(cf.height*by()+2*b9())+"px"}function bz(cI,cL,cK){cL=aH(cL);if(!cK){cK=cL}else{cK=aH(cK)}cI=t(cI);function cJ(cO){if(Q(cO,cL)){return cO}if(!Q(cK,cO)){return cH}var cM=cO.line+cI.length-(cK.line-cL.line)-1;var cN=cO.ch;if(cO.line==cK.line){cN+=cI[cI.length-1].length-(cK.ch-(cK.line==cL.line?cL.ch:0))}return{line:cM,ch:cN}}var cH;ap(cI,cL,cK,function(cM){cH=cM;return{from:cJ(cE.from),to:cJ(cE.to)}});return cH}function be(cH,cI){ap(t(cH),cE.from,cE.to,function(cJ){if(cI=="end"){return{from:cJ,to:cJ}}else{if(cI=="start"){return{from:cE.from,to:cE.from}}else{return{from:cE.from,to:cJ}}}})}function ap(cK,cM,cL,cH){var cJ=cK.length==1?cK[0].length+cM.ch:cK[cK.length-1].length;var cI=cH({line:cM.line+cK.length-1,ch:cJ});aC(cM,cL,cK,cI.from,cI.to)}function cw(cL,cK){var cI=cL.line,cH=cK.line;if(cI==cH){return cm(cI).text.slice(cL.ch,cK.ch)}var cJ=[cm(cI).text.slice(cL.ch)];cf.iter(cI+1,cH,function(cM){cJ.push(cM.text)});cJ.push(cm(cH).text.slice(0,cK.ch));return cJ.join("\n")}function bL(){return cw(cE.from,cE.to)}var bf=false;function ab(){if(bf){return}bP.set(bJ.pollInterval,function(){aB();bu();if(b1){ab()}al()})}function aE(){var cH=false;bf=true;function cI(){aB();var cJ=bu();if(!cJ&&!cH){cH=true;bP.set(60,cI)}else{bf=false;ab()}al()}bP.set(20,cI)}var aY="";function bu(){if(a3||!b1||U(a9)){return false}var cI=a9.value;if(cI==aY){return false}b0=null;var cJ=0,cH=Math.min(aY.length,cI.length);while(cJ<cH&&aY[cJ]==cI[cJ]){++cJ}if(cJ<aY.length){cE.from={line:cE.from.line,ch:cE.from.ch-(aY.length-cJ)}}else{if(b5&&T(cE.from,cE.to)){cE.to={line:cE.to.line,ch:Math.min(cm(cE.to.line).text.length,cE.to.ch+(cI.length-cJ))}}}be(cI.slice(cJ),"end");aY=cI;return true}function cj(cH){if(!T(cE.from,cE.to)){aY="";a9.value=bL();a9.select()}else{if(cH){aY=a9.value=""}}}function bm(){if(!bJ.readOnly){a9.focus()}}function cG(){if(!a0.getBoundingClientRect){return}var cH=a0.getBoundingClientRect();if(z&&cH.top==cH.bottom){return}var cI=window.innerHeight||Math.max(document.body.offsetHeight,document.documentElement.offsetHeight);if(cH.top<0||cH.bottom>cI){a0.scrollIntoView()}}function bX(){var cI=cz(cE.inverted?cE.from:cE.to);var cH=bJ.lineWrapping?Math.min(cI.x,bh.offsetWidth):cI.x;return an(cH,cI.y,cH,cI.yBot)}function an(cJ,cO,cH,cN){var cL=aU(),cU=b9(),cQ=by();cO+=cU;cN+=cU;cJ+=cL;cH+=cL;var cR=a7.clientHeight,cK=a7.scrollTop,cI=false,cT=true;if(cO<cK){a7.scrollTop=Math.max(0,cO-2*cQ);cI=true}else{if(cN>cK+cR){a7.scrollTop=cN+cQ-cR;cI=true}}var cP=a7.clientWidth,cS=a7.scrollLeft;var cM=bJ.fixedGutter?av.clientWidth:0;if(cJ<cS+cM){if(cJ<50){cJ=0}a7.scrollLeft=Math.max(0,cJ-10-cM);cI=true}else{if(cH>cP+cS-3){a7.scrollLeft=cH+10-cP;cI=true;if(cH>bw.clientWidth){cT=false}}}if(cI&&bJ.onScroll){bJ.onScroll(bR)}return cT}function bn(){var cI=by(),cK=a7.scrollTop-b9();var cH=Math.max(0,Math.floor(cK/cI));var cJ=Math.ceil((cK+a7.clientHeight)/cI);return{from:O(cf,cH),to:O(cf,cJ)}}function bV(cQ,cM){if(!a7.clientWidth){cy=bv=a1=0;return}var cK=bn();if(cQ!==true&&cQ.length==0&&cK.from>=cy&&cK.to<=bv){return}var cR=Math.max(cK.from-100,0),cS=Math.min(cf.size,cK.to+100);if(cy<cR&&cR-cy<20){cR=cy}if(bv>cS&&bv-cS<20){cS=Math.min(cf.size,bv)}var cT=cQ===true?[]:bI([{from:cy,to:bv,domStart:0}],cQ);var cP=0;for(var cN=0;cN<cT.length;++cN){var cO=cT[cN];if(cO.from<cR){cO.domStart+=(cR-cO.from);cO.from=cR}if(cO.to>cS){cO.to=cS}if(cO.from>=cO.to){cT.splice(cN--,1)}else{cP+=cO.to-cO.from}}if(cP==cS-cR){return}cT.sort(function(cV,cU){return cV.domStart-cU.domStart});var cJ=by(),cH=av.style.display;ae.style.display=av.style.display="none";aF(cR,cS,cT);ae.style.display="";var cI=cR!=cy||cS!=bv||bx!=a7.clientHeight+cJ;if(cI){bx=a7.clientHeight+cJ}cy=cR;bv=cS;a1=e(cf,cR);bY.style.top=(a1*cJ)+"px";bw.style.height=(cf.height*cJ+2*b9())+"px";if(ae.childNodes.length!=bv-cy){throw new Error("BAD PATCH! "+JSON.stringify(cT)+" size="+(bv-cy)+" nodes="+ae.childNodes.length)}if(bJ.lineWrapping){at=a7.clientWidth;var cL=ae.firstChild;cf.iter(cy,bv,function(cV){if(!cV.hidden){var cU=Math.round(cL.offsetHeight/cJ)||1;if(cV.height!=cU){aR(cV,cU);aG=true}}cL=cL.nextSibling})}else{if(at==null){at=ca(bo)}if(at>a7.clientWidth){bh.style.width=at+"px";bw.style.width="";bw.style.width=a7.scrollWidth+"px"}else{bh.style.width=bw.style.width=""}}av.style.display=cH;if(cI||aG){az()}a4();if(!cM&&bJ.onUpdate){bJ.onUpdate(bR)}return true}function bI(cQ,cO){for(var cL=0,cJ=cO.length||0;cL<cJ;++cL){var cN=cO[cL],cH=[],cP=cN.diff||0;for(var cK=0,cI=cQ.length;cK<cI;++cK){var cM=cQ[cK];if(cN.to<=cM.from&&cN.diff){cH.push({from:cM.from+cP,to:cM.to+cP,domStart:cM.domStart})}else{if(cN.to<=cM.from||cN.from>=cM.to){cH.push(cM)}else{if(cN.from>cM.from){cH.push({from:cM.from,to:cN.from,domStart:cM.domStart})}if(cN.to<cM.to){cH.push({from:cN.to+cP,to:cM.to+cP,domStart:cM.domStart+(cN.to-cM.from)})}}}}cQ=cH}return cQ}function aF(cU,cV,cX){if(!cX.length){ae.innerHTML=""}else{function cH(cZ){var cY=cZ.nextSibling;cZ.parentNode.removeChild(cZ);return cY}var cN=0,cK=ae.firstChild,cI;for(var cO=0;cO<cX.length;++cO){var cW=cX[cO];while(cW.domStart>cN){cK=cH(cK);cN++}for(var cM=0,cQ=cW.to-cW.from;cM<cQ;++cM){cK=cK.nextSibling;cN++}}while(cK){cK=cH(cK)}}var cP=cX.shift(),cK=ae.firstChild,cM=cU;var cT=cE.from.line,cS=cE.to.line,cL=cT<cU&&cS>=cU;var cR=ct.createElement("div"),cJ;cf.iter(cU,cV,function(cY){var c0=null,cZ=null;if(cL){c0=0;if(cS==cM){cL=false;cZ=cE.to.ch}}else{if(cT==cM){if(cS==cM){c0=cE.from.ch;cZ=cE.to.ch}else{cL=true;c0=cE.from.ch}}}if(cP&&cP.to==cM){cP=cX.shift()}if(!cP||cP.from>cM){if(cY.hidden){cR.innerHTML="<pre></pre>"}else{cR.innerHTML=cY.getHTML(c0,cZ,true,bg)}ae.insertBefore(cR.firstChild,cK)}else{cK=cK.nextSibling}++cM})}function az(){if(!bJ.gutter&&!bJ.lineNumbers){return}var cH=bY.offsetHeight,cO=a7.clientHeight;av.style.height=(cH-cO<2?cO:cH)+"px";var cJ=[],cI=cy;cf.iter(cy,Math.max(bv,cy+1),function(cQ){if(cQ.hidden){cJ.push("<pre></pre>")}else{var cP=cQ.gutterMarker;var cS=bJ.lineNumbers?cI+bJ.firstLineNumber:null;if(cP&&cP.text){cS=cP.text.replace("%N%",cS!=null?cS:"")}else{if(cS==null){cS="\u00a0"}}cJ.push((cP&&cP.style?'<pre class="'+cP.style+'">':"<pre>"),cS);for(var cR=1;cR<cQ.height;++cR){cJ.push("<br/>&#160;")}cJ.push("</pre>")}++cI});av.style.display="none";aN.innerHTML=cJ.join("");var cN=String(cf.size).length,cL=aN.firstChild,cM=y(cL),cK="";while(cM.length+cK.length<cN){cK+="\u00a0"}if(cK){cL.insertBefore(ct.createTextNode(cK),cL.firstChild)}av.style.display="";bh.style.marginLeft=av.offsetWidth+"px";aG=false}function a4(){var cK=cE.inverted?cE.from:cE.to,cH=by();var cL=cz(cK,true);var cI=Z(aq),cJ=Z(ae);bG.style.top=(cL.y+cJ.top-cI.top)+"px";bG.style.left=(cL.x+cJ.left-cI.left)+"px";if(T(cE.from,cE.to)){a0.style.top=cL.y+"px";a0.style.left=(bJ.lineWrapping?Math.min(cL.x,bh.offsetWidth):cL.x)+"px";a0.style.display=""}else{a0.style.display="none"}}function aT(cH){if(cH){b0=b0||(cE.inverted?cE.to:cE.from)}else{b0=null}}function bk(cJ,cI){var cH=b0&&aH(b0);if(cH){if(Q(cH,cJ)){cJ=cH}else{if(Q(cI,cH)){cI=cH}}}bj(cJ,cI);bO=true}function bj(cL,cK,cH,cJ){cc=null;if(cH==null){cH=cE.from.line;cJ=cE.to.line}if(T(cE.from,cL)&&T(cE.to,cK)){return}if(Q(cK,cL)){var cI=cK;cK=cL;cL=cI}if(cL.line!=cH){cL=bA(cL,cH,cE.from.ch)}if(cK.line!=cJ){cK=bA(cK,cJ,cE.to.ch)}if(T(cL,cK)){cE.inverted=false}else{if(T(cL,cE.to)){cE.inverted=false}else{if(T(cK,cE.from)){cE.inverted=true}}}if(T(cL,cK)){if(!T(cE.from,cE.to)){ao.push({from:cH,to:cJ+1})}}else{if(T(cE.from,cE.to)){ao.push({from:cL.line,to:cK.line+1})}else{if(!T(cL,cE.from)){if(cL.line<cH){ao.push({from:cL.line,to:Math.min(cK.line,cH)+1})}else{ao.push({from:cH,to:Math.min(cJ,cL.line)+1})}}if(!T(cK,cE.to)){if(cK.line<cJ){ao.push({from:Math.max(cH,cL.line),to:cJ+1})}else{ao.push({from:Math.max(cL.line,cJ),to:cK.line+1})}}}}cE.from=cL;cE.to=cK;aD=true}function bA(cL,cI,cJ){function cK(cO){var cQ=cL.line+cO,cN=cO==1?cf.size:-1;while(cQ!=cN){var cM=cm(cQ);if(!cM.hidden){var cP=cL.ch;if(cP>cJ||cP>cM.text.length){cP=cM.text.length}return{line:cQ,ch:cP}}cQ+=cO}}var cH=cm(cL.line);if(!cH.hidden){return cL}if(cL.line>=cI){return cK(1)||cK(-1)}else{return cK(-1)||cK(1)}}function aV(cH,cJ,cI){var cK=aH({line:cH,ch:cJ||0});(cI?bk:bj)(cK,cK)}function bH(cH){return Math.max(0,Math.min(cH,cf.size-1))}function aH(cJ){if(cJ.line<0){return{line:0,ch:0}}if(cJ.line>=cf.size){return{line:cf.size-1,ch:cm(cf.size-1).text.length}}var cH=cJ.ch,cI=cm(cJ.line).text.length;if(cH==null||cH>cI){return{line:cJ.line,ch:cI}}else{if(cH<0){return{line:cJ.line,ch:0}}else{return cJ}}}function b6(cK,cO){var cL=cE.inverted?cE.from:cE.to,cP=cL.line,cH=cL.ch;var cN=cm(cP);function cI(){for(var cQ=cP+cK,cS=cK<0?-1:cf.size;cQ!=cS;cQ+=cK){var cR=cm(cQ);if(!cR.hidden){cP=cQ;cN=cR;return true}}}function cM(cQ){if(cH==(cK<0?0:cN.text.length)){if(!cQ&&cI()){cH=cK<0?cN.text.length:0}else{return false}}else{cH+=cK}return true}if(cO=="char"){cM()}else{if(cO=="column"){cM(true)}else{if(cO=="word"){var cJ=false;for(;;){if(cK<0){if(!cM()){break}}if(V(cN.text.charAt(cH))){cJ=true}else{if(cJ){if(cK<0){cK=1;cM()}break}}if(cK>0){if(!cM()){break}}}}}}return{line:cP,ch:cH}}function cl(cH,cI){var cJ=cH<0?cE.from:cE.to;if(b0||T(cE.from,cE.to)){cJ=b6(cH,cI)}aV(cJ.line,cJ.ch,true)}function b4(cH,cI){if(!T(cE.from,cE.to)){bz("",cE.from,cE.to)}else{if(cH<0){bz("",b6(cH,cI),cE.to)}else{bz("",cE.from,b6(cH,cI))}}bO=true}var cc=null;function ce(cH,cI){var cK=0,cL=cz(cE.inverted?cE.from:cE.to,true);if(cc!=null){cL.x=cc}if(cI=="page"){cK=a7.clientHeight}else{if(cI=="line"){cK=by()}}var cJ=br(cL.x,cL.y+cK*cH+2);aV(cJ.line,cJ.ch,true);cc=cL.x}function bs(cK){var cI=cm(cK.line).text;var cJ=cK.ch,cH=cK.ch;while(cJ>0&&V(cI.charAt(cJ-1))){--cJ}while(cH<cI.length&&V(cI.charAt(cH))){++cH}bk({line:cK.line,ch:cJ},{line:cK.line,ch:cH})}function ay(cH){bk({line:cH,ch:0},{line:cH,ch:cm(cH).text.length})}function ci(cJ){if(T(cE.from,cE.to)){return bl(cE.from.line,cJ)}var cI=cE.to.line-(cE.to.ch?0:1);for(var cH=cE.from.line;cH<=cI;++cH){bl(cH,cJ)}}function bl(cJ,cQ){if(!cQ){cQ="add"}if(cQ=="smart"){if(!bT.indent){cQ="prev"}else{var cH=cb(cJ)}}var cR=cm(cJ),cL=cR.indentation(bJ.tabSize),cI=cR.text.match(/^\s*/)[0],cN;if(cQ=="prev"){if(cJ){cN=cm(cJ-1).indentation(bJ.tabSize)}else{cN=0}}else{if(cQ=="smart"){cN=bT.indent(cH,cR.text.slice(cI.length),cR.text)}else{if(cQ=="add"){cN=cL+bJ.indentUnit}else{if(cQ=="subtract"){cN=cL-bJ.indentUnit}}}}cN=Math.max(0,cN);var cP=cN-cL;if(!cP){if(cE.from.line!=cJ&&cE.to.line!=cJ){return}var cO=cI}else{var cO="",cM=0;if(bJ.indentWithTabs){for(var cK=Math.floor(cN/bJ.tabSize);cK;--cK){cM+=bJ.tabSize;cO+="\t"}}while(cM<cN){++cM;cO+=" "}}bz(cO,{line:cJ,ch:0},{line:cJ,ch:cI.length})}function bC(){bT=o.getMode(bJ,bJ.mode);cf.iter(0,cf.size,function(cH){cH.stateAfter=null});bZ=[0];bq()}function a2(){var cH=bJ.gutter||bJ.lineNumbers;av.style.display=cH?"":"none";if(cH){aG=true}else{ae.parentNode.style.marginLeft=0}}function cn(cJ,cI){if(bJ.lineWrapping){aq.className+=" CodeMirror-wrap";var cH=a7.clientWidth/a5()-3;cf.iter(0,cf.size,function(cK){if(cK.hidden){return}var cL=Math.ceil(cK.text.length/cH)||1;if(cL!=1){aR(cK,cL)}});bh.style.width=bw.style.width=""}else{aq.className=aq.className.replace(" CodeMirror-wrap","");at=null;bo="";cf.iter(0,cf.size,function(cK){if(cK.height!=1&&!cK.hidden){aR(cK,1)}if(cK.text.length>bo.length){bo=cK.text}})}ao.push({from:0,to:cf.size})}function aK(){for(var cI='<span class="cm-tab">',cH=0;cH<bJ.tabSize;++cH){cI+=" "}return cI+"</span>"}function cD(){bg=aK();bV(true)}function ck(){a7.className=a7.className.replace(/\s*cm-s-\w+/g,"")+bJ.theme.replace(/(^|\s)\s*/g," cm-s-")}function cF(){this.set=[]}cF.prototype.clear=af(function(){var cM=Infinity,cI=-Infinity;for(var cL=0,cO=this.set.length;cL<cO;++cL){var cJ=this.set[cL],cH=cJ.marked;if(!cH||!cJ.parent){continue}var cN=P(cJ);cM=Math.min(cM,cN);cI=Math.max(cI,cN);for(var cK=0;cK<cH.length;++cK){if(cH[cK].set==this.set){cH.splice(cK--,1)}}}if(cM!=Infinity){ao.push({from:cM,to:cI+1})}});cF.prototype.find=function(){var cM,cN;for(var cJ=0,cL=this.set.length;cJ<cL;++cJ){var cP=this.set[cJ],cK=cP.marked;for(var cI=0;cI<cK.length;++cI){var cH=cK[cI];if(cH.set==this.set){if(cH.from!=null||cH.to!=null){var cO=P(cP);if(cO!=null){if(cH.from!=null){cM={line:cO,ch:cH.from}}if(cH.to!=null){cN={line:cO,ch:cH.to}}}}}}}return{from:cM,to:cN}};function bp(cN,cM,cJ){cN=aH(cN);cM=aH(cM);var cH=new cF();function cL(cO,cR,cQ,cP){cm(cO).addMark(new B(cR,cQ,cP,cH.set))}if(cN.line==cM.line){cL(cN.line,cN.ch,cM.ch,cJ)}else{cL(cN.line,cN.ch,null,cJ);for(var cI=cN.line+1,cK=cM.line;cI<cK;++cI){cL(cI,null,null,cJ)}cL(cM.line,null,cM.ch,cJ)}ao.push({from:cN.line,to:cM.line+1});return cH}function aI(cI){cI=aH(cI);var cH=new w(cI.ch);cm(cI.line).addMark(cH);return cH}function bE(cH,cJ,cI){if(typeof cH=="number"){cH=cm(bH(cH))}cH.gutterMarker={text:cJ,style:cI};aG=true;return cH}function ah(cH){if(typeof cH=="number"){cH=cm(bH(cH))}cH.gutterMarker=null;aG=true}function aM(cI,cK){var cJ=cI,cH=cI;if(typeof cI=="number"){cH=cm(bH(cI))}else{cJ=P(cI)}if(cJ==null){return null}if(cK(cH,cJ)){ao.push({from:cJ,to:cJ+1})}else{return null}return cH}function a8(cI,cH){return aM(cI,function(cJ){if(cJ.className!=cH){cJ.className=cH;return true}})}function cr(cI,cH){return aM(cI,function(cJ,cK){if(cJ.hidden!=cH){cJ.hidden=cH;aR(cJ,cH?0:1);if(cH&&(cE.from.line==cK||cE.to.line==cK)){bj(bA(cE.from,cE.from.line,cE.from.ch),bA(cE.to,cE.to.line,cE.to.ch))}return(aG=true)}})}function aJ(cI){if(typeof cI=="number"){if(!bd(cI)){return null}var cJ=cI;cI=cm(cI);if(!cI){return null}}else{var cJ=P(cI);if(cJ==null){return null}}var cH=cI.gutterMarker;return{line:cJ,handle:cI,text:cI.text,markerText:cH&&cH.text,markerClass:cH&&cH.style,lineClass:cI.className}}function ca(cH){ai.innerHTML="<pre><span>x</span></pre>";ai.firstChild.firstChild.firstChild.nodeValue=cH;return ai.firstChild.firstChild.offsetWidth||10}function au(cT,cN){if(cN<=0){return 0}var cK=cm(cT),cQ=cK.text;function cR(cU){ai.innerHTML="<pre><span>"+cK.getHTML(null,null,false,bg,cU)+"</span></pre>";return ai.firstChild.firstChild.offsetWidth}var cO=0,cM=0,cP=cQ.length,cL;var cI=Math.min(cP,Math.ceil(cN/a5()));for(;;){var cJ=cR(cI);if(cJ<=cN&&cI<cP){cI=Math.min(cP,Math.ceil(cI*1.2))}else{cL=cJ;cP=cI;break}}if(cN>cL){return cP}cI=Math.floor(cP*0.8);cJ=cR(cI);if(cJ<cN){cO=cI;cM=cJ}for(;;){if(cP-cO<=1){return(cL-cN>cN-cM)?cO:cP}var cS=Math.ceil((cO+cP)/2),cH=cR(cS);if(cH>cN){cP=cS;cL=cH}else{cO=cS;cM=cH}}}var cg=Math.floor(Math.random()*16777215).toString(16);function bN(cJ,cM){var cH="";if(bJ.lineWrapping){var cI=cJ.text.indexOf(" ",cM+2);cH=G(cJ.text.slice(cM+1,cI<0?cJ.text.length:cI+(z?5:0)))}ai.innerHTML="<pre>"+cJ.getHTML(null,null,false,bg,cM)+'<span id="CodeMirror-temp-'+cg+'">'+G(cJ.text.charAt(cM)||" ")+"</span>"+cH+"</pre>";var cL=document.getElementById("CodeMirror-temp-"+cg);var cO=cL.offsetTop,cN=cL.offsetLeft;if(z&&cM&&cO==0&&cN==0){var cK=document.createElement("span");cK.innerHTML="x";cL.parentNode.insertBefore(cK,cL.nextSibling);cO=cK.offsetTop}return{top:cO,left:cN}}function cz(cM,cK){var cH,cI=by(),cL=cI*(e(cf,cM.line)-(cK?a1:0));if(cM.ch==0){cH=0}else{var cJ=bN(cm(cM.line),cM.ch);cH=cJ.left;if(bJ.lineWrapping){cL+=Math.max(0,cJ.top)}}return{x:cH,y:cL,yBot:cL+cI}}function br(cQ,cP){if(cP<0){cP=0}var cN=by(),cL=a5(),cW=a1+Math.floor(cP/cN);var cR=O(cf,cW);if(cR>=cf.size){return{line:cf.size-1,ch:cm(cf.size-1).text.length}}var cI=cm(cR),cT=cI.text;var cY=bJ.lineWrapping,cO=cY?cW-e(cf,cR):0;if(cQ<=0&&cO==0){return{line:cR,ch:0}}function cX(c0){var c1=bN(cI,c0);if(cY){var c2=Math.round(c1.top/cN);return Math.max(0,c1.left+(c2-cO)*a7.clientWidth)}return c1.left}var cV=0,cU=0,cJ=cT.length,cH;var cS=Math.min(cJ,Math.ceil((cQ+cO*a7.clientWidth*0.9)/cL));for(;;){var cM=cX(cS);if(cM<=cQ&&cS<cJ){cS=Math.min(cJ,Math.ceil(cS*1.2))}else{cH=cM;cJ=cS;break}}if(cQ>cH){return{line:cR,ch:cJ}}cS=Math.floor(cJ*0.8);cM=cX(cS);if(cM<cQ){cV=cS;cU=cM}for(;;){if(cJ-cV<=1){return{line:cR,ch:(cH-cQ>cQ-cU)?cV:cJ}}var cZ=Math.ceil((cV+cJ)/2),cK=cX(cZ);if(cK>cQ){cJ=cZ;cH=cK}else{cV=cZ;cU=cK}}}function ad(cJ){var cH=cz(cJ,true),cI=Z(bh);return{x:cI.left+cH.x,y:cI.top+cH.y,yBot:cI.top+cH.yBot}}var aP,ak,bD;function by(){if(bD==null){bD="<pre>";for(var cI=0;cI<49;++cI){bD+="x<br/>"}bD+="x</pre>"}var cH=ae.clientHeight;if(cH==ak){return aP}ak=cH;ai.innerHTML=bD;aP=ai.firstChild.offsetHeight/50||1;ai.innerHTML="";return aP}var cA,bi=0;function a5(){if(a7.clientWidth==bi){return cA}bi=a7.clientWidth;return(cA=ca("x"))}function b9(){return bh.offsetTop}function aU(){return bh.offsetLeft}function aS(cL,cK){var cJ=Z(a7,true),cH,cM;try{cH=cL.clientX;cM=cL.clientY}catch(cL){return null}if(!cK&&(cH-cJ.left>a7.clientWidth||cM-cJ.top>a7.clientHeight)){return null}var cI=Z(bh,true);return br(cH-cI.left,cM-cI.top)}function aQ(cI){var cM=aS(cI);if(!cM||window.opera){return}if(T(cE.from,cE.to)||Q(cM,cE.from)||!Q(cM,cE.to)){af(aV)(cM.line,cM.ch)}var cL=a9.style.cssText;bG.style.position="absolute";a9.style.cssText="position: fixed; width: 30px; height: 30px; top: "+(cI.clientY-5)+"px; left: "+(cI.clientX-5)+"px; z-index: 1000; background: white; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";a3=true;var cK=a9.value=bL();bm();a9.select();function cH(){var cN=t(a9.value).join("\n");if(cN!=cK){af(be)(cN,"end")}bG.style.position="relative";a9.style.cssText=cL;a3=false;cj(true);ab()}if(F){q(cI);var cJ=m(window,"mouseup",function(){cJ();setTimeout(cH,20)},true)}else{setTimeout(cH,50)}}function cv(){clearInterval(cx);var cH=true;a0.style.visibility="";cx=setInterval(function(){a0.style.visibility=(cH=!cH)?"":"hidden"},650)}var bb={"(":")>",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<"};function bW(cN){var cH=cE.inverted?cE.from:cE.to,cP=cm(cH.line),cI=cH.ch-1;var cM=(cI>=0&&bb[cP.text.charAt(cI)])||bb[cP.text.charAt(++cI)];if(!cM){return}var cQ=cM.charAt(0),cO=cM.charAt(1)==">",c0=cO?1:-1,cV=cP.styles;for(var c1=cI+1,cX=0,cZ=cV.length;cX<cZ;cX+=2){if((c1-=cV[cX].length)<=0){var cY=cV[cX+1];break}}var cK=[cP.text.charAt(cI)],cU=/[(){}[\]]/;function cS(dd,c8,c9){if(!dd.text){return}var dc=dd.styles,c7=cO?0:dd.text.length-1,da;for(var c4=cO?0:dc.length-2,c6=cO?dc.length:-2;c4!=c6;c4+=2*c0){var db=dc[c4];if(dc[c4+1]!=null&&dc[c4+1]!=cY){c7+=c0*db.length;continue}for(var c3=cO?0:db.length-1,c2=cO?db.length:-1;c3!=c2;c3+=c0,c7+=c0){if(c7>=c8&&c7<c9&&cU.test(da=db.charAt(c3))){var c5=bb[da];if(c5.charAt(1)==">"==cO){cK.push(da)}else{if(cK.pop()!=c5.charAt(0)){return{pos:c7,match:false}}else{if(!cK.length){return{pos:c7,match:true}}}}}}}}for(var cX=cH.line,cZ=cO?Math.min(cX+100,cf.size):Math.max(-1,cX-100);cX!=cZ;cX+=c0){var cP=cm(cX),cL=cX==cH.line;var cR=cS(cP,cL&&cO?cI+1:0,cL&&!cO?cI:cP.text.length);if(cR){break}}if(!cR){cR={pos:null,match:false}}var cY=cR.match?"CodeMirror-matchingbracket":"CodeMirror-nonmatchingbracket";var cW=bp({line:cH.line,ch:cI},{line:cH.line,ch:cI+1},cY),cJ=cR.pos!=null&&bp({line:cX,ch:cR.pos},{line:cX,ch:cR.pos+1},cY);var cT=af(function(){cW.clear();cJ&&cJ.clear()});if(cN){setTimeout(cT,800)}else{bM=cT}}function aW(cN){var cM,cJ;for(var cI=cN,cK=cN-40;cI>cK;--cI){if(cI==0){return 0}var cH=cm(cI-1);if(cH.stateAfter){return cI}var cL=cH.indentation(bJ.tabSize);if(cJ==null||cM>cL){cJ=cI-1;cM=cL}}return cJ}function cb(cJ){var cI=aW(cJ),cH=cI&&cm(cI-1).stateAfter;if(!cH){cH=M(bT)}else{cH=k(bT,cH)}cf.iter(cI,cJ,function(cK){cK.highlight(bT,cH,bJ.tabSize);cK.stateAfter=k(bT,cH)});if(cI<cJ){ao.push({from:cI,to:cJ})}if(cJ<cf.size&&!cm(cJ).stateAfter){bZ.push(cJ)}return cH}function co(cJ,cH){var cI=cb(cJ);cf.iter(cJ,cH,function(cK){cK.highlight(bT,cI,bJ.tabSize);cK.stateAfter=k(bT,cI)})}function bB(){var cN=+new Date+bJ.workTime;var cQ=bZ.length;while(bZ.length){if(!cm(cy).stateAfter){var cK=cy}else{var cK=bZ.pop()}if(cK>=cf.size){continue}var cI=aW(cK),cH=cI&&cm(cI-1).stateAfter;if(cH){cH=k(bT,cH)}else{cH=M(bT)}var cM=0,cJ=bT.compareStates,cP=false,cO=cI,cL=false;cf.iter(cO,cf.size,function(cR){var cS=cR.stateAfter;if(+new Date>cN){bZ.push(cO);bq(bJ.workDelay);if(cP){ao.push({from:cK,to:cO+1})}return(cL=true)}var cT=cR.highlight(bT,cH,bJ.tabSize);if(cT){cP=true}cR.stateAfter=k(bT,cH);if(cJ){if(cS&&cJ(cS,cH)){return true}}else{if(cT!==false||!cS){cM=0}else{if(++cM>3&&(!bT.indent||bT.indent(cS,"")==bT.indent(cH,""))){return true}}}++cO});if(cL){return}if(cP){ao.push({from:cK,to:cO+1})}}if(cQ&&bJ.onHighlightComplete){bJ.onHighlightComplete(bR)}}function bq(cH){if(!bZ.length){return}aj.set(cH,af(bB))}function aB(){b7=bO=cu=null;ao=[];aD=false;ch=[]}function al(){var cL=false,cI;if(aD){cL=!bX()}if(ao.length){cI=bV(ao,true)}else{if(aD){a4()}if(aG){az()}}if(cL){bX()}if(aD){cG();cv()}if(b1&&!a3&&(b7===true||(b7!==false&&aD))){cj(bO)}if(aD&&bJ.matchBrackets){setTimeout(af(function(){if(bM){bM();bM=null}if(T(cE.from,cE.to)){bW(false)}}),20)}var cH=cu,cJ=ch;if(aD&&bJ.onCursorActivity){bJ.onCursorActivity(bR)}if(cH&&bJ.onChange&&bR){bJ.onChange(bR,cH)}for(var cK=0;cK<cJ.length;++cK){cJ[cK](bR)}if(cI&&bJ.onUpdate){bJ.onUpdate(bR)}}var b8=0;function af(cH){return function(){if(!b8++){aB()}try{var cI=cH.apply(this,arguments)}finally{if(!--b8){al()}}return cI}}for(var bt in S){if(S.propertyIsEnumerable(bt)&&!bR.propertyIsEnumerable(bt)){bR[bt]=S[bt]}}return bR}o.defaults={value:"",mode:null,theme:"default",indentUnit:2,indentWithTabs:false,tabSize:4,keyMap:"default",extraKeys:null,electricChars:true,onKeyEvent:null,lineWrapping:false,lineNumbers:false,gutter:false,fixedGutter:false,firstLineNumber:1,readOnly:false,onChange:null,onCursorActivity:null,onGutterClick:null,onHighlightComplete:null,onUpdate:null,onFocus:null,onBlur:null,onScroll:null,matchBrackets:false,workTime:100,workDelay:200,pollInterval:100,undoDepth:40,tabindex:null,document:window.document};var D=/Mac/.test(navigator.platform);var L=/Win/.test(navigator.platform);var Y={},J={};o.defineMode=function(ab,ac){if(!o.defaults.mode&&ab!="null"){o.defaults.mode=ab}Y[ab]=ac};o.defineMIME=function(ac,ab){J[ac]=ab};o.getMode=function(ad,ab){if(typeof ab=="string"&&J.hasOwnProperty(ab)){ab=J[ab]}if(typeof ab=="string"){var af=ab,ac={}}else{if(ab!=null){var af=ab.name,ac=ab}}var ae=Y[af];if(!ae){if(window.console){console.warn("No mode "+af+" found, falling back to plain text.")}return o.getMode(ad,"text/plain")}return ae(ad,ac||{})};o.listModes=function(){var ac=[];for(var ab in Y){if(Y.propertyIsEnumerable(ab)){ac.push(ab)}}return ac};o.listMIMEs=function(){var ac=[];for(var ab in J){if(J.propertyIsEnumerable(ab)){ac.push({mime:ab,mode:J[ab]})}}return ac};var S=o.extensions={};o.defineExtension=function(ab,ac){S[ab]=ac};var C=o.commands={selectAll:function(ab){ab.setSelection({line:0,ch:0},{line:ab.lineCount()-1})},killLine:function(ab){var ae=ab.getCursor(true),ad=ab.getCursor(false),ac=!T(ae,ad);if(!ac&&ab.getLine(ae.line).length==ae.ch){ab.replaceRange("",ae,{line:ae.line+1,ch:0})}else{ab.replaceRange("",ae,ac?ad:{line:ae.line})}},deleteLine:function(ab){var ac=ab.getCursor().line;ab.replaceRange("",{line:ac,ch:0},{line:ac})},undo:function(ab){ab.undo()},redo:function(ab){ab.redo()},goDocStart:function(ab){ab.setCursor(0,0,true)},goDocEnd:function(ab){ab.setSelection({line:ab.lineCount()-1},null,true)},goLineStart:function(ab){ab.setCursor(ab.getCursor().line,0,true)},goLineStartSmart:function(ab){var ae=ab.getCursor();var ad=ab.getLine(ae.line),ac=Math.max(0,ad.search(/\S/));ab.setCursor(ae.line,ae.ch<=ac&&ae.ch?0:ac,true)},goLineEnd:function(ab){ab.setSelection({line:ab.getCursor().line},null,true)},goLineUp:function(ab){ab.moveV(-1,"line")},goLineDown:function(ab){ab.moveV(1,"line")},goPageUp:function(ab){ab.moveV(-1,"page")},goPageDown:function(ab){ab.moveV(1,"page")},goCharLeft:function(ab){ab.moveH(-1,"char")},goCharRight:function(ab){ab.moveH(1,"char")},goColumnLeft:function(ab){ab.moveH(-1,"column")},goColumnRight:function(ab){ab.moveH(1,"column")},goWordLeft:function(ab){ab.moveH(-1,"word")},goWordRight:function(ab){ab.moveH(1,"word")},delCharLeft:function(ab){ab.deleteH(-1,"char")},delCharRight:function(ab){ab.deleteH(1,"char")},delWordLeft:function(ab){ab.deleteH(-1,"word")},delWordRight:function(ab){ab.deleteH(1,"word")},indentAuto:function(ab){ab.indentSelection("smart")},indentMore:function(ab){ab.indentSelection("add")},indentLess:function(ab){ab.indentSelection("subtract")},insertTab:function(ab){ab.replaceSelection("\t","end")},transposeChars:function(ab){var ad=ab.getCursor(),ac=ab.getLine(ad.line);if(ad.ch>0&&ad.ch<ac.length-1){ab.replaceRange(ac.charAt(ad.ch)+ac.charAt(ad.ch-1),{line:ad.line,ch:ad.ch-1},{line:ad.line,ch:ad.ch+1})}},newlineAndIndent:function(ab){ab.replaceSelection("\n","end");ab.indentLine(ab.getCursor().line)},toggleOverwrite:function(ab){ab.toggleOverwrite()}};var p=o.keyMap={};p.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharRight",Backspace:"delCharLeft",Tab:"indentMore","Shift-Tab":"indentLess",Enter:"newlineAndIndent",Insert:"toggleOverwrite"};p.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Alt-Up":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Down":"goDocEnd","Ctrl-Left":"goWordLeft","Ctrl-Right":"goWordRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delWordLeft","Ctrl-Delete":"delWordRight","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll",fallthrough:"basic"};p.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goWordLeft","Alt-Right":"goWordRight","Cmd-Left":"goLineStart","Cmd-Right":"goLineEnd","Alt-Backspace":"delWordLeft","Ctrl-Alt-Backspace":"delWordRight","Alt-Delete":"delWordRight","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll",fallthrough:["basic","emacsy"]};p["default"]=D?p.macDefault:p.pcDefault;p.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageUp","Shift-Ctrl-V":"goPageDown","Ctrl-D":"delCharRight","Ctrl-H":"delCharLeft","Alt-D":"delWordRight","Alt-Backspace":"delWordLeft","Ctrl-K":"killLine","Ctrl-T":"transposeChars"};function i(ac,ab,ae){function ad(af,aj,ak){var ah=aj[af];if(ah!=null){return ah}if(ak==null){ak=aj.fallthrough}if(ak==null){return aj.catchall}if(typeof ak=="string"){return ad(af,p[ak])}for(var ag=0,ai=ak.length;ag<ai;++ag){ah=ad(af,p[ak[ag]]);if(ah!=null){return ah}}return null}return ab?ad(ac,ab,ae):ad(ac,p[ae])}function H(ac){var ab=I[ac.keyCode];return ab=="Ctrl"||ab=="Alt"||ab=="Shift"||ab=="Mod"}o.fromTextArea=function(ac,ae){if(!ae){ae={}}ae.value=ac.value;if(!ae.tabindex&&ac.tabindex){ae.tabindex=ac.tabindex}function ag(){ac.value=ab.getValue()}if(ac.form){var af=m(ac.form,"submit",ag,true);if(typeof ac.form.submit=="function"){var ad=ac.form.submit;function ah(){ag();ac.form.submit=ad;ac.form.submit();ac.form.submit=ah}ac.form.submit=ah}}ac.style.display="none";var ab=o(function(ai){ac.parentNode.insertBefore(ai,ac.nextSibling)},ae);ab.save=ag;ab.getTextArea=function(){return ac};ab.toTextArea=function(){ag();ac.parentNode.removeChild(ab.getWrapperElement());ac.style.display="";if(ac.form){af();if(typeof ac.form.submit=="function"){ac.form.submit=ad}}};return ab};function k(ae,ab){if(ab===true){return ab}if(ae.copyState){return ae.copyState(ab)}var ad={};for(var af in ab){var ac=ab[af];if(ac instanceof Array){ac=ac.concat([])}ad[af]=ac}return ad}o.copyState=k;function M(ad,ac,ab){return ad.startState?ad.startState(ac,ab):true}o.startState=M;function a(ab,ac){this.pos=this.start=0;this.string=ab;this.tabSize=ac||8}a.prototype={eol:function(){return this.pos>=this.string.length},sol:function(){return this.pos==0},peek:function(){return this.string.charAt(this.pos)},next:function(){if(this.pos<this.string.length){return this.string.charAt(this.pos++)}},eat:function(ab){var ad=this.string.charAt(this.pos);if(typeof ab=="string"){var ac=ad==ab}else{var ac=ad&&(ab.test?ab.test(ad):ab(ad))}if(ac){++this.pos;return ad}},eatWhile:function(ab){var ac=this.pos;while(this.eat(ab)){}return this.pos>ac},eatSpace:function(){var ab=this.pos;while(/[\s\u00a0]/.test(this.string.charAt(this.pos))){++this.pos}return this.pos>ab},skipToEnd:function(){this.pos=this.string.length},skipTo:function(ab){var ac=this.string.indexOf(ab,this.pos);if(ac>-1){this.pos=ac;return true}},backUp:function(ab){this.pos-=ab},column:function(){return j(this.string,this.start,this.tabSize)},indentation:function(){return j(this.string,null,this.tabSize)},match:function(ae,ac,ab){if(typeof ae=="string"){function af(ag){return ab?ag.toLowerCase():ag}if(af(this.string).indexOf(af(ae),this.pos)==this.pos){if(ac!==false){this.pos+=ae.length}return true}}else{var ad=this.string.slice(this.pos).match(ae);if(ad&&ac!==false){this.pos+=ad[0].length}return ad}},current:function(){return this.string.slice(this.start,this.pos)}};o.StringStream=a;function B(ae,ad,ab,ac){this.from=ae;this.to=ad;this.style=ab;this.set=ac}B.prototype={attach:function(ab){this.set.push(ab)},detach:function(ac){var ab=l(this.set,ac);if(ab>-1){this.set.splice(ab,1)}},split:function(ae,ab){if(this.to<=ae&&this.to!=null){return null}var ad=this.from<ae||this.from==null?null:this.from-ae+ab;var ac=this.to==null?null:this.to-ae+ab;return new B(ad,ac,this.style,this.set)},dup:function(){return new B(null,null,this.style,this.set)},clipTo:function(ac,af,ab,ae,ad){if(this.from!=null&&this.from>=af){this.from=Math.max(ae,this.from)+ad}if(this.to!=null&&this.to>af){this.to=ae<this.to?this.to+ad:af}if(ac&&ae>this.from&&(ae<this.to||this.to==null)){this.from=null}if(ab&&(af<this.to||this.to==null)&&(af>this.from||this.from==null)){this.to=null}},isDead:function(){return this.from!=null&&this.to!=null&&this.from>=this.to},sameSet:function(ab){return this.set==ab.set}};function w(ab){this.from=ab;this.to=ab;this.line=null}w.prototype={attach:function(ab){this.line=ab},detach:function(ab){if(this.line==ab){this.line=null}},split:function(ac,ab){if(ac<this.from){this.from=this.to=(this.from-ac)+ab;return this}},isDead:function(){return this.from>this.to},clipTo:function(ac,af,ab,ae,ad){if((ac||af<this.from)&&(ab||ae>this.to)){this.from=0;this.to=-1}else{if(this.from>af){this.from=this.to=Math.max(ae,this.from)+ad}}},sameSet:function(ab){return false},find:function(){if(!this.line||!this.line.parent){return null}return{line:P(this.line),ch:this.from}},clear:function(){if(this.line){var ab=l(this.line.marked,this);if(ab!=-1){this.line.marked.splice(ab,1)}this.line=null}}};function c(ac,ab){this.styles=ab||[ac,null];this.text=ac;this.height=1;this.marked=this.gutterMarker=this.className=this.handlers=null;this.stateAfter=this.parent=this.hidden=null}c.inheritMarks=function(af,ai){var ae=new c(af),ab=ai&&ai.marked;if(ab){for(var ad=0;ad<ab.length;++ad){if(ab[ad].to==null&&ab[ad].style){var ac=ae.marked||(ae.marked=[]),ah=ab[ad];var ag=ah.dup();ac.push(ag);ag.attach(ae)}}}return ae};c.prototype={replace:function(af,ae,ai){var aj=[],ad=this.marked,ag=ae==null?this.text.length:ae;aa(0,af,this.styles,aj);if(ai){aj.push(ai,null)}aa(ag,this.text.length,this.styles,aj);this.styles=aj;this.text=this.text.slice(0,af)+ai+this.text.slice(ag);this.stateAfter=null;if(ad){var ah=ai.length-(ag-af);for(var ac=0,ab=ad[ac];ac<ad.length;++ac){ab.clipTo(af==null,af||0,ae==null,ag,ah);if(ab.isDead()){ab.detach(this);ad.splice(ac--,1)}}}},split:function(ai,ag){var ae=[ag,null],ac=this.marked;aa(ai,this.text.length,this.styles,ae);var ad=new c(ag+this.text.slice(ai),ae);if(ac){for(var af=0;af<ac.length;++af){var ah=ac[af];var ab=ah.split(ai,ag.length);if(ab){if(!ad.marked){ad.marked=[]}ad.marked.push(ab);ab.attach(ad)}}}return ad},append:function(ac){var ah=this.text.length,ab=ac.marked,af=this.marked;this.text+=ac.text;aa(0,ac.text.length,ac.styles,this.styles);if(af){for(var ag=0;ag<af.length;++ag){if(af[ag].to==null){af[ag].to=ah}}}if(ab&&ab.length){if(!af){this.marked=af=[]}outer:for(var ag=0;ag<ab.length;++ag){var ai=ab[ag];if(!ai.from){for(var ae=0;ae<af.length;++ae){var ad=af[ae];if(ad.to==ah&&ad.sameSet(ai)){ad.to=ai.to==null?null:ai.to+ah;if(ad.isDead()){ad.detach(this);ab.splice(ag--,1)}continue outer}}}af.push(ai);ai.attach(this);ai.from+=ah;if(ai.to!=null){ai.to+=ah}}}},fixMarkEnds:function(ac){var ab=this.marked,af=ac.marked;if(!ab){return}for(var ae=0;ae<ab.length;++ae){var ah=ab[ae],ag=ah.to==null;if(ag&&af){for(var ad=0;ad<af.length;++ad){if(af[ad].sameSet(ah)){ag=false;break}}}if(ag){ah.to=this.text.length}}},fixMarkStarts:function(){var ab=this.marked;if(!ab){return}for(var ac=0;ac<ab.length;++ac){if(ab[ac].from==null){ab[ac].from=0}}},addMark:function(ab){ab.attach(this);if(this.marked==null){this.marked=[]}this.marked.push(ab);this.marked.sort(function(ad,ac){return(ad.from||0)-(ac.from||0)})},highlight:function(ag,ac,ah){var ak=new a(this.text,ah),al=this.styles,ai=0;var af=false,ad=al[0],aj;if(this.text==""&&ag.blankLine){ag.blankLine(ac)}while(!ak.eol()){var ab=ag.token(ak,ac);var ae=this.text.slice(ak.start,ak.pos);ak.start=ak.pos;if(ai&&al[ai-1]==ab){al[ai-2]+=ae}else{if(ae){if(!af&&(al[ai+1]!=ab||(ai&&al[ai-2]!=aj))){af=true}al[ai++]=ae;al[ai++]=ab;aj=ad;ad=al[ai]}}if(ak.pos>5000){al[ai++]=this.text.slice(ak.pos);al[ai++]=null;break}}if(al.length!=ai){al.length=ai;af=true}if(ai&&al[ai-2]!=aj){af=true}return af||(al.length<5&&this.text.length<10?null:false)},getTokenAt:function(ag,ae,ad){var ab=this.text,af=new a(ab);while(af.pos<ad&&!af.eol()){af.start=af.pos;var ac=ag.token(af,ae)}return{start:af.start,end:af.pos,string:af.current(),className:ac||null,state:ae}},indentation:function(ab){return j(this.text,null,ab)},getHTML:function(ap,au,af,am,ar){var ai=[],ae=true;if(af){ai.push(this.className?'<pre class="'+this.className+'">':"<pre>")}function av(aE,aD){if(!aE){return}if(ae&&z&&aE.charAt(0)==" "){aE="\u00a0"+aE.slice(1)}ae=false;if(aD){ai.push('<span class="',aD,'">',G(aE).replace(/\t/g,am),"</span>")}else{ai.push(G(aE).replace(/\t/g,am))}}var ao=this.styles,ag=this.text,an=this.marked;if(ap==au){ap=null}var ax=ag.length;if(ar!=null){ax=Math.min(ar,ax)}if(!ag&&ar==null){av(" ",ap!=null&&au==null?"CodeMirror-selected":null)}else{if(!an&&ap==null){for(var aw=0,aj=0;aj<ax;aw+=2){var aq=ao[aw],ay=ao[aw+1],at=aq.length;if(aj+at>ax){aq=aq.slice(0,ax-aj)}aj+=at;av(aq,ay&&"cm-"+ay)}}else{var ad=0,aw=0,al="",ay,aB=0;var az=-1,ah=null;function aA(){if(an){az+=1;ah=(az<an.length)?an[az]:null}}aA();while(ad<ax){var ak=ax;var aC="";if(ap!=null){if(ap>ad){ak=ap}else{if(au==null||au>ad){aC=" CodeMirror-selected";if(au!=null){ak=Math.min(ak,au)}}}}while(ah&&ah.to!=null&&ah.to<=ad){aA()}if(ah){if(ah.from>ad){ak=Math.min(ak,ah.from)}else{aC+=" "+ah.style;if(ah.to!=null){ak=Math.min(ak,ah.to)}}}for(;;){var ac=ad+al.length;var ab=ay;if(aC){ab=ay?ay+aC:aC}av(ac>ak?al.slice(0,ak-ad):al,ab);if(ac>=ak){al=al.slice(ak-ad);ad=ak;break}ad=ac;al=ao[aw++];ay="cm-"+ao[aw++]}}if(ap!=null&&au==null){av(" ","CodeMirror-selected")}}}if(af){ai.push("</pre>")}return ai.join("")},cleanUp:function(){this.parent=null;if(this.marked){for(var ab=0,ac=this.marked.length;ab<ac;++ab){this.marked[ab].detach(this)}}}};function aa(ah,ai,ab,aj){for(var af=0,ag=0,ac=0;ag<ai;af+=2){var ad=ab[af],ae=ag+ad.length;if(ac==0){if(ae>ah){aj.push(ad.slice(ah-ag,Math.min(ad.length,ai-ag)),ab[af+1])}if(ae>=ah){ac=1}}else{if(ac==1){if(ae>ai){aj.push(ad.slice(0,ai-ag),ab[af+1])}else{aj.push(ad,ab[af+1])}}}ag=ae}}function W(ac){this.lines=ac;this.parent=null;for(var ad=0,ae=ac.length,ab=0;ad<ae;++ad){ac[ad].parent=this;ab+=ac[ad].height}this.height=ab}W.prototype={chunkSize:function(){return this.lines.length},remove:function(ab,ah,af){for(var ae=ab,ag=ab+ah;ae<ag;++ae){var ac=this.lines[ae];this.height-=ac.height;ac.cleanUp();if(ac.handlers){for(var ad=0;ad<ac.handlers.length;++ad){af.push(ac.handlers[ad])}}}this.lines.splice(ab,ah)},collapse:function(ab){ab.splice.apply(ab,[ab.length,0].concat(this.lines))},insertHeight:function(ac,ad,ab){this.height+=ab;this.lines.splice.apply(this.lines,[ac,0].concat(ad));for(var ae=0,af=ad.length;ae<af;++ae){ad[ae].parent=this}},iterN:function(ab,ae,ad){for(var ac=ab+ae;ab<ac;++ab){if(ad(this.lines[ab])){return true}}}};function f(ae){this.children=ae;var ad=0,ab=0;for(var ac=0,ag=ae.length;ac<ag;++ac){var af=ae[ac];ad+=af.chunkSize();ab+=af.height;af.parent=this}this.size=ad;this.height=ab;this.parent=null}f.prototype={chunkSize:function(){return this.size},remove:function(ad,ac,ag){this.size-=ac;for(var ae=0;ae<this.children.length;++ae){var ab=this.children[ae],ah=ab.chunkSize();if(ad<ah){var af=Math.min(ac,ah-ad),ai=ab.height;ab.remove(ad,af,ag);this.height-=ai-ab.height;if(ah==af){this.children.splice(ae--,1);ab.parent=null}if((ac-=af)==0){break}ad=0}else{ad-=ah}}if(this.size-ac<25){var aj=[];this.collapse(aj);this.children=[new W(aj)]}},collapse:function(ab){for(var ac=0,ad=this.children.length;ac<ad;++ac){this.children[ac].collapse(ab)}},insert:function(ac,ad){var ab=0;for(var ae=0,af=ad.length;ae<af;++ae){ab+=ad[ae].height}this.insertHeight(ac,ad,ab)},insertHeight:function(ac,aj,ai){this.size+=aj.length;this.height+=ai;for(var ad=0,af=this.children.length;ad<af;++ad){var ab=this.children[ad],ag=ab.chunkSize();if(ac<=ag){ab.insertHeight(ac,aj,ai);if(ab.lines&&ab.lines.length>50){while(ab.lines.length>50){var ae=ab.lines.splice(ab.lines.length-25,25);var ah=new W(ae);ab.height-=ah.height;this.children.splice(ad+1,0,ah);ah.parent=this}this.maybeSpill()}break}ac-=ag}},maybeSpill:function(){if(this.children.length<=10){return}var ae=this;do{var ac=ae.children.splice(ae.children.length-5,5);var ad=new f(ac);if(!ae.parent){var af=new f(ae.children);af.parent=ae;ae.children=[af,ad];ae=af}else{ae.size-=ad.size;ae.height-=ad.height;var ab=l(ae.parent.children,ae);ae.parent.children.splice(ab+1,0,ad)}ad.parent=ae.parent}while(ae.children.length>10);ae.parent.maybeSpill()},iter:function(ad,ac,ab){this.iterN(ad,ac-ad,ab)},iterN:function(ab,ai,ah){for(var ac=0,af=this.children.length;ac<af;++ac){var ag=this.children[ac],ae=ag.chunkSize();if(ab<ae){var ad=Math.min(ai,ae-ab);if(ag.iterN(ab,ad,ah)){return true}if((ai-=ad)==0){break}ab=0}else{ab-=ae}}}};function u(ab,af){while(!ab.lines){for(var ac=0;;++ac){var ae=ab.children[ac],ad=ae.chunkSize();if(af<ad){ab=ae;break}af-=ad}}return ab.lines[af]}function P(ab){if(ab.parent==null){return null}var ag=ab.parent,af=l(ag.lines,ab);for(var ac=ag.parent;ac;ag=ac,ac=ac.parent){for(var ad=0,ae=ac.children.length;;++ad){if(ac.children[ad]==ag){break}af+=ac.children[ad].chunkSize()}}return af}function O(ah,af){var ad=0;outer:do{for(var ae=0,ag=ah.children.length;ae<ag;++ae){var ac=ah.children[ae],ab=ac.height;if(af<ab){ah=ac;continue outer}af-=ab;ad+=ac.chunkSize()}return ad}while(!ah.lines);for(var ae=0,ag=ah.lines.length;ae<ag;++ae){var aj=ah.lines[ae],ai=aj.height;if(af<ai){break}af-=ai}return ad+ae}function e(ab,ah){var ad=0;outer:do{for(var ac=0,af=ab.children.length;ac<af;++ac){var ag=ab.children[ac],ae=ag.chunkSize();if(ah<ae){ab=ag;continue outer}ah-=ae;ad+=ag.height}return ad}while(!ab.lines);for(var ac=0;ac<ah;++ac){ad+=ab.lines[ac].height}return ad}function h(){this.time=0;this.done=[];this.undone=[]}h.prototype={addChange:function(ai,ad,ab){this.undone.length=0;var ah=+new Date,af=this.done[this.done.length-1];if(ah-this.time>400||!af||af.start>ai+ad||af.start+af.added<ai-af.added+af.old.length){this.done.push({start:ai,added:ad,old:ab})}else{var ae=0;if(ai<af.start){for(var ac=af.start-ai-1;ac>=0;--ac){af.old.unshift(ab[ac])}af.added+=af.start-ai;af.start=ai}else{if(af.start<ai){ae=ai-af.start;ad+=ae}}for(var ac=af.added-ae,ag=ab.length;ac<ag;++ac){af.old.push(ab[ac])}if(af.added<ad){af.added=ad}}this.time=ah}};function A(){q(this)}function E(ab){if(!ab.stop){ab.stop=A}return ab}function K(ab){if(ab.preventDefault){ab.preventDefault()}else{ab.returnValue=false}}function v(ab){if(ab.stopPropagation){ab.stopPropagation()}else{ab.cancelBubble=true}}function q(ab){K(ab);v(ab)}o.e_stop=q;o.e_preventDefault=K;o.e_stopPropagation=v;function g(ab){return ab.target||ab.srcElement}function r(ab){if(ab.which){return ab.which}else{if(ab.button&1){return 1}else{if(ab.button&2){return 3}else{if(ab.button&4){return 2}}}}}function m(ae,ad,ac,ab){if(typeof ae.addEventListener=="function"){ae.addEventListener(ad,ac,false);if(ab){return function(){ae.removeEventListener(ad,ac,false)}}}else{var af=function(ag){ac(ag||window.event)};ae.attachEvent("on"+ad,af);if(ab){return function(){ae.detachEvent("on"+ad,af)}}}}o.connect=m;function s(){this.id=null}s.prototype={set:function(ab,ac){clearTimeout(this.id);this.id=setTimeout(ac,ab)}};var x=function(){if(/MSIE [1-8]\b/.test(navigator.userAgent)){return false}var ab=document.createElement("div");return"draggable" in ab}();var F=/gecko\/\d{7}/i.test(navigator.userAgent);var z=/MSIE \d/.test(navigator.userAgent);var d=/WebKit\//.test(navigator.userAgent);var b="\n";(function(){var ab=document.createElement("textarea");ab.value="foo\nbar";if(ab.value.indexOf("\r")>-1){b="\r\n"}}());function j(ac,ab,ae){if(ab==null){ab=ac.search(/[^\s\u00a0]/);if(ab==-1){ab=ac.length}}for(var ad=0,af=0;ad<ab;++ad){if(ac.charAt(ad)=="\t"){af+=ae-(af%ae)}else{++af}}return af}function n(ab){if(ab.currentStyle){return ab.currentStyle}return window.getComputedStyle(ab,null)}function Z(ac,ak){var ae=ac.ownerDocument.body;var aj=0,ai=0,ag=false;for(var ab=ac;ab;ab=ab.offsetParent){var ah=ab.offsetLeft,ad=ab.offsetTop;if(ab==ae){aj+=Math.abs(ah);ai+=Math.abs(ad)}else{aj+=ah,ai+=ad}if(ak&&n(ab).position=="fixed"){ag=true}}var af=ak&&!ag?null:ae;for(var ab=ac.parentNode;ab!=af;ab=ab.parentNode){if(ab.scrollLeft!=null){aj-=ab.scrollLeft;ai-=ab.scrollTop}}return{left:aj,top:ai}}if(document.documentElement.getBoundingClientRect!=null){Z=function(ae,ab){try{var ad=ae.getBoundingClientRect();ad={top:ad.top,left:ad.left}}catch(af){ad={top:0,left:0}}if(!ab){if(window.pageYOffset==null){var ac=document.documentElement||document.body.parentNode;if(ac.scrollTop==null){ac=document.body}ad.top+=ac.scrollTop;ad.left+=ac.scrollLeft}else{ad.top+=window.pageYOffset;ad.left+=window.pageXOffset}}return ad}}function y(ab){return ab.textContent||ab.innerText||ab.nodeValue||""}function T(ac,ab){return ac.line==ab.line&&ac.ch==ab.ch}function Q(ac,ab){return ac.line<ab.line||(ac.line==ab.line&&ac.ch<ab.ch)}function R(ab){return{line:ab.line,ch:ab.ch}}var X=document.createElement("pre");function G(ab){X.textContent=ab;return X.innerHTML}if(G("a")=="\na"){G=function(ab){X.textContent=ab;return X.innerHTML.slice(1)}}else{if(G("\t")!="\t"){G=function(ab){X.innerHTML="";X.appendChild(document.createTextNode(ab));return X.innerHTML}}}o.htmlEscape=G;function N(ae,ad){if(!ad){return ae?ae.length:0}if(!ae){return ad.length}for(var ac=ae.length,ab=ad.length;ac>=0&&ab>=0;--ac,--ab){if(ae.charAt(ac)!=ad.charAt(ab)){break}}return ab+1}function l(ae,ab){if(ae.indexOf){return ae.indexOf(ab)}for(var ac=0,ad=ae.length;ac<ad;++ac){if(ae[ac]==ab){return ac}}return -1}function V(ab){return/\w/.test(ab)||ab.toUpperCase()!=ab.toLowerCase()}var t="\n\nb".split(/\n/).length!=3?function(ad){var ae=0,ac,ab=[];while((ac=ad.indexOf("\n",ae))>-1){ab.push(ad.slice(ae,ad.charAt(ac-1)=="\r"?ac-1:ac));ae=ac+1}ab.push(ad.slice(ae));return ab}:function(ab){return ab.split(/\r?\n/)};o.splitLines=t;var U=window.getSelection?function(ac){try{return ac.selectionStart!=ac.selectionEnd}catch(ab){return false}}:function(ad){try{var ab=ad.ownerDocument.selection.createRange()}catch(ac){}if(!ab||ab.parentElement()!=ad){return false}return ab.compareEndPoints("StartToEnd",ab)!=0};o.defineMode("null",function(){return{token:function(ab){ab.skipToEnd()}}});o.defineMIME("text/plain","null");var I={3:"Enter",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",91:"Mod",92:"Mod",93:"Mod",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63276:"PageUp",63277:"PageDown",63275:"End",63273:"Home",63234:"Left",63232:"Up",63235:"Right",63233:"Down",63302:"Insert",63272:"Delete"};o.keyNames=I;(function(){for(var ab=0;ab<10;ab++){I[ab+48]=String(ab)}for(var ab=65;ab<=90;ab++){I[ab]=String.fromCharCode(ab)}for(var ab=1;ab<=12;ab++){I[ab+111]=I[ab+63235]="F"+ab}})();return o})();CodeMirror.defineMode("xml",function(w,k){var p=w.indentUnit;var v=k.htmlMode?{autoSelfClosers:{br:true,img:true,hr:true,link:true,input:true,meta:true,col:true,frame:true,base:true,area:true},doNotIndent:{pre:true},allowUnquoted:true}:{autoSelfClosers:{},doNotIndent:{},allowUnquoted:false};var a=k.alignCDATA;var f,g;function o(B,A){function y(D){A.tokenize=D;return D(B,A)}var z=B.next();if(z=="<"){if(B.eat("!")){if(B.eat("[")){if(B.match("CDATA[")){return y(u("atom","]]>"))}else{return null}}else{if(B.match("--")){return y(u("comment","-->"))}else{if(B.match("DOCTYPE",true,true)){B.eatWhile(/[\w\._\-]/);return y(x(1))}else{return null}}}}else{if(B.eat("?")){B.eatWhile(/[\w\._\-]/);A.tokenize=u("meta","?>");return"meta"}else{g=B.eat("/")?"closeTag":"openTag";B.eatSpace();f="";var C;while((C=B.eat(/[^\s\u00a0=<>\"\'\/?]/))){f+=C}A.tokenize=n;return"tag"}}}else{if(z=="&"){B.eatWhile(/[^;]/);B.eat(";");return"atom"}else{B.eatWhile(/[^&<]/);return null}}}function n(A,z){var y=A.next();if(y==">"||(y=="/"&&A.eat(">"))){z.tokenize=o;g=y==">"?"endTag":"selfcloseTag";return"tag"}else{if(y=="="){g="equals";return null}else{if(/[\'\"]/.test(y)){z.tokenize=j(y);return z.tokenize(A,z)}else{A.eatWhile(/[^\s\u00a0=<>\"\'\/?]/);return"word"}}}}function j(y){return function(A,z){while(!A.eol()){if(A.next()==y){z.tokenize=n;break}}return"string"}}function u(z,y){return function(B,A){while(!B.eol()){if(B.match(y)){A.tokenize=o;break}B.next()}return z}}function x(y){return function(B,A){var z;while((z=B.next())!=null){if(z=="<"){A.tokenize=x(y+1);return A.tokenize(B,A)}else{if(z==">"){if(y==1){A.tokenize=o;break}else{A.tokenize=x(y-1);return A.tokenize(B,A)}}}}return"meta"}}var l,h;function b(){for(var y=arguments.length-1;y>=0;y--){l.cc.push(arguments[y])}}function e(){b.apply(null,arguments);return true}function i(y,A){var z=v.doNotIndent.hasOwnProperty(y)||(l.context&&l.context.noIndent);l.context={prev:l.context,tagName:y,indent:l.indented,startOfLine:A,noIndent:z}}function s(){if(l.context){l.context=l.context.prev}}function d(y){if(y=="openTag"){l.tagName=f;return e(m,c(l.startOfLine))}else{if(y=="closeTag"){var z=false;if(l.context){z=l.context.tagName!=f}else{z=true}if(z){h="error"}return e(q(z))}}return e()}function c(y){return function(z){if(z=="selfcloseTag"||(z=="endTag"&&v.autoSelfClosers.hasOwnProperty(l.tagName.toLowerCase()))){return e()}if(z=="endTag"){i(l.tagName,y);return e()}return e()}}function q(y){return function(z){if(y){h="error"}if(z=="endTag"){s();return e()}h="error";return e(arguments.callee)}}function m(y){if(y=="word"){h="attribute";return e(m)}if(y=="equals"){return e(t,m)}if(y=="string"){h="error";return e(m)}return b()}function t(y){if(y=="word"&&v.allowUnquoted){h="string";return e()}if(y=="string"){return e(r)}return b()}function r(y){if(y=="string"){return e(r)}else{return b()}}return{startState:function(){return{tokenize:o,cc:[],indented:0,startOfLine:true,tagName:null,context:null}},token:function(B,A){if(B.sol()){A.startOfLine=true;A.indented=B.indentation()}if(B.eatSpace()){return null}h=g=f=null;var z=A.tokenize(B,A);A.type=g;if((z||g)&&z!="comment"){l=A;while(true){var y=A.cc.pop()||d;if(y(g||z)){break}}}A.startOfLine=false;return h||z},indent:function(B,y,A){var z=B.context;if((B.tokenize!=n&&B.tokenize!=o)||z&&z.noIndent){return A?A.match(/^(\s*)/)[0].length:0}if(a&&/<!\[CDATA\[/.test(y)){return 0}if(z&&/^<\//.test(y)){z=z.prev}while(z&&!z.startOfLine){z=z.prev}if(z){return z.indent+p}else{return 0}},compareStates:function(B,z){if(B.indented!=z.indented||B.tokenize!=z.tokenize){return false}for(var A=B.context,y=z.context;;A=A.prev,y=y.prev){if(!A||!y){return A==y}if(A.tagName!=y.tagName){return false}}},electricChars:"/"}});CodeMirror.defineMIME("application/xml","xml");CodeMirror.defineMIME("text/html",{name:"xml",htmlMode:true});CodeMirror.defineMode("javascript",function(I,M){var v=I.indentUnit;var Q=M.json;var b=function(){function W(Z){return{type:Z,style:"keyword"}}var T=W("keyword a"),Y=W("keyword b"),X=W("keyword c");var U=W("operator"),V={type:"atom",style:"atom"};return{"if":T,"while":T,"with":T,"else":Y,"do":Y,"try":Y,"finally":Y,"return":X,"break":X,"continue":X,"new":X,"delete":X,"throw":X,"var":W("var"),"const":W("var"),let:W("var"),"function":W("function"),"catch":W("catch"),"for":W("for"),"switch":W("switch"),"case":W("case"),"default":W("default"),"in":U,"typeof":U,"instanceof":U,"true":V,"false":V,"null":V,"undefined":V,"NaN":V,"Infinity":V}}();var N=/[+\-*&%=<>!?|]/;function R(V,U,T){U.tokenize=T;return T(V,U)}function h(W,T){var V=false,U;while((U=W.next())!=null){if(U==T&&!V){return false}V=!V&&U=="\\"}return V}var S,p;function B(V,U,T){S=V;p=T;return U}function l(X,V){var T=X.next();if(T=='"'||T=="'"){return R(X,V,z(T))}else{if(/[\[\]{}\(\),;\:\.]/.test(T)){return B(T)}else{if(T=="0"&&X.eat(/x/i)){X.eatWhile(/[\da-f]/i);return B("number","number")}else{if(/\d/.test(T)){X.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/);return B("number","number")}else{if(T=="/"){if(X.eat("*")){return R(X,V,f)}else{if(X.eat("/")){X.skipToEnd();return B("comment","comment")}else{if(V.reAllowed){h(X,"/");X.eatWhile(/[gimy]/);return B("regexp","string")}else{X.eatWhile(N);return B("operator",null,X.current())}}}}else{if(T=="#"){X.skipToEnd();return B("error","error")}else{if(N.test(T)){X.eatWhile(N);return B("operator",null,X.current())}else{X.eatWhile(/[\w\$_]/);var W=X.current(),U=b.propertyIsEnumerable(W)&&b[W];return(U&&V.kwAllowed)?B(U.type,U.style,W):B("variable","variable",W)}}}}}}}}function z(T){return function(V,U){if(!h(V,T)){U.tokenize=l}return B("string","string")}}function f(W,V){var T=false,U;while(U=W.next()){if(U=="/"&&T){V.tokenize=l;break}T=(U=="*")}return B("comment","comment")}var k={atom:true,number:true,variable:true,string:true,regexp:true};function t(Y,U,T,X,V,W){this.indented=Y;this.column=U;this.type=T;this.prev=V;this.info=W;if(X!=null){this.align=X}}function w(V,U){for(var T=V.localVars;T;T=T.next){if(T.name==U){return true}}}function E(X,U,T,W,Y){var Z=X.cc;u.state=X;u.stream=Y;u.marked=null,u.cc=Z;if(!X.lexical.hasOwnProperty("align")){X.lexical.align=true}while(true){var V=Z.length?Z.pop():Q?x:y;if(V(T,W)){while(Z.length&&Z[Z.length-1].lex){Z.pop()()}if(u.marked){return u.marked}if(T=="variable"&&w(X,W)){return"variable-2"}return U}}}var u={state:null,column:null,marked:null,cc:null};function a(){for(var T=arguments.length-1;T>=0;T--){u.cc.push(arguments[T])}}function G(){a.apply(null,arguments);return true}function m(U){var V=u.state;if(V.context){u.marked="def";for(var T=V.localVars;T;T=T.next){if(T.name==U){return}}V.localVars={name:U,next:V.localVars}}}var D={name:"this",next:{name:"arguments"}};function s(){if(!u.state.context){u.state.localVars=D}u.state.context={prev:u.state.context,vars:u.state.localVars}}function r(){u.state.localVars=u.state.context.vars;u.state.context=u.state.context.prev}function j(U,V){var T=function(){var W=u.state;W.lexical=new t(W.indented,u.stream.column(),U,null,W.lexical,V)};T.lex=true;return T}function F(){var T=u.state;if(T.lexical.prev){if(T.lexical.type==")"){T.indented=T.lexical.indented}T.lexical=T.lexical.prev}}F.lex=true;function c(U){return function T(V){if(V==U){return G()}else{if(U==";"){return a()}else{return G(arguments.callee)}}}}function y(T){if(T=="var"){return G(j("vardef"),J,c(";"),F)}if(T=="keyword a"){return G(j("form"),x,y,F)}if(T=="keyword b"){return G(j("form"),y,F)}if(T=="{"){return G(j("}"),n,F)}if(T==";"){return G()}if(T=="function"){return G(i)}if(T=="for"){return G(j("form"),c("("),j(")"),g,c(")"),F,y,F)}if(T=="variable"){return G(j("stat"),C)}if(T=="switch"){return G(j("form"),x,j("}","switch"),c("{"),n,F,F)}if(T=="case"){return G(x,c(":"))}if(T=="default"){return G(c(":"))}if(T=="catch"){return G(j("form"),s,c("("),q,c(")"),y,F,r)}return a(j("stat"),x,c(";"),F)}function x(T){if(k.hasOwnProperty(T)){return G(L)}if(T=="function"){return G(i)}if(T=="keyword c"){return G(A)}if(T=="("){return G(j(")"),x,c(")"),F,L)}if(T=="operator"){return G(x)}if(T=="["){return G(j("]"),O(x,"]"),F,L)}if(T=="{"){return G(j("}"),O(o,"}"),F,L)}return G()}function A(T){if(T.match(/[;\}\)\],]/)){return a()}return a(x)}function L(T,U){if(T=="operator"&&/\+\+|--/.test(U)){return G(L)}if(T=="operator"){return G(x)}if(T==";"){return}if(T=="("){return G(j(")"),O(x,")"),F,L)}if(T=="."){return G(P,L)}if(T=="["){return G(j("]"),x,c("]"),F,L)}}function C(T){if(T==":"){return G(F,y)}return a(L,c(";"),F)}function P(T){if(T=="variable"){u.marked="property";return G()}}function o(T){if(T=="variable"){u.marked="property"}if(k.hasOwnProperty(T)){return G(c(":"),x)}}function O(V,T){function U(X){if(X==","){return G(V,U)}if(X==T){return G()}return G(c(T))}return function W(X){if(X==T){return G()}else{return a(V,U)}}}function n(T){if(T=="}"){return G()}return a(y,n)}function J(T,U){if(T=="variable"){m(U);return G(H)}return G()}function H(T,U){if(U=="="){return G(x,H)}if(T==","){return G(J)}}function g(T){if(T=="var"){return G(J,e)}if(T==";"){return a(e)}if(T=="variable"){return G(K)}return a(e)}function K(T,U){if(U=="in"){return G(x)}return G(L,e)}function e(T,U){if(T==";"){return G(d)}if(U=="in"){return G(x)}return G(x,c(";"),d)}function d(T){if(T!=")"){G(x)}}function i(T,U){if(T=="variable"){m(U);return G(i)}if(T=="("){return G(j(")"),s,O(q,")"),F,y,r)}}function q(T,U){if(T=="variable"){m(U);return G()}}return{startState:function(T){return{tokenize:l,reAllowed:true,kwAllowed:true,cc:[],lexical:new t((T||0)-v,0,"block",false),localVars:null,context:null,indented:0}},token:function(V,U){if(V.sol()){if(!U.lexical.hasOwnProperty("align")){U.lexical.align=false}U.indented=V.indentation()}if(V.eatSpace()){return null}var T=U.tokenize(V,U);if(S=="comment"){return T}U.reAllowed=S=="operator"||S=="keyword c"||S.match(/^[\[{}\(,;:]$/);U.kwAllowed=S!=".";return E(U,T,S,p,V)},indent:function(Y,T){if(Y.tokenize!=l){return 0}var X=T&&T.charAt(0),V=Y.lexical,W=V.type,U=X==W;if(W=="vardef"){return V.indented+4}else{if(W=="form"&&X=="{"){return V.indented}else{if(W=="stat"||W=="form"){return V.indented+v}else{if(V.info=="switch"&&!U){return V.indented+(/^(?:case|default)\b/.test(T)?v:2*v)}else{if(V.align){return V.column+(U?0:1)}else{return V.indented+(U?0:v)}}}}}},electricChars:":{}"}});CodeMirror.defineMIME("text/javascript","javascript");CodeMirror.defineMIME("application/json",{name:"javascript",json:true});CodeMirror.defineMode("css",function(e){var d=e.indentUnit,f;function c(i,j){f=j;return i}function h(k,j){var i=k.next();if(i=="@"){k.eatWhile(/[\w\\\-]/);return c("meta",k.current())}else{if(i=="/"&&k.eat("*")){j.tokenize=a;return a(k,j)}else{if(i=="<"&&k.eat("!")){j.tokenize=b;return b(k,j)}else{if(i=="="){c(null,"compare")}else{if((i=="~"||i=="|")&&k.eat("=")){return c(null,"compare")}else{if(i=='"'||i=="'"){j.tokenize=g(i);return j.tokenize(k,j)}else{if(i=="#"){k.eatWhile(/[\w\\\-]/);return c("atom","hash")}else{if(i=="!"){k.match(/^\s*\w*/);return c("keyword","important")}else{if(/\d/.test(i)){k.eatWhile(/[\w.%]/);return c("number","unit")}else{if(/[,.+>*\/]/.test(i)){return c(null,"select-op")}else{if(/[;{}:\[\]]/.test(i)){return c(null,i)}else{k.eatWhile(/[\w\\\-]/);return c("variable","variable")}}}}}}}}}}}}function a(l,k){var i=false,j;while((j=l.next())!=null){if(i&&j=="/"){k.tokenize=h;break}i=(j=="*")}return c("comment","comment")}function b(l,k){var j=0,i;while((i=l.next())!=null){if(j>=2&&i==">"){k.tokenize=h;break}j=(i=="-")?j+1:0}return c("comment","comment")}function g(i){return function(m,k){var l=false,j;while((j=m.next())!=null){if(j==i&&!l){break}l=!l&&j=="\\"}if(!l){k.tokenize=h}return c("string","string")}}return{startState:function(i){return{tokenize:h,baseIndent:i||0,stack:[]}},token:function(l,k){if(l.eatSpace()){return null}var j=k.tokenize(l,k);var i=k.stack[k.stack.length-1];if(f=="hash"&&i=="rule"){j="atom"}else{if(j=="variable"){if(i=="rule"){j="number"}else{if(!i||i=="@media{"){j="tag"}}}}if(i=="rule"&&/^[\{\};]$/.test(f)){k.stack.pop()}if(f=="{"){if(i=="@media"){k.stack[k.stack.length-1]="@media{"}else{k.stack.push("{")}}else{if(f=="}"){k.stack.pop()}else{if(f=="@media"){k.stack.push("@media")}else{if(i=="{"&&f!="comment"){k.stack.push("rule")}}}}return j},indent:function(j,i){var k=j.stack.length;if(/^\}/.test(i)){k-=j.stack[j.stack.length-1]=="rule"?2:1}return j.baseIndent+k*d},electricChars:"}"}});CodeMirror.defineMIME("text/css","css");CodeMirror.defineMode("htmlmixed",function(b,d){var a=CodeMirror.getMode(b,{name:"xml",htmlMode:true});var c=CodeMirror.getMode(b,"javascript");var i=CodeMirror.getMode(b,"css");function e(l,k){var j=a.token(l,k.htmlState);if(j=="tag"&&l.current()==">"&&k.htmlState.context){if(/^script$/i.test(k.htmlState.context.tagName)){k.token=h;k.localState=c.startState(a.indent(k.htmlState,""));k.mode="javascript"}else{if(/^style$/i.test(k.htmlState.context.tagName)){k.token=f;k.localState=i.startState(a.indent(k.htmlState,""));k.mode="css"}}}return j}function g(n,j,k){var m=n.current();var l=m.search(j);if(l>-1){n.backUp(m.length-l)}return k}function h(k,j){if(k.match(/^<\/\s*script\s*>/i,false)){j.token=e;j.curState=null;j.mode="html";return e(k,j)}return g(k,/<\/\s*script\s*>/,c.token(k,j.localState))}function f(k,j){if(k.match(/^<\/\s*style\s*>/i,false)){j.token=e;j.localState=null;j.mode="html";return e(k,j)}return g(k,/<\/\s*style\s*>/,i.token(k,j.localState))}return{startState:function(){var j=a.startState();return{token:e,localState:null,mode:"html",htmlState:j}},copyState:function(k){if(k.localState){var j=CodeMirror.copyState(k.token==f?i:c,k.localState)}return{token:k.token,localState:j,mode:k.mode,htmlState:CodeMirror.copyState(a,k.htmlState)}},token:function(k,j){return j.token(k,j)},indent:function(k,j){if(k.token==e||/^\s*<\//.test(j)){return a.indent(k.htmlState,j)}else{if(k.token==h){return c.indent(k.localState,j)}else{return i.indent(k.localState,j)}}},compareStates:function(k,j){return a.compareStates(k.htmlState,j.htmlState)},electricChars:"/{}:"}});CodeMirror.defineMIME("text/html","htmlmixed");