Current Directory: /home/astoriaah/www/old15/media/editors/codemirror/lib
Viewing File: /home/astoriaah/www/old15/media/editors/codemirror/lib/addons.min.js
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e){var t=e.getWrapperElement();e.state.fullScreenRestore={scrollTop:window.pageYOffset,scrollLeft:window.pageXOffset,width:t.style.width,height:t.style.height},t.style.width="",t.style.height="auto",t.className+=" CodeMirror-fullscreen",document.documentElement.style.overflow="hidden",e.refresh()}function r(e){var t=e.getWrapperElement();t.className=t.className.replace(/\s*CodeMirror-fullscreen\b/,""),document.documentElement.style.overflow="";var r=e.state.fullScreenRestore;t.style.width=r.width,t.style.height=r.height,window.scrollTo(r.scrollLeft,r.scrollTop),e.refresh()}e.defineOption("fullScreen",!1,function(n,o,i){i==e.Init&&(i=!1),!i!=!o&&(o?t(n):r(n))})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){function t(e,t,r,n){this.cm=e,this.node=t,this.options=r,this.height=n,this.cleared=!1}function r(e){var t=e.getWrapperElement(),r=window.getComputedStyle?window.getComputedStyle(t):t.currentStyle,n=parseInt(r.height),o=e.state.panels={setHeight:t.style.height,heightLeft:n,panels:0,wrapper:document.createElement("div")};t.parentNode.insertBefore(o.wrapper,t);var i=e.hasFocus();o.wrapper.appendChild(t),i&&e.focus(),e._setSize=e.setSize,null!=n&&(e.setSize=function(t,r){if(null==r)return this._setSize(t,r);if(o.setHeight=r,"number"!=typeof r){var i=/^(\d+\.?\d*)px$/.exec(r);i?r=Number(i[1]):(o.wrapper.style.height=r,r=o.wrapper.offsetHeight,o.wrapper.style.height="")}e._setSize(t,o.heightLeft+=r-n),n=r})}function n(e){var t=e.state.panels;e.state.panels=null;var r=e.getWrapperElement();t.wrapper.parentNode.replaceChild(r,t.wrapper),r.style.height=t.setHeight,e.setSize=e._setSize,e.setSize()}e.defineExtension("addPanel",function(e,n){this.state.panels||r(this);var o=this.state.panels;n&&"bottom"==n.position?o.wrapper.appendChild(e):o.wrapper.insertBefore(e,o.wrapper.firstChild);var i=n&&n.height||e.offsetHeight;return this._setSize(null,o.heightLeft-=i),o.panels++,new t(this,e,n,i)}),t.prototype.clear=function(){if(!this.cleared){this.cleared=!0;var e=this.cm.state.panels;this.cm._setSize(null,e.heightLeft+=this.height),e.wrapper.removeChild(this.node),0==--e.panels&&n(this.cm)}},t.prototype.changed=function(e){var t=null==e?this.node.offsetHeight:e,r=this.cm.state.panels;this.cm._setSize(null,r.height+=t-this.height),this.height=t}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){function t(e,t){var r=e.getRange(c(t.line,t.ch-1),c(t.line,t.ch+1));return 2==r.length?r:null}function r(t,r,n){var o=t.getLine(r.line),i=t.getTokenAt(r);if(/\bstring2?\b/.test(i.type))return!1;var a=new e.StringStream(o.slice(0,r.ch)+n+o.slice(r.ch),4);for(a.pos=a.start=i.start;;){var s=t.getMode().token(a,i.state);if(a.pos>=r.ch+1)return/\bstring2?\b/.test(s);a.start=a.pos}}function n(n,o){for(var i={name:"autoCloseBrackets",Backspace:function(r){if(r.getOption("disableInput"))return e.Pass;for(var o=r.listSelections(),i=0;i<o.length;i++){if(!o[i].empty())return e.Pass;var a=t(r,o[i].head);if(!a||n.indexOf(a)%2!=0)return e.Pass}for(var i=o.length-1;i>=0;i--){var s=o[i].head;r.replaceRange("",c(s.line,s.ch-1),c(s.line,s.ch+1))}}},a="",s=0;s<n.length;s+=2)(function(t,n){a+=n,i["'"+t+"'"]=function(i){if(i.getOption("disableInput"))return e.Pass;for(var s,u,f=i.listSelections(),h=0;h<f.length;h++){var d,p=f[h],m=p.head,u=i.getRange(m,c(m.line,m.ch+1));if(p.empty())if(t==n&&u==n)d=i.getRange(m,c(m.line,m.ch+3))==t+t+t?"skipThree":"skip";else if(t==n&&m.ch>1&&o.indexOf(t)>=0&&i.getRange(c(m.line,m.ch-2),m)==t+t&&(m.ch<=2||i.getRange(c(m.line,m.ch-3),c(m.line,m.ch-2))!=t))d="addFour";else if('"'==t||"'"==t){if(e.isWordChar(u)||!r(i,m,t))return e.Pass;d="both"}else{if(!(i.getLine(m.line).length==m.ch||a.indexOf(u)>=0||l.test(u)))return e.Pass;d="both"}else d="surround";if(s){if(s!=d)return e.Pass}else s=d}i.operation(function(){if("skip"==s)i.execCommand("goCharRight");else if("skipThree"==s)for(var e=0;3>e;e++)i.execCommand("goCharRight");else if("surround"==s){for(var r=i.getSelections(),e=0;e<r.length;e++)r[e]=t+r[e]+n;i.replaceSelections(r,"around")}else"both"==s?(i.replaceSelection(t+n,null),i.execCommand("goCharLeft")):"addFour"==s&&(i.replaceSelection(t+t+t+t,"before"),i.execCommand("goCharRight"))})},t!=n&&(i["'"+n+"'"]=function(t){for(var r=t.listSelections(),o=0;o<r.length;o++){var i=r[o];if(!i.empty()||t.getRange(i.head,c(i.head.line,i.head.ch+1))!=n)return e.Pass}t.execCommand("goCharRight")})})(n.charAt(s),n.charAt(s+1));return i}function o(r){return function(n){if(n.getOption("disableInput"))return e.Pass;for(var o=n.listSelections(),i=0;i<o.length;i++){if(!o[i].empty())return e.Pass;var a=t(n,o[i].head);if(!a||r.indexOf(a)%2!=0)return e.Pass}n.operation(function(){n.replaceSelection("\n\n",null),n.execCommand("goCharLeft"),o=n.listSelections();for(var e=0;e<o.length;e++){var t=o[e].head.line;n.indentLine(t,null,!0),n.indentLine(t+1,null,!0)}})}}var i="()[]{}''\"\"",a="'\"",s="[]{}",l=/\s/,c=e.Pos;e.defineOption("autoCloseBrackets",!1,function(t,r,l){if(l!=e.Init&&l&&t.removeKeyMap("autoCloseBrackets"),r){var c=i,u=a,f=s;"string"==typeof r?c=r:"object"==typeof r&&(null!=r.pairs&&(c=r.pairs),null!=r.triples&&(u=r.triples),null!=r.explode&&(f=r.explode));var h=n(c,u);f&&(h.Enter=o(f)),t.addKeyMap(h)}})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("../fold/xml-fold")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../fold/xml-fold"],e):e(CodeMirror)}(function(e){function t(t){if(t.getOption("disableInput"))return e.Pass;for(var r=t.listSelections(),n=[],l=0;l<r.length;l++){if(!r[l].empty())return e.Pass;var c=r[l].head,u=t.getTokenAt(c),f=e.innerMode(t.getMode(),u.state),h=f.state;if("xml"!=f.mode.name||!h.tagName)return e.Pass;var d=t.getOption("autoCloseTags"),p="html"==f.mode.configuration,m="object"==typeof d&&d.dontCloseTags||p&&a,g="object"==typeof d&&d.indentTags||p&&s,v=h.tagName;u.end>c.ch&&(v=v.slice(0,v.length-u.end+c.ch));var y=v.toLowerCase();if(!v||"string"==u.type&&(u.end!=c.ch||!/[\"\']/.test(u.string.charAt(u.string.length-1))||1==u.string.length)||"tag"==u.type&&"closeTag"==h.type||u.string.indexOf("/")==u.string.length-1||m&&o(m,y)>-1||i(t,v,c,h,!0))return e.Pass;var C=g&&o(g,y)>-1;n[l]={indent:C,text:">"+(C?"\n\n":"")+"</"+v+">",newPos:C?e.Pos(c.line+1,0):e.Pos(c.line,c.ch+1)}}for(var l=r.length-1;l>=0;l--){var k=n[l];t.replaceRange(k.text,r[l].head,r[l].anchor,"+insert");var w=t.listSelections().slice(0);w[l]={head:k.newPos,anchor:k.newPos},t.setSelections(w),k.indent&&(t.indentLine(k.newPos.line,null,!0),t.indentLine(k.newPos.line+1,null,!0))}}function r(t,r){for(var n=t.listSelections(),o=[],a=r?"/":"</",s=0;s<n.length;s++){if(!n[s].empty())return e.Pass;var l=n[s].head,c=t.getTokenAt(l),u=e.innerMode(t.getMode(),c.state),f=u.state;if(r&&("string"==c.type||"<"!=c.string.charAt(0)||c.start!=l.ch-1))return e.Pass;if("xml"!=u.mode.name)if("htmlmixed"==t.getMode().name&&"javascript"==u.mode.name)o[s]=a+"script>";else{if("htmlmixed"!=t.getMode().name||"css"!=u.mode.name)return e.Pass;o[s]=a+"style>"}else{if(!f.context||!f.context.tagName||i(t,f.context.tagName,l,f))return e.Pass;o[s]=a+f.context.tagName+">"}}t.replaceSelections(o),n=t.listSelections();for(var s=0;s<n.length;s++)(s==n.length-1||n[s].head.line<n[s+1].head.line)&&t.indentLine(n[s].head.line)}function n(t){return t.getOption("disableInput")?e.Pass:r(t,!0)}function o(e,t){if(e.indexOf)return e.indexOf(t);for(var r=0,n=e.length;n>r;++r)if(e[r]==t)return r;return-1}function i(t,r,n,o,i){if(!e.scanForClosingTag)return!1;var a=Math.min(t.lastLine()+1,n.line+500),s=e.scanForClosingTag(t,n,null,a);if(!s||s.tag!=r)return!1;for(var l=o.context,c=i?1:0;l&&l.tagName==r;l=l.prev)++c;n=s.to;for(var u=1;c>u;u++){var f=e.scanForClosingTag(t,n,null,a);if(!f||f.tag!=r)return!1;n=f.to}return!0}e.defineOption("autoCloseTags",!1,function(r,o,i){if(i!=e.Init&&i&&r.removeKeyMap("autoCloseTags"),o){var a={name:"autoCloseTags"};("object"!=typeof o||o.whenClosing)&&(a["'/'"]=function(e){return n(e)}),("object"!=typeof o||o.whenOpening)&&(a["'>'"]=function(e){return t(e)}),r.addKeyMap(a)}});var a=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],s=["applet","blockquote","body","button","div","dl","fieldset","form","frameset","h1","h2","h3","h4","h5","h6","head","html","iframe","layer","legend","object","ol","p","select","table","ul"];e.commands.closeTag=function(e){return r(e)}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){function t(e,t,n,o){var i=e.getLineHandle(t.line),l=t.ch-1,c=l>=0&&s[i.text.charAt(l)]||s[i.text.charAt(++l)];if(!c)return null;var u=">"==c.charAt(1)?1:-1;if(n&&u>0!=(l==t.ch))return null;var f=e.getTokenTypeAt(a(t.line,l+1)),h=r(e,a(t.line,l+(u>0?1:0)),u,f||null,o);return null==h?null:{from:a(t.line,l),to:h&&h.pos,match:h&&h.ch==c.charAt(0),forward:u>0}}function r(e,t,r,n,o){for(var i=o&&o.maxScanLineLength||1e4,l=o&&o.maxScanLines||1e3,c=[],u=o&&o.bracketRegex?o.bracketRegex:/[(){}[\]]/,f=r>0?Math.min(t.line+l,e.lastLine()+1):Math.max(e.firstLine()-1,t.line-l),h=t.line;h!=f;h+=r){var d=e.getLine(h);if(d){var p=r>0?0:d.length-1,m=r>0?d.length:-1;if(!(d.length>i))for(h==t.line&&(p=t.ch-(0>r?1:0));p!=m;p+=r){var g=d.charAt(p);if(u.test(g)&&(void 0===n||e.getTokenTypeAt(a(h,p+1))==n)){var v=s[g];if(">"==v.charAt(1)==r>0)c.push(g);else{if(!c.length)return{pos:a(h,p),ch:g};c.pop()}}}}}return h-r==(r>0?e.lastLine():e.firstLine())?!1:null}function n(e,r,n){for(var o=e.state.matchBrackets.maxHighlightLineLength||1e3,s=[],l=e.listSelections(),c=0;c<l.length;c++){var u=l[c].empty()&&t(e,l[c].head,!1,n);if(u&&e.getLine(u.from.line).length<=o){var f=u.match?"CodeMirror-matchingbracket":"CodeMirror-nonmatchingbracket";s.push(e.markText(u.from,a(u.from.line,u.from.ch+1),{className:f})),u.to&&e.getLine(u.to.line).length<=o&&s.push(e.markText(u.to,a(u.to.line,u.to.ch+1),{className:f}))}}if(s.length){i&&e.state.focused&&e.focus();var h=function(){e.operation(function(){for(var e=0;e<s.length;e++)s[e].clear()})};if(!r)return h;setTimeout(h,800)}}function o(e){e.operation(function(){l&&(l(),l=null),l=n(e,!1,e.state.matchBrackets)})}var i=/MSIE \d/.test(navigator.userAgent)&&(null==document.documentMode||document.documentMode<8),a=e.Pos,s={"(":")>",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<"},l=null;e.defineOption("matchBrackets",!1,function(t,r,n){n&&n!=e.Init&&t.off("cursorActivity",o),r&&(t.state.matchBrackets="object"==typeof r?r:{},t.on("cursorActivity",o))}),e.defineExtension("matchBrackets",function(){n(this,!0)}),e.defineExtension("findMatchingBracket",function(e,r,n){return t(this,e,r,n)}),e.defineExtension("scanForBracket",function(e,t,n,o){return r(this,e,t,n,o)})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("../fold/xml-fold")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../fold/xml-fold"],e):e(CodeMirror)}(function(e){"use strict";function t(e){e.state.tagHit&&e.state.tagHit.clear(),e.state.tagOther&&e.state.tagOther.clear(),e.state.tagHit=e.state.tagOther=null}function r(r){r.state.failedTagMatch=!1,r.operation(function(){if(t(r),!r.somethingSelected()){var n=r.getCursor(),o=r.getViewport();o.from=Math.min(o.from,n.line),o.to=Math.max(n.line+1,o.to);var i=e.findMatchingTag(r,n,o);if(i){if(r.state.matchBothTags){var a="open"==i.at?i.open:i.close;a&&(r.state.tagHit=r.markText(a.from,a.to,{className:"CodeMirror-matchingtag"}))}var s="close"==i.at?i.open:i.close;s?r.state.tagOther=r.markText(s.from,s.to,{className:"CodeMirror-matchingtag"}):r.state.failedTagMatch=!0}}})}function n(e){e.state.failedTagMatch&&r(e)}e.defineOption("matchTags",!1,function(o,i,a){a&&a!=e.Init&&(o.off("cursorActivity",r),o.off("viewportChange",n),t(o)),i&&(o.state.matchBothTags="object"==typeof i&&i.bothTags,o.on("cursorActivity",r),o.on("viewportChange",n),r(o))}),e.commands.toMatchingTag=function(t){var r=e.findMatchingTag(t,t.getCursor());if(r){var n="close"==r.at?r.open:r.close;n&&t.extendSelection(n.to,n.from)}}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.registerHelper("fold","brace",function(t,r){function n(n){for(var o=r.ch,l=0;;){var c=0>=o?-1:s.lastIndexOf(n,o-1);if(-1!=c){if(1==l&&c<r.ch)break;if(i=t.getTokenTypeAt(e.Pos(a,c+1)),!/^(comment|string)/.test(i))return c+1;o=c-1}else{if(1==l)break;l=1,o=s.length}}}var o,i,a=r.line,s=t.getLine(a),l="{",c="}",o=n("{");if(null==o&&(l="[",c="]",o=n("[")),null!=o){var u,f,h=1,d=t.lastLine();e:for(var p=a;d>=p;++p)for(var m=t.getLine(p),g=p==a?o:0;;){var v=m.indexOf(l,g),y=m.indexOf(c,g);if(0>v&&(v=m.length),0>y&&(y=m.length),g=Math.min(v,y),g==m.length)break;if(t.getTokenTypeAt(e.Pos(p,g+1))==i)if(g==v)++h;else if(!--h){u=p,f=g;break e}++g}if(null!=u&&(a!=u||f!=o))return{from:e.Pos(a,o),to:e.Pos(u,f)}}}),e.registerHelper("fold","import",function(t,r){function n(r){if(r<t.firstLine()||r>t.lastLine())return null;var n=t.getTokenAt(e.Pos(r,1));if(/\S/.test(n.string)||(n=t.getTokenAt(e.Pos(r,n.end+1))),"keyword"!=n.type||"import"!=n.string)return null;for(var o=r,i=Math.min(t.lastLine(),r+10);i>=o;++o){var a=t.getLine(o),s=a.indexOf(";");if(-1!=s)return{startCh:n.end,end:e.Pos(o,s)}}}var o,r=r.line,i=n(r);if(!i||n(r-1)||(o=n(r-2))&&o.end.line==r-1)return null;for(var a=i.end;;){var s=n(a.line+1);if(null==s)break;a=s.end}return{from:t.clipPos(e.Pos(r,i.startCh+1)),to:a}}),e.registerHelper("fold","include",function(t,r){function n(r){if(r<t.firstLine()||r>t.lastLine())return null;var n=t.getTokenAt(e.Pos(r,1));return/\S/.test(n.string)||(n=t.getTokenAt(e.Pos(r,n.end+1))),"meta"==n.type&&"#include"==n.string.slice(0,8)?n.start+8:void 0}var r=r.line,o=n(r);if(null==o||null!=n(r-1))return null;for(var i=r;;){var a=n(i+1);if(null==a)break;++i}return{from:e.Pos(r,o+1),to:t.clipPos(e.Pos(i))}})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(t,o,i,a){function s(e){var r=l(t,o);if(!r||r.to.line-r.from.line<c)return null;for(var n=t.findMarksAt(r.from),i=0;i<n.length;++i)if(n[i].__isFold&&"fold"!==a){if(!e)return null;r.cleared=!0,n[i].clear()}return r}if(i&&i.call){var l=i;i=null}else var l=n(t,i,"rangeFinder");"number"==typeof o&&(o=e.Pos(o,0));var c=n(t,i,"minFoldSize"),u=s(!0);if(n(t,i,"scanUp"))for(;!u&&o.line>t.firstLine();)o=e.Pos(o.line-1,0),u=s(!1);if(u&&!u.cleared&&"unfold"!==a){var f=r(t,i);e.on(f,"mousedown",function(t){h.clear(),e.e_preventDefault(t)});var h=t.markText(u.from,u.to,{replacedWith:f,clearOnEnter:!0,__isFold:!0});h.on("clear",function(r,n){e.signal(t,"unfold",t,r,n)}),e.signal(t,"fold",t,u.from,u.to)}}function r(e,t){var r=n(e,t,"widget");if("string"==typeof r){var o=document.createTextNode(r);r=document.createElement("span"),r.appendChild(o),r.className="CodeMirror-foldmarker"}return r}function n(e,t,r){if(t&&void 0!==t[r])return t[r];var n=e.options.foldOptions;return n&&void 0!==n[r]?n[r]:o[r]}e.newFoldFunction=function(e,r){return function(n,o){t(n,o,{rangeFinder:e,widget:r})}},e.defineExtension("foldCode",function(e,r,n){t(this,e,r,n)}),e.defineExtension("isFolded",function(e){for(var t=this.findMarksAt(e),r=0;r<t.length;++r)if(t[r].__isFold)return!0}),e.commands.toggleFold=function(e){e.foldCode(e.getCursor())},e.commands.fold=function(e){e.foldCode(e.getCursor(),null,"fold")},e.commands.unfold=function(e){e.foldCode(e.getCursor(),null,"unfold")},e.commands.foldAll=function(t){t.operation(function(){for(var r=t.firstLine(),n=t.lastLine();n>=r;r++)t.foldCode(e.Pos(r,0),null,"fold")})},e.commands.unfoldAll=function(t){t.operation(function(){for(var r=t.firstLine(),n=t.lastLine();n>=r;r++)t.foldCode(e.Pos(r,0),null,"unfold")})},e.registerHelper("fold","combine",function(){var e=Array.prototype.slice.call(arguments,0);return function(t,r){for(var n=0;n<e.length;++n){var o=e[n](t,r);if(o)return o}}}),e.registerHelper("fold","auto",function(e,t){for(var r=e.getHelpers(t,"fold"),n=0;n<r.length;n++){var o=r[n](e,t);if(o)return o}});var o={rangeFinder:e.fold.auto,widget:"↔",minFoldSize:0,scanUp:!1};e.defineOption("foldOptions",null),e.defineExtension("foldOption",function(e,t){return n(this,e,t)})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("./foldcode")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","./foldcode"],e):e(CodeMirror)}(function(e){"use strict";function t(e){this.options=e,this.from=this.to=0}function r(e){return e===!0&&(e={}),null==e.gutter&&(e.gutter="CodeMirror-foldgutter"),null==e.indicatorOpen&&(e.indicatorOpen="CodeMirror-foldgutter-open"),null==e.indicatorFolded&&(e.indicatorFolded="CodeMirror-foldgutter-folded"),e}function n(e,t){for(var r=e.findMarksAt(f(t)),n=0;n<r.length;++n)if(r[n].__isFold&&r[n].find().from.line==t)return!0}function o(e){if("string"==typeof e){var t=document.createElement("div");return t.className=e+" CodeMirror-guttermarker-subtle",t}return e.cloneNode(!0)}function i(e,t,r){var i=e.state.foldGutter.options,a=t,s=e.foldOption(i,"minFoldSize"),l=e.foldOption(i,"rangeFinder");e.eachLine(t,r,function(t){var r=null;if(n(e,a))r=o(i.indicatorFolded);else{var c=f(a,0),u=l&&l(e,c);u&&u.to.line-u.from.line>=s&&(r=o(i.indicatorOpen))}e.setGutterMarker(t,i.gutter,r),++a})}function a(e){var t=e.getViewport(),r=e.state.foldGutter;r&&(e.operation(function(){i(e,t.from,t.to)}),r.from=t.from,r.to=t.to)}function s(e,t,r){var n=e.state.foldGutter;if(n){var o=n.options;r==o.gutter&&e.foldCode(f(t,0),o.rangeFinder)}}function l(e){var t=e.state.foldGutter;if(t){var r=t.options;t.from=t.to=0,clearTimeout(t.changeUpdate),t.changeUpdate=setTimeout(function(){a(e)},r.foldOnChangeTimeSpan||600)}}function c(e){var t=e.state.foldGutter;if(t){var r=t.options;clearTimeout(t.changeUpdate),t.changeUpdate=setTimeout(function(){var r=e.getViewport();t.from==t.to||r.from-t.to>20||t.from-r.to>20?a(e):e.operation(function(){r.from<t.from&&(i(e,r.from,t.from),t.from=r.from),r.to>t.to&&(i(e,t.to,r.to),t.to=r.to)})},r.updateViewportTimeSpan||400)}}function u(e,t){var r=e.state.foldGutter;if(r){var n=t.line;n>=r.from&&n<r.to&&i(e,n,n+1)}}e.defineOption("foldGutter",!1,function(n,o,i){i&&i!=e.Init&&(n.clearGutter(n.state.foldGutter.options.gutter),n.state.foldGutter=null,n.off("gutterClick",s),n.off("change",l),n.off("viewportChange",c),n.off("fold",u),n.off("unfold",u),n.off("swapDoc",a)),o&&(n.state.foldGutter=new t(r(o)),a(n),n.on("gutterClick",s),n.on("change",l),n.on("viewportChange",c),n.on("fold",u),n.on("unfold",u),n.on("swapDoc",a))});var f=e.Pos}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t){return e.line-t.line||e.ch-t.ch}function r(e,t,r,n){this.line=t,this.ch=r,this.cm=e,this.text=e.getLine(t),this.min=n?n.from:e.firstLine(),this.max=n?n.to-1:e.lastLine()}function n(e,t){var r=e.cm.getTokenTypeAt(h(e.line,t));return r&&/\btag\b/.test(r)}function o(e){return e.line>=e.max?void 0:(e.ch=0,e.text=e.cm.getLine(++e.line),!0)}function i(e){return e.line<=e.min?void 0:(e.text=e.cm.getLine(--e.line),e.ch=e.text.length,!0)}function a(e){for(;;){var t=e.text.indexOf(">",e.ch);if(-1==t){if(o(e))continue;return}{if(n(e,t+1)){var r=e.text.lastIndexOf("/",t),i=r>-1&&!/\S/.test(e.text.slice(r+1,t));return e.ch=t+1,i?"selfClose":"regular"}e.ch=t+1}}}function s(e){for(;;){var t=e.ch?e.text.lastIndexOf("<",e.ch-1):-1;if(-1==t){if(i(e))continue;return}if(n(e,t+1)){m.lastIndex=t,e.ch=t;var r=m.exec(e.text);if(r&&r.index==t)return r}else e.ch=t}}function l(e){for(;;){m.lastIndex=e.ch;var t=m.exec(e.text);if(!t){if(o(e))continue;return}{if(n(e,t.index+1))return e.ch=t.index+t[0].length,t;e.ch=t.index+1}}}function c(e){for(;;){var t=e.ch?e.text.lastIndexOf(">",e.ch-1):-1;if(-1==t){if(i(e))continue;return}{if(n(e,t+1)){var r=e.text.lastIndexOf("/",t),o=r>-1&&!/\S/.test(e.text.slice(r+1,t));return e.ch=t+1,o?"selfClose":"regular"}e.ch=t}}}function u(e,t){for(var r=[];;){var n,o=l(e),i=e.line,s=e.ch-(o?o[0].length:0);if(!o||!(n=a(e)))return;if("selfClose"!=n)if(o[1]){for(var c=r.length-1;c>=0;--c)if(r[c]==o[2]){r.length=c;break}if(0>c&&(!t||t==o[2]))return{tag:o[2],from:h(i,s),to:h(e.line,e.ch)}}else r.push(o[2])}}function f(e,t){for(var r=[];;){var n=c(e);if(!n)return;if("selfClose"!=n){var o=e.line,i=e.ch,a=s(e);if(!a)return;if(a[1])r.push(a[2]);else{for(var l=r.length-1;l>=0;--l)if(r[l]==a[2]){r.length=l;break}if(0>l&&(!t||t==a[2]))return{tag:a[2],from:h(e.line,e.ch),to:h(o,i)}}}else s(e)}}var h=e.Pos,d="A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",p=d+"-:.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040",m=new RegExp("<(/?)(["+d+"]["+p+"]*)","g");e.registerHelper("fold","xml",function(e,t){for(var n=new r(e,t.line,0);;){var o,i=l(n);if(!i||n.line!=t.line||!(o=a(n)))return;if(!i[1]&&"selfClose"!=o){var t=h(n.line,n.ch),s=u(n,i[2]);return s&&{from:t,to:s.from}}}}),e.findMatchingTag=function(e,n,o){var i=new r(e,n.line,n.ch,o);if(-1!=i.text.indexOf(">")||-1!=i.text.indexOf("<")){var l=a(i),c=l&&h(i.line,i.ch),d=l&&s(i);if(l&&d&&!(t(i,n)>0)){var p={from:h(i.line,i.ch),to:c,tag:d[2]};return"selfClose"==l?{open:p,close:null,at:"open"}:d[1]?{open:f(i,d[2]),close:p,at:"close"}:(i=new r(e,c.line,c.ch,o),{open:p,close:u(i,d[2]),at:"open"})}}},e.findEnclosingTag=function(e,t,n){for(var o=new r(e,t.line,t.ch,n);;){var i=f(o);if(!i)break;var a=new r(e,t.line,t.ch,n),s=u(a,i.tag);if(s)return{open:i,close:s}}},e.scanForClosingTag=function(e,t,n,o){var i=new r(e,t.line,t.ch,o?{from:0,to:o}:null);return u(i,n)}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),"cjs"):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],function(t){e(t,"amd")}):e(CodeMirror,"plain")}(function(e,t){function r(e,t){var r=t;return function(){0==--r&&e()}}function n(t,n){var o=e.modes[t].dependencies;if(!o)return n();for(var i=[],a=0;a<o.length;++a)e.modes.hasOwnProperty(o[a])||i.push(o[a]);if(!i.length)return n();for(var s=r(n,i.length),a=0;a<i.length;++a)e.requireMode(i[a],s)}e.modeURL||(e.modeURL="../mode/%N/%N.js");var o={};e.requireMode=function(r,i){if("string"!=typeof r&&(r=r.name),e.modes.hasOwnProperty(r))return n(r,i);if(o.hasOwnProperty(r))return o[r].push(i);var a=e.modeURL.replace(/%N/g,r);if("plain"==t){var s=document.createElement("script");s.src=a;var l=document.getElementsByTagName("script")[0],c=o[r]=[i];e.on(s,"load",function(){n(r,function(){for(var e=0;e<c.length;++e)c[e]()})}),l.parentNode.insertBefore(s,l)}else"cjs"==t?(require(a),i()):"amd"==t&&requirejs([a],i)},e.autoLoadMode=function(t,r){e.modes.hasOwnProperty(r)||e.requireMode(r,function(){t.setOption("mode",t.getOption("mode"))})}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.multiplexingMode=function(t){function r(e,t,r){if("string"==typeof t)return e.indexOf(t,r);var n=t.exec(r?e.slice(r):e);return n?n.index+r:-1}var n=Array.prototype.slice.call(arguments,1),o=n.length;return{startState:function(){return{outer:e.startState(t),innerActive:null,inner:null}},copyState:function(r){return{outer:e.copyState(t,r.outer),innerActive:r.innerActive,inner:r.innerActive&&e.copyState(r.innerActive.mode,r.inner)}},token:function(i,a){if(a.innerActive){var s=a.innerActive,l=i.string;if(!s.close&&i.sol())return a.innerActive=a.inner=null,this.token(i,a);var c=s.close?r(l,s.close,i.pos):-1;if(c==i.pos)return i.match(s.close),a.innerActive=a.inner=null,s.delimStyle;c>-1&&(i.string=l.slice(0,c));var u=s.mode.token(i,a.inner);return c>-1&&(i.string=l),s.innerStyle&&(u=u?u+" "+s.innerStyle:s.innerStyle),u}for(var f=1/0,l=i.string,h=0;o>h;++h){var d=n[h],c=r(l,d.open,i.pos);if(c==i.pos)return i.match(d.open),a.innerActive=d,a.inner=e.startState(d.mode,t.indent?t.indent(a.outer,""):0),d.delimStyle;-1!=c&&f>c&&(f=c)}1/0!=f&&(i.string=l.slice(0,f));var p=t.token(i,a.outer);return 1/0!=f&&(i.string=l),p},indent:function(r,n){var o=r.innerActive?r.innerActive.mode:t;return o.indent?o.indent(r.innerActive?r.inner:r.outer,n):e.Pass},blankLine:function(r){var i=r.innerActive?r.innerActive.mode:t;if(i.blankLine&&i.blankLine(r.innerActive?r.inner:r.outer),r.innerActive)"\n"===r.innerActive.close&&(r.innerActive=r.inner=null);else for(var a=0;o>a;++a){var s=n[a];"\n"===s.open&&(r.innerActive=s,r.inner=e.startState(s.mode,i.indent?i.indent(r.outer,""):0))}},electricChars:t.electricChars,innerMode:function(e){return e.inner?{state:e.inner,mode:e.innerActive.mode}:{state:e.outer,mode:t}}}}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(t,r,n){function o(t){var r=e.wheelEventPixels(t)["horizontal"==i.orientation?"x":"y"],n=i.pos;i.moveTo(i.pos+r),i.pos!=n&&e.e_preventDefault(t)}this.orientation=r,this.scroll=n,this.screen=this.total=this.size=1,this.pos=0,this.node=document.createElement("div"),this.node.className=t+"-"+r,this.inner=this.node.appendChild(document.createElement("div"));var i=this;e.on(this.inner,"mousedown",function(t){function r(){e.off(document,"mousemove",n),e.off(document,"mouseup",r)}function n(e){return 1!=e.which?r():void i.moveTo(s+(e[o]-a)*(i.total/i.size))}if(1==t.which){e.e_preventDefault(t);var o="horizontal"==i.orientation?"pageX":"pageY",a=t[o],s=i.pos;e.on(document,"mousemove",n),e.on(document,"mouseup",r)}}),e.on(this.node,"click",function(t){e.e_preventDefault(t);var r,n=i.inner.getBoundingClientRect();r="horizontal"==i.orientation?t.clientX<n.left?-1:t.clientX>n.right?1:0:t.clientY<n.top?-1:t.clientY>n.bottom?1:0,i.moveTo(i.pos+r*i.screen)}),e.on(this.node,"mousewheel",o),e.on(this.node,"DOMMouseScroll",o)}function r(e,r,n){this.addClass=e,this.horiz=new t(e,"horizontal",n),r(this.horiz.node),this.vert=new t(e,"vertical",n),r(this.vert.node),this.width=null}t.prototype.moveTo=function(e,t){0>e&&(e=0),e>this.total-this.screen&&(e=this.total-this.screen),e!=this.pos&&(this.pos=e,this.inner.style["horizontal"==this.orientation?"left":"top"]=e*(this.size/this.total)+"px",t!==!1&&this.scroll(e,this.orientation))},t.prototype.update=function(e,t,r){this.screen=t,this.total=e,this.size=r,this.inner.style["horizontal"==this.orientation?"width":"height"]=this.screen*(this.size/this.total)+"px",this.inner.style["horizontal"==this.orientation?"left":"top"]=this.pos*(this.size/this.total)+"px"},r.prototype.update=function(e){if(null==this.width){var t=window.getComputedStyle?window.getComputedStyle(this.horiz.node):this.horiz.node.currentStyle;t&&(this.width=parseInt(t.height))}var r=this.width||0,n=e.scrollWidth>e.clientWidth+1,o=e.scrollHeight>e.clientHeight+1;return this.vert.node.style.display=o?"block":"none",this.horiz.node.style.display=n?"block":"none",o&&(this.vert.update(e.scrollHeight,e.clientHeight,e.viewHeight-(n?r:0)),this.vert.node.style.display="block",this.vert.node.style.bottom=n?r+"px":"0"),n&&(this.horiz.update(e.scrollWidth,e.clientWidth,e.viewWidth-(o?r:0)-e.barLeft),this.horiz.node.style.right=o?r+"px":"0",this.horiz.node.style.left=e.barLeft+"px"),{right:o?r:0,bottom:n?r:0}},r.prototype.setScrollTop=function(e){this.vert.moveTo(e,!1)},r.prototype.setScrollLeft=function(e){this.horiz.moveTo(e,!1)},r.prototype.clear=function(){var e=this.horiz.node.parentNode;e.removeChild(this.horiz.node),e.removeChild(this.vert.node)},e.scrollbarModel.simple=function(e,t){return new r("CodeMirror-simplescroll",e,t)},e.scrollbarModel.overlay=function(e,t){return new r("CodeMirror-overlayscroll",e,t)}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e){for(var t=0;t<e.state.activeLines.length;t++)e.removeLineClass(e.state.activeLines[t],"wrap",i),e.removeLineClass(e.state.activeLines[t],"background",a)}function r(e,t){if(e.length!=t.length)return!1;for(var r=0;r<e.length;r++)if(e[r]!=t[r])return!1;return!0}function n(e,n){for(var o=[],s=0;s<n.length;s++){var l=n[s];if(l.empty()){var c=e.getLineHandleVisualStart(l.head.line);o[o.length-1]!=c&&o.push(c)}}r(e.state.activeLines,o)||e.operation(function(){t(e);for(var r=0;r<o.length;r++)e.addLineClass(o[r],"wrap",i),e.addLineClass(o[r],"background",a);e.state.activeLines=o})}function o(e,t){n(e,t.ranges)}var i="CodeMirror-activeline",a="CodeMirror-activeline-background";e.defineOption("styleActiveLine",!1,function(r,i,a){var s=a&&a!=e.Init;i&&!s?(r.state.activeLines=[],n(r,r.listSelections()),r.on("beforeSelectionChange",o)):!i&&s&&(r.off("beforeSelectionChange",o),t(r),delete r.state.activeLines)})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../lib/codemirror"),require("../addon/search/searchcursor"),require("../addon/dialog/dialog"),require("../addon/edit/matchbrackets.js")):"function"==typeof define&&define.amd?define(["../lib/codemirror","../addon/search/searchcursor","../addon/dialog/dialog","../addon/edit/matchbrackets"],e):e(CodeMirror)}(function(e){"use strict";var t=[{keys:"<Left>",type:"keyToKey",toKeys:"h"},{keys:"<Right>",type:"keyToKey",toKeys:"l"},{keys:"<Up>",type:"keyToKey",toKeys:"k"},{keys:"<Down>",type:"keyToKey",toKeys:"j"},{keys:"<Space>",type:"keyToKey",toKeys:"l"},{keys:"<BS>",type:"keyToKey",toKeys:"h",context:"normal"},{keys:"<C-Space>",type:"keyToKey",toKeys:"W"},{keys:"<C-BS>",type:"keyToKey",toKeys:"B",context:"normal"},{keys:"<S-Space>",type:"keyToKey",toKeys:"w"},{keys:"<S-BS>",type:"keyToKey",toKeys:"b",context:"normal"},{keys:"<C-n>",type:"keyToKey",toKeys:"j"},{keys:"<C-p>",type:"keyToKey",toKeys:"k"},{keys:"<C-[>",type:"keyToKey",toKeys:"<Esc>"},{keys:"<C-c>",type:"keyToKey",toKeys:"<Esc>"},{keys:"<C-[>",type:"keyToKey",toKeys:"<Esc>",context:"insert"},{keys:"<C-c>",type:"keyToKey",toKeys:"<Esc>",context:"insert"},{keys:"s",type:"keyToKey",toKeys:"cl",context:"normal"},{keys:"s",type:"keyToKey",toKeys:"xi",context:"visual"},{keys:"S",type:"keyToKey",toKeys:"cc",context:"normal"},{keys:"S",type:"keyToKey",toKeys:"dcc",context:"visual"},{keys:"<Home>",type:"keyToKey",toKeys:"0"},{keys:"<End>",type:"keyToKey",toKeys:"$"},{keys:"<PageUp>",type:"keyToKey",toKeys:"<C-b>"},{keys:"<PageDown>",type:"keyToKey",toKeys:"<C-f>"},{keys:"<CR>",type:"keyToKey",toKeys:"j^",context:"normal"},{keys:"H",type:"motion",motion:"moveToTopLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"M",type:"motion",motion:"moveToMiddleLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"L",type:"motion",motion:"moveToBottomLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"h",type:"motion",motion:"moveByCharacters",motionArgs:{forward:!1}},{keys:"l",type:"motion",motion:"moveByCharacters",motionArgs:{forward:!0}},{keys:"j",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,linewise:!0}},{keys:"k",type:"motion",motion:"moveByLines",motionArgs:{forward:!1,linewise:!0}},{keys:"gj",type:"motion",motion:"moveByDisplayLines",motionArgs:{forward:!0}},{keys:"gk",type:"motion",motion:"moveByDisplayLines",motionArgs:{forward:!1}},{keys:"w",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!1}},{keys:"W",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!1,bigWord:!0}},{keys:"e",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!0,inclusive:!0}},{keys:"E",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:"b",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1}},{keys:"B",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1,bigWord:!0}},{keys:"ge",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!0,inclusive:!0}},{keys:"gE",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:"{",type:"motion",motion:"moveByParagraph",motionArgs:{forward:!1,toJumplist:!0}},{keys:"}",type:"motion",motion:"moveByParagraph",motionArgs:{forward:!0,toJumplist:!0}},{keys:"<C-f>",type:"motion",motion:"moveByPage",motionArgs:{forward:!0}},{keys:"<C-b>",type:"motion",motion:"moveByPage",motionArgs:{forward:!1}},{keys:"<C-d>",type:"motion",motion:"moveByScroll",motionArgs:{forward:!0,explicitRepeat:!0}},{keys:"<C-u>",type:"motion",motion:"moveByScroll",motionArgs:{forward:!1,explicitRepeat:!0}},{keys:"gg",type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!1,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:"G",type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!0,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:"0",type:"motion",motion:"moveToStartOfLine"},{keys:"^",type:"motion",motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"+",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,toFirstChar:!0}},{keys:"-",type:"motion",motion:"moveByLines",motionArgs:{forward:!1,toFirstChar:!0}},{keys:"_",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,toFirstChar:!0,repeatOffset:-1}},{keys:"$",type:"motion",motion:"moveToEol",motionArgs:{inclusive:!0}},{keys:"%",type:"motion",motion:"moveToMatchedSymbol",motionArgs:{inclusive:!0,toJumplist:!0}},{keys:"f<character>",type:"motion",motion:"moveToCharacter",motionArgs:{forward:!0,inclusive:!0}},{keys:"F<character>",type:"motion",motion:"moveToCharacter",motionArgs:{forward:!1}},{keys:"t<character>",type:"motion",motion:"moveTillCharacter",motionArgs:{forward:!0,inclusive:!0}},{keys:"T<character>",type:"motion",motion:"moveTillCharacter",motionArgs:{forward:!1}},{keys:";",type:"motion",motion:"repeatLastCharacterSearch",motionArgs:{forward:!0}},{keys:",",type:"motion",motion:"repeatLastCharacterSearch",motionArgs:{forward:!1}},{keys:"'<character>",type:"motion",motion:"goToMark",motionArgs:{toJumplist:!0,linewise:!0}},{keys:"`<character>",type:"motion",motion:"goToMark",motionArgs:{toJumplist:!0}},{keys:"]`",type:"motion",motion:"jumpToMark",motionArgs:{forward:!0}},{keys:"[`",type:"motion",motion:"jumpToMark",motionArgs:{forward:!1}},{keys:"]'",type:"motion",motion:"jumpToMark",motionArgs:{forward:!0,linewise:!0}},{keys:"['",type:"motion",motion:"jumpToMark",motionArgs:{forward:!1,linewise:!0}},{keys:"]p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!0,isEdit:!0,matchIndent:!0}},{keys:"[p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!1,isEdit:!0,matchIndent:!0}},{keys:"]<character>",type:"motion",motion:"moveToSymbol",motionArgs:{forward:!0,toJumplist:!0}},{keys:"[<character>",type:"motion",motion:"moveToSymbol",motionArgs:{forward:!1,toJumplist:!0}},{keys:"|",type:"motion",motion:"moveToColumn"},{keys:"o",type:"motion",motion:"moveToOtherHighlightedEnd",context:"visual"},{keys:"O",type:"motion",motion:"moveToOtherHighlightedEnd",motionArgs:{sameLine:!0},context:"visual"},{keys:"d",type:"operator",operator:"delete"},{keys:"y",type:"operator",operator:"yank"},{keys:"c",type:"operator",operator:"change"},{keys:">",type:"operator",operator:"indent",operatorArgs:{indentRight:!0}},{keys:"<",type:"operator",operator:"indent",operatorArgs:{indentRight:!1}},{keys:"g~",type:"operator",operator:"changeCase"},{keys:"gu",type:"operator",operator:"changeCase",operatorArgs:{toLower:!0},isEdit:!0},{keys:"gU",type:"operator",operator:"changeCase",operatorArgs:{toLower:!1},isEdit:!0},{keys:"n",type:"motion",motion:"findNext",motionArgs:{forward:!0,toJumplist:!0}},{keys:"N",type:"motion",motion:"findNext",motionArgs:{forward:!1,toJumplist:!0}},{keys:"x",type:"operatorMotion",operator:"delete",motion:"moveByCharacters",motionArgs:{forward:!0},operatorMotionArgs:{visualLine:!1}},{keys:"X",type:"operatorMotion",operator:"delete",motion:"moveByCharacters",motionArgs:{forward:!1},operatorMotionArgs:{visualLine:!0}},{keys:"D",type:"operatorMotion",operator:"delete",motion:"moveToEol",motionArgs:{inclusive:!0},context:"normal"},{keys:"D",type:"operator",operator:"delete",operatorArgs:{linewise:!0},context:"visual"},{keys:"Y",type:"operatorMotion",operator:"yank",motion:"moveToEol",motionArgs:{inclusive:!0},context:"normal"},{keys:"Y",type:"operator",operator:"yank",operatorArgs:{linewise:!0},context:"visual"},{keys:"C",type:"operatorMotion",operator:"change",motion:"moveToEol",motionArgs:{inclusive:!0},context:"normal"},{keys:"C",type:"operator",operator:"change",operatorArgs:{linewise:!0},context:"visual"},{keys:"~",type:"operatorMotion",operator:"changeCase",motion:"moveByCharacters",motionArgs:{forward:!0},operatorArgs:{shouldMoveCursor:!0},context:"normal"},{keys:"~",type:"operator",operator:"changeCase",context:"visual"},{keys:"<C-w>",type:"operatorMotion",operator:"delete",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1},context:"insert"},{keys:"<C-i>",type:"action",action:"jumpListWalk",actionArgs:{forward:!0}},{keys:"<C-o>",type:"action",action:"jumpListWalk",actionArgs:{forward:!1}},{keys:"<C-e>",type:"action",action:"scroll",actionArgs:{forward:!0,linewise:!0}},{keys:"<C-y>",type:"action",action:"scroll",actionArgs:{forward:!1,linewise:!0}},{keys:"a",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"charAfter"},context:"normal"},{keys:"A",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"eol"},context:"normal"},{keys:"A",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"endOfSelectedArea"},context:"visual"},{keys:"i",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"inplace"},context:"normal"},{keys:"I",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"firstNonBlank"},context:"normal"},{keys:"I",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"startOfSelectedArea"},context:"visual"},{keys:"o",type:"action",action:"newLineAndEnterInsertMode",isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!0},context:"normal"},{keys:"O",type:"action",action:"newLineAndEnterInsertMode",isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!1},context:"normal"},{keys:"v",type:"action",action:"toggleVisualMode"},{keys:"V",type:"action",action:"toggleVisualMode",actionArgs:{linewise:!0}},{keys:"<C-v>",type:"action",action:"toggleVisualMode",actionArgs:{blockwise:!0}},{keys:"gv",type:"action",action:"reselectLastSelection"},{keys:"J",type:"action",action:"joinLines",isEdit:!0},{keys:"p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!0,isEdit:!0}},{keys:"P",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!1,isEdit:!0}},{keys:"r<character>",type:"action",action:"replace",isEdit:!0},{keys:"@<character>",type:"action",action:"replayMacro"},{keys:"q<character>",type:"action",action:"enterMacroRecordMode"},{keys:"R",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{replace:!0}},{keys:"u",type:"action",action:"undo",context:"normal"},{keys:"u",type:"operator",operator:"changeCase",operatorArgs:{toLower:!0},context:"visual",isEdit:!0},{keys:"U",type:"operator",operator:"changeCase",operatorArgs:{toLower:!1},context:"visual",isEdit:!0},{keys:"<C-r>",type:"action",action:"redo"},{keys:"m<character>",type:"action",action:"setMark"},{keys:'"<character>',type:"action",action:"setRegister"},{keys:"zz",type:"action",action:"scrollToCursor",actionArgs:{position:"center"}},{keys:"z.",type:"action",action:"scrollToCursor",actionArgs:{position:"center"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"zt",type:"action",action:"scrollToCursor",actionArgs:{position:"top"}},{keys:"z<CR>",type:"action",action:"scrollToCursor",actionArgs:{position:"top"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"z-",type:"action",action:"scrollToCursor",actionArgs:{position:"bottom"}},{keys:"zb",type:"action",action:"scrollToCursor",actionArgs:{position:"bottom"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:".",type:"action",action:"repeatLastEdit"},{keys:"<C-a>",type:"action",action:"incrementNumberToken",isEdit:!0,actionArgs:{increase:!0,backtrack:!1}},{keys:"<C-x>",type:"action",action:"incrementNumberToken",isEdit:!0,actionArgs:{increase:!1,backtrack:!1}},{keys:"a<character>",type:"motion",motion:"textObjectManipulation"},{keys:"i<character>",type:"motion",motion:"textObjectManipulation",motionArgs:{textObjectInner:!0}},{keys:"/",type:"search",searchArgs:{forward:!0,querySrc:"prompt",toJumplist:!0}},{keys:"?",type:"search",searchArgs:{forward:!1,querySrc:"prompt",toJumplist:!0}},{keys:"*",type:"search",searchArgs:{forward:!0,querySrc:"wordUnderCursor",wholeWordOnly:!0,toJumplist:!0}},{keys:"#",type:"search",searchArgs:{forward:!1,querySrc:"wordUnderCursor",wholeWordOnly:!0,toJumplist:!0}},{keys:"g*",type:"search",searchArgs:{forward:!0,querySrc:"wordUnderCursor",toJumplist:!0}},{keys:"g#",type:"search",searchArgs:{forward:!1,querySrc:"wordUnderCursor",toJumplist:!0}},{keys:":",type:"ex"}],r=e.Pos,n=function(){function n(t){t.setOption("disableInput",!0),t.setOption("showCursorWhenSelecting",!1),e.signal(t,"vim-mode-change",{mode:"normal"}),t.on("cursorActivity",Zt),x(t),e.on(t.getInputField(),"paste",c(t))
}function o(t){t.setOption("disableInput",!1),t.off("cursorActivity",Zt),e.off(t.getInputField(),"paste",c(t)),t.state.vim=null}function i(t,r){this==e.keyMap.vim&&e.rmClass(t.getWrapperElement(),"cm-fat-cursor"),r&&r.attach==a||o(t,!1)}function a(t,r){this==e.keyMap.vim&&e.addClass(t.getWrapperElement(),"cm-fat-cursor"),r&&r.attach==a||n(t)}function s(t,r){if(!r)return void 0;var n=l(t);if(!n)return!1;var o=e.Vim.findKey(r,n);return"function"==typeof o&&e.signal(r,"vim-keypress",n),o}function l(e){if("'"==e.charAt(0))return e.charAt(1);var t=e.split("-");/-$/.test(e)&&t.splice(-2,2,"-");var r=t[t.length-1];if(1==t.length&&1==t[0].length)return!1;if(2==t.length&&"Shift"==t[0]&&1==r.length)return!1;for(var n=!1,o=0;o<t.length;o++){var i=t[o];i in ar?t[o]=ar[i]:n=!0,i in sr&&(t[o]=sr[i])}return n?(m(r)&&(t[t.length-1]=r.toLowerCase()),"<"+t.join("-")+">"):!1}function c(e){var t=e.state.vim;return t.onPasteFn||(t.onPasteFn=function(){t.insertMode||(e.setCursor(N(e.getCursor(),0,1)),br.enterInsertMode(e,{},t))}),t.onPasteFn}function u(e,t){for(var r=[],n=e;e+t>n;n++)r.push(String.fromCharCode(n));return r}function f(e,t){return t>=e.firstLine()&&t<=e.lastLine()}function h(e){return/^[a-z]$/.test(e)}function d(e){return-1!="()[]{}".indexOf(e)}function p(e){return lr.test(e)}function m(e){return/^[A-Z]$/.test(e)}function g(e){return/^\s*$/.test(e)}function v(e,t){for(var r=0;r<t.length;r++)if(t[r]==e)return!0;return!1}function y(e,t,r){if(void 0===t)throw Error("defaultValue is required");r||(r="string"),gr[e]={type:r,defaultValue:t},C(e,t)}function C(e,t){var r=gr[e];if(!r)throw Error("Unknown option: "+e);if("boolean"==r.type){if(t&&t!==!0)throw Error("Invalid argument: "+e+"="+t);t!==!1&&(t=!0)}r.value="boolean"==r.type?!!t:t}function k(e){var t=gr[e];if(!t)throw Error("Unknown option: "+e);return t.value}function w(){this.latestRegister=void 0,this.isPlaying=!1,this.isRecording=!1,this.replaySearchQueries=[],this.onRecordingDone=void 0,this.lastInsertModeChanges=yr()}function x(e){return e.state.vim||(e.state.vim={inputState:new S,lastEditInputState:void 0,lastEditActionCommand:void 0,lastHPos:-1,lastHSPos:-1,lastMotion:null,marks:{},fakeCursor:null,insertMode:!1,insertModeRepeat:void 0,visualMode:!1,visualLine:!1,visualBlock:!1,lastSelection:null,lastPastedText:null,sel:{}}),e.state.vim}function M(){Cr={searchQuery:null,searchIsReversed:!1,lastSubstituteReplacePart:void 0,jumpList:vr(),macroModeState:new w,lastChararacterSearch:{increment:0,forward:!0,selectedCharacter:""},registerController:new L({}),searchHistoryController:new T({}),exCommandHistoryController:new T({})};for(var e in gr){var t=gr[e];t.value=t.defaultValue}}function S(){this.prefixRepeat=[],this.motionRepeat=[],this.operator=null,this.operatorArgs=null,this.motion=null,this.motionArgs=null,this.keyBuffer=[],this.registerName=null}function b(t,r){t.state.vim.inputState=new S,e.signal(t,"vim-command-done",r)}function A(e,t,r){this.clear(),this.keyBuffer=[e||""],this.insertModeChanges=[],this.searchQueries=[],this.linewise=!!t,this.blockwise=!!r}function L(e){this.registers=e,this.unnamedRegister=e['"']=new A,e["."]=new A,e[":"]=new A,e["/"]=new A}function T(){this.historyBuffer=[],this.iterator,this.initialPrefix=null}function O(e,t){Mr[e]=t}function R(e,t){for(var r=[],n=0;t>n;n++)r.push(e);return r}function E(e,t){Sr[e]=t}function I(e,t){br[e]=t}function B(e,t,n){var o=Math.min(Math.max(e.firstLine(),t.line),e.lastLine()),i=J(e,o)-1;i=n?i+1:i;var a=Math.min(Math.max(0,t.ch),i);return r(o,a)}function P(e){var t={};for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);return t}function N(e,t,n){return"object"==typeof t&&(n=t.ch,t=t.line),r(e.line+t,e.ch+n)}function j(e,t){return{line:t.line-e.line,ch:t.line-e.line}}function F(e,t,r,n){for(var o,i=[],a=[],s=0;s<t.length;s++){var l=t[s];"insert"==r&&"insert"!=l.context||l.context&&l.context!=r||n.operator&&"action"==l.type||!(o=K(e,l.keys))||("partial"==o&&i.push(l),"full"==o&&a.push(l))}return{partial:i.length&&i,full:a.length&&a}}function K(e,t){if("<character>"==t.slice(-11)){var r=t.length-11,n=e.slice(0,r),o=t.slice(0,r);return n==o&&e.length>r?"full":0==o.indexOf(n)?"partial":!1}return e==t?"full":0==t.indexOf(e)?"partial":!1}function H(e){var t=/^.*(<[\w\-]+>)$/.exec(e),r=t?t[1]:e.slice(-1);if(r.length>1)switch(r){case"<CR>":r="\n";break;case"<Space>":r=" "}return r}function D(e,t,r){return function(){for(var n=0;r>n;n++)t(e)}}function z(e){return r(e.line,e.ch)}function _(e,t){return e.ch==t.ch&&e.line==t.line}function W(e,t){return e.line<t.line?!0:e.line==t.line&&e.ch<t.ch?!0:!1}function q(e,t){return arguments.length>2&&(t=q.apply(void 0,Array.prototype.slice.call(arguments,1))),W(e,t)?e:t}function V(e,t){return arguments.length>2&&(t=V.apply(void 0,Array.prototype.slice.call(arguments,1))),W(e,t)?t:e}function U(e,t,r){var n=W(e,t),o=W(t,r);return n&&o}function J(e,t){return e.getLine(t).length}function $(e){return e.split("").reverse().join("")}function Q(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function G(e){return e.replace(/([.?*+$\[\]\/\\(){}|\-])/g,"\\$1")}function Y(e,t,n){var o=J(e,t),i=new Array(n-o+1).join(" ");e.setCursor(r(t,o)),e.replaceRange(i,e.getCursor())}function X(e,t){var n=[],o=e.listSelections(),i=z(e.clipPos(t)),a=!_(t,i),s=e.getCursor("head"),l=et(o,s),c=_(o[l].head,o[l].anchor),u=o.length-1,f=u-l>l?u:0,h=o[f].anchor,d=Math.min(h.line,i.line),p=Math.max(h.line,i.line),m=h.ch,g=i.ch,v=o[f].head.ch-m,y=g-m;v>0&&0>=y?(m++,a||g--):0>v&&y>=0?(m--,c||g++):0>v&&-1==y&&(m--,g++);for(var C=d;p>=C;C++){var k={anchor:new r(C,m),head:new r(C,g)};n.push(k)}return l=i.line==p?n.length-1:0,e.setSelections(n),t.ch=g,h.ch=m,h}function Z(e,t,r){for(var n=[],o=0;r>o;o++){var i=N(t,o,0);n.push({anchor:i,head:i})}e.setSelections(n,0)}function et(e,t,r){for(var n=0;n<e.length;n++){var o="head"!=r&&_(e[n].anchor,t),i="anchor"!=r&&_(e[n].head,t);if(o||i)return n}return-1}function tt(e,t){var n=t.lastSelection,o=function(){var t=e.listSelections(),r=t[0],n=t[t.length-1],o=W(r.anchor,r.head)?r.anchor:r.head,i=W(n.anchor,n.head)?n.head:n.anchor;return[o,i]},i=function(){var t=e.getCursor(),o=e.getCursor(),i=n.visualBlock;if(i){var a=i.width,s=i.height;o=r(t.line+s,t.ch+a);for(var l=[],c=t.line;c<o.line;c++){var u=r(c,t.ch),f=r(c,o.ch),h={anchor:u,head:f};l.push(h)}e.setSelections(l)}else{var d=n.anchorMark.find(),p=n.headMark.find(),m=p.line-d.line,g=p.ch-d.ch;o={line:o.line+m,ch:m?o.ch:g+o.ch},n.visualLine&&(t=r(t.line,0),o=r(o.line,J(e,o.line))),e.setSelection(t,o)}return[t,o]};return t.visualMode?o():i()}function rt(e,t){var r=t.sel.anchor,n=t.sel.head;t.lastPastedText&&(n=e.posFromIndex(e.indexFromPos(r)+t.lastPastedText.length),t.lastPastedText=null),t.lastSelection={anchorMark:e.setBookmark(r),headMark:e.setBookmark(n),anchor:z(r),head:z(n),visualMode:t.visualMode,visualLine:t.visualLine,visualBlock:t.visualBlock}}function nt(e,t,n){var o,i=e.state.vim.sel,a=i.head,s=i.anchor;return W(n,t)&&(o=n,n=t,t=o),W(a,s)?(a=q(t,a),s=V(s,n)):(s=q(t,s),a=V(a,n),a=N(a,0,-1),-1==a.ch&&a.line!=e.firstLine()&&(a=r(a.line-1,J(e,a.line-1)))),[s,a]}function ot(e,t,r){var n=e.state.vim;t=t||n.sel;var r=r||n.visualLine?"line":n.visualBlock?"block":"char",o=it(e,t,r);e.setSelections(o.ranges,o.primary),er(e)}function it(e,t,n,o){var i=z(t.head),a=z(t.anchor);if("char"==n){var s=o||W(t.head,t.anchor)?0:1,l=W(t.head,t.anchor)?1:0;return i=N(t.head,0,s),a=N(t.anchor,0,l),{ranges:[{anchor:a,head:i}],primary:0}}if("line"==n){if(W(t.head,t.anchor))i.ch=0,a.ch=J(e,a.line);else{a.ch=0;var c=e.lastLine();i.line>c&&(i.line=c),i.ch=J(e,i.line)}return{ranges:[{anchor:a,head:i}],primary:0}}if("block"==n){for(var u=Math.min(a.line,i.line),f=Math.min(a.ch,i.ch),h=Math.max(a.line,i.line),d=Math.max(a.ch,i.ch)+1,p=h-u+1,m=i.line==u?0:p-1,g=[],v=0;p>v;v++)g.push({anchor:r(u+v,f),head:r(u+v,d)});return{ranges:g,primary:m}}}function at(e){var t=e.getCursor("head");return 1==e.getSelection().length&&(t=q(t,e.getCursor("anchor"))),t}function st(t,r){var n=t.state.vim;r!==!1&&t.setCursor(B(t,n.sel.head)),rt(t,n),n.visualMode=!1,n.visualLine=!1,n.visualBlock=!1,e.signal(t,"vim-mode-change",{mode:"normal"}),n.fakeCursor&&n.fakeCursor.clear()}function lt(e,t,r){var n=e.getRange(t,r);if(/\n\s*$/.test(n)){var o=n.split("\n");o.pop();for(var i,i=o.pop();o.length>0&&i&&g(i);i=o.pop())r.line--,r.ch=0;i?(r.line--,r.ch=J(e,r.line)):r.ch=0}}function ct(e,t,r){t.ch=0,r.ch=0,r.line++}function ut(e){if(!e)return 0;var t=e.search(/\S/);return-1==t?e.length:t}function ft(e,t,n,o,i){var a,s=at(e),l=e.getLine(s.line),c=s.ch,u=l.substring(c);if(a=u.search(i?/\w/:/\S/),-1==a)return null;c+=a,u=l.substring(c);var f,h=l.substring(0,c);f=o?/^\S+/:/\w/.test(l.charAt(c))?/^\w+/:/^[^\w\s]+/;var d=f.exec(u),p=c,m=c+d[0].length,g=$(h),v=f.exec(g);if(v&&(p-=v[0].length),t){var y=l.substring(m),C=y.match(/^\s*/)[0].length;if(C>0)m+=C;else{var k=g.length-p,w=g.substring(k),x=w.match(/^\s*/)[0].length;p-=x}}return{start:r(s.line,p),end:r(s.line,m)}}function ht(e,t,r){_(t,r)||Cr.jumpList.add(e,t,r)}function dt(e,t){Cr.lastChararacterSearch.increment=e,Cr.lastChararacterSearch.forward=t.forward,Cr.lastChararacterSearch.selectedCharacter=t.selectedCharacter}function pt(e,t,n,o){var i=z(e.getCursor()),a=n?1:-1,s=n?e.lineCount():-1,l=i.ch,c=i.line,u=e.getLine(c),f={lineText:u,nextCh:u.charAt(l),lastCh:null,index:l,symb:o,reverseSymb:(n?{")":"(","}":"{"}:{"(":")","{":"}"})[o],forward:n,depth:0,curMoveThrough:!1},h=Ar[o];if(!h)return i;var d=Lr[h].init,p=Lr[h].isComplete;for(d&&d(f);c!==s&&t;){if(f.index+=a,f.nextCh=f.lineText.charAt(f.index),!f.nextCh){if(c+=a,f.lineText=e.getLine(c)||"",a>0)f.index=0;else{var m=f.lineText.length;f.index=m>0?m-1:0}f.nextCh=f.lineText.charAt(f.index)}p(f)&&(i.line=c,i.ch=f.index,t--)}return f.nextCh||f.curMoveThrough?r(c,f.index):i}function mt(e,t,r,n,o){var i=t.line,a=t.ch,s=e.getLine(i),l=r?1:-1,c=n?ur:cr;if(o&&""==s){if(i+=l,s=e.getLine(i),!f(e,i))return null;a=r?0:s.length}for(;;){if(o&&""==s)return{from:0,to:0,line:i};for(var u=l>0?s.length:-1,h=u,d=u;a!=u;){for(var p=!1,m=0;m<c.length&&!p;++m)if(c[m].test(s.charAt(a))){for(h=a;a!=u&&c[m].test(s.charAt(a));)a+=l;if(d=a,p=h!=d,h==t.ch&&i==t.line&&d==h+l)continue;return{from:Math.min(h,d+1),to:Math.max(h,d),line:i}}p||(a+=l)}if(i+=l,!f(e,i))return null;s=e.getLine(i),a=l>0?0:s.length}throw new Error("The impossible happened.")}function gt(e,t,n,o,i,a){var s=z(t),l=[];(o&&!i||!o&&i)&&n++;for(var c=!(o&&i),u=0;n>u;u++){var f=mt(e,t,o,a,c);if(!f){var h=J(e,e.lastLine());l.push(o?{line:e.lastLine(),from:h,to:h}:{line:0,from:0,to:0});break}l.push(f),t=r(f.line,o?f.to-1:f.from)}var d=l.length!=n,p=l[0],m=l.pop();return o&&!i?(d||p.from==s.ch&&p.line==s.line||(m=l.pop()),r(m.line,m.from)):o&&i?r(m.line,m.to-1):!o&&i?(d||p.to==s.ch&&p.line==s.line||(m=l.pop()),r(m.line,m.to)):r(m.line,m.from)}function vt(e,t,n,o){for(var i,a=e.getCursor(),s=a.ch,l=0;t>l;l++){var c=e.getLine(a.line);if(i=kt(s,c,o,n,!0),-1==i)return null;s=i}return r(e.getCursor().line,i)}function yt(e,t){var n=e.getCursor().line;return B(e,r(n,t-1))}function Ct(e,t,r,n){v(r,pr)&&(t.marks[r]&&t.marks[r].clear(),t.marks[r]=e.setBookmark(n))}function kt(e,t,r,n,o){var i;return n?(i=t.indexOf(r,e+1),-1==i||o||(i-=1)):(i=t.lastIndexOf(r,e-1),-1==i||o||(i+=1)),i}function wt(e,t,n,o,i){function a(t){return!e.getLine(t)}function s(e,t,r){return r?a(e)!=a(e+t):!a(e)&&a(e+t)}var l,c,u=t.line,f=e.firstLine(),h=e.lastLine(),d=u;if(o){for(;d>=f&&h>=d&&n>0;)s(d,o)&&n--,d+=o;return new r(d,0)}var p=e.state.vim;if(p.visualLine&&s(u,1,!0)){var m=p.sel.anchor;s(m.line,-1,!0)&&(i&&m.line==u||(u+=1))}var g=a(u);for(d=u;h>=d&&n;d++)s(d,1,!0)&&(i&&a(d)==g||n--);for(c=new r(d,0),d>h&&!g?g=!0:i=!1,d=u;d>f&&(i&&a(d)!=g&&d!=u||!s(d,-1,!0));d--);return l=new r(d,0),{start:l,end:c}}function xt(e,t,n,o){var i,a,s=t,l={"(":/[()]/,")":/[()]/,"[":/[[\]]/,"]":/[[\]]/,"{":/[{}]/,"}":/[{}]/}[n],c={"(":"(",")":"(","[":"[","]":"[","{":"{","}":"{"}[n],u=e.getLine(s.line).charAt(s.ch),f=u===c?1:0;if(i=e.scanForBracket(r(s.line,s.ch+f),-1,null,{bracketRegex:l}),a=e.scanForBracket(r(s.line,s.ch+f),1,null,{bracketRegex:l}),!i||!a)return{start:s,end:s};if(i=i.pos,a=a.pos,i.line==a.line&&i.ch>a.ch||i.line>a.line){var h=i;i=a,a=h}return o?a.ch+=1:i.ch+=1,{start:i,end:a}}function Mt(e,t,n,o){var i,a,s,l,c=z(t),u=e.getLine(c.line),f=u.split(""),h=f.indexOf(n);if(c.ch<h?c.ch=h:h<c.ch&&f[c.ch]==n&&(a=c.ch,--c.ch),f[c.ch]!=n||a)for(s=c.ch;s>-1&&!i;s--)f[s]==n&&(i=s+1);else i=c.ch+1;if(i&&!a)for(s=i,l=f.length;l>s&&!a;s++)f[s]==n&&(a=s);return i&&a?(o&&(--i,++a),{start:r(c.line,i),end:r(c.line,a)}):{start:c,end:c}}function St(){}function bt(e){var t=e.state.vim;return t.searchState_||(t.searchState_=new St)}function At(e,t,r,n,o){e.openDialog?e.openDialog(t,n,{bottom:!0,value:o.value,onKeyDown:o.onKeyDown,onKeyUp:o.onKeyUp}):n(prompt(r,""))}function Lt(e){var t=Tt(e)||[];if(!t.length)return[];var r=[];if(0===t[0]){for(var n=0;n<t.length;n++)"number"==typeof t[n]&&r.push(e.substring(t[n]+1,t[n+1]));return r}}function Tt(e){for(var t=!1,r=[],n=0;n<e.length;n++){var o=e.charAt(n);t||"/"!=o||r.push(n),t=!t&&"\\"==o}return r}function Ot(e){for(var t="|(){",r="}",n=!1,o=[],i=-1;i<e.length;i++){var a=e.charAt(i)||"",s=e.charAt(i+1)||"",l=s&&-1!=t.indexOf(s);n?("\\"===a&&l||o.push(a),n=!1):"\\"===a?(n=!0,s&&-1!=r.indexOf(s)&&(l=!0),l&&"\\"!==s||o.push(a)):(o.push(a),l&&"\\"!==s&&o.push("\\"))}return o.join("")}function Rt(e){for(var t=!1,r=[],n=-1;n<e.length;n++){var o=e.charAt(n)||"",i=e.charAt(n+1)||"";t?(r.push(o),t=!1):"\\"===o?(t=!0,p(i)||"$"===i?r.push("$"):"/"!==i&&"\\"!==i&&r.push("\\")):("$"===o&&r.push("$"),r.push(o),"/"===i&&r.push("\\"))}return r.join("")}function Et(t){for(var r=new e.StringStream(t),n=[];!r.eol();){for(;r.peek()&&"\\"!=r.peek();)n.push(r.next());n.push(r.match("\\/",!0)?"/":r.match("\\\\",!0)?"\\":r.next())}return n.join("")}function It(e,t,r){var n=Cr.registerController.getRegister("/");if(n.setText(e),e instanceof RegExp)return e;var o,i,a=Tt(e);if(a.length){o=e.substring(0,a[0]);var s=e.substring(a[0]);i=-1!=s.indexOf("i")}else o=e;if(!o)return null;k("pcre")||(o=Ot(o)),r&&(t=/^[^A-Z]*$/.test(o));var l=new RegExp(o,t||i?"i":void 0);return l}function Bt(e,t){e.openNotification?e.openNotification('<span style="color: red">'+t+"</span>",{bottom:!0,duration:5e3}):alert(t)}function Pt(e,t){var r="";return e&&(r+='<span style="font-family: monospace">'+e+"</span>"),r+='<input type="text"/> <span style="color: #888">',t&&(r+='<span style="color: #888">',r+=t,r+="</span>"),r}function Nt(e,t){var r=(t.prefix||"")+" "+(t.desc||""),n=Pt(t.prefix,t.desc);At(e,n,r,t.onClose,t)}function jt(e,t){if(e instanceof RegExp&&t instanceof RegExp){for(var r=["global","multiline","ignoreCase","source"],n=0;n<r.length;n++){var o=r[n];if(e[o]!==t[o])return!1}return!0}return!1}function Ft(e,t,r,n){if(t){var o=bt(e),i=It(t,!!r,!!n);if(i)return Ht(e,i),jt(i,o.getQuery())?i:(o.setQuery(i),i)}}function Kt(e){if("^"==e.source.charAt(0))var t=!0;return{token:function(r){if(t&&!r.sol())return void r.skipToEnd();var n=r.match(e,!1);if(n)return 0==n[0].length?(r.next(),"searching"):r.sol()||(r.backUp(1),e.exec(r.next()+n[0]))?(r.match(e),"searching"):(r.next(),null);for(;!r.eol()&&(r.next(),!r.match(e,!1)););},query:e}}function Ht(e,t){var r=bt(e),n=r.getOverlay();n&&t==n.query||(n&&e.removeOverlay(n),n=Kt(t),e.addOverlay(n),e.showMatchesOnScrollbar&&(r.getScrollbarAnnotate()&&r.getScrollbarAnnotate().clear(),r.setScrollbarAnnotate(e.showMatchesOnScrollbar(t))),r.setOverlay(n))}function Dt(e,t,n,o){return void 0===o&&(o=1),e.operation(function(){for(var i=e.getCursor(),a=e.getSearchCursor(n,i),s=0;o>s;s++){var l=a.find(t);if(0==s&&l&&_(a.from(),i)&&(l=a.find(t)),!l&&(a=e.getSearchCursor(n,t?r(e.lastLine()):r(e.firstLine(),0)),!a.find(t)))return}return a.from()})}function zt(e){var t=bt(e);e.removeOverlay(bt(e).getOverlay()),t.setOverlay(null),t.getScrollbarAnnotate()&&(t.getScrollbarAnnotate().clear(),t.setScrollbarAnnotate(null))}function _t(e,t,r){return"number"!=typeof e&&(e=e.line),t instanceof Array?v(e,t):r?e>=t&&r>=e:e==t}function Wt(e){var t=e.getScrollInfo(),r=6,n=10,o=e.coordsChar({left:0,top:r+t.top},"local"),i=t.clientHeight-n+t.top,a=e.coordsChar({left:0,top:i},"local");return{top:o.line,bottom:a.line}}function qt(t,r,n,o,i,a,s,l,c){function u(){t.operation(function(){for(;!m;)f(),h();d()})}function f(){var e=t.getRange(a.from(),a.to()),r=e.replace(s,l);a.replace(r)}function h(){for(var e;e=a.findNext()&&_t(a.from(),o,i);)if(n||!g||a.from().line!=g.line)return t.scrollIntoView(a.from(),30),t.setSelection(a.from(),a.to()),g=a.from(),void(m=!1);m=!0}function d(e){if(e&&e(),t.focus(),g){t.setCursor(g);var r=t.state.vim;r.exMode=!1,r.lastHPos=r.lastHSPos=g.ch}c&&c()}function p(r,n,o){e.e_stop(r);var i=e.keyName(r);switch(i){case"Y":f(),h();break;case"N":h();break;case"A":var a=c;c=void 0,t.operation(u),c=a;break;case"L":f();case"Q":case"Esc":case"Ctrl-C":case"Ctrl-[":d(o)}return m&&d(o),!0}t.state.vim.exMode=!0;var m=!1,g=a.from();return h(),m?void Bt(t,"No matches for "+s.source):r?void Nt(t,{prefix:"replace with <strong>"+l+"</strong> (y/n/a/q/l)",onKeyDown:p}):(u(),void(c&&c()))}function Vt(t){var r=t.state.vim,n=Cr.macroModeState,o=Cr.registerController.getRegister("."),i=n.isPlaying,a=n.lastInsertModeChanges,s=[];if(!i){for(var l=a.inVisualBlock?r.lastSelection.visualBlock.height:1,c=a.changes,s=[],u=0;u<c.length;)s.push(c[u]),c[u]instanceof rr?u++:u+=l;a.changes=s,t.off("change",Xt),e.off(t.getInputField(),"keydown",nr)}!i&&r.insertModeRepeat>1&&(or(t,r,r.insertModeRepeat-1,!0),r.lastEditInputState.repeatOverride=r.insertModeRepeat),delete r.insertModeRepeat,r.insertMode=!1,t.setCursor(t.getCursor().line,t.getCursor().ch-1),t.setOption("keyMap","vim"),t.setOption("disableInput",!0),t.toggleOverwrite(!1),o.setText(a.changes.join("")),e.signal(t,"vim-mode-change",{mode:"normal"}),n.isRecording&&Gt(n)}function Ut(e){t.push(e)}function Jt(e,t,r,n,o){var i={keys:e,type:t};i[t]=r,i[t+"Args"]=n;for(var a in o)i[a]=o[a];Ut(i)}function $t(t,r,n,o){var i=Cr.registerController.getRegister(o),a=i.keyBuffer,s=0;n.isPlaying=!0,n.replaySearchQueries=i.searchQueries.slice(0);for(var l=0;l<a.length;l++)for(var c,u,f=a[l];f;)if(c=/<\w+-.+?>|<\w+>|./.exec(f),u=c[0],f=f.substring(c.index+u.length),e.Vim.handleKey(t,u,"macro"),r.insertMode){var h=i.insertModeChanges[s++].changes;Cr.macroModeState.lastInsertModeChanges.changes=h,ir(t,h,1),Vt(t)}n.isPlaying=!1}function Qt(e,t){if(!e.isPlaying){var r=e.latestRegister,n=Cr.registerController.getRegister(r);n&&n.pushText(t)}}function Gt(e){if(!e.isPlaying){var t=e.latestRegister,r=Cr.registerController.getRegister(t);r&&r.pushInsertModeChanges(e.lastInsertModeChanges)}}function Yt(e,t){if(!e.isPlaying){var r=e.latestRegister,n=Cr.registerController.getRegister(r);n&&n.pushSearchQuery(t)}}function Xt(e,t){var r=Cr.macroModeState,n=r.lastInsertModeChanges;if(!r.isPlaying)for(;t;){if(n.expectCursorActivityForChange=!0,"+input"==t.origin||"paste"==t.origin||void 0===t.origin){var o=t.text.join("\n");n.changes.push(o)}t=t.next}}function Zt(e){var t=e.state.vim;if(t.insertMode){var r=Cr.macroModeState;if(r.isPlaying)return;var n=r.lastInsertModeChanges;n.expectCursorActivityForChange?n.expectCursorActivityForChange=!1:n.changes=[]}else e.curOp.isVimOp||tr(e,t);t.visualMode&&er(e)}function er(e){var t=e.state.vim,r=z(t.sel.head),n=N(r,0,1);t.fakeCursor&&t.fakeCursor.clear(),t.fakeCursor=e.markText(r,n,{className:"cm-animate-fat-cursor"})}function tr(t,r){var n=t.getCursor("anchor"),o=t.getCursor("head");if(r.visualMode&&_(o,n)&&J(t,o.line)>o.ch?st(t,!1):r.visualMode||r.insertMode||!t.somethingSelected()||(r.visualMode=!0,r.visualLine=!1,e.signal(t,"vim-mode-change",{mode:"visual"})),r.visualMode){var i=W(o,n)?0:-1,a=W(o,n)?-1:0;o=N(o,0,i),n=N(n,0,a),r.sel={anchor:n,head:o},Ct(t,r,"<",q(o,n)),Ct(t,r,">",V(o,n))}else r.insertMode||(r.lastHPos=t.getCursor().ch)}function rr(e){this.keyName=e}function nr(t){function r(){return o.changes.push(new rr(i)),!0}var n=Cr.macroModeState,o=n.lastInsertModeChanges,i=e.keyName(t);i&&(-1!=i.indexOf("Delete")||-1!=i.indexOf("Backspace"))&&e.lookupKey(i,"vim-insert",r)}function or(e,t,r,n){function o(){s?xr.processAction(e,t,t.lastEditActionCommand):xr.evalInput(e,t)}function i(r){if(a.lastInsertModeChanges.changes.length>0){r=t.lastEditActionCommand?r:1;var n=a.lastInsertModeChanges;ir(e,n.changes,r)}}var a=Cr.macroModeState;a.isPlaying=!0;var s=!!t.lastEditActionCommand,l=t.inputState;if(t.inputState=t.lastEditInputState,s&&t.lastEditActionCommand.interlaceInsertRepeat)for(var c=0;r>c;c++)o(),i(1);else n||o(),i(r);t.inputState=l,t.insertMode&&!n&&Vt(e),a.isPlaying=!1}function ir(t,r,n){function o(r){return"string"==typeof r?e.commands[r](t):r(t),!0}var i=t.getCursor("head"),a=Cr.macroModeState.lastInsertModeChanges.inVisualBlock;if(a){var s=t.state.vim,l=s.lastSelection,c=j(l.anchor,l.head);Z(t,i,c.line+1),n=t.listSelections().length,t.setCursor(i)}for(var u=0;n>u;u++){a&&t.setCursor(N(i,u,0));for(var f=0;f<r.length;f++){var h=r[f];if(h instanceof rr)e.lookupKey(h.keyName,"vim-insert",o);else{var d=t.getCursor();t.replaceRange(h,d,d)}}}a&&t.setCursor(N(i,0,1))}e.defineOption("vimMode",!1,function(t,r,n){r&&"vim"!=t.getOption("keyMap")?t.setOption("keyMap","vim"):!r&&n!=e.Init&&/^vim/.test(t.getOption("keyMap"))&&t.setOption("keyMap","default")});var ar={Shift:"S",Ctrl:"C",Alt:"A",Cmd:"D",Mod:"A"},sr={Enter:"CR",Backspace:"BS",Delete:"Del"},lr=/[\d]/,cr=[/\w/,/[^\w\s]/],ur=[/\S/],fr=u(65,26),hr=u(97,26),dr=u(48,10),pr=[].concat(fr,hr,dr,["<",">"]),mr=[].concat(fr,hr,dr,["-",'"',".",":","/"]),gr={},vr=function(){function e(e,t,s){function l(t){var o=++n%r,i=a[o];i&&i.clear(),a[o]=e.setBookmark(t)}var c=n%r,u=a[c];if(u){var f=u.find();f&&!_(f,t)&&l(t)}else l(t);l(s),o=n,i=n-r+1,0>i&&(i=0)}function t(e,t){n+=t,n>o?n=o:i>n&&(n=i);var s=a[(r+n)%r];if(s&&!s.find()){var l,c=t>0?1:-1,u=e.getCursor();do if(n+=c,s=a[(r+n)%r],s&&(l=s.find())&&!_(u,l))break;while(o>n&&n>i)}return s}var r=100,n=-1,o=0,i=0,a=new Array(r);return{cachedCursor:void 0,add:e,move:t}},yr=function(e){return e?{changes:e.changes,expectCursorActivityForChange:e.expectCursorActivityForChange}:{changes:[],expectCursorActivityForChange:!1}};w.prototype={exitMacroRecordMode:function(){var e=Cr.macroModeState;e.onRecordingDone&&e.onRecordingDone(),e.onRecordingDone=void 0,e.isRecording=!1},enterMacroRecordMode:function(e,t){var r=Cr.registerController.getRegister(t);r&&(r.clear(),this.latestRegister=t,e.openDialog&&(this.onRecordingDone=e.openDialog("(recording)["+t+"]",null,{bottom:!0})),this.isRecording=!0)}};var Cr,kr,wr={buildKeyMap:function(){},getRegisterController:function(){return Cr.registerController},resetVimGlobalState_:M,getVimGlobalState_:function(){return Cr},maybeInitVimState_:x,suppressErrorLogging:!1,InsertModeKey:rr,map:function(e,t,r){Ir.map(e,t,r)},setOption:C,getOption:k,defineOption:y,defineEx:function(e,t,r){if(0!==e.indexOf(t))throw new Error('(Vim.defineEx) "'+t+'" is not a prefix of "'+e+'", command not registered');Er[e]=r,Ir.commandMap_[t]={name:e,shortName:t,type:"api"}},handleKey:function(e,t,r){var n=this.findKey(e,t,r);return"function"==typeof n?n():void 0},findKey:function(r,n,o){function i(){var e=Cr.macroModeState;if(e.isRecording){if("q"==n)return e.exitMacroRecordMode(),b(r),!0;"mapping"!=o&&Qt(e,n)}}function a(){return"<Esc>"==n?(b(r),f.visualMode?st(r):f.insertMode&&Vt(r),!0):void 0}function s(t){for(var o;t;)o=/<\w+-.+?>|<\w+>|./.exec(t),n=o[0],t=t.substring(o.index+n.length),e.Vim.handleKey(r,n,"mapping")}function l(){if(a())return!0;for(var e=f.inputState.keyBuffer=f.inputState.keyBuffer+n,o=1==n.length,i=xr.matchCommand(e,t,f.inputState,"insert");e.length>1&&"full"!=i.type;){var e=f.inputState.keyBuffer=e.slice(1),s=xr.matchCommand(e,t,f.inputState,"insert");"none"!=s.type&&(i=s)}if("none"==i.type)return b(r),!1;if("partial"==i.type)return kr&&window.clearTimeout(kr),kr=window.setTimeout(function(){f.insertMode&&f.inputState.keyBuffer&&b(r)},k("insertModeEscKeysTimeout")),!o;if(kr&&window.clearTimeout(kr),o){var l=r.getCursor();r.replaceRange("",N(l,0,-(e.length-1)),l,"+input")}return b(r),i.command}function c(){if(i()||a())return!0;var e=f.inputState.keyBuffer=f.inputState.keyBuffer+n;if(/^[1-9]\d*$/.test(e))return!0;var o=/^(\d*)(.*)$/.exec(e);if(!o)return b(r),!1;var s=f.visualMode?"visual":"normal",l=xr.matchCommand(o[2]||o[1],t,f.inputState,s);if("none"==l.type)return b(r),!1;if("partial"==l.type)return!0;f.inputState.keyBuffer="";var o=/^(\d*)(.*)$/.exec(e);return o[1]&&"0"!=o[1]&&f.inputState.pushRepeatDigit(o[1]),l.command}var u,f=x(r);return u=f.insertMode?l():c(),u===!1?void 0:u===!0?function(){}:function(){return r.operation(function(){r.curOp.isVimOp=!0;try{"keyToKey"==u.type?s(u.toKeys):xr.processCommand(r,f,u)}catch(t){throw r.state.vim=void 0,x(r),e.Vim.suppressErrorLogging||console.log(t),t}return!0})}},handleEx:function(e,t){Ir.processCommand(e,t)},defineMotion:O,defineAction:I,defineOperator:E,mapCommand:Jt,_mapCommand:Ut,exitVisualMode:st,exitInsertMode:Vt};S.prototype.pushRepeatDigit=function(e){this.operator?this.motionRepeat=this.motionRepeat.concat(e):this.prefixRepeat=this.prefixRepeat.concat(e)},S.prototype.getRepeat=function(){var e=0;return(this.prefixRepeat.length>0||this.motionRepeat.length>0)&&(e=1,this.prefixRepeat.length>0&&(e*=parseInt(this.prefixRepeat.join(""),10)),this.motionRepeat.length>0&&(e*=parseInt(this.motionRepeat.join(""),10))),e},A.prototype={setText:function(e,t,r){this.keyBuffer=[e||""],this.linewise=!!t,this.blockwise=!!r},pushText:function(e,t){t&&(this.linewise||this.keyBuffer.push("\n"),this.linewise=!0),this.keyBuffer.push(e)},pushInsertModeChanges:function(e){this.insertModeChanges.push(yr(e))},pushSearchQuery:function(e){this.searchQueries.push(e)},clear:function(){this.keyBuffer=[],this.insertModeChanges=[],this.searchQueries=[],this.linewise=!1},toString:function(){return this.keyBuffer.join("")}},L.prototype={pushText:function(e,t,r,n,o){n&&"\n"==r.charAt(0)&&(r=r.slice(1)+"\n"),n&&"\n"!==r.charAt(r.length-1)&&(r+="\n");var i=this.isValidRegister(e)?this.getRegister(e):null;if(!i){switch(t){case"yank":this.registers[0]=new A(r,n,o);break;case"delete":case"change":-1==r.indexOf("\n")?this.registers["-"]=new A(r,n):(this.shiftNumericRegisters_(),this.registers[1]=new A(r,n))}return void this.unnamedRegister.setText(r,n,o)}var a=m(e);a?i.pushText(r,n):i.setText(r,n,o),this.unnamedRegister.setText(i.toString(),n)},getRegister:function(e){return this.isValidRegister(e)?(e=e.toLowerCase(),this.registers[e]||(this.registers[e]=new A),this.registers[e]):this.unnamedRegister},isValidRegister:function(e){return e&&v(e,mr)},shiftNumericRegisters_:function(){for(var e=9;e>=2;e--)this.registers[e]=this.getRegister(""+(e-1))}},T.prototype={nextMatch:function(e,t){var r=this.historyBuffer,n=t?-1:1;null===this.initialPrefix&&(this.initialPrefix=e);for(var o=this.iterator+n;t?o>=0:o<r.length;o+=n)for(var i=r[o],a=0;a<=i.length;a++)if(this.initialPrefix==i.substring(0,a))return this.iterator=o,i;return o>=r.length?(this.iterator=r.length,this.initialPrefix):0>o?e:void 0},pushInput:function(e){var t=this.historyBuffer.indexOf(e);t>-1&&this.historyBuffer.splice(t,1),e.length&&this.historyBuffer.push(e)},reset:function(){this.initialPrefix=null,this.iterator=this.historyBuffer.length}};var xr={matchCommand:function(e,t,r,n){var o=F(e,t,n,r);if(!o.full&&!o.partial)return{type:"none"};if(!o.full&&o.partial)return{type:"partial"};for(var i,a=0;a<o.full.length;a++){var s=o.full[a];i||(i=s)}return"<character>"==i.keys.slice(-11)&&(r.selectedCharacter=H(e)),{type:"full",command:i}},processCommand:function(e,t,r){switch(t.inputState.repeatOverride=r.repeatOverride,r.type){case"motion":this.processMotion(e,t,r);break;case"operator":this.processOperator(e,t,r);break;case"operatorMotion":this.processOperatorMotion(e,t,r);break;case"action":this.processAction(e,t,r);break;case"search":this.processSearch(e,t,r),b(e);break;case"ex":case"keyToEx":this.processEx(e,t,r),b(e)}},processMotion:function(e,t,r){t.inputState.motion=r.motion,t.inputState.motionArgs=P(r.motionArgs),this.evalInput(e,t)},processOperator:function(e,t,r){var n=t.inputState;if(n.operator){if(n.operator==r.operator)return n.motion="expandToLine",n.motionArgs={linewise:!0},void this.evalInput(e,t);b(e)}n.operator=r.operator,n.operatorArgs=P(r.operatorArgs),t.visualMode&&this.evalInput(e,t)},processOperatorMotion:function(e,t,r){var n=t.visualMode,o=P(r.operatorMotionArgs);o&&n&&o.visualLine&&(t.visualLine=!0),this.processOperator(e,t,r),n||this.processMotion(e,t,r)},processAction:function(e,t,r){var n=t.inputState,o=n.getRepeat(),i=!!o,a=P(r.actionArgs)||{};n.selectedCharacter&&(a.selectedCharacter=n.selectedCharacter),r.operator&&this.processOperator(e,t,r),r.motion&&this.processMotion(e,t,r),(r.motion||r.operator)&&this.evalInput(e,t),a.repeat=o||1,a.repeatIsExplicit=i,a.registerName=n.registerName,b(e),t.lastMotion=null,r.isEdit&&this.recordLastEdit(t,n,r),br[r.action](e,a,t)},processSearch:function(t,r,n){function o(e,o,i){Cr.searchHistoryController.pushInput(e),Cr.searchHistoryController.reset();try{Ft(t,e,o,i)}catch(a){return void Bt(t,"Invalid regex: "+e)}xr.processMotion(t,r,{type:"motion",motion:"findNext",motionArgs:{forward:!0,toJumplist:n.searchArgs.toJumplist}})}function i(e){t.scrollTo(h.left,h.top),o(e,!0,!0);var r=Cr.macroModeState;r.isRecording&&Yt(r,e)}function a(r,n,o){var i,a=e.keyName(r);"Up"==a||"Down"==a?(i="Up"==a?!0:!1,n=Cr.searchHistoryController.nextMatch(n,i)||"",o(n)):"Left"!=a&&"Right"!=a&&"Ctrl"!=a&&"Alt"!=a&&"Shift"!=a&&Cr.searchHistoryController.reset();var s;try{s=Ft(t,n,!0,!0)}catch(r){}s?t.scrollIntoView(Dt(t,!l,s),30):(zt(t),t.scrollTo(h.left,h.top))}function s(r,n,o){var i=e.keyName(r);("Esc"==i||"Ctrl-C"==i||"Ctrl-["==i)&&(Cr.searchHistoryController.pushInput(n),Cr.searchHistoryController.reset(),Ft(t,f),zt(t),t.scrollTo(h.left,h.top),e.e_stop(r),o(),t.focus())}if(t.getSearchCursor){var l=n.searchArgs.forward,c=n.searchArgs.wholeWordOnly;bt(t).setReversed(!l);var u=l?"/":"?",f=bt(t).getQuery(),h=t.getScrollInfo();switch(n.searchArgs.querySrc){case"prompt":var d=Cr.macroModeState;if(d.isPlaying){var p=d.replaySearchQueries.shift();o(p,!0,!1)}else Nt(t,{onClose:i,prefix:u,desc:Tr,onKeyUp:a,onKeyDown:s});break;case"wordUnderCursor":var m=ft(t,!1,!0,!1,!0),g=!0;if(m||(m=ft(t,!1,!0,!1,!1),g=!1),!m)return;var p=t.getLine(m.start.line).substring(m.start.ch,m.end.ch);p=g&&c?"\\b"+p+"\\b":G(p),Cr.jumpList.cachedCursor=t.getCursor(),t.setCursor(m.start),o(p,!0,!1)}}},processEx:function(t,r,n){function o(e){Cr.exCommandHistoryController.pushInput(e),Cr.exCommandHistoryController.reset(),Ir.processCommand(t,e)}function i(r,n,o){var i,a=e.keyName(r);("Esc"==a||"Ctrl-C"==a||"Ctrl-["==a)&&(Cr.exCommandHistoryController.pushInput(n),Cr.exCommandHistoryController.reset(),e.e_stop(r),o(),t.focus()),"Up"==a||"Down"==a?(i="Up"==a?!0:!1,n=Cr.exCommandHistoryController.nextMatch(n,i)||"",o(n)):"Left"!=a&&"Right"!=a&&"Ctrl"!=a&&"Alt"!=a&&"Shift"!=a&&Cr.exCommandHistoryController.reset()}"keyToEx"==n.type?Ir.processCommand(t,n.exArgs.input):r.visualMode?Nt(t,{onClose:o,prefix:":",value:"'<,'>",onKeyDown:i}):Nt(t,{onClose:o,prefix:":",onKeyDown:i})},evalInput:function(e,t){var n,o,i,a=t.inputState,s=a.motion,l=a.motionArgs||{},c=a.operator,u=a.operatorArgs||{},f=a.registerName,h=t.sel,d=z(t.visualMode?h.head:e.getCursor("head")),p=z(t.visualMode?h.anchor:e.getCursor("anchor")),m=z(d),g=z(p);if(c&&this.recordLastEdit(t,a),i=void 0!==a.repeatOverride?a.repeatOverride:a.getRepeat(),i>0&&l.explicitRepeat?l.repeatIsExplicit=!0:(l.noRepeat||!l.explicitRepeat&&0===i)&&(i=1,l.repeatIsExplicit=!1),a.selectedCharacter&&(l.selectedCharacter=u.selectedCharacter=a.selectedCharacter),l.repeat=i,b(e),s){var v=Mr[s](e,d,l,t);if(t.lastMotion=Mr[s],!v)return;if(l.toJumplist){var y=Cr.jumpList,C=y.cachedCursor;C?(ht(e,C,v),delete y.cachedCursor):ht(e,d,v)}v instanceof Array?(o=v[0],n=v[1]):n=v,n||(n=z(d)),t.visualMode?(t.visualBlock&&1/0===n.ch||(n=B(e,n,t.visualBlock)),o&&(o=B(e,o,!0)),o=o||g,h.anchor=o,h.head=n,ot(e),Ct(e,t,"<",W(o,n)?o:n),Ct(e,t,">",W(o,n)?n:o)):c||(n=B(e,n),e.setCursor(n.line,n.ch))
}if(c){if(u.lastSel){o=g;var k=u.lastSel,w=Math.abs(k.head.line-k.anchor.line),x=Math.abs(k.head.ch-k.anchor.ch);n=k.visualLine?r(g.line+w,g.ch):k.visualBlock?r(g.line+w,g.ch+x):k.head.line==k.anchor.line?r(g.line,g.ch+x):r(g.line+w,g.ch),t.visualMode=!0,t.visualLine=k.visualLine,t.visualBlock=k.visualBlock,h=t.sel={anchor:o,head:n},ot(e)}else t.visualMode&&(u.lastSel={anchor:z(h.anchor),head:z(h.head),visualBlock:t.visualBlock,visualLine:t.visualLine});var M,S,A,L,T;if(t.visualMode){if(M=q(h.head,h.anchor),S=V(h.head,h.anchor),A=t.visualLine||u.linewise,L=t.visualBlock?"block":A?"line":"char",T=it(e,{anchor:M,head:S},L),A){var O=T.ranges;if("block"==L)for(var R=0;R<O.length;R++)O[R].head.ch=J(e,O[R].head.line);else"line"==L&&(O[0].head=r(O[0].head.line+1,0))}}else{if(M=z(o||g),S=z(n||m),W(S,M)){var E=M;M=S,S=E}A=l.linewise||u.linewise,A?ct(e,M,S):l.forward&<(e,M,S),L="char";var I=!l.inclusive||A;T=it(e,{anchor:M,head:S},L,I)}e.setSelections(T.ranges,T.primary),t.lastMotion=null,u.repeat=i,u.registerName=f,u.linewise=A;var P=Sr[c](e,u,T.ranges,g,n);t.visualMode&&st(e,null!=P),P&&e.setCursor(P)}},recordLastEdit:function(e,t,r){var n=Cr.macroModeState;n.isPlaying||(e.lastEditInputState=t,e.lastEditActionCommand=r,n.lastInsertModeChanges.changes=[],n.lastInsertModeChanges.expectCursorActivityForChange=!1)}},Mr={moveToTopLine:function(e,t,n){var o=Wt(e).top+n.repeat-1;return r(o,ut(e.getLine(o)))},moveToMiddleLine:function(e){var t=Wt(e),n=Math.floor(.5*(t.top+t.bottom));return r(n,ut(e.getLine(n)))},moveToBottomLine:function(e,t,n){var o=Wt(e).bottom-n.repeat+1;return r(o,ut(e.getLine(o)))},expandToLine:function(e,t,n){var o=t;return r(o.line+n.repeat-1,1/0)},findNext:function(e,t,r){var n=bt(e),o=n.getQuery();if(o){var i=!r.forward;return i=n.isReversed()?!i:i,Ht(e,o),Dt(e,i,o,r.repeat)}},goToMark:function(e,t,r,n){var o=n.marks[r.selectedCharacter];if(o){var i=o.find();return r.linewise?{line:i.line,ch:ut(e.getLine(i.line))}:i}return null},moveToOtherHighlightedEnd:function(e,t,n,o){if(o.visualBlock&&n.sameLine){var i=o.sel;return[B(e,r(i.anchor.line,i.head.ch)),B(e,r(i.head.line,i.anchor.ch))]}return[o.sel.head,o.sel.anchor]},jumpToMark:function(e,t,n,o){for(var i=t,a=0;a<n.repeat;a++){var s=i;for(var l in o.marks)if(h(l)){var c=o.marks[l].find(),u=n.forward?W(c,s):W(s,c);if(!(u||n.linewise&&c.line==s.line)){var f=_(s,i),d=n.forward?U(s,c,i):U(i,c,s);(f||d)&&(i=c)}}}return n.linewise&&(i=r(i.line,ut(e.getLine(i.line)))),i},moveByCharacters:function(e,t,n){var o=t,i=n.repeat,a=n.forward?o.ch+i:o.ch-i;return r(o.line,a)},moveByLines:function(e,t,n,o){var i=t,a=i.ch;switch(o.lastMotion){case this.moveByLines:case this.moveByDisplayLines:case this.moveByScroll:case this.moveToColumn:case this.moveToEol:a=o.lastHPos;break;default:o.lastHPos=a}var s=n.repeat+(n.repeatOffset||0),l=n.forward?i.line+s:i.line-s,c=e.firstLine(),u=e.lastLine();return c>l&&i.line==c||l>u&&i.line==u?void 0:(n.toFirstChar&&(a=ut(e.getLine(l)),o.lastHPos=a),o.lastHSPos=e.charCoords(r(l,a),"div").left,r(l,a))},moveByDisplayLines:function(e,t,n,o){var i=t;switch(o.lastMotion){case this.moveByDisplayLines:case this.moveByScroll:case this.moveByLines:case this.moveToColumn:case this.moveToEol:break;default:o.lastHSPos=e.charCoords(i,"div").left}var a=n.repeat,s=e.findPosV(i,n.forward?a:-a,"line",o.lastHSPos);if(s.hitSide)if(n.forward)var l=e.charCoords(s,"div"),c={top:l.top+8,left:o.lastHSPos},s=e.coordsChar(c,"div");else{var u=e.charCoords(r(e.firstLine(),0),"div");u.left=o.lastHSPos,s=e.coordsChar(u,"div")}return o.lastHPos=s.ch,s},moveByPage:function(e,t,r){var n=t,o=r.repeat;return e.findPosV(n,r.forward?o:-o,"page")},moveByParagraph:function(e,t,r){var n=r.forward?1:-1;return wt(e,t,r.repeat,n)},moveByScroll:function(e,t,r,n){var o=e.getScrollInfo(),i=null,a=r.repeat;a||(a=o.clientHeight/(2*e.defaultTextHeight()));var s=e.charCoords(t,"local");r.repeat=a;var i=Mr.moveByDisplayLines(e,t,r,n);if(!i)return null;var l=e.charCoords(i,"local");return e.scrollTo(null,o.top+l.top-s.top),i},moveByWords:function(e,t,r){return gt(e,t,r.repeat,!!r.forward,!!r.wordEnd,!!r.bigWord)},moveTillCharacter:function(e,t,r){var n=r.repeat,o=vt(e,n,r.forward,r.selectedCharacter),i=r.forward?-1:1;return dt(i,r),o?(o.ch+=i,o):null},moveToCharacter:function(e,t,r){var n=r.repeat;return dt(0,r),vt(e,n,r.forward,r.selectedCharacter)||t},moveToSymbol:function(e,t,r){var n=r.repeat;return pt(e,n,r.forward,r.selectedCharacter)||t},moveToColumn:function(e,t,r,n){var o=r.repeat;return n.lastHPos=o-1,n.lastHSPos=e.charCoords(t,"div").left,yt(e,o)},moveToEol:function(e,t,n,o){var i=t;o.lastHPos=1/0;var a=r(i.line+n.repeat-1,1/0),s=e.clipPos(a);return s.ch--,o.lastHSPos=e.charCoords(s,"div").left,a},moveToFirstNonWhiteSpaceCharacter:function(e,t){var n=t;return r(n.line,ut(e.getLine(n.line)))},moveToMatchedSymbol:function(e,t){var n,o=t,i=o.line,a=o.ch,s=e.getLine(i);do if(n=s.charAt(a++),n&&d(n)){var l=e.getTokenTypeAt(r(i,a));if("string"!==l&&"comment"!==l)break}while(n);if(n){var c=e.findMatchingBracket(r(i,a));return c.to}return o},moveToStartOfLine:function(e,t){return r(t.line,0)},moveToLineOrEdgeOfDocument:function(e,t,n){var o=n.forward?e.lastLine():e.firstLine();return n.repeatIsExplicit&&(o=n.repeat-e.getOption("firstLineNumber")),r(o,ut(e.getLine(o)))},textObjectManipulation:function(e,t,r,n){var o={"(":")",")":"(","{":"}","}":"{","[":"]","]":"["},i={"'":!0,'"':!0},a=r.selectedCharacter;"b"==a?a="(":"B"==a&&(a="{");var s,l=!r.textObjectInner;if(o[a])s=xt(e,t,a,l);else if(i[a])s=Mt(e,t,a,l);else if("W"===a)s=ft(e,l,!0,!0);else if("w"===a)s=ft(e,l,!0,!1);else{if("p"!==a)return null;if(s=wt(e,t,r.repeat,0,l),r.linewise=!0,n.visualMode)n.visualLine||(n.visualLine=!0);else{var c=n.inputState.operatorArgs;c&&(c.linewise=!0),s.end.line--}}return e.state.vim.visualMode?nt(e,s.start,s.end):[s.start,s.end]},repeatLastCharacterSearch:function(e,t,r){var n=Cr.lastChararacterSearch,o=r.repeat,i=r.forward===n.forward,a=(n.increment?1:0)*(i?-1:1);e.moveH(-a,"char"),r.inclusive=i?!0:!1;var s=vt(e,o,i,n.selectedCharacter);return s?(s.ch+=a,s):(e.moveH(a,"char"),t)}},Sr={change:function(t,r,n){var o,i,a=t.state.vim;if(Cr.macroModeState.lastInsertModeChanges.inVisualBlock=a.visualBlock,a.visualMode){i=t.getSelection();var s=R("",n.length);t.replaceSelections(s),o=q(n[0].head,n[0].anchor)}else{var l=n[0].anchor,c=n[0].head;if(i=t.getRange(l,c),!g(i)){var u=/\s+$/.exec(i);u&&(c=N(c,0,-u[0].length),i=i.slice(0,-u[0].length))}var f=c.line-1==t.lastLine();t.replaceRange("",l,c),r.linewise&&!f&&(e.commands.newlineAndIndent(t),l.ch=null),o=l}Cr.registerController.pushText(r.registerName,"change",i,r.linewise,n.length>1),br.enterInsertMode(t,{head:o},t.state.vim)},"delete":function(e,t,n){var o,i,a=e.state.vim;if(a.visualBlock){i=e.getSelection();var s=R("",n.length);e.replaceSelections(s),o=n[0].anchor}else{var l=n[0].anchor,c=n[0].head;t.linewise&&c.line!=e.firstLine()&&l.line==e.lastLine()&&l.line==c.line-1&&(l.line==e.firstLine()?l.ch=0:l=r(l.line-1,J(e,l.line-1))),i=e.getRange(l,c),e.replaceRange("",l,c),o=l,t.linewise&&(o=Mr.moveToFirstNonWhiteSpaceCharacter(e,l))}return Cr.registerController.pushText(t.registerName,"delete",i,t.linewise,a.visualBlock),B(e,o)},indent:function(e,t,r){var n=e.state.vim,o=r[0].anchor.line,i=n.visualBlock?r[r.length-1].anchor.line:r[0].head.line,a=n.visualMode?t.repeat:1;t.linewise&&i--;for(var s=o;i>=s;s++)for(var l=0;a>l;l++)e.indentLine(s,t.indentRight);return Mr.moveToFirstNonWhiteSpaceCharacter(e,r[0].anchor)},changeCase:function(e,t,r,n,o){for(var i=e.getSelections(),a=[],s=t.toLower,l=0;l<i.length;l++){var c=i[l],u="";if(s===!0)u=c.toLowerCase();else if(s===!1)u=c.toUpperCase();else for(var f=0;f<c.length;f++){var h=c.charAt(f);u+=m(h)?h.toLowerCase():h.toUpperCase()}a.push(u)}return e.replaceSelections(a),t.shouldMoveCursor?o:!e.state.vim.visualMode&&t.linewise&&r[0].anchor.line+1==r[0].head.line?Mr.moveToFirstNonWhiteSpaceCharacter(e,n):t.linewise?n:q(r[0].anchor,r[0].head)},yank:function(e,t,r,n){var o=e.state.vim,i=e.getSelection(),a=o.visualMode?q(o.sel.anchor,o.sel.head,r[0].head,r[0].anchor):n;return Cr.registerController.pushText(t.registerName,"yank",i,t.linewise,o.visualBlock),a}},br={jumpListWalk:function(e,t,r){if(!r.visualMode){var n=t.repeat,o=t.forward,i=Cr.jumpList,a=i.move(e,o?n:-n),s=a?a.find():void 0;s=s?s:e.getCursor(),e.setCursor(s)}},scroll:function(e,t,r){if(!r.visualMode){var n=t.repeat||1,o=e.defaultTextHeight(),i=e.getScrollInfo().top,a=o*n,s=t.forward?i+a:i-a,l=z(e.getCursor()),c=e.charCoords(l,"local");if(t.forward)s>c.top?(l.line+=(s-c.top)/o,l.line=Math.ceil(l.line),e.setCursor(l),c=e.charCoords(l,"local"),e.scrollTo(null,c.top)):e.scrollTo(null,s);else{var u=s+e.getScrollInfo().clientHeight;u<c.bottom?(l.line-=(c.bottom-u)/o,l.line=Math.floor(l.line),e.setCursor(l),c=e.charCoords(l,"local"),e.scrollTo(null,c.bottom-e.getScrollInfo().clientHeight)):e.scrollTo(null,s)}}},scrollToCursor:function(e,t){var n=e.getCursor().line,o=e.charCoords(r(n,0),"local"),i=e.getScrollInfo().clientHeight,a=o.top,s=o.bottom-a;switch(t.position){case"center":a=a-i/2+s;break;case"bottom":a=a-i+1.4*s;break;case"top":a+=.4*s}e.scrollTo(null,a)},replayMacro:function(e,t,r){var n=t.selectedCharacter,o=t.repeat,i=Cr.macroModeState;for("@"==n&&(n=i.latestRegister);o--;)$t(e,r,i,n)},enterMacroRecordMode:function(e,t){var r=Cr.macroModeState,n=t.selectedCharacter;r.enterMacroRecordMode(e,n)},enterInsertMode:function(t,n,o){if(!t.getOption("readOnly")){o.insertMode=!0,o.insertModeRepeat=n&&n.repeat||1;var i=n?n.insertAt:null,a=o.sel,s=n.head||t.getCursor("head"),l=t.listSelections().length;if("eol"==i)s=r(s.line,J(t,s.line));else if("charAfter"==i)s=N(s,0,1);else if("firstNonBlank"==i)s=Mr.moveToFirstNonWhiteSpaceCharacter(t,s);else if("startOfSelectedArea"==i)o.visualBlock?(s=r(Math.min(a.head.line,a.anchor.line),Math.min(a.head.ch,a.anchor.ch)),l=Math.abs(a.head.line-a.anchor.line)+1):s=a.head.line<a.anchor.line?a.head:r(a.anchor.line,0);else if("endOfSelectedArea"==i)o.visualBlock?(s=r(Math.min(a.head.line,a.anchor.line),Math.max(a.head.ch+1,a.anchor.ch)),l=Math.abs(a.head.line-a.anchor.line)+1):s=a.head.line>=a.anchor.line?N(a.head,0,1):r(a.anchor.line,0);else if("inplace"==i&&o.visualMode)return;t.setOption("keyMap","vim-insert"),t.setOption("disableInput",!1),n&&n.replace?(t.toggleOverwrite(!0),t.setOption("keyMap","vim-replace"),e.signal(t,"vim-mode-change",{mode:"replace"})):(t.setOption("keyMap","vim-insert"),e.signal(t,"vim-mode-change",{mode:"insert"})),Cr.macroModeState.isPlaying||(t.on("change",Xt),e.on(t.getInputField(),"keydown",nr)),o.visualMode&&st(t),Z(t,s,l)}},toggleVisualMode:function(t,n,o){var i,a=n.repeat,s=t.getCursor();o.visualMode?o.visualLine^n.linewise||o.visualBlock^n.blockwise?(o.visualLine=!!n.linewise,o.visualBlock=!!n.blockwise,e.signal(t,"vim-mode-change",{mode:"visual",subMode:o.visualLine?"linewise":o.visualBlock?"blockwise":""}),ot(t)):st(t):(o.visualMode=!0,o.visualLine=!!n.linewise,o.visualBlock=!!n.blockwise,i=B(t,r(s.line,s.ch+a-1),!0),o.sel={anchor:s,head:i},e.signal(t,"vim-mode-change",{mode:"visual",subMode:o.visualLine?"linewise":o.visualBlock?"blockwise":""}),ot(t),Ct(t,o,"<",q(s,i)),Ct(t,o,">",V(s,i)))},reselectLastSelection:function(t,r,n){var o=n.lastSelection;if(n.visualMode&&rt(t,n),o){var i=o.anchorMark.find(),a=o.headMark.find();if(!i||!a)return;n.sel={anchor:i,head:a},n.visualMode=!0,n.visualLine=o.visualLine,n.visualBlock=o.visualBlock,ot(t),Ct(t,n,"<",q(i,a)),Ct(t,n,">",V(i,a)),e.signal(t,"vim-mode-change",{mode:"visual",subMode:n.visualLine?"linewise":n.visualBlock?"blockwise":""})}},joinLines:function(e,t,n){var o,i;if(n.visualMode){if(o=e.getCursor("anchor"),i=e.getCursor("head"),W(i,o)){var a=i;i=o,o=a}i.ch=J(e,i.line)-1}else{var s=Math.max(t.repeat,2);o=e.getCursor(),i=B(e,r(o.line+s-1,1/0))}for(var l=0,c=o.line;c<i.line;c++){l=J(e,o.line);var a=r(o.line+1,J(e,o.line+1)),u=e.getRange(o,a);u=u.replace(/\n\s*/g," "),e.replaceRange(u,o,a)}var f=r(o.line,l);n.visualMode&&st(e,!1),e.setCursor(f)},newLineAndEnterInsertMode:function(t,n,o){o.insertMode=!0;var i=z(t.getCursor());if(i.line!==t.firstLine()||n.after){i.line=n.after?i.line:i.line-1,i.ch=J(t,i.line),t.setCursor(i);var a=e.commands.newlineAndIndentContinueComment||e.commands.newlineAndIndent;a(t)}else t.replaceRange("\n",r(t.firstLine(),0)),t.setCursor(t.firstLine(),0);this.enterInsertMode(t,{repeat:n.repeat},o)},paste:function(e,t,n){var o=z(e.getCursor()),i=Cr.registerController.getRegister(t.registerName),a=i.toString();if(a){if(t.matchIndent){var s=e.getOption("tabSize"),l=function(e){var t=e.split(" ").length-1,r=e.split(" ").length-1;return t*s+1*r},c=e.getLine(e.getCursor().line),u=l(c.match(/^\s*/)[0]),f=a.replace(/\n$/,""),h=a!==f,d=l(a.match(/^\s*/)[0]),a=f.replace(/^\s*/gm,function(t){var r=u+(l(t)-d);if(0>r)return"";if(e.getOption("indentWithTabs")){var n=Math.floor(r/s);return Array(n+1).join(" ")}return Array(r+1).join(" ")});a+=h?"\n":""}if(t.repeat>1)var a=Array(t.repeat+1).join(a);var p=i.linewise,m=i.blockwise;if(p)n.visualMode?a=n.visualLine?a.slice(0,-1):"\n"+a.slice(0,a.length-1)+"\n":t.after?(a="\n"+a.slice(0,a.length-1),o.ch=J(e,o.line)):o.ch=0;else{if(m){a=a.split("\n");for(var g=0;g<a.length;g++)a[g]=""==a[g]?" ":a[g]}o.ch+=t.after?1:0}var v,y;if(n.visualMode){n.lastPastedText=a;var C,k=tt(e,n),w=k[0],x=k[1],M=e.getSelection(),S=e.listSelections(),b=new Array(S.length).join("1").split("1");n.lastSelection&&(C=n.lastSelection.headMark.find()),Cr.registerController.unnamedRegister.setText(M),m?(e.replaceSelections(b),x=r(w.line+a.length-1,w.ch),e.setCursor(w),X(e,x),e.replaceSelections(a),v=w):n.visualBlock?(e.replaceSelections(b),e.setCursor(w),e.replaceRange(a,w,w),v=w):(e.replaceRange(a,w,x),v=e.posFromIndex(e.indexFromPos(w)+a.length-1)),C&&(n.lastSelection.headMark=e.setBookmark(C)),p&&(v.ch=0)}else if(m){e.setCursor(o);for(var g=0;g<a.length;g++){var A=o.line+g;A>e.lastLine()&&e.replaceRange("\n",r(A,0));var L=J(e,A);L<o.ch&&Y(e,A,o.ch)}e.setCursor(o),X(e,r(o.line+a.length-1,o.ch)),e.replaceSelections(a),v=o}else e.replaceRange(a,o),p&&t.after?v=r(o.line+1,ut(e.getLine(o.line+1))):p&&!t.after?v=r(o.line,ut(e.getLine(o.line))):!p&&t.after?(y=e.indexFromPos(o),v=e.posFromIndex(y+a.length-1)):(y=e.indexFromPos(o),v=e.posFromIndex(y+a.length));n.visualMode&&st(e,!1),e.setCursor(v)}},undo:function(t,r){t.operation(function(){D(t,e.commands.undo,r.repeat)(),t.setCursor(t.getCursor("anchor"))})},redo:function(t,r){D(t,e.commands.redo,r.repeat)()},setRegister:function(e,t,r){r.inputState.registerName=t.selectedCharacter},setMark:function(e,t,r){var n=t.selectedCharacter;Ct(e,r,n,e.getCursor())},replace:function(t,n,o){var i,a,s=n.selectedCharacter,l=t.getCursor(),c=t.listSelections();if(o.visualMode)l=t.getCursor("start"),a=t.getCursor("end");else{var u=t.getLine(l.line);i=l.ch+n.repeat,i>u.length&&(i=u.length),a=r(l.line,i)}if("\n"==s)o.visualMode||t.replaceRange("",l,a),(e.commands.newlineAndIndentContinueComment||e.commands.newlineAndIndent)(t);else{var f=t.getRange(l,a);if(f=f.replace(/[^\n]/g,s),o.visualBlock){var h=new Array(t.getOption("tabSize")+1).join(" ");f=t.getSelection(),f=f.replace(/\t/g,h).replace(/[^\n]/g,s).split("\n"),t.replaceSelections(f)}else t.replaceRange(f,l,a);o.visualMode?(l=W(c[0].anchor,c[0].head)?c[0].anchor:c[0].head,t.setCursor(l),st(t,!1)):t.setCursor(N(a,0,-1))}},incrementNumberToken:function(e,t){for(var n,o,i,a,s,l=e.getCursor(),c=e.getLine(l.line),u=/-?\d+/g;null!==(n=u.exec(c))&&(s=n[0],o=n.index,i=o+s.length,!(l.ch<i)););if((t.backtrack||!(i<=l.ch))&&s){var f=t.increase?1:-1,h=parseInt(s)+f*t.repeat,d=r(l.line,o),p=r(l.line,i);a=h.toString(),e.replaceRange(a,d,p),e.setCursor(r(l.line,o+a.length-1))}},repeatLastEdit:function(e,t,r){var n=r.lastEditInputState;if(n){var o=t.repeat;o&&t.repeatIsExplicit?r.lastEditInputState.repeatOverride=o:o=r.lastEditInputState.repeatOverride||o,or(e,r,o,!1)}},exitInsertMode:Vt},Ar={"(":"bracket",")":"bracket","{":"bracket","}":"bracket","[":"section","]":"section","*":"comment","/":"comment",m:"method",M:"method","#":"preprocess"},Lr={bracket:{isComplete:function(e){if(e.nextCh===e.symb){if(e.depth++,e.depth>=1)return!0}else e.nextCh===e.reverseSymb&&e.depth--;return!1}},section:{init:function(e){e.curMoveThrough=!0,e.symb=(e.forward?"]":"[")===e.symb?"{":"}"},isComplete:function(e){return 0===e.index&&e.nextCh===e.symb}},comment:{isComplete:function(e){var t="*"===e.lastCh&&"/"===e.nextCh;return e.lastCh=e.nextCh,t}},method:{init:function(e){e.symb="m"===e.symb?"{":"}",e.reverseSymb="{"===e.symb?"}":"{"},isComplete:function(e){return e.nextCh===e.symb?!0:!1}},preprocess:{init:function(e){e.index=0},isComplete:function(e){if("#"===e.nextCh){var t=e.lineText.match(/#(\w+)/)[1];if("endif"===t){if(e.forward&&0===e.depth)return!0;e.depth++}else if("if"===t){if(!e.forward&&0===e.depth)return!0;e.depth--}if("else"===t&&0===e.depth)return!0}return!1}}};y("pcre",!0,"boolean"),St.prototype={getQuery:function(){return Cr.query},setQuery:function(e){Cr.query=e},getOverlay:function(){return this.searchOverlay},setOverlay:function(e){this.searchOverlay=e},isReversed:function(){return Cr.isReversed},setReversed:function(e){Cr.isReversed=e},getScrollbarAnnotate:function(){return this.annotate},setScrollbarAnnotate:function(e){this.annotate=e}};var Tr="(Javascript regexp)",Or=[{name:"map"},{name:"imap",shortName:"im"},{name:"nmap",shortName:"nm"},{name:"vmap",shortName:"vm"},{name:"unmap"},{name:"write",shortName:"w"},{name:"undo",shortName:"u"},{name:"redo",shortName:"red"},{name:"set",shortName:"set"},{name:"sort",shortName:"sor"},{name:"substitute",shortName:"s",possiblyAsync:!0},{name:"nohlsearch",shortName:"noh"},{name:"delmarks",shortName:"delm"},{name:"registers",shortName:"reg",excludeFromCommandHistory:!0},{name:"global",shortName:"g"}],Rr=function(){this.buildCommandMap_()};Rr.prototype={processCommand:function(t,r,n){var o=t.state.vim,i=Cr.registerController.getRegister(":"),a=i.toString();o.visualMode&&st(t);var s=new e.StringStream(r);i.setText(r);var l=n||{};l.input=r;try{this.parseInput_(t,s,l)}catch(c){throw Bt(t,c),c}var u,f;if(l.commandName){if(u=this.matchCommand_(l.commandName)){if(f=u.name,u.excludeFromCommandHistory&&i.setText(a),this.parseCommandArgs_(s,l,u),"exToKey"==u.type){for(var h=0;h<u.toKeys.length;h++)e.Vim.handleKey(t,u.toKeys[h],"mapping");return}if("exToEx"==u.type)return void this.processCommand(t,u.toInput)}}else void 0!==l.line&&(f="move");if(!f)return void Bt(t,'Not an editor command ":'+r+'"');try{Er[f](t,l),u&&u.possiblyAsync||!l.callback||l.callback()}catch(c){throw Bt(t,c),c}},parseInput_:function(e,t,r){t.eatWhile(":"),t.eat("%")?(r.line=e.firstLine(),r.lineEnd=e.lastLine()):(r.line=this.parseLineSpec_(e,t),void 0!==r.line&&t.eat(",")&&(r.lineEnd=this.parseLineSpec_(e,t)));var n=t.match(/^(\w+)/);return r.commandName=n?n[1]:t.match(/.*/)[0],r},parseLineSpec_:function(e,t){var r=t.match(/^(\d+)/);if(r)return parseInt(r[1],10)-1;switch(t.next()){case".":return e.getCursor().line;case"$":return e.lastLine();case"'":var n=e.state.vim.marks[t.next()];if(n&&n.find())return n.find().line;throw new Error("Mark not set");default:return void t.backUp(1)}},parseCommandArgs_:function(e,t,r){if(!e.eol()){t.argString=e.match(/.*/)[0];var n=r.argDelimiter||/\s+/,o=Q(t.argString).split(n);o.length&&o[0]&&(t.args=o)}},matchCommand_:function(e){for(var t=e.length;t>0;t--){var r=e.substring(0,t);if(this.commandMap_[r]){var n=this.commandMap_[r];if(0===n.name.indexOf(e))return n}}return null},buildCommandMap_:function(){this.commandMap_={};for(var e=0;e<Or.length;e++){var t=Or[e],r=t.shortName||t.name;this.commandMap_[r]=t}},map:function(e,r,n){if(":"!=e&&":"==e.charAt(0)){if(n)throw Error("Mode not supported for ex mappings");var o=e.substring(1);this.commandMap_[o]=":"!=r&&":"==r.charAt(0)?{name:o,type:"exToEx",toInput:r.substring(1),user:!0}:{name:o,type:"exToKey",toKeys:r,user:!0}}else if(":"!=r&&":"==r.charAt(0)){var i={keys:e,type:"keyToEx",exArgs:{input:r.substring(1)},user:!0};n&&(i.context=n),t.unshift(i)}else{var i={keys:e,type:"keyToKey",toKeys:r,user:!0};n&&(i.context=n),t.unshift(i)}},unmap:function(e,r){if(":"!=e&&":"==e.charAt(0)){if(r)throw Error("Mode not supported for ex mappings");var n=e.substring(1);if(this.commandMap_[n]&&this.commandMap_[n].user)return void delete this.commandMap_[n]}else for(var o=e,i=0;i<t.length;i++)if(o==t[i].keys&&t[i].context===r&&t[i].user)return void t.splice(i,1);throw Error("No such mapping.")}};var Er={map:function(e,t,r){var n=t.args;return!n||n.length<2?void(e&&Bt(e,"Invalid mapping: "+t.input)):void Ir.map(n[0],n[1],r)},imap:function(e,t){this.map(e,t,"insert")},nmap:function(e,t){this.map(e,t,"normal")},vmap:function(e,t){this.map(e,t,"visual")},unmap:function(e,t,r){var n=t.args;return!n||n.length<1?void(e&&Bt(e,"No such mapping: "+t.input)):void Ir.unmap(n[0],r)},move:function(e,t){xr.processCommand(e,e.state.vim,{type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!1,explicitRepeat:!0,linewise:!0},repeatOverride:t.line+1})},set:function(e,t){var r=t.args;if(!r||r.length<1)return void(e&&Bt(e,"Invalid mapping: "+t.input));var n=r[0].split("="),o=n[0],i=n[1],a=!1;if("?"==o.charAt(o.length-1)){if(i)throw Error("Trailing characters: "+t.argString);o=o.substring(0,o.length-1),a=!0}void 0===i&&"no"==o.substring(0,2)&&(o=o.substring(2),i=!1);var s=gr[o]&&"boolean"==gr[o].type;if(s&&void 0==i&&(i=!0),!s&&!i||a){var l=k(o);l===!0||l===!1?Bt(e," "+(l?"":"no")+o):Bt(e," "+o+"="+l)}else C(o,i)},registers:function(e,t){var r=t.args,n=Cr.registerController.registers,o="----------Registers----------<br><br>";if(r){var i;r=r.join("");for(var a=0;a<r.length;a++)if(i=r.charAt(a),Cr.registerController.isValidRegister(i)){var s=n[i]||new A;o+='"'+i+" "+s.toString()+"<br>"}}else for(var i in n){var l=n[i].toString();l.length&&(o+='"'+i+" "+l+"<br>")}Bt(e,o)},sort:function(t,n){function o(){if(n.argString){var t=new e.StringStream(n.argString);if(t.eat("!")&&(a=!0),t.eol())return;if(!t.eatSpace())return"Invalid arguments";var r=t.match(/[a-z]+/);if(r){r=r[0],s=-1!=r.indexOf("i"),l=-1!=r.indexOf("u");var o=-1!=r.indexOf("d")&&1,i=-1!=r.indexOf("x")&&1,u=-1!=r.indexOf("o")&&1;if(o+i+u>1)return"Invalid arguments";c=o&&"decimal"||i&&"hex"||u&&"octal"}t.eatSpace()&&t.match(/\/.*\//)}}function i(e,t){if(a){var r;r=e,e=t,t=r}s&&(e=e.toLowerCase(),t=t.toLowerCase());var n=c&&g.exec(e),o=c&&g.exec(t);return n?(n=parseInt((n[1]+n[2]).toLowerCase(),v),o=parseInt((o[1]+o[2]).toLowerCase(),v),n-o):t>e?-1:1}var a,s,l,c,u=o();if(u)return void Bt(t,u+": "+n.argString);var f=n.line||t.firstLine(),h=n.lineEnd||n.line||t.lastLine();if(f!=h){var d=r(f,0),p=r(h,J(t,h)),m=t.getRange(d,p).split("\n"),g="decimal"==c?/(-?)([\d]+)/:"hex"==c?/(-?)(?:0x)?([0-9a-f]+)/i:"octal"==c?/([0-7]+)/:null,v="decimal"==c?10:"hex"==c?16:"octal"==c?8:null,y=[],C=[];if(c)for(var k=0;k<m.length;k++)g.exec(m[k])?y.push(m[k]):C.push(m[k]);else C=m;if(y.sort(i),C.sort(i),m=a?y.concat(C):C.concat(y),l){var w,x=m;m=[];for(var k=0;k<x.length;k++)x[k]!=w&&m.push(x[k]),w=x[k]}t.replaceRange(m.join("\n"),d,p)}},global:function(e,t){var r=t.argString;if(!r)return void Bt(e,"Regular Expression missing from global");var n,o=void 0!==t.line?t.line:e.firstLine(),i=t.lineEnd||t.line||e.lastLine(),a=Lt(r),s=r;if(a.length&&(s=a[0],n=a.slice(1,a.length).join("/")),s)try{Ft(e,s,!0,!0)}catch(l){return void Bt(e,"Invalid regex: "+s)}for(var c=bt(e).getQuery(),u=[],f="",h=o;i>=h;h++){var d=c.test(e.getLine(h));d&&(u.push(h+1),f+=e.getLine(h)+"<br>")}if(!n)return void Bt(e,f);var p=0,m=function(){if(p<u.length){var t=u[p]+n;Ir.processCommand(e,t,{callback:m})}p++};m()},substitute:function(e,t){if(!e.getSearchCursor)throw new Error("Search feature not available. Requires searchcursor.js or any other getSearchCursor implementation.");var n,o,i,a,s=t.argString,l=s?Lt(s):[],c="",u=!1,f=!1;if(l.length)n=l[0],c=l[1],void 0!==c&&(c=k("pcre")?Et(c):Rt(c),Cr.lastSubstituteReplacePart=c),o=l[2]?l[2].split(" "):[];else if(s&&s.length)return void Bt(e,"Substitutions should be of the form :s/pattern/replace/");if(o&&(i=o[0],a=parseInt(o[1]),i&&(-1!=i.indexOf("c")&&(u=!0,i.replace("c","")),-1!=i.indexOf("g")&&(f=!0,i.replace("g","")),n=n+"/"+i)),n)try{Ft(e,n,!0,!0)}catch(h){return void Bt(e,"Invalid regex: "+n)}if(c=c||Cr.lastSubstituteReplacePart,void 0===c)return void Bt(e,"No previous substitute regular expression");var d=bt(e),p=d.getQuery(),m=void 0!==t.line?t.line:e.getCursor().line,g=t.lineEnd||m;a&&(m=g,g=m+a-1);var v=B(e,r(m,0)),y=e.getSearchCursor(p,v);qt(e,u,f,m,g,y,p,c,t.callback)},redo:e.commands.redo,undo:e.commands.undo,write:function(t){e.commands.save?e.commands.save(t):t.save()},nohlsearch:function(e){zt(e)},delmarks:function(t,r){if(!r.argString||!Q(r.argString))return void Bt(t,"Argument required");for(var n=t.state.vim,o=new e.StringStream(Q(r.argString));!o.eol();){o.eatSpace();var i=o.pos;if(!o.match(/[a-zA-Z]/,!1))return void Bt(t,"Invalid argument: "+r.argString.substring(i));var a=o.next();if(o.match("-",!0)){if(!o.match(/[a-zA-Z]/,!1))return void Bt(t,"Invalid argument: "+r.argString.substring(i));var s=a,l=o.next();if(!(h(s)&&h(l)||m(s)&&m(l)))return void Bt(t,"Invalid argument: "+s+"-");var c=s.charCodeAt(0),u=l.charCodeAt(0);if(c>=u)return void Bt(t,"Invalid argument: "+r.argString.substring(i));for(var f=0;u-c>=f;f++){var d=String.fromCharCode(c+f);delete n.marks[d]}}else delete n.marks[a]}}},Ir=new Rr;return e.keyMap.vim={attach:a,detach:i,call:s},y("insertModeEscKeysTimeout",200,"number"),e.keyMap["vim-insert"]={"Ctrl-N":"autocomplete","Ctrl-P":"autocomplete",Enter:function(t){var r=e.commands.newlineAndIndentContinueComment||e.commands.newlineAndIndent;r(t)},fallthrough:["default"],attach:a,detach:i,call:s},e.keyMap["vim-replace"]={Backspace:"goCharLeft",fallthrough:["vim-insert"],attach:a,detach:i,call:s},M(),wr};e.Vim=n()});