UNPKG

react-native-fullscreen-video

Version:

A full-screen video component on top of react-native-video

2 lines 91.6 kB
window.CodeMirror=function(){"use strict";function a(e,f){if(!(this instanceof a))return new a(e,f);this.options=f=f||{};for(var h in _d)!f.hasOwnProperty(h)&&_d.hasOwnProperty(h)&&(f[h]=_d[h]);l(f);var j=this.display=b(e);j.wrapper.CodeMirror=this,i(this),f.autofocus&&!Rd&&_(this),this.view=c(new Dc([new Cc([rc("",null,R(j))])])),this.nextOpId=0,d(this),g(this),f.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),this.setValue(f.value||""),Ed&&setTimeout(ed($,this,!0),20),this.view.history=Kc(),bb(this);var k;try{k=document.activeElement==j.input}catch(m){}k||f.autofocus&&!Rd?setTimeout(ed(rb,this),20):sb(this),V(this,function(){for(var a in $d)$d.propertyIsEnumerable(a)&&$d[a](this,f[a],ae);for(var b=0;b<ee.length;++b)ee[b](this)})()}function b(a){var b={},c=b.input=hd("textarea",null,null,"position: absolute; padding: 0; width: 1px; height: 1em; outline: none;");c.setAttribute("wrap","off"),c.setAttribute("autocorrect","off"),c.setAttribute("autocapitalize","off"),b.inputDiv=hd("div",[c],null,"overflow: hidden; position: relative; width: 3px; height: 0px;"),b.scrollbarH=hd("div",[hd("div",null,null,"height: 1px")],"CodeMirror-hscrollbar"),b.scrollbarV=hd("div",[hd("div",null,null,"width: 1px")],"CodeMirror-vscrollbar"),b.scrollbarFiller=hd("div",null,"CodeMirror-scrollbar-filler"),b.lineDiv=hd("div"),b.selectionDiv=hd("div",null,null,"position: relative; z-index: 1"),b.cursor=hd("pre"," ","CodeMirror-cursor"),b.otherCursor=hd("pre"," ","CodeMirror-cursor CodeMirror-secondarycursor"),b.measure=hd("div",null,"CodeMirror-measure"),b.lineSpace=hd("div",[b.measure,b.selectionDiv,b.lineDiv,b.cursor,b.otherCursor],null,"position: relative; outline: none"),b.mover=hd("div",[hd("div",[b.lineSpace],"CodeMirror-lines")],null,"position: relative"),b.sizer=hd("div",[b.mover],"CodeMirror-sizer"),b.heightForcer=hd("div"," ",null,"position: absolute; height: "+je+"px"),b.gutters=hd("div",null,"CodeMirror-gutters"),b.lineGutter=null;var d=hd("div",[b.sizer,b.heightForcer,b.gutters],null,"position: relative; min-height: 100%");return b.scroller=hd("div",[d],"CodeMirror-scroll"),b.scroller.setAttribute("tabIndex","-1"),b.wrapper=hd("div",[b.inputDiv,b.scrollbarH,b.scrollbarV,b.scrollbarFiller,b.scroller],"CodeMirror"),Fd&&(b.gutters.style.zIndex=-1,b.scroller.style.paddingRight=0),a.appendChild?a.appendChild(b.wrapper):a(b.wrapper),Qd&&(c.style.width="0px"),Hd||(b.scroller.draggable=!0),Md?(b.inputDiv.style.height="1px",b.inputDiv.style.position="absolute"):Fd&&(b.scrollbarH.style.minWidth=b.scrollbarV.style.minWidth="18px"),b.viewOffset=b.showingFrom=b.showingTo=b.lastSizeC=0,b.lineNumWidth=b.lineNumInnerWidth=b.lineNumChars=null,b.prevInput="",b.alignWidgets=!1,b.pollingFast=!1,b.poll=new Zc,b.draggingText=!1,b.cachedCharWidth=b.cachedTextHeight=null,b.measureLineCache=[],b.measureLineCachePos=0,b.inaccurateSelection=!1,b.pasteIncoming=!1,b}function c(a){var b={line:0,ch:0};return{doc:a,frontier:0,highlight:new Zc,sel:{from:b,to:b,head:b,anchor:b,shift:!1,extend:!1},scrollTop:0,scrollLeft:0,overwrite:!1,focused:!1,maxLine:Ec(a,0),maxLineLength:0,maxLineChanged:!1,suppressEdits:!1,goalColumn:null,cantEdit:!1,keyMaps:[]}}function d(b){var c=b.view.doc;b.view.mode=a.getMode(b.options,b.options.mode),c.iter(0,c.size,function(a){a.stateAfter=null}),b.view.frontier=0,C(b,100)}function e(a){var b=a.view.doc,c=R(a.display);if(a.options.lineWrapping){a.display.wrapper.className+=" CodeMirror-wrap";var d=a.display.scroller.clientWidth/S(a.display)-3;b.iter(0,b.size,function(a){if(0!=a.height){var b=Math.ceil(a.text.length/d)||1;1!=b&&Fc(a,b*c)}}),a.display.sizer.style.minWidth=""}else a.display.wrapper.className=a.display.wrapper.className.replace(" CodeMirror-wrap",""),k(a.view),b.iter(0,b.size,function(a){0!=a.height&&Fc(a,c)});W(a,0,b.size),L(a),setTimeout(function(){m(a.display,a.view.doc.height)},100)}function f(a){var b=ge[a.options.keyMap].style;a.display.wrapper.className=a.display.wrapper.className.replace(/\s*cm-keymap-\S+/g,"")+(b?" cm-keymap-"+b:"")}function g(a){a.display.wrapper.className=a.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+a.options.theme.replace(/(^|\s)\s*/g," cm-s-"),L(a)}function h(a){i(a),s(a,!0)}function i(a){var b=a.display.gutters,c=a.options.gutters;id(b);for(var d=0;d<c.length;++d){var e=c[d],f=b.appendChild(hd("div",null,"CodeMirror-gutter "+e));"CodeMirror-linenumbers"==e&&(a.display.lineGutter=f,f.style.width=(a.display.lineNumWidth||1)+"px")}b.style.display=d?"":"none"}function j(a,b){if(0==b.height)return 0;for(var c,d=b.text.length,e=b;c=hc(e);){var f=c.find();e=Ec(a,f.from.line),d+=f.from.ch-f.to.ch}for(e=b;c=ic(e);){var f=c.find();d-=e.text.length-f.from.ch,e=Ec(a,f.to.line),d+=e.text.length-f.to.ch}return d}function k(a){a.maxLine=Ec(a.doc,0),a.maxLineLength=j(a.doc,a.maxLine),a.maxLineChanged=!0,a.doc.iter(1,a.doc.size,function(b){var c=j(a.doc,b);c>a.maxLineLength&&(a.maxLineLength=c,a.maxLine=b)})}function l(a){for(var b=!1,c=0;c<a.gutters.length;++c)"CodeMirror-linenumbers"==a.gutters[c]&&(a.lineNumbers?b=!0:a.gutters.splice(c--,1));!b&&a.lineNumbers&&a.gutters.push("CodeMirror-linenumbers")}function m(a,b){var c=b+2*G(a);a.sizer.style.minHeight=a.heightForcer.style.top=c+"px";var d=Math.max(c,a.scroller.scrollHeight),e=a.scroller.scrollWidth>a.scroller.clientWidth,f=d>a.scroller.clientHeight;f?(a.scrollbarV.style.display="block",a.scrollbarV.style.bottom=e?ld(a.measure)+"px":"0",a.scrollbarV.firstChild.style.height=d-a.scroller.clientHeight+a.scrollbarV.clientHeight+"px"):a.scrollbarV.style.display="",e?(a.scrollbarH.style.display="block",a.scrollbarH.style.right=f?ld(a.measure)+"px":"0",a.scrollbarH.firstChild.style.width=a.scroller.scrollWidth-a.scroller.clientWidth+a.scrollbarH.clientWidth+"px"):a.scrollbarH.style.display="",e&&f?(a.scrollbarFiller.style.display="block",a.scrollbarFiller.style.height=a.scrollbarFiller.style.width=ld(a.measure)+"px"):a.scrollbarFiller.style.display="",Nd&&0===ld(a.measure)&&(a.scrollbarV.style.minWidth=a.scrollbarH.style.minHeight=Od?"18px":"12px")}function n(a,b,c){var d=a.scroller.scrollTop,e=a.wrapper.clientHeight;"number"==typeof c?d=c:c&&(d=c.top,e=c.bottom-c.top),d=Math.floor(d-G(a));var f=Math.ceil(d+e);return{from:Hc(b,d),to:Hc(b,f)}}function o(a){var b=a.display;if(b.alignWidgets||b.gutters.firstChild){for(var c=r(b)-b.scroller.scrollLeft+a.view.scrollLeft,d=b.gutters.offsetWidth,e=c+"px",f=b.lineDiv.firstChild;f;f=f.nextSibling)if(f.alignable)for(var g=0,h=f.alignable;g<h.length;++g)h[g].style.left=e;b.gutters.style.left=c+d+"px"}}function p(a){if(!a.options.lineNumbers)return!1;var b=a.view.doc,c=q(a.options,b.size-1),d=a.display;if(c.length!=d.lineNumChars){var e=d.measure.appendChild(hd("div",[hd("div",c)],"CodeMirror-linenumber CodeMirror-gutter-elt")),f=e.firstChild.offsetWidth,g=e.offsetWidth-f;return d.lineGutter.style.width="",d.lineNumInnerWidth=Math.max(f,d.lineGutter.offsetWidth-g),d.lineNumWidth=d.lineNumInnerWidth+g,d.lineNumChars=d.lineNumInnerWidth?c.length:-1,d.lineGutter.style.width=d.lineNumWidth+"px",!0}return!1}function q(a,b){return String(a.lineNumberFormatter(b+a.firstLineNumber))}function r(a){return a.scroller.getBoundingClientRect().left-a.sizer.getBoundingClientRect().left}function s(a,b,c){var d=a.display.showingFrom,e=a.display.showingTo,f=t(a,b,c);return f&&(Xc(a,a,"update",a),(a.display.showingFrom!=d||a.display.showingTo!=e)&&Xc(a,a,"viewportChange",a,a.display.showingFrom,a.display.showingTo)),y(a),m(a.display,a.view.doc.height),f}function t(a,b,c){var d=a.display,e=a.view.doc;if(!d.wrapper.clientWidth)return d.showingFrom=d.showingTo=d.viewOffset=0,void 0;var f=n(d,e,c);if(!(b!==!0&&0==b.length&&f.from>d.showingFrom&&f.to<d.showingTo)){if(b&&p(a)&&(b=!0),d.sizer.style.marginLeft=d.scrollbarH.style.left=d.gutters.offsetWidth+"px",b!==!0&&Ud)for(var g=0;g<b.length;++g)for(var h,i=b[g];h=hc(Ec(e,i.from));){var j=h.find().from.line;i.diff&&(i.diff-=i.from-j),i.from=j}var k=b===!0?0:1/0;if(a.options.lineNumbers&&b&&b!==!0)for(var g=0;g<b.length;++g)if(b[g].diff){k=b[g].from;break}var j=Math.max(f.from-a.options.viewportMargin,0),l=Math.min(e.size,f.to+a.options.viewportMargin);if(d.showingFrom<j&&j-d.showingFrom<20&&(j=d.showingFrom),d.showingTo>l&&d.showingTo-l<20&&(l=Math.min(e.size,d.showingTo)),Ud)for(j=Gc(jc(e,Ec(e,j)));l<e.size&&kc(Ec(e,l));)++l;for(var m=b===!0?[]:u([{from:d.showingFrom,to:d.showingTo}],b),o=0,g=0;g<m.length;++g){var q=m[g];q.from<j&&(q.from=j),q.to>l&&(q.to=l),q.from>=q.to?m.splice(g--,1):o+=q.to-q.from}if(o!=l-j||j!=d.showingFrom||l!=d.showingTo){m.sort(function(a,b){return a.from-b.from}),.7*(l-j)>o&&(d.lineDiv.style.display="none"),w(a,j,l,m,k),d.lineDiv.style.display="";var r=j!=d.showingFrom||l!=d.showingTo||d.lastSizeC!=d.wrapper.clientHeight;r&&(d.lastSizeC=d.wrapper.clientHeight),d.showingFrom=j,d.showingTo=l,C(a,100);for(var s,t=d.lineDiv.offsetTop,v=d.lineDiv.firstChild;v;v=v.nextSibling)if(v.lineObj){if(Fd){var x=v.offsetTop+v.offsetHeight;s=x-t,t=x}else{var y=v.getBoundingClientRect();s=y.bottom-y.top}var z=v.lineObj.height-s;2>s&&(s=R(d)),(z>.001||-.001>z)&&Fc(v.lineObj,s)}return d.viewOffset=Ic(a,Ec(e,j)),d.mover.style.top=d.viewOffset+"px",!0}}}function u(a,b){for(var c=0,d=b.length||0;d>c;++c){for(var e=b[c],f=[],g=e.diff||0,h=0,i=a.length;i>h;++h){var j=a[h];e.to<=j.from&&e.diff?f.push({from:j.from+g,to:j.to+g}):e.to<=j.from||e.from>=j.to?f.push(j):(e.from>j.from&&f.push({from:j.from,to:e.from}),e.to<j.to&&f.push({from:e.to+g,to:j.to+g}))}a=f}return a}function v(a){for(var b=a.display,c={},d={},e=b.gutters.firstChild,f=0;e;e=e.nextSibling,++f)c[a.options.gutters[f]]=e.offsetLeft,d[a.options.gutters[f]]=e.offsetWidth;return{fixedPos:r(b),gutterTotalWidth:b.gutters.offsetWidth,gutterLeft:c,gutterWidth:d,wrapperWidth:b.wrapper.clientWidth}}function w(a,b,c,d,e){function f(b){var c=b.nextSibling;return Hd&&Sd&&a.display.currentWheelTarget==b?(b.style.display="none",b.lineObj=null):j.removeChild(b),c}var g=v(a),h=a.display,i=a.options.lineNumbers;d.length||Ed||Hd&&a.display.currentWheelTarget||id(h.lineDiv);var j=h.lineDiv,k=j.firstChild,l=d.shift(),m=b;for(a.view.doc.iter(b,c,function(b){if(l&&l.to==m&&(l=d.shift()),kc(b))0!=b.height&&Fc(b,0);else if(l&&l.from<=m&&l.to>m){for(;k.lineObj!=b;)k=f(k);i&&m>=e&&k.lineNumber&&kd(k.lineNumber,q(a.options,m)),k=k.nextSibling}else{var c=x(a,b,m,g);j.insertBefore(c,k),c.lineObj=b}++m});k;)k=f(k)}function x(a,b,c,d){var e=xc(a,b),f=b.gutterMarkers,g=a.display;if(!(a.options.lineNumbers||f||b.bgClass||b.wrapClass||b.widgets&&b.widgets.length))return e;var h=hd("div",null,b.wrapClass,"position: relative");if(a.options.lineNumbers||f){var i=h.appendChild(hd("div",null,null,"position: absolute; left: "+d.fixedPos+"px"));if(h.alignable=[i],!a.options.lineNumbers||f&&f["CodeMirror-linenumbers"]||(h.lineNumber=i.appendChild(hd("div",q(a.options,c),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+d.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+g.lineNumInnerWidth+"px"))),f)for(var j=0;j<a.options.gutters.length;++j){var k=a.options.gutters[j],l=f.hasOwnProperty(k)&&f[k];l&&i.appendChild(hd("div",[l],"CodeMirror-gutter-elt","left: "+d.gutterLeft[k]+"px; width: "+d.gutterWidth[k]+"px"))}}if(b.bgClass&&h.appendChild(hd("div"," ",b.bgClass+" CodeMirror-linebackground")),h.appendChild(e),b.widgets)for(var m=0,n=b.widgets;m<n.length;++m){var o=n[m],p=hd("div",[o.node],"CodeMirror-linewidget");if(p.widget=o,o.noHScroll){(h.alignable||(h.alignable=[])).push(p);var r=d.wrapperWidth;p.style.left=d.fixedPos+"px",o.coverGutter||(r-=d.gutterTotalWidth,p.style.paddingLeft=d.gutterTotalWidth+"px"),p.style.width=r+"px"}o.coverGutter&&(p.style.zIndex=5,p.style.position="relative",o.noHScroll||(p.style.marginLeft=-d.gutterTotalWidth+"px")),o.above?h.insertBefore(p,a.options.lineNumbers&&0!=b.height?i:e):h.appendChild(p)}return Fd&&(h.style.zIndex=2),h}function y(a){var b=a.display,c=zb(a.view.sel.from,a.view.sel.to);c||a.options.showCursorWhenSelecting?z(a):b.cursor.style.display=b.otherCursor.style.display="none",c?b.selectionDiv.style.display="none":A(a);var d=O(a,a.view.sel.head,"div"),e=b.wrapper.getBoundingClientRect(),f=b.lineDiv.getBoundingClientRect();b.inputDiv.style.top=Math.max(0,Math.min(b.wrapper.clientHeight-10,d.top+f.top-e.top))+"px",b.inputDiv.style.left=Math.max(0,Math.min(b.wrapper.clientWidth-10,d.left+f.left-e.left))+"px"}function z(a){var b=a.display,c=O(a,a.view.sel.head,"div");b.cursor.style.left=c.left+"px",b.cursor.style.top=c.top+"px",b.cursor.style.height=Math.max(0,c.bottom-c.top)*a.options.cursorHeight+"px",b.cursor.style.display="",c.other?(b.otherCursor.style.display="",b.otherCursor.style.left=c.other.left+"px",b.otherCursor.style.top=c.other.top+"px",b.otherCursor.style.height=.85*(c.other.bottom-c.other.top)+"px"):b.otherCursor.style.display="none"}function A(a){function b(a,b,c,d){0>b&&(b=0),g.appendChild(hd("div",null,"CodeMirror-selected","position: absolute; left: "+a+"px; top: "+b+"px; width: "+(null==c?h-a:c)+"px; height: "+(d-b)+"px"))}function c(c,d,f,g){function j(b){return N(a,{line:c,ch:b},"div",k)}var k=Ec(e,c),l=k.text.length,m=g?1/0:-1/0;return nd(Jc(k),d||0,null==f?l:f,function(a,c,e){var k=j("rtl"==e?c-1:a),n=j("rtl"==e?a:c-1),o=k.left,p=n.right;n.top-k.top>3&&(b(o,k.top,null,k.bottom),o=i,k.bottom<n.top&&b(o,k.bottom,null,n.top)),null==f&&c==l&&(p=h),null==d&&0==a&&(o=i),m=g?Math.min(n.top,m):Math.max(n.bottom,m),i+1>o&&(o=i),b(o,n.top,p-o,n.bottom)}),m}var d=a.display,e=a.view.doc,f=a.view.sel,g=document.createDocumentFragment(),h=d.lineSpace.offsetWidth,i=H(a.display);if(f.from.line==f.to.line)c(f.from.line,f.from.ch,f.to.ch);else{for(var j,k,l=Ec(e,f.from.line),m=l,n=[f.from.line,f.from.ch];j=ic(m);){var o=j.find();if(n.push(o.from.ch,o.to.line,o.to.ch),o.to.line==f.to.line){n.push(f.to.ch),k=!0;break}m=Ec(e,o.to.line)}if(k)for(var p=0;p<n.length;p+=3)c(n[p],n[p+1],n[p+2]);else{var q,r,s=Ec(e,f.to.line);q=f.from.ch?c(f.from.line,f.from.ch,null,!1):Ic(a,l)-d.viewOffset,r=f.to.ch?c(f.to.line,hc(s)?null:0,f.to.ch,!0):Ic(a,s)-d.viewOffset,r>q&&b(i,q,null,r)}}jd(d.selectionDiv,g),d.selectionDiv.style.display=""}function B(a){var b=a.display;clearInterval(b.blinker);var c=!0;b.cursor.style.visibility=b.otherCursor.style.visibility="",b.blinker=setInterval(function(){b.cursor.offsetHeight&&(b.cursor.style.visibility=b.otherCursor.style.visibility=(c=!c)?"":"hidden")},a.options.cursorBlinkRate)}function C(a,b){a.view.frontier<a.display.showingTo&&a.view.highlight.set(b,ed(D,a))}function D(a){var b=a.view,c=b.doc;if(!(b.frontier>=a.display.showingTo)){var d,e=+new Date+a.options.workTime,f=Tb(b.mode,F(a,b.frontier)),g=[];c.iter(b.frontier,Math.min(c.size,a.display.showingTo+500),function(c){return b.frontier>=a.display.showingFrom?(uc(a,c,f)&&b.frontier>=a.display.showingFrom&&(d&&d.end==b.frontier?d.end++:g.push(d={start:b.frontier,end:b.frontier+1})),c.stateAfter=Tb(b.mode,f)):(vc(a,c,f),c.stateAfter=b.frontier%5==0?Tb(b.mode,f):null),++b.frontier,+new Date>e?(C(a,a.options.workDelay),!0):void 0}),g.length&&V(a,function(){for(var a=0;a<g.length;++a)W(this,g[a].start,g[a].end)})()}}function E(a,b){for(var c,d,e=a.view.doc,f=b,g=b-100;f>g;--f){if(0==f)return 0;var h=Ec(e,f-1);if(h.stateAfter)return f;var i=$c(h.text,null,a.options.tabSize);(null==d||c>i)&&(d=f-1,c=i)}return d}function F(a,b){var c=a.view,d=E(a,b),e=d&&Ec(c.doc,d-1).stateAfter;return e=e?Tb(c.mode,e):Ub(c.mode),c.doc.iter(d,b,function(f){vc(a,f,e);var g=d==b-1||d%5==0||d>=c.showingFrom&&d<c.showingTo;f.stateAfter=g?Tb(c.mode,e):null,++d}),e}function G(a){return a.lineSpace.offsetTop}function H(a){var b=jd(a.measure,hd("pre")).appendChild(hd("span","x"));return b.offsetLeft}function I(a,b,c,d){for(var d=d||J(a,b),e=-1,f=c;;f+=e){var g=d[f];if(g)break;0>e&&0==f&&(e=1)}return{left:c>f?g.right:g.left,right:f>c?g.left:g.right,top:g.top,bottom:g.bottom}}function J(a,b){for(var c=a.display,d=a.display.measureLineCache,e=0;e<d.length;++e){var f=d[e];if(f.text==b.text&&f.markedSpans==b.markedSpans&&c.scroller.clientWidth==f.width)return f.measure}var g=K(a,b),f={text:b.text,width:c.scroller.clientWidth,markedSpans:b.markedSpans,measure:g};return 16==d.length?d[++c.measureLineCachePos%16]=f:d.push(f),g}function K(a,b){var c=a.display,d=dd(b.text.length),e=xc(a,b,d);if(Ed&&!Fd&&!a.options.lineWrapping&&e.childNodes.length>100){for(var f=document.createDocumentFragment(),g=10,h=e.childNodes.length,i=0,j=Math.ceil(h/g);j>i;++i){for(var k=hd("div",null,null,"display: inline-block"),l=0;g>l&&h;++l)k.appendChild(e.firstChild),--h;f.appendChild(k)}e.appendChild(f)}jd(c.measure,e);for(var m,n=c.lineDiv.getBoundingClientRect(),o=[],p=dd(b.text.length),q=e.offsetHeight,i=0;i<d.length;++i)if(m=d[i]){for(var r=m.getBoundingClientRect(),s=Math.max(0,r.top-n.top),t=Math.min(r.bottom-n.top,q),l=0;l<o.length;l+=2){var u=o[l],v=o[l+1];if(!(u>t||s>v)&&(s>=u&&v>=t||u>=s&&t>=v||Math.min(t,v)-Math.max(s,u)>=t-s>>1)){o[l]=Math.min(s,u),o[l+1]=Math.max(t,v);break}}l==o.length&&o.push(s,t),p[i]={left:r.left-n.left,right:r.right-n.left,top:l}}for(var m,i=0;i<p.length;++i)if(m=p[i]){var w=m.top;m.top=o[w],m.bottom=o[w+1]}return p}function L(a){a.display.measureLineCache.length=a.display.measureLineCachePos=0,a.display.cachedCharWidth=a.display.cachedTextHeight=null,a.view.maxLineChanged=!0}function M(a,b,c,d){if(b.widgets)for(var e=0;e<b.widgets.length;++e)if(b.widgets[e].above){var f=b.widgets[e].node.offsetHeight;c.top+=f,c.bottom+=f}if("line"==d)return c;d||(d="local");var g=Ic(a,b);if("local"!=d&&(g-=a.display.viewOffset),"page"==d){var h=a.display.lineSpace.getBoundingClientRect();g+=h.top+(window.pageYOffset||(document.documentElement||document.body).scrollTop);var i=h.left+(window.pageXOffset||(document.documentElement||document.body).scrollLeft);c.left+=i,c.right+=i}return c.top+=g,c.bottom+=g,c}function N(a,b,c,d){return d||(d=Ec(a.view.doc,b.line)),M(a,d,I(a,d,b.ch),c)}function O(a,b,c,d,e){function f(b,f){var g=I(a,d,b,e);return f?g.left=g.right:g.right=g.left,M(a,d,g,c)}d=d||Ec(a.view.doc,b.line),e||(e=J(a,d));var g=Jc(d),h=b.ch;if(!g)return f(h);for(var i,j,k=g[0].level,l=0;l<g.length;++l){var m,n,o=g[l],p=o.level%2;if(o.from<h&&o.to>h)return f(h,p);var q=p?o.to:o.from,r=p?o.from:o.to;if(q==h)n=l&&o.level<(m=g[l-1]).level?f(m.level%2?m.from:m.to-1,!0):f(p&&o.from!=o.to?h-1:h),p==k?i=n:j=n;else if(r==h){var m=l<g.length-1&&g[l+1];if(!p&&m&&m.from==m.to)continue;n=m&&o.level<m.level?f(m.level%2?m.to-1:m.from):f(p?h:h-1,!0),p==k?i=n:j=n}}return k&&!h&&(j=f(g[0].to-1)),i?(j&&(i.other=j),i):j}function P(a,b,c){var d=a.view.doc;if(c+=a.display.viewOffset,0>c)return{line:0,ch:0,outside:!0};var e=Hc(d,c);if(e>=d.size)return{line:d.size-1,ch:Ec(d,d.size-1).text.length};for(0>b&&(b=0);;){var f=Ec(d,e),g=Q(a,f,e,b,c),h=ic(f);if(!h||g.ch!=rd(f))return g;e=h.find().to.line}}function Q(a,b,c,d,e){function f(d){var e=O(a,{line:c,ch:d},"line",b,j);return h=!0,g>e.bottom?Math.max(0,e.left-i):g<e.top?e.left+i:(h=!1,e.left)}var g=e-Ic(a,b),h=!1,i=a.display.wrapper.clientWidth,j=J(a,b),k=Jc(b),l=b.text.length,m=qd(b),n=rd(b),o=H(a.display),p=f(n);if(d>p)return{line:c,ch:n,outside:h};for(;;){if(k?n==m||n==ud(b,m,1):1>=n-m){for(var q=p-d>d-o,r=q?m:n;ne.test(b.text.charAt(r));)++r;return{line:c,ch:r,after:q,outside:h}}var s=Math.ceil(l/2),t=m+s;if(k){t=m;for(var u=0;s>u;++u)t=ud(b,t,1)}var v=f(t);v>d?(n=t,p=v,h&&(p+=1e3),l-=s):(m=t,o=v,l=s)}}function R(a){if(null!=a.cachedTextHeight)return a.cachedTextHeight;if(null==wd){wd=hd("pre");for(var b=0;49>b;++b)wd.appendChild(document.createTextNode("x")),wd.appendChild(hd("br"));wd.appendChild(document.createTextNode("x"))}jd(a.measure,wd);var c=wd.offsetHeight/50;return c>3&&(a.cachedTextHeight=c),id(a.measure),c||1}function S(a){if(null!=a.cachedCharWidth)return a.cachedCharWidth;var b=hd("span","x"),c=hd("pre",[b]);jd(a.measure,c);var d=b.offsetWidth;return d>2&&(a.cachedCharWidth=d),d||10}function T(a){a.curOp?++a.curOp.depth:a.curOp={depth:1,changes:[],delayedCallbacks:[],updateInput:null,userSelChange:null,textChanged:null,selectionChanged:!1,updateMaxLine:!1,id:++a.nextOpId}}function U(a){var b=a.curOp;if(!--b.depth){a.curOp=null;var c=a.view,d=a.display;if(b.updateMaxLine&&k(c),c.maxLineChanged&&!a.options.lineWrapping){var e=I(a,c.maxLine,c.maxLine.text.length).right;d.sizer.style.minWidth=e+3+je+"px",c.maxLineChanged=!1}var f,g;if(b.selectionChanged){var h=O(a,c.sel.head);f=Mb(a,h.left,h.top,h.left,h.bottom)}(b.changes.length||f&&null!=f.scrollTop)&&(g=s(a,b.changes,f&&f.scrollTop)),!g&&b.selectionChanged&&y(a),f&&Jb(a),b.selectionChanged&&B(a),c.focused&&b.updateInput&&$(a,b.userSelChange),b.textChanged&&Wc(a,"change",a,b.textChanged),b.selectionChanged&&Wc(a,"cursorActivity",a);for(var i=0;i<b.delayedCallbacks.length;++i)b.delayedCallbacks[i](a)}}function V(a,b){return function(){var c=a||this;T(c);try{var d=b.apply(c,arguments)}finally{U(c)}return d}}function W(a,b,c,d){a.curOp.changes.push({from:b,to:c,diff:d})}function X(a){a.view.pollingFast||a.display.poll.set(a.options.pollInterval,function(){Z(a),a.view.focused&&X(a)})}function Y(a){function b(){var d=Z(a);d||c?(a.display.pollingFast=!1,X(a)):(c=!0,a.display.poll.set(60,b))}var c=!1;a.display.pollingFast=!0,a.display.poll.set(20,b)}function Z(a){var b=a.display.input,c=a.display.prevInput,d=a.view,e=d.sel;if(!d.focused||te(b)||ab(a))return!1;var f=b.value;if(f==c&&zb(e.from,e.to))return!1;T(a),d.sel.shift=!1;for(var g=0,h=Math.min(c.length,f.length);h>g&&c[g]==f[g];)++g;var i=e.from,j=e.to;g<c.length?i={line:i.line,ch:i.ch-(c.length-g)}:d.overwrite&&zb(i,j)&&!a.display.pasteIncoming&&(j={line:j.line,ch:Math.min(Ec(a.view.doc,j.line).text.length,j.ch+(f.length-g))});var k=a.curOp.updateInput;return ub(a,i,j,se(f.slice(g)),"end",a.display.pasteIncoming?"paste":"input",{from:i,to:j}),a.curOp.updateInput=k,f.length>1e3?b.value=a.display.prevInput="":a.display.prevInput=f,U(a),a.display.pasteIncoming=!1,!0}function $(a,b){var c,d,e=a.view;zb(e.sel.from,e.sel.to)?b&&(a.display.prevInput=a.display.input.value=""):(a.display.prevInput="",c=ue&&(e.sel.to.line-e.sel.from.line>100||(d=a.getSelection()).length>1e3),a.display.input.value=c?"-":d||a.getSelection(),e.focused&&bd(a.display.input)),a.display.inaccurateSelection=c}function _(a){"nocursor"==a.options.readOnly||!Ed&&document.activeElement==a.display.input||a.display.input.focus()}function ab(a){return a.options.readOnly||a.view.cantEdit}function bb(a){function b(){a.view.focused&&setTimeout(ed(_,a),0)}function c(b){a.options.onDragEvent&&a.options.onDragEvent(a,Nc(b))||Qc(b)}function d(){e.inaccurateSelection&&(e.prevInput="",e.inaccurateSelection=!1,e.input.value=a.getSelection(),bd(e.input))}var e=a.display;Uc(e.scroller,"mousedown",V(a,eb)),Uc(e.scroller,"dblclick",V(a,Oc)),Uc(e.lineSpace,"selectstart",function(a){cb(e,a)||Oc(a)}),Dd||Uc(e.scroller,"contextmenu",function(b){tb(a,b)}),Uc(e.scroller,"scroll",function(){ib(a,e.scroller.scrollTop),jb(a,e.scroller.scrollLeft,!0),Wc(a,"scroll",a)}),Uc(e.scrollbarV,"scroll",function(){ib(a,e.scrollbarV.scrollTop)}),Uc(e.scrollbarH,"scroll",function(){jb(a,e.scrollbarH.scrollLeft)}),Uc(e.scroller,"mousewheel",function(b){kb(a,b)}),Uc(e.scroller,"DOMMouseScroll",function(b){kb(a,b)}),Uc(e.scrollbarH,"mousedown",b),Uc(e.scrollbarV,"mousedown",b),Uc(e.wrapper,"scroll",function(){e.wrapper.scrollTop=e.wrapper.scrollLeft=0}),Uc(window,"resize",function f(){e.cachedCharWidth=e.cachedTextHeight=null,L(a),e.wrapper.parentNode?s(a,!0):Vc(window,"resize",f)}),Uc(e.input,"keyup",V(a,function(b){a.options.onKeyEvent&&a.options.onKeyEvent(a,Nc(b))||16==Tc(b,"keyCode")&&(a.view.sel.shift=!1)})),Uc(e.input,"input",ed(Y,a)),Uc(e.input,"keydown",V(a,pb)),Uc(e.input,"keypress",V(a,qb)),Uc(e.input,"focus",ed(rb,a)),Uc(e.input,"blur",ed(sb,a)),a.options.dragDrop&&(Uc(e.scroller,"dragstart",function(b){hb(a,b)}),Uc(e.scroller,"dragenter",c),Uc(e.scroller,"dragover",c),Uc(e.scroller,"drop",V(a,fb))),Uc(e.scroller,"paste",function(){_(a),Y(a)}),Uc(e.input,"paste",function(){e.pasteIncoming=!0,Y(a)}),Uc(e.input,"cut",d),Uc(e.input,"copy",d),Md&&Uc(e.sizer,"mouseup",function(){document.activeElement==e.input&&e.input.blur(),_(a)})}function cb(a,b){for(var c=Rc(b);c!=a.wrapper;c=c.parentNode)if(/\bCodeMirror-(?:line)?widget\b/.test(c.className)||c.parentNode==a.sizer&&c!=a.mover)return!0}function db(a,b,c){var d=a.display;if(!c){var e=Rc(b);if(e==d.scrollbarH||e==d.scrollbarH.firstChild||e==d.scrollbarV||e==d.scrollbarV.firstChild||e==d.scrollbarFiller)return null}var f,g,h=d.lineSpace.getBoundingClientRect();try{f=b.clientX,g=b.clientY}catch(b){return null}return P(a,f-h.left,g-h.top)}function eb(a){function b(a){if("single"==l)return Fb(e,Db(i,j),a),void 0;if(q=Db(i,q),r=Db(i,r),"double"==l){var b=Qb(Ec(i,a.line).text,a);Ab(a,q)?Fb(e,b.from,r):Fb(e,q,b.to)}else"triple"==l&&(Ab(a,q)?Fb(e,r,Db(i,{line:a.line,ch:0})):Fb(e,q,Db(i,{line:a.line+1,ch:0})))}function c(a){var d=++t,h=db(e,a,!0);if(h)if(zb(h,o)){var j=a.clientY<s.top?-20:a.clientY>s.bottom?20:0;j&&setTimeout(V(e,function(){t==d&&(f.scroller.scrollTop+=j,c(a))}),50)}else{g.focused||rb(e),o=h,b(h);var k=n(f,i);(h.line>=k.to||h.line<k.from)&&setTimeout(V(e,function(){t==d&&c(a)}),150)}}function d(a){t=1/0;var c=db(e,a);c&&b(c),Oc(a),_(e),Vc(document,"mousemove",u),Vc(document,"mouseup",v)}var e=this,f=e.display,g=e.view,h=g.sel,i=g.doc;if(h.shift=Tc(a,"shiftKey"),cb(f,a))return Hd||(f.scroller.draggable=!1,setTimeout(function(){f.scroller.draggable=!0},100)),void 0;if(!gb(e,a)){var j=db(e,a);switch(Sc(a)){case 3:return Dd&&tb.call(e,e,a),void 0;case 2:return j&&Fb(e,j),setTimeout(ed(_,e),20),Oc(a),void 0}if(!j)return Rc(a)==f.scroller&&Oc(a),void 0;g.focused||rb(e);var k=+new Date,l="single";if(yd&&yd.time>k-400&&zb(yd.pos,j))l="triple",Oc(a),setTimeout(ed(_,e),20),Rb(e,j.line);else if(xd&&xd.time>k-400&&zb(xd.pos,j)){l="double",yd={time:k,pos:j},Oc(a);var m=Qb(Ec(i,j.line).text,j);Fb(e,m.from,m.to)}else xd={time:k,pos:j};var o=j;if(e.options.dragDrop&&oe&&!ab(e)&&!zb(h.from,h.to)&&!Ab(j,h.from)&&!Ab(h.to,j)&&"single"==l){var p=V(e,function(b){Hd&&(f.scroller.draggable=!1),g.draggingText=!1,Vc(document,"mouseup",p),Vc(f.scroller,"drop",p),Math.abs(a.clientX-b.clientX)+Math.abs(a.clientY-b.clientY)<10&&(Oc(b),Fb(e,j),_(e))});return Hd&&(f.scroller.draggable=!0),g.draggingText=p,f.scroller.dragDrop&&f.scroller.dragDrop(),Uc(document,"mouseup",p),Uc(f.scroller,"drop",p),void 0}Oc(a),"single"==l&&Fb(e,Db(i,j));var q=h.from,r=h.to,s=f.wrapper.getBoundingClientRect(),t=0,u=V(e,function(a){Ed||Sc(a)?c(a):d(a)}),v=V(e,d);Uc(document,"mousemove",u),Uc(document,"mouseup",v)}}function fb(a){var b=this;if(!b.options.onDragEvent||!b.options.onDragEvent(b,Nc(a))){Oc(a);var c=db(b,a,!0),d=a.dataTransfer.files;if(c&&!ab(b))if(d&&d.length&&window.FileReader&&window.File)for(var e=d.length,f=Array(e),g=0,h=function(a,d){var h=new FileReader;h.onload=function(){f[d]=h.result,++g==e&&(c=Db(b.view.doc,c),V(b,function(){var a=yb(b,f.join(""),c,c,"paste");Gb(b,c,a)})())},h.readAsText(a)},i=0;e>i;++i)h(d[i],i);else{if(b.view.draggingText&&!Ab(c,b.view.sel.from)&&!Ab(b.view.sel.to,c))return b.view.draggingText(a),Ed&&setTimeout(ed(_,b),50),void 0;try{var f=a.dataTransfer.getData("Text");if(f){var j=b.view.sel.from,k=b.view.sel.to;Gb(b,c,c),b.view.draggingText&&yb(b,"",j,k,"paste"),b.replaceSelection(f,null,"paste"),_(b),rb(b)}}catch(a){}}}}function gb(a,b){var c=a.display;try{var d=b.clientX,e=b.clientY}catch(b){return!1}if(d>=Math.floor(c.gutters.getBoundingClientRect().right))return!1;if(Oc(b),!Yc(a,"gutterClick"))return!0;var f=c.lineDiv.getBoundingClientRect();if(e>f.bottom)return!0;e-=f.top-c.viewOffset;for(var g=0;g<a.options.gutters.length;++g){var h=c.gutters.childNodes[g];if(h&&h.getBoundingClientRect().right>=d){var i=Hc(a.view.doc,e),j=a.options.gutters[g];Xc(a,a,"gutterClick",a,i,j,b);break}}return!0}function hb(a,b){var c=a.getSelection();b.dataTransfer.setData("Text",c),b.dataTransfer.setDragImage&&!Ld&&b.dataTransfer.setDragImage(hd("img"),0,0)}function ib(a,b){Math.abs(a.view.scrollTop-b)<2||(a.view.scrollTop=b,Dd||s(a,[],b),a.display.scroller.scrollTop!=b&&(a.display.scroller.scrollTop=b),a.display.scrollbarV.scrollTop!=b&&(a.display.scrollbarV.scrollTop=b),Dd&&s(a,[]))}function jb(a,b,c){(c?b==a.view.scrollLeft:Math.abs(a.view.scrollLeft-b)<2)||(a.view.scrollLeft=b,o(a),a.display.scroller.scrollLeft!=b&&(a.display.scroller.scrollLeft=b),a.display.scrollbarH.scrollLeft!=b&&(a.display.scrollbarH.scrollLeft=b))}function kb(a,b){var c=b.wheelDeltaX,d=b.wheelDeltaY;if(null==c&&b.detail&&b.axis==b.HORIZONTAL_AXIS&&(c=b.detail),null==d&&b.detail&&b.axis==b.VERTICAL_AXIS?d=b.detail:null==d&&(d=b.wheelDelta),d&&Sd&&Hd)for(var e=b.target;e!=f;e=e.parentNode)if(e.lineObj){a.display.currentWheelTarget=e;break}var f=a.display.scroller;if(c&&!Dd&&!Kd&&null!=Wd)return d&&ib(a,Math.max(0,Math.min(f.scrollTop+d*Wd,f.scrollHeight-f.clientHeight))),jb(a,Math.max(0,Math.min(f.scrollLeft+c*Wd,f.scrollWidth-f.clientWidth))),Oc(b),Bd=null,void 0;if(d&&null!=Wd){var g=d*Wd,h=a.view.scrollTop,i=h+a.display.wrapper.clientHeight;0>g?h=Math.max(0,h+g-50):i=Math.min(a.view.doc.height,i+g+50),s(a,[],{top:h,bottom:i})}20>Vd&&(null==Bd?(Bd=f.scrollLeft,Cd=f.scrollTop,zd=c,Ad=d,setTimeout(function(){if(null!=Bd){var a=f.scrollLeft-Bd,b=f.scrollTop-Cd,c=b&&Ad&&b/Ad||a&&zd&&a/zd;Bd=Cd=null,c&&(Wd=(Wd*Vd+c)/(Vd+1),++Vd)}},200)):(zd+=c,Ad+=d))}function lb(a,b,c){if("string"==typeof b&&(b=fe[b],!b))return!1;a.display.pollingFast&&Z(a)&&(a.display.pollingFast=!1);var d=a.view,e=d.sel.shift;try{ab(a)&&(d.suppressEdits=!0),c&&(d.sel.shift=!1),b(a)}catch(f){if(f!=ke)throw f;return!1}finally{d.sel.shift=e,d.suppressEdits=!1}return!0}function mb(a){var b=a.view.keyMaps.slice(0);return b.push(a.options.keyMap),a.options.extraKeys&&b.unshift(a.options.extraKeys),b}function nb(a,b){function c(){i=!0}var d=Vb(a.options.keyMap),e=d.auto;clearTimeout(Xd),e&&!Xb(b)&&(Xd=setTimeout(function(){Vb(a.options.keyMap)==d&&(a.options.keyMap=e.call?e.call(null,a):e)},50));var f=ve[Tc(b,"keyCode")],g=!1,h=Sd&&(Kd||Id);if(null==f||b.altGraphKey)return!1;Tc(b,"altKey")&&(f="Alt-"+f),Tc(b,h?"metaKey":"ctrlKey")&&(f="Ctrl-"+f),Tc(b,h?"ctrlKey":"metaKey")&&(f="Cmd-"+f);var i=!1,j=mb(a);return g=Tc(b,"shiftKey")?Wb("Shift-"+f,j,function(b){return lb(a,b,!0)},c)||Wb(f,j,function(b){return"string"==typeof b&&/^go[A-Z]/.test(b)?lb(a,b):void 0},c):Wb(f,j,function(b){return lb(a,b)},c),i&&(g=!1),g&&(Oc(b),B(a),Gd&&(b.oldKeyCode=b.keyCode,b.keyCode=0)),g}function ob(a,b,c){var d=Wb("'"+c+"'",mb(a),function(b){return lb(a,b,!0)});return d&&(Oc(b),B(a)),d}function pb(a){var b=this;if(b.view.focused||rb(b),Ed&&27==a.keyCode&&(a.returnValue=!1),!b.options.onKeyEvent||!b.options.onKeyEvent(b,Nc(a))){var c=Tc(a,"keyCode");b.view.sel.shift=16==c||Tc(a,"shiftKey");var d=nb(b,a);Kd&&(Zd=d?c:null,d||88!=c||ue||!Tc(a,Sd?"metaKey":"ctrlKey")||b.replaceSelection(""))}}function qb(a){var b=this;if(!b.options.onKeyEvent||!b.options.onKeyEvent(b,Nc(a))){var c=Tc(a,"keyCode"),d=Tc(a,"charCode");if(Kd&&c==Zd)return Zd=null,Oc(a),void 0;if(!(Kd&&(!a.which||a.which<10)||Md)||!nb(b,a)){var e=String.fromCharCode(null==d?c:d);this.options.electricChars&&this.view.mode.electricChars&&this.options.smartIndent&&!ab(this)&&this.view.mode.electricChars.indexOf(e)>-1&&setTimeout(V(b,function(){Nb(b,b.view.sel.to.line,"smart")}),75),ob(b,a,e)||Y(b)}}}function rb(a){"nocursor"!=a.options.readOnly&&(a.view.focused||(Wc(a,"focus",a),a.view.focused=!0,-1==a.display.scroller.className.search(/\bCodeMirror-focused\b/)&&(a.display.scroller.className+=" CodeMirror-focused"),$(a,!0)),X(a),B(a))}function sb(a){a.view.focused&&(Wc(a,"blur",a),a.view.focused=!1,a.display.scroller.className=a.display.scroller.className.replace(" CodeMirror-focused","")),clearInterval(a.display.blinker),setTimeout(function(){a.view.focused||(a.view.sel.shift=!1)},150)}function tb(a,b){function c(){if(d.inputDiv.style.position="relative",d.input.style.cssText=h,Gd&&(d.scrollbarV.scrollTop=d.scroller.scrollTop=g),X(a),null!=d.input.selectionStart){clearTimeout(Yd); var b=d.input.value=" "+(zb(e.from,e.to)?"":d.input.value),c=0;d.prevInput=" ",d.input.selectionStart=1,d.input.selectionEnd=b.length,Yd=setTimeout(function f(){" "==d.prevInput&&0==d.input.selectionStart?V(a,fe.selectAll)(a):c++<10?Yd=setTimeout(f,500):$(a)},200)}}var d=a.display,e=a.view.sel,f=db(a,b),g=d.scroller.scrollTop;if(f&&!Kd){(zb(e.from,e.to)||Ab(f,e.from)||!Ab(f,e.to))&&V(a,Gb)(a,f,f);var h=d.input.style.cssText;d.inputDiv.style.position="absolute",d.input.style.cssText="position: fixed; width: 30px; height: 30px; top: "+(b.clientY-5)+"px; left: "+(b.clientX-5)+"px; z-index: 1000; background: white; outline: none;border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);",_(a),$(a,!0),zb(e.from,e.to)&&(d.input.value=d.prevInput=" "),Dd?(Qc(b),Uc(window,"mouseup",function i(){Vc(window,"mouseup",i),setTimeout(c,20)})):setTimeout(c,50)}}function ub(a,b,c,d,e,f){var g=Td&&fc(a.view.doc,b,c);if(!g)return vb(a,b,c,d,e,f);for(var h=g.length-1;h>=1;--h)vb(a,g[h].from,g[h].to,[""],f);return g.length?vb(a,g[0].from,g[0].to,d,e,f):void 0}function vb(a,b,c,d,e,f){if(!a.view.suppressEdits){var g=a.view,h=g.doc,i=[];h.iter(b.line,c.line+1,function(a){i.push(oc(a.text,a.markedSpans))});var j=g.sel.from,k=g.sel.to,l=ec(nc(i[0]),nc(ad(i)),b.ch,c.ch,d),m=xb(a,b,c,l,e,f);return g.history&&Lc(a,b.line,d.length,i,f,j,k,g.sel.from,g.sel.to),m}}function wb(a,b){var c=a.view.doc,d=a.view.history,e=("undo"==b?d.done:d.undone).pop();if(e){for(var f={events:[],fromBefore:e.fromAfter,toBefore:e.toAfter,fromAfter:e.fromBefore,toAfter:e.toBefore},g=e.events.length-1;g>=0;g-=1){d.dirtyCounter+="undo"==b?-1:1;var h=e.events[g],i=[],j=h.start+h.added;c.iter(h.start,j,function(a){i.push(oc(a.text,a.markedSpans))}),f.events.push({start:h.start,added:h.old.length,old:i});var k=g?null:{from:e.fromBefore,to:e.toBefore};xb(a,{line:h.start,ch:0},{line:j-1,ch:Ec(c,j-1).text.length},h.old,k,b)}("undo"==b?d.undone:d.done).push(f)}}function xb(a,b,c,d,e,f){var g=a.view,h=g.doc,i=a.display;if(!g.suppressEdits){var k=c.line-b.line,l=Ec(h,b.line),m=Ec(h,c.line),n=!1,o=b.line;a.options.lineWrapping||(o=Gc(jc(h,l)),h.iter(o,c.line+1,function(a){return j(h,a)==g.maxLineLength?(n=!0,!0):void 0}));var p=ad(d),q=R(i);if(0==b.ch&&0==c.ch&&""==mc(p)){for(var r=[],s=0,t=d.length-1;t>s;++s)r.push(rc(mc(d[s]),nc(d[s]),q));sc(a,m,m.text,nc(p)),k&&h.remove(b.line,k,a),r.length&&h.insert(b.line,r)}else if(l==m)if(1==d.length)sc(a,l,l.text.slice(0,b.ch)+mc(d[0])+l.text.slice(c.ch),nc(d[0]));else{for(var r=[],s=1,t=d.length-1;t>s;++s)r.push(rc(mc(d[s]),nc(d[s]),q));r.push(rc(mc(p)+l.text.slice(c.ch),nc(p),q)),sc(a,l,l.text.slice(0,b.ch)+mc(d[0]),nc(d[0])),h.insert(b.line+1,r)}else if(1==d.length)sc(a,l,l.text.slice(0,b.ch)+mc(d[0])+m.text.slice(c.ch),nc(d[0])),h.remove(b.line+1,k,a);else{var r=[];sc(a,l,l.text.slice(0,b.ch)+mc(d[0]),nc(d[0])),sc(a,m,mc(p)+m.text.slice(c.ch),nc(p));for(var s=1,t=d.length-1;t>s;++s)r.push(rc(mc(d[s]),nc(d[s]),q));k>1&&h.remove(b.line+1,k-1,a),h.insert(b.line+1,r)}if(a.options.lineWrapping){var u=Math.max(5,i.scroller.clientWidth/S(i)-3);h.iter(b.line,b.line+d.length,function(a){if(0!=a.height){var b=(Math.ceil(a.text.length/u)||1)*q;b!=a.height&&Fc(a,b)}})}else h.iter(o,b.line+d.length,function(a){var b=j(h,a);b>g.maxLineLength&&(g.maxLine=a,g.maxLineLength=b,g.maxLineChanged=!0,n=!1)}),n&&(a.curOp.updateMaxLine=!0);g.frontier=Math.min(g.frontier,b.line),C(a,400);var v=d.length-k-1;if(W(a,b.line,c.line+1,v),Yc(a,"change")){for(var s=0;s<d.length;++s)"string"!=typeof d[s]&&(d[s]=d[s].text);var w={from:b,to:c,text:d,origin:f};if(a.curOp.textChanged){for(var x=a.curOp.textChanged;x.next;x=x.next);x.next=w}else a.curOp.textChanged=w}var y,z,A={line:b.line+d.length-1,ch:mc(p).length+(1==d.length?b.ch:0)};if(e&&"string"!=typeof e)e.from?(y=e.from,z=e.to):y=z=e;else if("end"==e)y=z=A;else if("start"==e)y=z=b;else if("around"==e)y=b,z=A;else{var B=function(a){if(Ab(a,b))return a;if(!Ab(c,a))return A;var d=a.line+v,e=a.ch;return a.line==c.line&&(e+=mc(p).length-(c.ch-(c.line==b.line?b.ch:0))),{line:d,ch:e}};y=B(g.sel.from),z=B(g.sel.to)}return Gb(a,y,z,null,!0),A}}function yb(a,b,c,d,e){if(d||(d=c),Ab(d,c)){var f=d;d=c,c=f}return ub(a,c,d,se(b),null,e)}function zb(a,b){return a.line==b.line&&a.ch==b.ch}function Ab(a,b){return a.line<b.line||a.line==b.line&&a.ch<b.ch}function Bb(a){return{line:a.line,ch:a.ch}}function Cb(a,b){return Math.max(0,Math.min(b,a.size-1))}function Db(a,b){if(b.line<0)return{line:0,ch:0};if(b.line>=a.size)return{line:a.size-1,ch:Ec(a,a.size-1).text.length};var c=b.ch,d=Ec(a,b.line).text.length;return null==c||c>d?{line:b.line,ch:d}:0>c?{line:b.line,ch:0}:b}function Eb(a,b){return b>=0&&b<a.size}function Fb(a,b,c,d){var e=a.view.sel;if(e.shift||e.extend){var f=e.anchor;if(c){var g=Ab(b,f);g!=Ab(c,f)?(f=b,b=c):g!=Ab(b,c)&&(b=c)}Gb(a,f,b,d)}else Gb(a,b,c||b,d);a.curOp.userSelChange=!0}function Gb(a,b,c,d,e){a.view.goalColumn=null;var f=a.view.sel;if((e||!zb(b,f.anchor))&&(b=Ib(a,b,d,"push"!=e)),(e||!zb(c,f.head))&&(c=Ib(a,c,d,"push"!=e)),!zb(f.anchor,b)||!zb(f.head,c)){f.anchor=b,f.head=c;var g=Ab(c,b);f.from=g?c:b,f.to=g?b:c,a.curOp.updateInput=!0,a.curOp.selectionChanged=!0}}function Hb(a){Gb(a,a.view.sel.from,a.view.sel.to,null,"push")}function Ib(a,b,c,d){var e=a.view.doc,f=!1,g=b,h=c||1;a.view.cantEdit=!1;a:for(;;){var i,j=Ec(e,g.line);if(j.markedSpans){for(var k=0;k<j.markedSpans.length;++k){var l=j.markedSpans[k],m=l.marker;if((null==l.from||(m.inclusiveLeft?l.from<=g.ch:l.from<g.ch))&&(null==l.to||(m.inclusiveRight?l.to>=g.ch:l.to>g.ch))){if(d&&m.clearOnEnter){(i||(i=[])).push(m);continue}if(!m.atomic)continue;var n=m.find()[0>h?"from":"to"];if(zb(n,g)&&(n.ch+=h,n.ch<0?n=n.line?Db(e,{line:n.line-1}):null:n.ch>j.text.length&&(n=n.line<e.size-1?{line:n.line+1,ch:0}:null),!n)){if(f)return d?(a.view.cantEdit=!0,{line:0,ch:0}):Ib(a,b,c,!0);f=!0,n=b,h=-h}g=n;continue a}}if(i)for(var k=0;k<i.length;++k)i[k].clear()}return g}}function Jb(a){var b=a.view,c=Kb(a,b.sel.head);if(b.focused){var d=a.display,e=d.sizer.getBoundingClientRect(),f=null;if(c.top+e.top<0?f=!0:c.bottom+e.top>(window.innerHeight||document.documentElement.clientHeight)&&(f=!1),null!=f&&!Pd){var g="none"==d.cursor.style.display;g&&(d.cursor.style.display="",d.cursor.style.left=c.left+"px",d.cursor.style.top=c.top-d.viewOffset+"px"),d.cursor.scrollIntoView(f),g&&(d.cursor.style.display="none")}}}function Kb(a,b){for(;;){var c=!1,d=O(a,b),e=Mb(a,d.left,d.top,d.left,d.bottom),f=a.view.scrollTop,g=a.view.scrollLeft;if(null!=e.scrollTop&&(ib(a,e.scrollTop),Math.abs(a.view.scrollTop-f)>1&&(c=!0)),null!=e.scrollLeft&&(jb(a,e.scrollLeft),Math.abs(a.view.scrollLeft-g)>1&&(c=!0)),!c)return d}}function Lb(a,b,c,d,e){var f=Mb(a,b,c,d,e);null!=f.scrollTop&&ib(a,f.scrollTop),null!=f.scrollLeft&&jb(a,f.scrollLeft)}function Mb(a,b,c,d,e){var f=a.display,g=G(f);c+=g,e+=g;var h=f.scroller.clientHeight-je,i=f.scroller.scrollTop,j={},k=a.view.doc.height+2*g,l=g+10>c,m=e+g>k-10;i>c?j.scrollTop=l?0:Math.max(0,c):e>i+h&&(j.scrollTop=(m?k:e)-h);var n=f.scroller.clientWidth-je,o=f.scroller.scrollLeft;b+=f.gutters.offsetWidth,d+=f.gutters.offsetWidth;var p=f.gutters.offsetWidth,q=p+10>b;return o+p>b||q?(q&&(b=0),j.scrollLeft=Math.max(0,b-10-p)):d>n+o-3&&(j.scrollLeft=d+10-n),j}function Nb(a,b,c,d){var e=a.view.doc;if(c||(c="add"),"smart"==c)if(a.view.mode.indent)var f=F(a,b);else c="prev";var g,h=a.options.tabSize,i=Ec(e,b),j=$c(i.text,null,h),k=i.text.match(/^\s*/)[0];if("smart"==c&&(g=a.view.mode.indent(f,i.text.slice(k.length),i.text),g==ke)){if(!d)return;c="prev"}"prev"==c?g=b?$c(Ec(e,b-1).text,null,h):0:"add"==c?g=j+a.options.indentUnit:"subtract"==c&&(g=j-a.options.indentUnit),g=Math.max(0,g);var l="",m=0;if(a.options.indentWithTabs)for(var n=Math.floor(g/h);n;--n)m+=h,l+=" ";g>m&&(l+=_c(g-m)),l!=k&&yb(a,l,{line:b,ch:0},{line:b,ch:k.length},"input"),i.stateAfter=null}function Ob(a,b,c){var d=b,e=b,f=a.view.doc;return"number"==typeof b?e=Ec(f,Cb(f,b)):d=Gc(b),null==d?null:c(e,d)?(W(a,d,d+1),e):null}function Pb(a,b,c,d){function e(){var a=i+b;return 0>a||a==g.size?!1:(i=a,k=Ec(g,a))}function f(a){var c=(d?ud:vd)(k,j,b,!0);if(null==c){if(a||!e())return!1;j=d?(0>b?rd:qd)(k):0>b?k.text.length:0}else j=c;return!0}var g=a.view.doc,h=a.view.sel.head,i=h.line,j=h.ch,k=Ec(g,i);if("char"==c)f();else if("column"==c)f(!0);else if("word"==c)for(var l=!1;!(0>b)||f();){if(fd(k.text.charAt(j)))l=!0;else if(l){0>b&&(b=1,f());break}if(b>0&&!f())break}return Ib(a,{line:i,ch:j},b,!0)}function Qb(a,b){var c=b.ch,d=b.ch;if(a){b.after===!1||d==a.length?--c:++d;for(var e=a.charAt(c),f=fd(e)?fd:/\s/.test(e)?function(a){return/\s/.test(a)}:function(a){return!/\s/.test(a)&&!fd(a)};c>0&&f(a.charAt(c-1));)--c;for(;d<a.length&&f(a.charAt(d));)++d}return{from:{line:b.line,ch:c},to:{line:b.line,ch:d}}}function Rb(a,b){Fb(a,{line:b,ch:0},Db(a.view.doc,{line:b+1,ch:0}))}function Sb(b,c,d,e){a.defaults[b]=c,d&&($d[b]=e?function(a,b,c){c!=ae&&d(a,b,c)}:d)}function Tb(a,b){if(b===!0)return b;if(a.copyState)return a.copyState(b);var c={};for(var d in b){var e=b[d];e instanceof Array&&(e=e.concat([])),c[d]=e}return c}function Ub(a,b,c){return a.startState?a.startState(b,c):!0}function Vb(a){return"string"==typeof a?ge[a]:a}function Wb(a,b,c,d){function e(b){b=Vb(b);var f=b[a];if(f===!1)return d&&d(),!0;if(null!=f&&c(f))return!0;if(b.nofallthrough)return d&&d(),!0;var g=b.fallthrough;if(null==g)return!1;if("[object Array]"!=Object.prototype.toString.call(g))return e(g);for(var h=0,i=g.length;i>h;++h)if(e(g[h]))return!0;return!1}for(var f=0;f<b.length;++f)if(e(b[f]))return!0}function Xb(a){var b=ve[Tc(a,"keyCode")];return"Ctrl"==b||"Alt"==b||"Shift"==b||"Mod"==b}function Yb(a,b){this.pos=this.start=0,this.string=a,this.tabSize=b||8}function Zb(a,b){this.lines=[],this.type=b,this.cm=a}function $b(a,b,c,d,e){var f=a.view.doc,g=new Zb(a,e);if("range"==e&&!Ab(b,c))return g;if(d)for(var h in d)d.hasOwnProperty(h)&&(g[h]=d[h]);g.replacedWith&&(g.collapsed=!0,g.replacedWith=hd("span",[g.replacedWith],"CodeMirror-widget")),g.collapsed&&(Ud=!0);var i,j,k=b.line,l=0;if(f.iter(k,c.line+1,function(a){var d={from:null,to:null,marker:g};l+=a.text.length,k==b.line&&(d.from=b.ch,l-=b.ch),k==c.line&&(d.to=c.ch,l-=a.text.length-c.ch),g.collapsed&&(k==c.line&&(j=gc(a,c.ch)),k==b.line?i=gc(a,b.ch):Fc(a,0)),bc(a,d),g.collapsed&&k==b.line&&kc(a)&&Fc(a,0),++k}),g.readOnly&&(Td=!0,(a.view.history.done.length||a.view.history.undone.length)&&a.clearHistory()),g.collapsed){if(i!=j)throw new Error("Inserting collapsed marker overlapping an existing one");g.size=l,g.atomic=!0}return(g.className||g.startStyle||g.endStyle||g.collapsed)&&W(a,b.line,c.line+1),g.atomic&&Hb(a),g}function _b(a,b){if(a)for(var c=0;c<a.length;++c){var d=a[c];if(d.marker==b)return d}}function ac(a,b){for(var c,d=0;d<a.length;++d)a[d]!=b&&(c||(c=[])).push(a[d]);return c}function bc(a,b){a.markedSpans=a.markedSpans?a.markedSpans.concat([b]):[b],b.marker.lines.push(a)}function cc(a,b){if(a)for(var c,d=0;d<a.length;++d){var e=a[d],f=e.marker,g=null==e.from||(f.inclusiveLeft?e.from<=b:e.from<b);if(g||"bookmark"==f.type&&e.from==b){var h=null==e.to||(f.inclusiveRight?e.to>=b:e.to>b);(c||(c=[])).push({from:e.from,to:h?null:e.to,marker:f})}}return c}function dc(a,b,c){if(a)for(var d,e=0;e<a.length;++e){var f=a[e],g=f.marker,h=null==f.to||(g.inclusiveRight?f.to>=c:f.to>c);if(h||"bookmark"==g.type&&f.from==c&&f.from!=b){var i=null==f.from||(g.inclusiveLeft?f.from<=c:f.from<c);(d||(d=[])).push({from:i?null:f.from-c,to:null==f.to?null:f.to-c,marker:g})}}return d}function ec(a,b,c,d,e){if(!a&&!b)return e;var f=cc(a,c),g=dc(b,c,d),h=1==e.length,i=ad(e).length+(h?c:0);if(f)for(var j=0;j<f.length;++j){var k=f[j];if(null==k.to){var l=_b(g,k.marker);l?h&&(k.to=null==l.to?null:l.to+i):k.to=c}}if(g)for(var j=0;j<g.length;++j){var k=g[j];if(null!=k.to&&(k.to+=i),null==k.from){var l=_b(f,k.marker);l||(k.from=i,h&&(f||(f=[])).push(k))}else k.from+=i,h&&(f||(f=[])).push(k)}var m=[oc(e[0],f)];if(!h){var n,o=e.length-2;if(o>0&&f)for(var j=0;j<f.length;++j)null==f[j].to&&(n||(n=[])).push({from:null,to:null,marker:f[j].marker});for(var j=0;o>j;++j)m.push(oc(e[j+1],n));m.push(oc(ad(e),g))}return m}function fc(a,b,c){var d=null;if(a.iter(b.line,c.line+1,function(a){if(a.markedSpans)for(var b=0;b<a.markedSpans.length;++b){var c=a.markedSpans[b].marker;!c.readOnly||d&&-1!=cd(d,c)||(d||(d=[])).push(c)}}),!d)return null;for(var e=[{from:b,to:c}],f=0;f<d.length;++f)for(var g=d[f].find(),h=0;h<e.length;++h){var i=e[h];if(Ab(g.from,i.to)&&!Ab(g.to,i.from)){var j=[h,1];Ab(i.from,g.from)&&j.push({from:i.from,to:g.from}),Ab(g.to,i.to)&&j.push({from:g.to,to:i.to}),e.splice.apply(e,j),h+=j.length-1}}return e}function gc(a,b){var c,d=Ud&&a.markedSpans;if(d)for(var e,f=0;f<d.length;++f)e=d[f],e.marker.collapsed&&(null==e.from||e.from<b)&&(null==e.to||e.to>b)&&(!c||c.width<e.marker.width)&&(c=e.marker);return c}function hc(a){return gc(a,-1)}function ic(a){return gc(a,a.text.length+1)}function jc(a,b){for(var c;c=hc(b);)b=Ec(a,c.find().from.line);return b}function kc(a){var b=Ud&&a.markedSpans;if(b)for(var c,d=0;d<b.length;++d)if(c=b[d],c.marker.collapsed){if(null==c.from)return!0;if(0==c.from&&c.marker.inclusiveLeft&&lc(a,c))return!0}}function lc(a,b){if(null==b.to||b.marker.inclusiveRight&&b.to==a.text.length)return!0;for(var c,d=0;d<a.markedSpans.length;++d)if(c=a.markedSpans[d],c.marker.collapsed&&c.from==b.to&&(c.marker.inclusiveLeft||b.marker.inclusiveRight)&&lc(a,c))return!0}function mc(a){return"string"==typeof a?a:a.text}function nc(a){if("string"==typeof a)return null;for(var b=a.markedSpans,c=null,d=0;d<b.length;++d)b[d].marker.explicitlyCleared?c||(c=b.slice(0,d)):c&&c.push(b[d]);return c?c.length?c:null:b}function oc(a,b){return b?{text:a,markedSpans:b}:a}function pc(a){var b=a.markedSpans;if(b){for(var c=0;c<b.length;++c){var d=b[c].marker.lines,e=cd(d,a);d.splice(e,1)}a.markedSpans=null}}function qc(a,b){if(b){for(var c=0;c<b.length;++c)b[c].marker.lines.push(a);a.markedSpans=b}}function rc(a,b,c){var d={text:a,height:c};return qc(d,b),kc(d)&&(d.height=0),d}function sc(a,b,c,d){b.text=c,b.stateAfter=b.styles=null,null!=b.order&&(b.order=null),pc(b),qc(b,d),kc(b)?b.height=0:b.height||(b.height=R(a.display)),Xc(a,b,"change")}function tc(a){a.parent=null,pc(a)}function uc(a,b,c){var d=a.view.mode,e=a.options.flattenSpans,f=!b.styles,g=0,h="",i=null,j=new Yb(b.text,a.options.tabSize),k=b.styles||(b.styles=[]);for(""==b.text&&d.blankLine&&d.blankLine(c);!j.eol();){var l=d.token(j,c),m=j.current();if(j.start=j.pos,e&&i==l?h+=m:(h&&(f=f||g>=k.length||h!=k[g]||i!=k[g+1],k[g++]=h,k[g++]=i),h=m,i=l),j.pos>5e3)break}return h&&(f=f||g>=k.length||h!=k[g]||i!=k[g+1],k[g++]=h,k[g++]=i),j.pos>5e3&&(k[g++]=b.text.slice(j.pos),k[g++]=null),g!=k.length&&(k.length=g,f=!0),f}function vc(a,b,c){var d=a.view.mode,e=new Yb(b.text,a.options.tabSize);for(""==b.text&&d.blankLine&&d.blankLine(c);!e.eol()&&e.pos<=5e3;)d.token(e,c),e.start=e.pos}function wc(a){return a?he[a]||(he[a]="cm-"+a.replace(/ +/g," cm-")):null}function xc(a,b,c){for(var d,e,f,g=b,h=!0;d=hc(g);)h=!1,g=Ec(a.view.doc,d.find().from.line),e||(e=g);var i={pre:hd("pre"),col:0,pos:0,display:!c,measure:null,addedOne:!1,cm:a};g.textClass&&(i.pre.className=g.textClass);do{g.styles||uc(a,g,g.stateAfter=F(a,Gc(g))),i.measure=g==b&&c,i.pos=0,i.addToken=i.measure?zc:yc,c&&f&&g!=b&&!i.addedOne&&(c[0]=i.pre.appendChild(md(a.display.measure)),i.addedOne=!0);var j=Bc(g,i);f=g==e,j&&(g=Ec(a.view.doc,j.to.line),h=!1)}while(j);return c&&!i.addedOne&&(c[0]=i.pre.appendChild(h?hd("span"," "):md(a.display.measure))),i.pre.firstChild||kc(b)||i.pre.appendChild(document.createTextNode(" ")),i.pre}function yc(a,b,c,d,e){if(b){if(ie.test(b))for(var f=document.createDocumentFragment(),g=0;;){ie.lastIndex=g;var h=ie.exec(b),i=h?h.index-g:b.length-g;if(i&&(f.appendChild(document.createTextNode(b.slice(g,g+i))),a.col+=i),!h)break;if(g+=i+1," "==h[0]){var j=a.cm.options.tabSize,k=j-a.col%j;f.appendChild(hd("span",_c(k),"cm-tab")),a.col+=k}else{var l=hd("span","•","cm-invalidchar");l.title="\\u"+h[0].charCodeAt(0).toString(16),f.appendChild(l),a.col+=1}}else{a.col+=b.length;var f=document.createTextNode(b)}if(c||d||e||a.measure){var m=c||"";return d&&(m+=d),e&&(m+=e),a.pre.appendChild(hd("span",[f],m))}a.pre.appendChild(f)}}function zc(a,b,c,d,e){for(var f=0;f<b.length;++f)f&&f<b.length-1&&a.cm.options.lineWrapping&&pe.test(b.slice(f-1,f+1))&&a.pre.appendChild(hd("wbr")),a.measure[a.pos++]=yc(a,b.charAt(f),c,0==f&&d,f==b.length-1&&e);b.length&&(a.addedOne=!0)}function Ac(a,b,c){c&&(a.display||(c=c.cloneNode(!0)),a.pre.appendChild(c),a.measure&&b&&(a.measure[a.pos]=c,a.addedOne=!0)),a.pos+=b}function Bc(a,b){var c=a.styles,d=a.markedSpans;if(d)for(var e,f,g,h,i,j=a.text,k=j.length,l=0,m=0,n="",o=0;;){if(o==l){f=g=h="",i=null,o=1/0;for(var p=null,q=0;q<d.length;++q){var r=d[q],s=r.marker;r.from<=l&&(null==r.to||r.to>l)?(null!=r.to&&o>r.to&&(o=r.to,g=""),s.className&&(f+=" "+s.className),s.startStyle&&r.from==l&&(h+=" "+s.startStyle),s.endStyle&&r.to==o&&(g+=" "+s.endStyle),s.collapsed&&(!i||i.marker.width<s.width)&&(i=r)):r.from>l&&o>r.from&&(o=r.from),"bookmark"==s.type&&r.from==l&&s.replacedWith&&(p=s.replacedWith)}if(i&&(i.from||0)==l&&(Ac(b,(null==i.to?k:i.to)-l,null!=i.from&&i.marker.replacedWith),null==i.to))return i.marker.find();p&&!i&&Ac(b,0,p)}if(l>=k)break;for(var t=Math.min(k,o);;){if(n){var u=l+n.length;if(!i){var v=u>t?n.slice(0,t-l):n;b.addToken(b,v,e+f,h,l+v.length==o?g:"")}if(u>=t){n=n.slice(t-l),l=t;break}l=u,h=""}n=c[m++],e=wc(c[m++])}}else for(var m=0;m<c.length;m+=2)b.addToken(b,c[m],wc(c[m+1]))}function Cc(a){this.lines=a,this.parent=null;for(var b=0,c=a.length,d=0;c>b;++b)a[b].parent=this,d+=a[b].height;this.height=d}function Dc(a){this.children=a;for(var b=0,c=0,d=0,e=a.length;e>d;++d){var f=a[d];b+=f.chunkSize(),c+=f.height,f.parent=this}this.size=b,this.height=c,this.parent=null}function Ec(a,b){for(;!a.lines;)for(var c=0;;++c){var d=a.ch