Files
zyplayer-doc/zyplayer-doc-api/src/main/resources/dist/assets/index.11b9cb38.js

1117 lines
1.3 MiB
JavaScript
Raw Normal View History

2022-01-16 23:28:17 +08:00
import{a6 as le}from"./vendor.59e47867.js";(function(){var w="ace",E=function(){return this}();!E&&typeof window!="undefined"&&(E=window);var B=function(n,e,i){if(typeof n!="string"){B.original?B.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(i=e),B.modules[n]||(B.payloads[n]=i,B.modules[n]=null)};B.modules={},B.payloads={};var T=function(n,e,i){if(typeof e=="string"){var t=s(n,e);if(t!=null)return i&&i(),t}else if(Object.prototype.toString.call(e)==="[object Array]"){for(var r=[],o=0,u=e.length;o<u;++o){var h=s(n,e[o]);if(h==null&&b.original)return;r.push(h)}return i&&i.apply(null,r)||!0}},b=function(n,e){var i=T("",n,e);return i==null&&b.original?b.original.apply(this,arguments):i},f=function(n,e){if(e.indexOf("!")!==-1){var i=e.split("!");return f(n,i[0])+"!"+f(n,i[1])}if(e.charAt(0)=="."){var t=n.split("/").slice(0,-1).join("/");for(e=t+"/"+e;e.indexOf(".")!==-1&&r!=e;){var r=e;e=e.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return e},s=function(n,e){e=f(n,e);var i=B.modules[e];if(!i){if(i=B.payloads[e],typeof i=="function"){var t={},r={id:e,uri:"",exports:t,packaged:!0},o=function(h,d){return T(e,h,d)},u=i(o,t,r);t=u||r.exports,B.modules[e]=t,delete B.payloads[e]}i=B.modules[e]=t||i}return i};function a(n){var e=E;n&&(E[n]||(E[n]={}),e=E[n]),(!e.define||!e.define.packaged)&&(B.original=e.define,e.define=B,e.define.packaged=!0),(!e.acequire||!e.acequire.packaged)&&(b.original=e.acequire,e.acequire=b,e.acequire.packaged=!0)}a(w)})();ace.define("ace/lib/regexp",["require","exports","module"],function(w,E,B){var T={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},b=T.exec.call(/()??/,"")[1]===void 0,f=function(){var n=/^/g;return T.test.call(n,""),!n.lastIndex}();if(f&&b)return;RegExp.prototype.exec=function(n){var e=T.exec.apply(this,arguments),i,t;if(typeof n=="string"&&e){if(!b&&e.length>1&&a(e,"")>-1&&(t=RegExp(this.source,T.replace.call(s(this),"g","")),T.replace.call(n.slice(e.index),t,function(){for(var o=1;o<arguments.length-2;o++)arguments[o]===void 0&&(e[o]=void 0)})),this._xregexp&&this._xregexp.captureNames)for(var r=1;r<e.length;r++)i=this._xregexp.captureNames[r-1],i&&(e[i]=e[r]);!f&&this.global&&!e[0].length&&this.lastIndex>e.index&&this.lastIndex--}return e},f||(RegExp.prototype.test=function(n){var e=T.exec.call(this,n);return e&&this.global&&!e[0].length&&this.lastIndex>e.index&&this.lastIndex--,!!e});function s(n){return(n.global?"g":"")+(n.ignoreCase?"i":"")+(n.multiline?"m":"")+(n.extended?"x":"")+(n.sticky?"y":"")}function a(n,e,i){if(Array.prototype.indexOf)return n.indexOf(e,i);for(var t=i||0;t<n.length;t++)if(n[t]===e)return t;return-1}});ace.define("ace/lib/es5-shim",["require","exports","module"],function(w,E,B){function T(){}Function.prototype.bind||(Function.prototype.bind=function(S){var R=this;if(typeof R!="function")throw new TypeError("Function.prototype.bind called on incompatible "+R);var $=a.call(arguments,1),N=function(){if(this instanceof N){var P=R.apply(this,$.concat(a.call(arguments)));return Object(P)===P?P:this}else return R.apply(S,$.concat(a.call(arguments)))};return R.prototype&&(T.prototype=R.prototype,N.prototype=new T,T.prototype=null),N});var b=Function.prototype.call,f=Array.prototype,s=Object.prototype,a=f.slice,n=b.bind(s.toString),e=b.bind(s.hasOwnProperty),i,t,r,o,u;if((u=e(s,"__defineGetter__"))&&(i=b.bind(s.__defineGetter__),t=b.bind(s.__defineSetter__),r=b.bind(s.__lookupGetter__),o=b.bind(s.__lookupSetter__)),[1,2].splice(0).length!=2)if(function(){function D($){var N=new Array($+2);return N[0]=N[1]=0,N}var S=[],R;if(S.splice.apply(S,D(20)),S.splice.apply(S,D(26)),R=S.length,S.splice(5,0,"XXX"),R+1==S.length,R+1==S.length)return!0}()){var h=Array.prototype.splice;Array.prototype.splice=function(D,S){return arguments.length?h.apply(this,[D===void 0?0:D,S===void 0?this.length-D:S].concat(a.call(arguments,2))):[]}}else Array.prototype.splice=function(D,S){var R=this.
2021-12-28 23:59:05 +08:00
\v\f\r \xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF`;if(!String.prototype.trim||O.trim()){O="["+O+"]";var I=new RegExp("^"+O+O+"*"),j=new RegExp(O+O+"*$");String.prototype.trim=function(){return String(this).replace(I,"").replace(j,"")}}function W(D){return D=+D,D!==D?D=0:D!==0&&D!==1/0&&D!==-(1/0)&&(D=(D>0||-1)*Math.floor(Math.abs(D))),D}var H=function(D){if(D==null)throw new TypeError("can't convert "+D+" to object");return Object(D)}});ace.define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"],function(w,E,B){w("./regexp"),w("./es5-shim")});ace.define("ace/lib/dom",["require","exports","module"],function(w,E,B){var T="http://www.w3.org/1999/xhtml";if(E.getDocumentHead=function(b){return b||(b=document),b.head||b.getElementsByTagName("head")[0]||b.documentElement},E.createElement=function(b,f){return document.createElementNS?document.createElementNS(f||T,b):document.createElement(b)},E.hasCssClass=function(b,f){var s=(b.className+"").split(/\s+/g);return s.indexOf(f)!==-1},E.addCssClass=function(b,f){E.hasCssClass(b,f)||(b.className+=" "+f)},E.removeCssClass=function(b,f){for(var s=b.className.split(/\s+/g);;){var a=s.indexOf(f);if(a==-1)break;s.splice(a,1)}b.className=s.join(" ")},E.toggleCssClass=function(b,f){for(var s=b.className.split(/\s+/g),a=!0;;){var n=s.indexOf(f);if(n==-1)break;a=!1,s.splice(n,1)}return a&&s.push(f),b.className=s.join(" "),a},E.setCssClass=function(b,f,s){s?E.addCssClass(b,f):E.removeCssClass(b,f)},E.hasCssString=function(b,f){var s=0,a;if(f=f||document,f.createStyleSheet&&(a=f.styleSheets)){for(;s<a.length;)if(a[s++].owningElement.id===b)return!0}else if(a=f.getElementsByTagName("style")){for(;s<a.length;)if(a[s++].id===b)return!0}return!1},E.importCssString=function(f,s,a){if(a=a||document,s&&E.hasCssString(s,a))return null;var n;s&&(f+=`
/*# sourceURL=ace/css/`+s+" */"),a.createStyleSheet?(n=a.createStyleSheet(),n.cssText=f,s&&(n.owningElement.id=s)):(n=E.createElement("style"),n.appendChild(a.createTextNode(f)),s&&(n.id=s),E.getDocumentHead(a).appendChild(n))},E.importCssStylsheet=function(b,f){if(f.createStyleSheet)f.createStyleSheet(b);else{var s=E.createElement("link");s.rel="stylesheet",s.href=b,E.getDocumentHead(f).appendChild(s)}},E.getInnerWidth=function(b){return parseInt(E.computedStyle(b,"paddingLeft"),10)+parseInt(E.computedStyle(b,"paddingRight"),10)+b.clientWidth},E.getInnerHeight=function(b){return parseInt(E.computedStyle(b,"paddingTop"),10)+parseInt(E.computedStyle(b,"paddingBottom"),10)+b.clientHeight},E.scrollbarWidth=function(b){var f=E.createElement("ace_inner");f.style.width="100%",f.style.minWidth="0px",f.style.height="200px",f.style.display="block";var s=E.createElement("ace_outer"),a=s.style;a.position="absolute",a.left="-10000px",a.overflow="hidden",a.width="200px",a.minWidth="0px",a.height="150px",a.display="block",s.appendChild(f);var n=b.documentElement;n.appendChild(s);var e=f.offsetWidth;a.overflow="scroll";var i=f.offsetWidth;return e==i&&(i=s.clientWidth),n.removeChild(s),e-i},typeof document=="undefined"){E.importCssString=function(){};return}window.pageYOffset!==void 0?(E.getPageScrollTop=function(){return window.pageYOffset},E.getPageScrollLeft=function(){return window.pageXOffset}):(E.getPageScrollTop=function(){return document.body.scrollTop},E.getPageScrollLeft=function(){return document.body.scrollLeft}),window.getComputedStyle?E.computedStyle=function(b,f){return f?(window.getComputedStyle(b,"")||{})[f]||"":window.getComputedStyle(b,"")||{}}:E.computedStyle=function(b,f){return f?b.currentStyle[f]:b.currentStyle},E.setInnerHtml=function(b,f){var s=b.cloneNode(!1);return s.innerHTML=f,b.parentNode.replaceChild(s,b),s},"textContent"in document.documentElement?(E.setInnerText=function(b,f){b.textContent=f},E.getInnerText=function(b){return b.textContent}):(E.setInnerText=function(b,f){b.innerText=f},E.getInnerText=function(b){return b.innerText}),E.getParentWindow=function(b){return b.defaultView||b.parentWindow}});ace.define("ace/lib/oop",["require","exports","module"],function(w,E,B){E.inherits=function(T,b){T.super_=b,T.prototype=Object.create(b.prototype,{constructor:{value:T,enumerable:!1,writable:!0,configurable:!0}})},E.mixin=function(T,b){for(var f in b)T[f]=b[f];return T},E.implement=function(T,b){E.mixin(T,b)}});ace.define("ace/lib/keys",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop"],function(w,E,B){w("./fixoldbrowsers");var T=w("./oop"),b=function(){var f={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,super:8,meta:8,command:8,cmd:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9","-13":"NumpadEnter",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",111:"/",106:"*"}},s,a;for(a in f.FUNCTION_KEYS)s=f.FUNCTION_KEYS[a].toLowerCase(),f[s]=parseInt(a,10);for(a in f.PRINTABLE_KEYS)s=f.PRINTABLE_KEYS[a].toLowerCase(),f[s]=parseInt(a,10);return T.mixin(f,f.MODIFIER_KEYS),T.mixin(f,f.PRINTABLE_KEYS),T.mixin(f,f.FUNCTION_KEYS),f.enter=f.return,f.escape=f.esc,f.del=f.delete,f[173]="-",function(){for(var n=["cmd","ctrl","alt","shift"],e=Math.pow(2,n.length);e--;)f.KEY_MODS[e]=n.
aaaa a
`,d=!1,v=!1,c=!1,g=!1,l="",m=!0;try{var y=document.activeElement===u}catch{}T.addListener(u,"blur",function(U){o.onBlur(U),y=!1}),T.addListener(u,"focus",function(U){y=!0,o.onFocus(U),k()}),this.focus=function(){if(l)return u.focus();u.style.position="fixed",u.focus()},this.blur=function(){u.blur()},this.isFocused=function(){return y};var x=s.delayedCall(function(){y&&k(m)}),p=s.delayedCall(function(){g||(u.value=h,y&&k())});function k(U){if(!g){if(g=!0,F)q=0,K=U?0:u.value.length-1;else var q=4,K=5;try{u.setSelectionRange(q,K)}catch{}g=!1}}function _(){g||(u.value=h,b.isWebKit&&p.schedule())}b.isWebKit||o.addEventListener("changeSelection",function(){o.selection.isEmpty()!=m&&(m=!m,x.schedule())}),_(),y&&o.onFocus();var C=function(U){return U.selectionStart===0&&U.selectionEnd===U.value.length},A=function(U){C(u)?(o.selectAll(),k()):F&&k(o.selection.isEmpty())},F=null;this.setInputHandler=function(U){F=U},this.getInputHandler=function(){return F};var L=!1,O=function(U){u.selectionStart===4&&u.selectionEnd===5||(F&&(U=F(U),F=null),c?(k(),U&&o.onPaste(U),c=!1):U==h.substr(0)&&u.selectionStart===4?L?o.execCommand("del",{source:"ace"}):o.execCommand("backspace",{source:"ace"}):d||(U.substring(0,9)==h&&U.length>h.length?U=U.substr(9):U.substr(0,4)==h.substr(0,4)?U=U.substr(4,U.length-h.length+1):U.charAt(U.length-1)==h.charAt(0)&&(U=U.slice(0,-1)),U==h.charAt(0)||U.charAt(U.length-1)==h.charAt(0)&&(U=U.slice(0,-1)),U&&o.onTextInput(U)),d&&(d=!1),L&&(L=!1))},I=function(U){if(!g){var q=u.value;O(q),_()}},j=function(U,q,K){var Q=U.clipboardData||window.clipboardData;if(!(!Q||e)){var J=i||K?"Text":"text/plain";try{return q?Q.setData(J,q)!==!1:Q.getData(J)}catch(Z){if(!K)return j(Z,q,!0)}}},W=function(U,q){var K=o.getCopyText();if(!K)return T.preventDefault(U);j(U,K)?(b.isIOS&&(v=q,u.value=`
aa`+K+`a a
`,u.setSelectionRange(4,4+K.length),d={value:K}),q?o.onCut():o.onCopy(),b.isIOS||T.preventDefault(U)):(d=!0,u.value=K,u.select(),setTimeout(function(){d=!1,_(),k(),q?o.onCut():o.onCopy()}))},H=function(U){W(U,!0)},D=function(U){W(U,!1)},S=function(U){var q=j(U);typeof q=="string"?(q&&o.onPaste(q,U),b.isIE&&setTimeout(k),T.preventDefault(U)):(u.value="",c=!0)};T.addCommandKeyListener(u,o.onCommandKey.bind(o)),T.addListener(u,"select",A),T.addListener(u,"input",I),T.addListener(u,"cut",H),T.addListener(u,"copy",D),T.addListener(u,"paste",S);var R=function(U){g||!o.onCompositionStart||o.$readOnly||(g={},g.canUndo=o.session.$undoManager,o.onCompositionStart(),setTimeout($,0),o.on("mousedown",N),g.canUndo&&!o.selection.isEmpty()&&(o.insert(""),o.session.markUndoGroup(),o.selection.clearSelection()),o.session.markUndoGroup())},$=function(){if(!(!g||!o.onCompositionUpdate||o.$readOnly)){var U=u.value.replace(/\x01/g,"");if(g.lastValue!==U&&(o.onCompositionUpdate(U),g.lastValue&&o.undo(),g.canUndo&&(g.lastValue=U),g.lastValue)){var q=o.selection.getRange();o.insert(g.lastValue),o.session.markUndoGroup(),g.range=o.selection.getRange(),o.selection.setRange(q),o.selection.clearSelection()}}},N=function(U){if(!(!o.onCompositionEnd||o.$readOnly)){var q=g;g=!1;var K=setTimeout(function(){K=null;var J=u.value.replace(/\x01/g,"");g||(J==q.lastValue?_():!q.lastValue&&J&&(_(),O(J)))});F=function(Z){return K&&clearTimeout(K),Z=Z.replace(/\x01/g,""),Z==q.lastValue?"":(q.lastValue&&K&&o.undo(),Z)},o.onCompositionEnd(),o.removeListener("mousedown",N),U.type=="compositionend"&&q.range&&o.selection.setRange(q.range);var Q=!!b.isChrome&&b.isChrome>=53||!!b.isWebKit&&b.isWebKit>=603;Q&&I()}},P=s.delayedCall($,50);T.addListener(u,"compositionstart",R),b.isGecko?T.addListener(u,"text",function(){P.schedule()}):(T.addListener(u,"keyup",function(){P.schedule()}),T.addListener(u,"keydown",function(){P.schedule()})),T.addListener(u,"compositionend",N),this.getElement=function(){return u},this.setReadOnly=function(U){u.readOnly=U},this.onContextMenu=function(U){L=!0,k(o.selection.isEmpty()),o._emit("nativecontextmenu",{target:o,domEvent:U}),this.moveToMouse(U,!0)},this.moveToMouse=function(U,q){l||(l=u.style.cssText),u.style.cssText=(q?"z-index:100000;":"")+"height:"+u.style.height+";"+(b.isIE?"opacity:0.1;":"");var K=o.container.getBoundingClientRect(),Q=f.computedStyle(o.container),J=K.top+(parseInt(Q.borderTopWidth)||0),Z=K.left+(parseInt(K.borderLeftWidth)||0),se=K.bottom-J-u.clientHeight-2,oe=function(ae){u.style.left=ae.clientX-Z-2+"px",u.style.top=Math.min(ae.clientY-J-2,se)+"px"};oe(U),U.type=="mousedown"&&(o.renderer.$keepTextAreaAtCursor&&(o.renderer.$keepTextAreaAtCursor=null),clearTimeout(z),b.isWin&&T.capture(o.container,oe,M))},this.onContextMenuClose=M;var z;function M(){clearTimeout(z),z=setTimeout(function(){l&&(u.style.cssText=l,l=""),o.renderer.$keepTextAreaAtCursor==null&&(o.renderer.$keepTextAreaAtCursor=!0,o.renderer.$moveTextAreaToCursor())},0)}var V=function(U){o.textInput.onContextMenu(U),M()};if(T.addListener(u,"mouseup",V),T.addListener(u,"mousedown",function(U){U.preventDefault(),M()}),T.addListener(o.renderer.scroller,"contextmenu",V),T.addListener(u,"contextmenu",V),b.isIOS){var G=null,X=!1;r.addEventListener("keydown",function(U){G&&clearTimeout(G),X=!0}),r.addEventListener("keyup",function(U){G=setTimeout(function(){X=!1},100)});var Y=function(U){if(document.activeElement===u&&!X){if(v)return setTimeout(function(){v=!1},100);var q=u.selectionStart,K=u.selectionEnd;if(u.setSelectionRange(4,5),q==K)switch(q){case 0:o.onCommandKey(null,0,a.up);break;case 1:o.onCommandKey(null,0,a.home);break;case 2:o.onCommandKey(null,n.option,a.left);break;case 4:o.onCommandKey(null,0,a.left);break;case 5:o.onCommandKey(null,0,a.right);break;case 7:o.onCommandKey(null,n.option,a.right);break;case 8:o.onCommandKey(null,0,a.end);break;case 9:o.onCommandKey(null,0,a.down);break}else{switch(K){case 6:o.onCommandKey(null,n.shift,a.right);break;case 7:o.onCommandKey(null,n.shift|n.option,a.right);break;case 8:o.onCommandKey(null,n.shift,a.end);b
`))&&(this.seenBidi=!0,this.currentRow=null)},this.getDocumentRow=function(){var n=0,e=this.session.$screenRowCache;if(e.length){var i=this.session.$getRowCacheIndex(e,this.currentRow);i>=0&&(n=this.session.$docRowCache[i])}return n},this.getSplitIndex=function(){var n=0,e=this.session.$screenRowCache;if(e.length)for(var i,t=this.session.$getRowCacheIndex(e,this.currentRow);this.currentRow-n>0&&(i=this.session.$getRowCacheIndex(e,this.currentRow-n-1),i===t);)t=i,n++;return n},this.updateRowLine=function(n,e){if(n===void 0&&(n=this.getDocumentRow()),this.wrapIndent=0,this.isLastRow=n===this.session.getLength()-1,this.line=this.session.getLine(n),this.session.$useWrapMode){var i=this.session.$wrapData[n];i&&(e===void 0&&(e=this.getSplitIndex()),e>0&&i.length?(this.wrapIndent=i.indent,this.line=e<i.length?this.line.substring(i[e-1],i[i.length-1]):this.line.substring(i[i.length-1])):this.line=this.line.substring(0,i[e]))}var t=this.session,r=0,o;this.line=this.line.replace(/\t|[\u1100-\u2029, \u202F-\uFFE6]/g,function(u,h){return u===" "||t.isFullWidth(u.charCodeAt(0))?(o=u===" "?t.getScreenTabSize(h+r):2,r+=o-1,b.stringRepeat(T.DOT,o)):u})},this.updateBidiMap=function(){var n=[],e=this.isLastRow?this.EOF:this.EOL,i=this.line+(this.showInvisibles?e:T.DOT);T.hasBidiCharacters(i,n)?this.bidiMap=T.doBidiReorder(i,n,this.isRtlDir):this.bidiMap={}},this.markAsDirty=function(){this.currentRow=null},this.updateCharacterWidths=function(n){if(!!this.seenBidi&&this.characterWidth!==n.$characterSize.width){var e=this.characterWidth=n.$characterSize.width,i=n.$measureCharWidth("\u05D4");this.charWidths[T.L]=this.charWidths[T.EN]=this.charWidths[T.ON_R]=e,this.charWidths[T.R]=this.charWidths[T.AN]=i,this.charWidths[T.R_H]=f.isChrome?i:i*.45,this.charWidths[T.B]=0,this.currentRow=null}},this.getShowInvisibles=function(){return this.showInvisibles},this.setShowInvisibles=function(n){this.showInvisibles=n,this.currentRow=null},this.setEolChar=function(n){this.EOL=n},this.setTextDir=function(n){this.isRtlDir=n},this.getPosLeft=function(n){n-=this.wrapIndent;var e=T.getVisualFromLogicalIdx(n>0?n-1:0,this.bidiMap),i=this.bidiMap.bidiLevels,t=0;n===0&&i[e]%2!=0&&e++;for(var r=0;r<e;r++)t+=this.charWidths[i[r]];return n!==0&&i[e]%2==0&&(t+=this.charWidths[i[e]]),this.wrapIndent&&(t+=this.wrapIndent*this.charWidths[T.L]),t},this.getSelections=function(n,e){for(var i=this.bidiMap,t=i.bidiLevels,r,o=this.wrapIndent*this.charWidths[T.L],u=[],h=Math.min(n,e)-this.wrapIndent,d=Math.max(n,e)-this.wrapIndent,v=!1,c=!1,g=0,l,m=0;m<t.length;m++)l=i.logicalFromVisual[m],r=t[m],v=l>=h&&l<d,v&&!c?g=o:!v&&c&&u.push({left:g,width:o-g}),o+=this.charWidths[r],c=v;return v&&m===t.length&&u.push({left:g,width:o-g}),u},this.offsetToCol=function(n){var e=0,n=Math.max(n,0),i=0,t=0,r=this.bidiMap.bidiLevels,o=this.charWidths[r[t]];for(this.wrapIndent&&(n-=this.wrapIndent*this.charWidths[T.L]);n>i+o/2;){if(i+=o,t===r.length-1){o=0;break}o=this.charWidths[r[++t]]}return t>0&&r[t-1]%2!=0&&r[t]%2==0?(n<i&&t--,e=this.bidiMap.logicalFromVisual[t]):t>0&&r[t-1]%2==0&&r[t]%2!=0?e=1+(n>i?this.bidiMap.logicalFromVisual[t]:this.bidiMap.logicalFromVisual[t-1]):this.isRtlDir&&t===r.length-1&&o===0&&r[t-1]%2==0||!this.isRtlDir&&t===0&&r[t]%2!=0?e=1+this.bidiMap.logicalFromVisual[t]:(t>0&&r[t-1]%2!=0&&o!==0&&t--,e=this.bidiMap.logicalFromVisual[t]),e+this.wrapIndent}}).call(a.prototype),E.BidiHandler=a});ace.define("ace/range",["require","exports","module"],function(w,E,B){var T=function(f,s){return f.row-s.row||f.column-s.column},b=function(f,s,a,n){this.start={row:f,column:s},this.end={row:a,column:n}};(function(){this.isEqual=function(f){return this.start.row===f.start.row&&this.end.row===f.end.row&&this.start.column===f.start.column&&this.end.column===f.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(f,s){return this.compare(f,s)==0},this.compareRange=function(f){var s,a=f.end,n=f.start;return s=this.compare(a.row,a.column),s==1?(s=this.compare(n.row,n.column),s==1?2:
`||l==`\r
`){r(c);var C="";u.isMaybeInsertedClosing(m,y)&&(C=s.stringRepeat("}",e.maybeInsertedBrackets),u.clearMaybeInsertedClosing());var k=y.substring(m.column,m.column+1);if(k==="}"){var A=g.findMatchingBracket({row:m.row,column:m.column+1},"}");if(!A)return null;var F=this.$getIndent(g.getLine(A.row))}else if(C)var F=this.$getIndent(y);else{u.clearMaybeInsertedClosing();return}var L=F+g.getTabString();return{text:`
`+L+`
`+F+C,selection:[1,L.length,1,L.length]}}else u.clearMaybeInsertedClosing()}),this.add("braces","deletion",function(d,v,c,g,l){var m=g.doc.getTextRange(l);if(!l.isMultiLine()&&m=="{"){r(c);var y=g.doc.getLine(l.start.row),x=y.substring(l.end.column,l.end.column+1);if(x=="}")return l.end.column++,l;e.maybeInsertedBrackets--}}),this.add("parens","insertion",function(d,v,c,g,l){if(l=="("){r(c);var m=c.getSelectionRange(),y=g.doc.getTextRange(m);if(y!==""&&c.getWrapBehavioursEnabled())return o(m,y,"(",")");if(u.isSaneInsertion(c,g))return u.recordAutoInsert(c,g,")"),{text:"()",selection:[1,1]}}else if(l==")"){r(c);var x=c.getCursorPosition(),p=g.doc.getLine(x.row),k=p.substring(x.column,x.column+1);if(k==")"){var _=g.$findOpeningBracket(")",{column:x.column+1,row:x.row});if(_!==null&&u.isAutoInsertedClosing(x,p,l))return u.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(d,v,c,g,l){var m=g.doc.getTextRange(l);if(!l.isMultiLine()&&m=="("){r(c);var y=g.doc.getLine(l.start.row),x=y.substring(l.start.column+1,l.start.column+2);if(x==")")return l.end.column++,l}}),this.add("brackets","insertion",function(d,v,c,g,l){if(l=="["){r(c);var m=c.getSelectionRange(),y=g.doc.getTextRange(m);if(y!==""&&c.getWrapBehavioursEnabled())return o(m,y,"[","]");if(u.isSaneInsertion(c,g))return u.recordAutoInsert(c,g,"]"),{text:"[]",selection:[1,1]}}else if(l=="]"){r(c);var x=c.getCursorPosition(),p=g.doc.getLine(x.row),k=p.substring(x.column,x.column+1);if(k=="]"){var _=g.$findOpeningBracket("]",{column:x.column+1,row:x.row});if(_!==null&&u.isAutoInsertedClosing(x,p,l))return u.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(d,v,c,g,l){var m=g.doc.getTextRange(l);if(!l.isMultiLine()&&m=="["){r(c);var y=g.doc.getLine(l.start.row),x=y.substring(l.start.column+1,l.start.column+2);if(x=="]")return l.end.column++,l}}),this.add("string_dquotes","insertion",function(d,v,c,g,l){var m=g.$mode.$quotes||t;if(l.length==1&&m[l]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(l)!=-1)return;r(c);var y=l,x=c.getSelectionRange(),p=g.doc.getTextRange(x);if(p!==""&&(p.length!=1||!m[p])&&c.getWrapBehavioursEnabled())return o(x,p,y,y);if(!p){var k=c.getCursorPosition(),_=g.doc.getLine(k.row),C=_.substring(k.column-1,k.column),A=_.substring(k.column,k.column+1),F=g.getTokenAt(k.row,k.column),L=g.getTokenAt(k.row,k.column+1);if(C=="\\"&&F&&/escape/.test(F.type))return null;var O=F&&/string|escape/.test(F.type),I=!L||/string|escape/.test(L.type),j;if(A==y)j=O!==I,j&&/string\.end/.test(L.type)&&(j=!1);else{if(O&&!I||O&&I)return null;var W=g.$mode.tokenRe;W.lastIndex=0;var H=W.test(C);W.lastIndex=0;var D=W.test(C);if(H||D||A&&!/[\s;,.})\]\\]/.test(A))return null;j=!0}return{text:j?y+y:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(d,v,c,g,l){var m=g.doc.getTextRange(l);if(!l.isMultiLine()&&(m=='"'||m=="'")){r(c);var y=g.doc.getLine(l.start.row),x=y.substring(l.start.column+1,l.start.column+2);if(x==m)return l.end.column++,l}})};u.isSaneInsertion=function(h,d){var v=h.getCursorPosition(),c=new f(d,v.row,v.column);if(!this.$matchTokenType(c.getCurrentToken()||"text",a)){var g=new f(d,v.row,v.column+1);if(!this.$matchTokenType(g.getCurrentToken()||"text",a))return!1}return c.stepForward(),c.getCurrentTokenRow()!==v.row||this.$matchTokenType(c.getCurrentToken()||"text",n)},u.$matchTokenType=function(h,d){return d.indexOf(h.type||h)>-1},u.recordAutoInsert=function(h,d,v){var c=h.getCursorPosition(),g=d.doc.getLine(c.row);this.isAutoInsertedClosing(c,g,e.autoInsertedLineEnd[0])||(e.autoInsertedBrackets=0),e.autoInsertedRow=c.row,e.autoInsertedLineEnd=v+g.substr(c.column),e.autoInsertedBrackets++},u.recordMaybeInsert=function(h,d,v){var c=h.getCursorPosition(),g=d.doc.getLine(c.row);this.isMaybeInsertedClosing(c,g)||(e.maybeInsertedBrackets=0),e.maybeInsertedRow=c.row,e.maybeInsertedLineStart=g.substr(0,c.column)+v,e.maybeInsertedLineEnd=g.substr(c.column),e.maybeInsertedBrackets++},u.isAutoInsertedClosing=function(h,d,v){return e.autoInsertedBrackets>0&&h.ro
`).split(`
`)}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var i=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=i?i[1]:`
`,this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return`\r
`;case"unix":return`
`;default:return this.$autoNewLine||`
`}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){this.$newLineMode!==e&&(this.$newLineMode=e,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e==`\r
`||e=="\r"||e==`
`},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,i){return this.$lines.slice(e,i+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var i;if(e.start.row===e.end.row)i=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{i=this.getLines(e.start.row,e.end.row),i[0]=(i[0]||"").substring(e.start.column);var t=i.length-1;e.end.row-e.start.row==t&&(i[t]=i[t].substring(0,e.end.column))}return i},this.insertLines=function(e,i){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,i)},this.removeLines=function(e,i){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,i)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,i){return this.getLength()<=1&&this.$detectNewLine(i),this.insertMergedLines(e,this.$split(i))},this.insertInLine=function(e,i){var t=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+i.length);return this.applyDelta({start:t,end:r,action:"insert",lines:[i]},!0),this.clonePos(r)},this.clippedPos=function(e,i){var t=this.getLength();e===void 0?e=t:e<0?e=0:e>=t&&(e=t-1,i=void 0);var r=this.getLine(e);return i==null&&(i=r.length),i=Math.min(Math.max(i,0),r.length),{row:e,column:i}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,i){return{row:e,column:i}},this.$clipPosition=function(e){var i=this.getLength();return e.row>=i?(e.row=Math.max(0,i-1),e.column=this.getLine(i-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,i){e=Math.min(Math.max(e,0),this.getLength());var t=0;e<this.getLength()?(i=i.concat([""]),t=0):(i=[""].concat(i),e--,t=this.$lines[e].length),this.insertMergedLines({row:e,column:t},i)},this.insertMergedLines=function(e,i){var t=this.clippedPos(e.row,e.column),r={row:t.row+i.length-1,column:(i.length==1?t.column:0)+i[i.length-1].length};return this.applyDelta({start:t,end:r,action:"insert",lines:i}),this.clonePos(r)},this.remove=function(e){var i=this.clippedPos(e.start.row,e.start.column),t=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:i,end:t,action:"remove",lines:this.getLinesForRange({start:i,end:t})}),this.clonePos(i)},this.removeInLine=function(e,i,t){var r=this.clippedPos(e,i),o=this.clippedPos(e,t);return this.applyDelta({start:r,end:o,action:"remove",lines:this.getLinesForRange({start:r,end:o})},!0),this.clonePos(r)},this.removeFullLines=function(e,i){e=Math.min(Math.max(0,e),this.getLength()-1),i=Math.min(Math.max(0,i),this.getLength()-1);var t=i==this.getLength()-1&&e>0,r=i<this.getLength()-1,o=t?e-1:e,u=t?this.getLine(o).length:0,h=r?i+1:i,d=r?0:this.getLine(h).length,v=new s(o,u,h,d),c=this.$lines.slice(e,i+1);return this.applyDelta({start:v.start,end:v.end,action:"remove",lines:this.getLinesForRange(v)}),c},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,i){if(e instanceof s||(e=s.fromPoints(e.start,e.end)),i.length===0&&e.isEmpty())return e.start;if(i==this.getTextRange(e))return e.end;this.remove(e);var t;return i?t=this.insert(e.start,i):t=e.start,t},this.applyDeltas=function(e){for(var i=0;i<e.length;i++)this.applyDelta(e[i])},this.revertDeltas=function(e){for(var i=e.length-1;i>=0;i--)this.revertDelta(e[i])},this.applyDelta=function(e,i){var t=e.action=="insert";(t?e.lines.length<=1&&!e.lines[0]:!s.comparePoints(e.start,e.end))||(t&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),b(this.$lines,e,i),this._signal("change",e))}
`)},this.idxToPosition=function(f){for(var s=0,a=0;a<this.folds.length;a++){var n=this.folds[a];if(f-=n.start.column-s,f<0)return{row:n.start.row,column:n.start.column+f};if(f-=n.placeholder.length,f<0)return n.start;s=n.end.column}return{row:this.end.row,column:this.end.column+f}}}).call(b.prototype),E.FoldLine=b});ace.define("ace/range_list",["require","exports","module","ace/range"],function(w,E,B){var T=w("./range").Range,b=T.comparePoints,f=function(){this.ranges=[]};(function(){this.comparePoints=b,this.pointIndex=function(s,a,n){for(var e=this.ranges,i=n||0;i<e.length;i++){var t=e[i],r=b(s,t.end);if(!(r>0)){var o=b(s,t.start);return r===0?a&&o!==0?-i-2:i:o>0||o===0&&!a?i:-i-1}}return-i-1},this.add=function(s){var a=!s.isEmpty(),n=this.pointIndex(s.start,a);n<0&&(n=-n-1);var e=this.pointIndex(s.end,a,n);return e<0?e=-e-1:e++,this.ranges.splice(n,e-n,s)},this.addList=function(s){for(var a=[],n=s.length;n--;)a.push.apply(a,this.add(s[n]));return a},this.substractPoint=function(s){var a=this.pointIndex(s);if(a>=0)return this.ranges.splice(a,1)},this.merge=function(){var s=[],a=this.ranges;a=a.sort(function(r,o){return b(r.start,o.start)});for(var n=a[0],e,i=1;i<a.length;i++){e=n,n=a[i];var t=b(e.end,n.start);t<0||t==0&&!e.isEmpty()&&!n.isEmpty()||(b(e.end,n.end)<0&&(e.end.row=n.end.row,e.end.column=n.end.column),a.splice(i,1),s.push(n),n=e,i--)}return this.ranges=a,s},this.contains=function(s,a){return this.pointIndex({row:s,column:a})>=0},this.containsPoint=function(s){return this.pointIndex(s)>=0},this.rangeAtPoint=function(s){var a=this.pointIndex(s);if(a>=0)return this.ranges[a]},this.clipRows=function(s,a){var n=this.ranges;if(n[0].start.row>a||n[n.length-1].start.row<s)return[];var e=this.pointIndex({row:s,column:0});e<0&&(e=-e-1);var i=this.pointIndex({row:a,column:0},e);i<0&&(i=-i-1);for(var t=[],r=e;r<i;r++)t.push(n[r]);return t},this.removeAll=function(){return this.ranges.splice(0,this.ranges.length)},this.attach=function(s){this.session&&this.detach(),this.session=s,this.onChange=this.$onChange.bind(this),this.session.on("change",this.onChange)},this.detach=function(){!this.session||(this.session.removeListener("change",this.onChange),this.session=null)},this.$onChange=function(s){if(s.action=="insert")var a=s.start,n=s.end;else var n=s.start,a=s.end;for(var e=a.row,i=n.row,t=i-e,r=-a.column+n.column,o=this.ranges,u=0,h=o.length;u<h;u++){var d=o[u];if(!(d.end.row<e)){if(d.start.row>e)break;if(d.start.row==e&&d.start.column>=a.column&&(d.start.column==a.column&&this.$insertRight||(d.start.column+=r,d.start.row+=t)),d.end.row==e&&d.end.column>=a.column){if(d.end.column==a.column&&this.$insertRight)continue;d.end.column==a.column&&r>0&&u<h-1&&d.end.column>d.start.column&&d.end.column==o[u+1].start.column&&(d.end.column-=r),d.end.column+=r,d.end.row+=t}}}if(t!=0&&u<h)for(;u<h;u++){var d=o[u];d.start.row+=t,d.end.row+=t}}}).call(f.prototype),E.RangeList=f});ace.define("ace/edit_session/fold",["require","exports","module","ace/range","ace/range_list","ace/lib/oop"],function(w,E,B){w("../range").Range;var T=w("../range_list").RangeList,b=w("../lib/oop"),f=E.Fold=function(i,t){this.foldLine=null,this.placeholder=t,this.range=i,this.start=i.start,this.end=i.end,this.sameRow=i.start.row==i.end.row,this.subFolds=this.ranges=[]};b.inherits(f,T),function(){this.toString=function(){return'"'+this.placeholder+'" '+this.range.toString()},this.setFoldLine=function(i){this.foldLine=i,this.subFolds.forEach(function(t){t.setFoldLine(i)})},this.clone=function(){var i=this.range.clone(),t=new f(i,this.placeholder);return this.subFolds.forEach(function(r){t.subFolds.push(r.clone())}),t.collapseChildren=this.collapseChildren,t},this.addSubFold=function(i){if(!this.range.isEqual(i)){if(!this.range.containsRange(i))throw new Error("A fold can't intersect already existing fold"+i.range+this.range);a(i,this.start);for(var t=i.start.row,r=i.start.column,o=0,u=-1;o<this.subFolds.length&&(u=this.subFolds[o].range.compare(t,r),u==1);o++);var h=this.subFolds[o];if(u==0)return h.addSubFold(i);for(var t=i.range.end.row,r=i.range.end.column
`)},this.on("changeFold",this.onChangeFold.bind(this)),this.$onChange=this.onChange.bind(this),(typeof h!="object"||!h.getLine)&&(h=new t(h)),this.$bidiHandler=new f(this),this.setDocument(h),this.selection=new n(this),s.resetOptions(this),this.setMode(d),s._signal("session",this)};u.$uid=0,function(){T.implement(this,a),this.setDocument=function(p){this.doc&&this.doc.removeListener("change",this.$onChange),this.doc=p,p.on("change",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(p){if(!p){this.$docRowCache=[],this.$screenRowCache=[];return}var k=this.$docRowCache.length,_=this.$getRowCacheIndex(this.$docRowCache,p)+1;k>_&&(this.$docRowCache.splice(_,k),this.$screenRowCache.splice(_,k))},this.$getRowCacheIndex=function(p,k){for(var _=0,C=p.length-1;_<=C;){var A=_+C>>1,F=p[A];if(k>F)_=A+1;else if(k<F)C=A-1;else return A}return _-1},this.resetCaches=function(){this.$modified=!0,this.$wrapData=[],this.$rowLengthCache=[],this.$resetRowCache(0),this.bgTokenizer&&this.bgTokenizer.start(0)},this.onChangeFold=function(p){var k=p.data;this.$resetRowCache(k.start.row)},this.onChange=function(p){this.$modified=!0,this.$bidiHandler.onChange(p),this.$resetRowCache(p.start.row);var k=this.$updateInternalDataOnChange(p);!this.$fromUndo&&this.$undoManager&&!p.ignore&&(this.$deltasDoc.push(p),k&&k.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:k}),this.$informUndoManager.schedule()),this.bgTokenizer&&this.bgTokenizer.$updateOnChange(p),this._signal("change",p)},this.setValue=function(p){this.doc.setValue(p),this.selection.moveTo(0,0),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.setUndoManager(this.$undoManager),this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(p){return this.bgTokenizer.getState(p)},this.getTokens=function(p){return this.bgTokenizer.getTokens(p)},this.getTokenAt=function(p,k){var _=this.bgTokenizer.getTokens(p),C,A=0;if(k==null){var F=_.length-1;A=this.getLine(p).length}else for(var F=0;F<_.length&&(A+=_[F].value.length,!(A>=k));F++);return C=_[F],C?(C.index=F,C.start=A-C.value.length,C):null},this.setUndoManager=function(p){if(this.$undoManager=p,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel(),p){var k=this;this.$syncInformUndoManager=function(){k.$informUndoManager.cancel(),k.$deltasFold.length&&(k.$deltas.push({group:"fold",deltas:k.$deltasFold}),k.$deltasFold=[]),k.$deltasDoc.length&&(k.$deltas.push({group:"doc",deltas:k.$deltasDoc}),k.$deltasDoc=[]),k.$deltas.length>0&&p.execute({action:"aceupdate",args:[k.$deltas,k],merge:k.mergeUndoDeltas}),k.mergeUndoDeltas=!1,k.$deltas=[]},this.$informUndoManager=b.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?b.stringRepeat(" ",this.getTabSize()):" "},this.setUseSoftTabs=function(p){this.setOption("useSoftTabs",p)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(p){this.setOption("tabSize",p)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(p){return this.$useSoftTabs&&p.column%this.$tabSize==0},this.setNavigateWithinSoftTabs=function(p){this.setOption("navigateWithinSoftTabs",p)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},this.$overwrite=!1,this.setOverwrite=function(p){this.setOption("overwrite",p)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(p,k){this.$decorations[p]||(this.$de
`},this.getWordRange=function(p,k){var _=this.getLine(p),C=!1;if(k>0&&(C=!!_.charAt(k-1).match(this.tokenRe)),C||(C=!!_.charAt(k).match(this.tokenRe)),C)var A=this.tokenRe;else if(/^\s+$/.test(_.slice(k-1,k+1)))var A=/\s/;else var A=this.nonTokenRe;var F=k;if(F>0){do F--;while(F>=0&&_.charAt(F).match(A));F++}for(var L=k;L<_.length&&_.charAt(L).match(A);)L++;return new i(p,F,p,L)},this.getAWordRange=function(p,k){for(var _=this.getWordRange(p,k),C=this.getLine(_.end.row);C.charAt(_.end.column).match(/[ \t]/);)_.end.column+=1;return _},this.setNewLineMode=function(p){this.doc.setNewLineMode(p)},this.getNewLineMode=function(){return this.doc.getNewLineMode()},this.setUseWorker=function(p){this.setOption("useWorker",p)},this.getUseWorker=function(){return this.$useWorker},this.onReloadTokenizer=function(p){var k=p.data;this.bgTokenizer.start(k.first),this._signal("tokenizerUpdate",p)},this.$modes={},this.$mode=null,this.$modeId=null,this.setMode=function(p,k){if(p&&typeof p=="object"){if(p.getTokenizer)return this.$onChangeMode(p);var _=p,C=_.path}else C=p||"ace/mode/text";if(this.$modes["ace/mode/text"]||(this.$modes["ace/mode/text"]=new e),this.$modes[C]&&!_){this.$onChangeMode(this.$modes[C]),k&&k();return}this.$modeId=C,s.loadModule(["mode",C],function(A){if(this.$modeId!==C)return k&&k();this.$modes[C]&&!_?this.$onChangeMode(this.$modes[C]):A&&A.Mode&&(A=new A.Mode(_),_||(this.$modes[C]=A,A.$id=C),this.$onChangeMode(A)),k&&k()}.bind(this)),this.$mode||this.$onChangeMode(this.$modes["ace/mode/text"],!0)},this.$onChangeMode=function(p,k){if(k||(this.$modeId=p.$id),this.$mode!==p){this.$mode=p,this.$stopWorker(),this.$useWorker&&this.$startWorker();var _=p.getTokenizer();if(_.addEventListener!==void 0){var C=this.onReloadTokenizer.bind(this);_.addEventListener("update",C)}if(this.bgTokenizer)this.bgTokenizer.setTokenizer(_);else{this.bgTokenizer=new r(_);var A=this;this.bgTokenizer.addEventListener("update",function(F){A._signal("tokenizerUpdate",F)})}this.bgTokenizer.setDocument(this.getDocument()),this.tokenRe=p.tokenRe,this.nonTokenRe=p.nonTokenRe,k||(p.attachToSession&&p.attachToSession(this),this.$options.wrapMethod.set.call(this,this.$wrapMethod),this.$setFolding(p.foldingRules),this.bgTokenizer.start(0),this._emit("changeMode"))}},this.$stopWorker=function(){this.$worker&&(this.$worker.terminate(),this.$worker=null)},this.$startWorker=function(){try{this.$worker=this.$mode.createWorker(this)}catch(p){s.warn("Could not load worker",p),this.$worker=null}},this.getMode=function(){return this.$mode},this.$scrollTop=0,this.setScrollTop=function(p){this.$scrollTop===p||isNaN(p)||(this.$scrollTop=p,this._signal("changeScrollTop",p))},this.getScrollTop=function(){return this.$scrollTop},this.$scrollLeft=0,this.setScrollLeft=function(p){this.$scrollLeft===p||isNaN(p)||(this.$scrollLeft=p,this._signal("changeScrollLeft",p))},this.getScrollLeft=function(){return this.$scrollLeft},this.getScreenWidth=function(){return this.$computeWidth(),this.lineWidgets?Math.max(this.getLineWidgetMaxWidth(),this.screenWidth):this.screenWidth},this.getLineWidgetMaxWidth=function(){if(this.lineWidgetsWidth!=null)return this.lineWidgetsWidth;var p=0;return this.lineWidgets.forEach(function(k){k&&k.screenWidth>p&&(p=k.screenWidth)}),this.lineWidgetWidth=p},this.$computeWidth=function(p){if(this.$modified||p){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var k=this.doc.getAllLines(),_=this.$rowLengthCache,C=0,A=0,F=this.$foldData[A],L=F?F.start.row:1/0,O=k.length,I=0;I<O;I++){if(I>L){if(I=F.end.row+1,I>=O)break;F=this.$foldData[A++],L=F?F.start.row:1/0}_[I]==null&&(_[I]=this.$getStringScreenWidth(k[I])[0]),_[I]>C&&(C=_[I])}this.screenWidth=C}},this.getLine=function(p){return this.doc.getLine(p)},this.getLines=function(p,k){return this.doc.getLines(p,k)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(p){return this.doc.getTextRange(p||this.selection.getRange())},this.insert=function(p,k){return this.doc.insert(p,k)},this.remove=function(p){return this.doc.remove(p)},this.remov
^`).split(`
`),t=[],r=0;r<i.length;r++)try{t.push(new RegExp(i[r],e))}catch{return!1}return t},this.$matchIterator=function(n,e){var i=this.$assembleRegExp(e);if(!i)return!1;var t=e.backwards==!0,r=e.skipCurrent!=!1,o=e.range,u=e.start;u||(u=o?o[t?"end":"start"]:n.selection.getRange()),u.start&&(u=u[r!=t?"end":"start"]);var h=o?o.start.row:0,d=o?o.end.row:n.getLength()-1;if(t)var v=function(l){var m=u.row;if(!g(m,u.column,l)){for(m--;m>=h;m--)if(g(m,Number.MAX_VALUE,l))return;if(e.wrap!=!1){for(m=d,h=u.row;m>=h;m--)if(g(m,Number.MAX_VALUE,l))return}}};else var v=function(m){var y=u.row;if(!g(y,u.column,m)){for(y=y+1;y<=d;y++)if(g(y,0,m))return;if(e.wrap!=!1){for(y=h,d=u.row;y<=d;y++)if(g(y,0,m))return}}};if(e.$isMultiLine)var c=i.length,g=function(l,m,y){var x=t?l-c+1:l;if(!(x<0)){var p=n.getLine(x),k=p.search(i[0]);if(!(!t&&k<m||k===-1)){for(var _=1;_<c;_++)if(p=n.getLine(x+_),p.search(i[_])==-1)return;var C=p.match(i[c-1])[0].length;if(!(t&&C>m)&&y(x,k,x+c-1,C))return!0}}};else if(t)var g=function(m,y,x){var p=n.getLine(m),k=[],_,C=0;for(i.lastIndex=0;_=i.exec(p);){var A=_[0].length;if(C=_.index,!A){if(C>=p.length)break;i.lastIndex=C+=1}if(_.index+A>y)break;k.push(_.index,A)}for(var F=k.length-1;F>=0;F-=2){var L=k[F-1],A=k[F];if(x(m,L,m,L+A))return!0}};else var g=function(m,y,x){var p=n.getLine(m),k,_=y;for(i.lastIndex=y;k=i.exec(p);){var C=k[0].length;if(_=k.index,x(m,_,m,_+C))return!0;if(!C&&(i.lastIndex=_+=1,_>=p.length))return!1}};return{forEach:v}}}).call(s.prototype);function a(n,e){function i(t){return/\w/.test(t)||e.regExp?"\\b":""}return i(n[0])+n+i(n[n.length-1])}E.Search=s});ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(w,E,B){var T=w("../lib/keys"),b=w("../lib/useragent"),f=T.KEY_MODS;function s(n,e){this.platform=e||(b.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(n),this.$singleCommand=!0}function a(n,e){s.call(this,n,e),this.$singleCommand=!1}a.prototype=s.prototype,function(){this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,i){var t=e&&(typeof e=="string"?e:e.name);e=this.commands[t],i||delete this.commands[t];var r=this.commandKeyBinding;for(var o in r){var u=r[o];if(u==e)delete r[o];else if(Array.isArray(u)){var h=u.indexOf(e);h!=-1&&(u.splice(h,1),u.length==1&&(r[o]=u[0]))}}},this.bindKey=function(e,i,t){if(typeof e=="object"&&e&&(t==null&&(t=e.position),e=e[this.platform]),!!e){if(typeof i=="function")return this.addCommand({exec:i,bindKey:e,name:i.name||e});e.split("|").forEach(function(r){var o="";if(r.indexOf(" ")!=-1){var u=r.split(/\s+/);r=u.pop(),u.forEach(function(v){var c=this.parseKeys(v),g=f[c.hashId]+c.key;o+=(o?" ":"")+g,this._addCommandToBinding(o,"chainKeys")},this),o+=" "}var h=this.parseKeys(r),d=f[h.hashId]+h.key;this._addCommandToBinding(o+d,i,t)},this)}};function n(e){return typeof e=="object"&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}this._addCommandToBinding=function(e,i,t){var r=this.commandKeyBinding,o;if(!i)delete r[e];else if(!r[e]||this.$singleCommand)r[e]=i;else{Array.isArray(r[e])?(o=r[e].indexOf(i))!=-1&&r[e].splice(o,1):r[e]=[r[e]],typeof t!="number"&&(t=n(i));var u=r[e];for(o=0;o<u.length;o++){var h=u[o],d=n(h);if(d>t)break}u.splice(o,0,i)}},this.addCommands=function(e){e&&Object.keys(e).forEach(function(i){var t=e[i];if(!!t){if(typeof t=="string")return this.bindKey(t,i);typeof t=="function"&&(t={exec:t}),typeof t=="object"&&(t.name||(t.name=i),this.addCommand(t))}},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(i){this.removeCommand(e[i])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(i){this.bindKey(i,e[i])},this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var i=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(d){return d}),t=i.pop(),r=T[t];if(T.FUNCTION_KEYS[r])t=T.FUNCTION_KEYS[r].toLowerCase();else if(i.length){if(i.length==1&&i[0]=="shift")return{key:t.toUpperC
`)==-1){var _=new o.fromPoints(p,p);_.end.column+=l.length,this.session.remove(_)}}else{var _=this.getSelectionRange();p=this.session.remove(_),this.clearSelection()}if(l==`
`||l==`\r
`){var L=y.getLine(p.row);if(p.column>L.search(/\S|$/)){var C=L.substr(p.column).search(/\S|$/);y.doc.removeInLine(p.row,p.column,p.column+C)}}this.clearSelection();var A=p.column,F=y.getState(p.row),L=y.getLine(p.row),O=x.checkOutdent(F,L,l);if(y.insert(p,l),k&&k.selection&&(k.selection.length==2?this.selection.setSelectionRange(new o(p.row,A+k.selection[0],p.row,A+k.selection[1])):this.selection.setSelectionRange(new o(p.row+k.selection[0],k.selection[1],p.row+k.selection[2],k.selection[3]))),y.getDocument().isNewLine(l)){var I=x.getNextLineIndent(F,L.slice(0,p.column),y.getTabString());y.insert({row:p.row+1,column:0},I)}O&&x.autoOutdent(F,y,p.row)},this.onTextInput=function(l){this.keyBinding.onTextInput(l)},this.onCommandKey=function(l,m,y){this.keyBinding.onCommandKey(l,m,y)},this.setOverwrite=function(l){this.session.setOverwrite(l)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(l){this.setOption("scrollSpeed",l)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(l){this.setOption("dragDelay",l)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(l){this.setOption("selectionStyle",l)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(l){this.setOption("highlightActiveLine",l)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(l){this.setOption("highlightGutterLine",l)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(l){this.setOption("highlightSelectedWord",l)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(l){this.renderer.setAnimatedScroll(l)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(l){this.renderer.setShowInvisibles(l)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(l){this.renderer.setDisplayIndentGuides(l)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(l){this.renderer.setShowPrintMargin(l)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(l){this.renderer.setPrintMarginColumn(l)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(l){this.setOption("readOnly",l)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(l){this.setOption("behavioursEnabled",l)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(l){this.setOption("wrapBehavioursEnabled",l)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(l){this.setOption("showFoldWidgets",l)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(l){this.setOption("fadeFoldWidgets",l)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(l){this.selection.isEmpty()&&(l=="left"?this.selection.selectLeft():this.selection.selectRight());var m=this.getSelectionRange();if(this.getBehavioursEnabled()){var y=this.session,x=y.getState(m.start.row),p=y.getMode().transformAction(x,"deletion",this,y,m);if(m.end.column===0){var k=y.getTextRange(m);if(k[k.length-1]==`
`){var _=y.getLine(m.end.row);/^\s+$/.test(_)&&(m.end.column=_.length)}}p&&(m=p)}this.session.remove(m),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var l=this.getSelectionRange();l.start.column==l.end.column&&l.start.row==l.end.row&&(l.end.column=0,l.end.row++),this.session.remove(l),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var l=this.getCursorPosition();this.insert(`
`),this.moveCursorToPosition(l)},this.transposeLetters=function(){if(!!this.selection.isEmpty()){var l=this.getCursorPosition(),m=l.column;if(m!==0){var y=this.session.getLine(l.row),x,p;m<y.length?(x=y.charAt(m)+y.charAt(m-1),p=new o(l.row,m-1,l.row,m+1)):(x=y.charAt(m-1)+y.charAt(m-2),p=new o(l.row,m-2,l.row,m)),this.session.replace(p,x),this.session.selection.moveToPosition(p.end)}}},this.toLowerCase=function(){var l=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var m=this.getSelectionRange(),y=this.session.getTextRange(m);this.session.replace(m,y.toLowerCase()),this.selection.setSelectionRange(l)},this.toUpperCase=function(){var l=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var m=this.getSelectionRange(),y=this.session.getTextRange(m);this.session.replace(m,y.toUpperCase()),this.selection.setSelectionRange(l)},this.indent=function(){var l=this.session,m=this.getSelectionRange();if(m.start.row<m.end.row){var y=this.$getSelectedRows();l.indentRows(y.first,y.last," ");return}else if(m.start.column<m.end.column){var x=l.getTextRange(m);if(!/^\s+$/.test(x)){var y=this.$getSelectedRows();l.indentRows(y.first,y.last," ");return}}var p=l.getLine(m.start.row),k=m.start,_=l.getTabSize(),C=l.documentToScreenColumn(k.row,k.column);if(this.session.getUseSoftTabs())var A=_-C%_,F=f.stringRepeat(" ",A);else{for(var A=C%_;p[m.start.column-1]==" "&&A;)m.start.column--,A--;this.selection.setSelectionRange(m),F=" "}return this.insert(F)},this.blockIndent=function(){var l=this.$getSelectedRows();this.session.indentRows(l.first,l.last," ")},this.blockOutdent=function(){var l=this.session.getSelection();this.session.outdentRows(l.getRange())},this.sortLines=function(){for(var l=this.$getSelectedRows(),m=this.session,y=[],x=l.first;x<=l.last;x++)y.push(m.getLine(x));y.sort(function(_,C){return _.toLowerCase()<C.toLowerCase()?-1:_.toLowerCase()>C.toLowerCase()?1:0});for(var p=new o(0,0,0,0),x=l.first;x<=l.last;x++){var k=m.getLine(x);p.start.row=x,p.end.row=x,p.end.column=k.length,m.replace(p,y[x-l.first])}},this.toggleCommentLines=function(){var l=this.session.getState(this.getCursorPosition().row),m=this.$getSelectedRows();this.session.getMode().toggleCommentLines(l,this.session,m.first,m.last)},this.toggleBlockComment=function(){var l=this.getCursorPosition(),m=this.session.getState(l.row),y=this.getSelectionRange();this.session.getMode().toggleBlockComment(m,this.session,y,l)},this.getNumberAt=function(l,m){var y=/[\-]?[0-9]+(?:\.[0-9]+)?/g;y.lastIndex=0;for(var x=this.session.getLine(l);y.lastIndex<m;){var p=y.exec(x);if(p.index<=m&&p.index+p[0].length>=m){var k={value:p[0],start:p.index,end:p.index+p[0].length};return k}}return null},this.modifyNumber=function(l){var m=this.selection.getCursor().row,y=this.selection.getCursor().column,x=new o(m,y-1,m,y),p=this.session.getTextRange(x);if(!isNaN(parseFloat(p))&&isFinite(p)){var k=this.getNumberAt(m,y);if(k){var _=k.value.indexOf(".")>=0?k.start+k.value.indexOf(".")+1:k.end,C=k.start+k.value.length-_,A=parseFloat(k.value);A*=Math.pow(10,C),_!==k.end&&y<_?l*=Math.pow(10,k.end-y-1):l*=Math.pow(10,k.end-y),A+=l,A/=Math.pow(10,C);var F=A.toFixed(C),L=new o(m,k.start,m,k.end);this.session.replace(L,F),this.moveCursorTo(m,Math.max(k.start+1,y+F.length-k.value.length))}}},this.removeLines=function(){var l=this.$getSelectedRows();this.session.removeFullLines(l.first,l.last),this.clearSelection()},this.duplicateSelection=function(){var l=this.selection,m=this.session,y=l.getRange(),x=l.isBackwards();if(y.isEmpty()){var p=y.start.row;m.duplicateLines(p,p)}else{var k=x?y.start:y.end,_=m.insert(k,m.getTextRange(y),!1);y.start=k,y.end=_,l.setSelectionRange(y,x)}},this.moveLinesDown=function(){this.$moveLines(1,!1)},this.moveLinesUp=function(){this.$moveLines(-1,!1)},this.moveText=function(l,m,y){return this.session.moveText(l,m,y)},this.copyLinesUp=function(){this.$moveLines(-1,!0)},this.copyLinesDown=function(){this.$moveLines(1,!0)},this.$moveLines=function(l,m){var y,x,p=this.selection;if(!p.inMultiSelectMode||this.inVirtualSelect
`?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=n)return this.EOL_CHAR=n,!0},this.setPadding=function(n){this.$padding=n,this.element.style.padding="0 "+n+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(n){this.$fontMetrics=n,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(n){this.session=n,n&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(n){return this.showInvisibles==n?!1:(this.showInvisibles=n,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(n){return this.displayIndentGuides==n?!1:(this.displayIndentGuides=n,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var n=this.session.getTabSize();this.tabSize=n;for(var e=this.$tabStrings=[0],i=1;i<n+1;i++)this.showInvisibles?e.push("<span class='ace_invisible ace_invisible_tab'>"+f.stringRepeat(this.TAB_CHAR,i)+"</span>"):e.push(f.stringRepeat(" ",i));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var t="ace_indent-guide",r="",o="";if(this.showInvisibles){t+=" ace_invisible",r=" ace_invisible_space",o=" ace_invisible_tab";var u=f.stringRepeat(this.SPACE_CHAR,this.tabSize),h=f.stringRepeat(this.TAB_CHAR,this.tabSize)}else var u=f.stringRepeat(" ",this.tabSize),h=u;this.$tabStrings[" "]="<span class='"+t+r+"'>"+u+"</span>",this.$tabStrings[" "]="<span class='"+t+o+"'>"+h+"</span>"}},this.updateLines=function(n,e,i){(this.config.lastRow!=n.lastRow||this.config.firstRow!=n.firstRow)&&this.scrollLines(n),this.config=n;for(var t=Math.max(e,n.firstRow),r=Math.min(i,n.lastRow),o=this.element.childNodes,u=0,h=n.firstRow;h<t;h++){var d=this.session.getFoldLine(h);if(d)if(d.containsRow(t)){t=d.start.row;break}else h=d.end.row;u++}for(var h=t,d=this.session.getNextFoldLine(h),v=d?d.start.row:1/0;h>v&&(h=d.end.row+1,d=this.session.getNextFoldLine(h,d),v=d?d.start.row:1/0),!(h>r);){var c=o[u++];if(c){var g=[];this.$renderLine(g,h,!this.$useLineGroups(),h==v?d:!1),c.style.height=n.lineHeight*this.session.getRowLength(h)+"px",c.innerHTML=g.join("")}h++}},this.scrollLines=function(n){var e=this.config;if(this.config=n,!e||e.lastRow<n.firstRow)return this.update(n);if(n.lastRow<e.firstRow)return this.update(n);var i=this.element;if(e.firstRow<n.firstRow)for(var t=this.session.getFoldedRowCount(e.firstRow,n.firstRow-1);t>0;t--)i.removeChild(i.firstChild);if(e.lastRow>n.lastRow)for(var t=this.session.getFoldedRowCount(n.lastRow+1,e.lastRow);t>0;t--)i.removeChild(i.lastChild);if(n.firstRow<e.firstRow){var r=this.$renderLinesFragment(n,n.firstRow,e.firstRow-1);i.firstChild?i.insertBefore(r,i.firstChild):i.appendChild(r)}if(n.lastRow>e.lastRow){var r=this.$renderLinesFragment(n,e.lastRow+1,n.lastRow);i.appendChild(r)}},this.$renderLinesFragment=function(n,e,i){for(var t=this.element.ownerDocument.createDocumentFragment(),r=e,o=this.session.getNextFoldLine(r),u=o?o.start.row:1/0;r>u&&(r=o.end.row+1,o=this.session.getNextFoldLine(r,o),u=o?o.start.row:1/0),!(r>i);){var h=b.createElement("div"),d=[];if(this.$renderLine(d,r,!1,r==u?o:!1),h.innerHTML=d.join(""),this.$useLineGroups())h.className="ace_line_group",t.appendChild(h),h.style.height=n.lineHeight*this.session.getRowLength(r)+"px";else for(;h.firstChild;)t.appendChild(h.firstChild);r++}return t},this.update=function(n){this.config=n;for(var e=[],i=n.firstRow,t=n.lastRow,r=i,o=this.session.getNextFoldLine(r),u=o?o.start.row:1/0;r>u&&(r=o.end.row+1,o=this.session.getNextFoldLine(r,o),u=o?o.start.row:1/0),!(r>t);)this.$useLineGroups()&&e.push("<div class='ace_line_group' style='height:",n.lineHeight*this.session.getRowLength(r),"px'>"),this.$renderLin
`)+`
`),_||(x.start.column=0,x.end.column=F[F.length-1].length),this.selection.setRange(x)}else{y.forEach(function(j){g.substractPoint(j.cursor)});var L=0,O=1/0,I=l.map(function(j){var W=j.cursor,H=c.getLine(W.row),D=H.substr(W.column).search(/\S/g);return D==-1&&(D=0),W.column>L&&(L=W.column),D<O&&(O=D),D});l.forEach(function(j,W){var H=j.cursor,D=L-H.column,S=I[W]-O;D>S?c.insert(H,n.stringRepeat(" ",D-S)):c.remove(new b(H.row,H.column,H.row,H.column-D+S)),j.start.column=j.end.column=L,j.start.row=j.end.row=H.row,j.cursor=j.end}),g.fromOrientedRange(l[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(c,g){var l=!0,m=!0,y,x,p;return c.map(function(F){var L=F.match(/(\s*)(.*?)(\s*)([=:].*)/);return L?y==null?(y=L[1].length,x=L[2].length,p=L[3].length,L):(y+x+p!=L[1].length+L[2].length+L[3].length&&(m=!1),y!=L[1].length&&(l=!1),y>L[1].length&&(y=L[1].length),x<L[2].length&&(x=L[2].length),p>L[3].length&&(p=L[3].length),L):[F]}).map(g?_:l?m?C:_:A);function k(F){return n.stringRepeat(" ",F)}function _(F){return F[2]?k(y)+F[2]+k(x-F[2].length+p)+F[4].replace(/^([=:])\s+/,"$1 "):F[0]}function C(F){return F[2]?k(y+x-F[2].length)+F[2]+k(p)+F[4].replace(/^([=:])\s+/,"$1 "):F[0]}function A(F){return F[2]?k(y)+F[2]+k(p)+F[4].replace(/^([=:])\s+/,"$1 "):F[0]}}}).call(u.prototype);function h(c,g){return c.row==g.row&&c.column==g.column}E.onSessionChange=function(c){var g=c.session;g&&!g.multiSelect&&(g.$selectionMarkers=[],g.selection.$initRangeList(),g.multiSelect=g.selection),this.multiSelect=g&&g.multiSelect;var l=c.oldSession;l&&(l.multiSelect.off("addRange",this.$onAddRange),l.multiSelect.off("removeRange",this.$onRemoveRange),l.multiSelect.off("multiSelect",this.$onMultiSelect),l.multiSelect.off("singleSelect",this.$onSingleSelect),l.multiSelect.lead.off("change",this.$checkMultiselectChange),l.multiSelect.anchor.off("change",this.$checkMultiselectChange)),g&&(g.multiSelect.on("addRange",this.$onAddRange),g.multiSelect.on("removeRange",this.$onRemoveRange),g.multiSelect.on("multiSelect",this.$onMultiSelect),g.multiSelect.on("singleSelect",this.$onSingleSelect),g.multiSelect.lead.on("change",this.$checkMultiselectChange),g.multiSelect.anchor.on("change",this.$checkMultiselectChange)),g&&this.inMultiSelectMode!=g.selection.inMultiSelectMode&&(g.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())};function d(c){c.$multiselectOnSessionChange||(c.$onAddRange=c.$onAddRange.bind(c),c.$onRemoveRange=c.$onRemoveRange.bind(c),c.$onMultiSelect=c.$onMultiSelect.bind(c),c.$onSingleSelect=c.$onSingleSelect.bind(c),c.$multiselectOnSessionChange=E.onSessionChange.bind(c),c.$checkMultiselectChange=c.$checkMultiselectChange.bind(c),c.$multiselectOnSessionChange(c),c.on("changeSession",c.$multiselectOnSessionChange),c.on("mousedown",s),c.commands.addCommands(e.defaultCommands),v(c))}function v(c){var g=c.textInput.getElement(),l=!1;a.addListener(g,"keydown",function(y){var x=y.keyCode==18&&!(y.ctrlKey||y.shiftKey||y.metaKey);c.$blockSelectEnabled&&x?l||(c.renderer.setMouseCursor("crosshair"),l=!0):l&&m()}),a.addListener(g,"keyup",m),a.addListener(g,"blur",m);function m(y){l&&(c.renderer.setMouseCursor(""),l=!1)}}E.MultiSelect=d,w("./config").defineOptions(u.prototype,"editor",{enableMultiselect:{set:function(c){d(this),c?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",s)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",s))},value:!0},enableBlockSelect:{set:function(c){this.$blockSelectEnabled=c},value:!0}})});ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(w,E,B){var T=w("../../range").Range,b=E.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(f,s,a){var n=f.getLine(a);return this.foldingStartMarker.test(n)?"start":s=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(n)?"end":""},this.getFoldWidgetRange=function(f,s,a){return null},this.indentationBlock=function(f,s,a){var n=/\S/,e=f.getLine
`:"ulULE".indexOf(m)!=-1&&(c={changeCase:m,local:m>"a"})),[c]}},{regex:/}/,onMatch:function(c,g,l){return[l.length?l.shift():c]}},{regex:/\$(?:\d+|\w+)/,onMatch:d},{regex:/\$\{[\dA-Z_a-z]+/,onMatch:function(c,g,l){var m=d(c.substr(1),g,l);return l.unshift(m[0]),m},next:"snippetVar"},{regex:/\n/,token:"newline",merge:!1}],snippetVar:[{regex:"\\|"+v("\\|")+"*\\|",onMatch:function(c,g,l){l[0].choices=c.slice(1,-1).split(",")},next:"start"},{regex:"/("+v("/")+"+)/(?:("+v("/")+"*)/)(\\w*):?",onMatch:function(c,g,l){var m=l[0];return m.fmtString=c,c=this.splitRegex.exec(c),m.guard=c[1],m.fmt=c[2],m.flag=c[3],""},next:"start"},{regex:"`"+v("`")+"*`",onMatch:function(c,g,l){return l[0].code=c.splice(1,-1),""},next:"start"},{regex:"\\?",onMatch:function(c,g,l){l[0]&&(l[0].expectIf=!0)},next:"start"},{regex:"([^:}\\\\]|\\\\.)*:?",token:"",next:"start"}],formatString:[{regex:"/("+v("/")+"+)/",token:"regex"},{regex:"",onMatch:function(c,g,l){l.inFormatString=!0},next:"start"}]}),t.prototype.getTokenizer=function(){return t.$tokenizer},t.$tokenizer},this.tokenizeTmSnippet=function(d,v){return this.getTokenizer().getLineTokens(d,v).tokens.map(function(c){return c.value||c})},this.$getDefaultValue=function(d,v){if(/^[A-Z]\d+$/.test(v)){var c=v.substr(1);return(this.variables[v[0]+"__"]||{})[c]}if(/^\d+$/.test(v))return(this.variables.__||{})[v];if(v=v.replace(/^TM_/,""),!!d){var g=d.session;switch(v){case"CURRENT_WORD":var l=g.getWordRange();case"SELECTION":case"SELECTED_TEXT":return g.getTextRange(l);case"CURRENT_LINE":return g.getLine(d.getCursorPosition().row);case"PREV_LINE":return g.getLine(d.getCursorPosition().row-1);case"LINE_INDEX":return d.getCursorPosition().column;case"LINE_NUMBER":return d.getCursorPosition().row+1;case"SOFT_TABS":return g.getUseSoftTabs()?"YES":"NO";case"TAB_SIZE":return g.getTabSize();case"FILENAME":case"FILEPATH":return"";case"FULLNAME":return"Ace"}}},this.variables={},this.getVariableValue=function(d,v){return this.variables.hasOwnProperty(v)?this.variables[v](d,v)||"":this.$getDefaultValue(d,v)||""},this.tmStrFormat=function(d,v,c){var g=v.flag||"",l=v.guard;l=new RegExp(l,g.replace(/[^gi]/,""));var m=this.tokenizeTmSnippet(v.fmt,"formatString"),y=this,x=d.replace(l,function(){y.variables.__=arguments;for(var p=y.resolveVariables(m,c),k="E",_=0;_<p.length;_++){var C=p[_];if(typeof C=="object")if(p[_]="",C.changeCase&&C.local){var A=p[_+1];A&&typeof A=="string"&&(C.changeCase=="u"?p[_]=A[0].toUpperCase():p[_]=A[0].toLowerCase(),p[_+1]=A.substr(1))}else C.changeCase&&(k=C.changeCase);else k=="U"?p[_]=C.toUpperCase():k=="L"&&(p[_]=C.toLowerCase())}return p.join("")});return this.variables.__=null,x},this.resolveVariables=function(d,v){for(var c=[],g=0;g<d.length;g++){var l=d[g];if(typeof l=="string")c.push(l);else{if(typeof l!="object")continue;if(l.skip)y(l);else{if(l.processed<g)continue;if(l.text){var m=this.getVariableValue(v,l.text);m&&l.fmtString&&(m=this.tmStrFormat(m,l)),l.processed=g,l.expectIf==null?m&&(c.push(m),y(l)):m?l.skip=l.elseBranch:y(l)}else(l.tabstopId!=null||l.changeCase!=null)&&c.push(l)}}}function y(x){var p=d.indexOf(x,g+1);p!=-1&&(g=p)}return c},this.insertSnippetForSelection=function(d,v){var c=d.getCursorPosition(),g=d.session.getLine(c.row),l=d.session.getTabString(),m=g.match(/^\s*/)[0];c.column<m.length&&(m=m.slice(0,c.column)),v=v.replace(/\r/g,"");var y=this.tokenizeTmSnippet(v);y=this.resolveVariables(y,d),y=y.map(function($){return $==`
`?$+m:typeof $=="string"?$.replace(/\t/g,l):$});var x=[];y.forEach(function($,N){if(typeof $=="object"){var P=$.tabstopId,z=x[P];if(z||(z=x[P]=[],z.index=P,z.value=""),z.indexOf($)===-1){z.push($);var M=y.indexOf($,N+1);if(M!==-1){var V=y.slice(N+1,M),G=V.some(function(X){return typeof X=="object"});G&&!z.value?z.value=V:V.length&&(!z.value||typeof z.value!="string")&&(z.value=V.join(""))}}}}),x.forEach(function($){$.length=0});var p={};function k($){for(var N=[],P=0;P<$.length;P++){var z=$[P];if(typeof z=="object"){if(p[z.tabstopId])continue;var M=$.lastIndexOf(z,P-1);z=N[M]||{tabstopId:z.tabstopId}}N[P]=z}return N}for(var _=0;_<y.length;_++){var C=y[_];if(typeof C=="object"){var A=C.tabstopId,F=y.indexOf(C,_+1);if(p[A]){p[A]===C&&(p[A]=null);continue}var L=x[A],O=typeof L.value=="string"?[L.value]:k(L.value);O.unshift(_+1,Math.max(0,F-_)),O.push(C),p[A]=C,y.splice.apply(y,O),L.indexOf(C)===-1&&L.push(C)}}var I=0,j=0,W="";y.forEach(function($){if(typeof $=="string"){var N=$.split(`
`);N.length>1?(j=N[N.length-1].length,I+=N.length-1):j+=$.length,W+=$}else $.start?$.end={row:I,column:j}:$.start={row:I,column:j}});var H=d.getSelectionRange(),D=d.session.replace(H,W),S=new r(d),R=d.inVirtualSelectionMode&&d.selection.index;S.addTabstops(x,H.start,D,R)},this.insertSnippet=function(d,v){var c=this;if(d.inVirtualSelectionMode)return c.insertSnippetForSelection(d,v);d.forEachSelection(function(){c.insertSnippetForSelection(d,v)},null,{keepOrder:!0}),d.tabstopManager&&d.tabstopManager.tabNext()},this.$getScope=function(d){var v=d.session.$mode.$id||"";if(v=v.split("/").pop(),v==="html"||v==="php"){v==="php"&&!d.session.$mode.inlinePhp&&(v="html");var c=d.getCursorPosition(),g=d.session.getState(c.row);typeof g=="object"&&(g=g[0]),g.substring&&(g.substring(0,3)=="js-"?v="javascript":g.substring(0,4)=="css-"?v="css":g.substring(0,4)=="php-"&&(v="php"))}return v},this.getActiveScopes=function(d){var v=this.$getScope(d),c=[v],g=this.snippetMap;return g[v]&&g[v].includeScopes&&c.push.apply(c,g[v].includeScopes),c.push("_"),c},this.expandWithTab=function(d,v){var c=this,g=d.forEachSelection(function(){return c.expandSnippetForSelection(d,v)},null,{keepOrder:!0});return g&&d.tabstopManager&&d.tabstopManager.tabNext(),g},this.expandSnippetForSelection=function(d,v){var c=d.getCursorPosition(),g=d.session.getLine(c.row),l=g.substring(0,c.column),m=g.substr(c.column),y=this.snippetMap,x;return this.getActiveScopes(d).some(function(p){var k=y[p];return k&&(x=this.findMatchingSnippet(k,l,m)),!!x},this),x?(v&&v.dryRun||(d.session.doc.removeInLine(c.row,c.column-x.replaceBefore.length,c.column+x.replaceAfter.length),this.variables.M__=x.matchBefore,this.variables.T__=x.matchAfter,this.insertSnippetForSelection(d,x.content),this.variables.M__=this.variables.T__=null),!0):!1},this.findMatchingSnippet=function(d,v,c){for(var g=d.length;g--;){var l=d[g];if(!(l.startRe&&!l.startRe.test(v))&&!(l.endRe&&!l.endRe.test(c))&&!(!l.startRe&&!l.endRe))return l.matchBefore=l.startRe?l.startRe.exec(v):[""],l.matchAfter=l.endRe?l.endRe.exec(c):[""],l.replaceBefore=l.triggerRe?l.triggerRe.exec(v)[0]:"",l.replaceAfter=l.endTriggerRe?l.endTriggerRe.exec(c)[0]:"",l}},this.snippetMap={},this.snippetNameMap={},this.register=function(d,v){var c=this.snippetMap,g=this.snippetNameMap,l=this;d||(d=[]);function m(p){return p&&!/^\^?\(.*\)\$?$|^\\b$/.test(p)&&(p="(?:"+p+")"),p||""}function y(p,k,_){return p=m(p),k=m(k),_?(p=k+p,p&&p[p.length-1]!="$"&&(p=p+"$")):(p=p+k,p&&p[0]!="^"&&(p="^"+p)),new RegExp(p)}function x(p){p.scope||(p.scope=v||"_"),v=p.scope,c[v]||(c[v]=[],g[v]={});var k=g[v];if(p.name){var _=k[p.name];_&&l.unregister(_),k[p.name]=p}c[v].push(p),p.tabTrigger&&!p.trigger&&(!p.guard&&/^\w/.test(p.tabTrigger)&&(p.guard="\\b"),p.trigger=f.escapeRegExp(p.tabTrigger)),!(!p.trigger&&!p.guard&&!p.endTrigger&&!p.endGuard)&&(p.startRe=y(p.trigger,p.guard,!0),p.triggerRe=new RegExp(p.trigger,"",!0),p.endRe=y(p.endTrigger,p.endGuard,!0),p.endTriggerRe=new RegExp(p.endTrigger,"",!0))}d&&d.content?x(d):Array.isArray(d)&&d.forEach(x),this._signal("registerSnippets",{scope:v})},this.unregister=function(d,v){var c=this.snippetMap,g=this.snippetNameMap;function l(m){var y=g[m.scope||v];if(y&&y[m.name]){delete y[m.name];var x=c[m.scope||v],p=x&&x.indexOf(m);p>=0&&x.splice(p,1)}}d.content?l(d):Array.isArray(d)&&d.forEach(l)},this.parseSnippetFile=function(d){d=d.replace(/\r/g,"");for(var v=[],c={},g=/^#.*|^({[\s\S]*})\s*$|^(\S+) (.*)$|^((?:\n*\t.*)+)/gm,l;l=g.exec(d);){if(l[1])try{c=JSON.parse(l[1]),v.push(c)}catch{}if(l[4])c.content=l[4].replace(/^\t/gm,""),v.push(c),c={};else{var m=l[2],y=l[3];if(m=="regex"){var x=/\/((?:[^\/\\]|\\.)*)|$/g;c.guard=x.exec(y)[1],c.trigger=x.exec(y)[1],c.endTrigger=x.exec(y)[1],c.endGuard=x.exec(y)[1]}else m=="snippet"?(c.tabTrigger=y.match(/^\S*/)[0],c.name||(c.name=y)):c[m]=y}}return v},this.getSnippetByName=function(d,v){var c=this.snippetNameMap,g;return this.getActiveScopes(v).some(function(l){var m=c[l];return m&&(g=m[d]),!!g},this),g}}).call(t.prototype);var r=function(d){if(d.tabstopManager)return d.tabstopManag
`,m.length),-1),o.data=m||[],o.setRow(0)},o.getData=function(m){return o.data[m]},o.getRow=function(){return v.start.row},o.setRow=function(m){m=Math.max(this.autoSelect?0:-1,Math.min(this.data.length,m)),v.start.row!=m&&(o.selection.clearSelection(),v.start.row=v.end.row=m||0,o.session._emit("changeBackMarker"),o.moveCursorTo(m||0,0),o.isOpen&&o._signal("select"))},o.on("changeSelection",function(){o.isOpen&&o.setRow(o.selection.lead.row),o.renderer.scrollCursorIntoView()}),o.hide=function(){this.container.style.display="none",this._signal("hide"),o.isOpen=!1},o.show=function(m,y,x){var p=this.container,k=window.innerHeight,_=window.innerWidth,C=this.renderer,A=C.$maxLines*y*1.4,F=m.top+this.$borderSize,L=F>k/2&&!x;L&&F+y+A>k?(C.$maxPixelHeight=F-2*this.$borderSize,p.style.top="",p.style.bottom=k-F+"px",o.isTopdown=!1):(F+=y,C.$maxPixelHeight=k-F-.2*y,p.style.top=F+"px",p.style.bottom="",o.isTopdown=!0),p.style.display="",this.renderer.$textLayer.checkForSizeChanges();var O=m.left;O+p.offsetWidth>_&&(O=_-p.offsetWidth),p.style.left=O+"px",this._signal("show"),h=null,o.isOpen=!0},o.getTextLeftOffset=function(){return this.$borderSize+this.renderer.$padding+this.$imageSize},o.$imageSize=0,o.$borderSize=1,o};n.importCssString(".ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line { background-color: #CAD6FA; z-index: 1;}.ace_editor.ace_autocomplete .ace_line-hover { border: 1px solid #abbffe; margin-top: -1px; background: rgba(233,233,253,0.4);}.ace_editor.ace_autocomplete .ace_line-hover { position: absolute; z-index: 2;}.ace_editor.ace_autocomplete .ace_scroller { background: none; border: none; box-shadow: none;}.ace_rightAlignedText { color: gray; display: inline-block; position: absolute; right: 4px; text-align: right; z-index: -1;}.ace_editor.ace_autocomplete .ace_completion-highlight{ color: #000; text-shadow: 0 0 0.01em;}.ace_editor.ace_autocomplete { width: 280px; z-index: 200000; background: #fbfbfb; color: #444; border: 1px lightgray solid; position: fixed; box-shadow: 2px 3px 5px rgba(0,0,0,.2); line-height: 1.4;}"),E.AcePopup=i});ace.define("ace/autocomplete/util",["require","exports","module"],function(w,E,B){E.parForEach=function(b,f,s){var a=0,n=b.length;n===0&&s();for(var e=0;e<n;e++)f(b[e],function(i,t){a++,a===n&&s(i,t)})};var T=/[a-zA-Z_0-9\$\-\u00A2-\uFFFF]/;E.retrievePrecedingIdentifier=function(b,f,s){s=s||T;for(var a=[],n=f-1;n>=0&&s.test(b[n]);n--)a.push(b[n]);return a.reverse().join("")},E.retrieveFollowingIdentifier=function(b,f,s){s=s||T;for(var a=[],n=f;n<b.length&&s.test(b[n]);n++)a.push(b[n]);return a},E.getCompletionPrefix=function(b){var f=b.getCursorPosition(),s=b.session.getLine(f.row),a;return b.completers.forEach(function(n){n.identifierRegexps&&n.identifierRegexps.forEach(function(e){!a&&e&&(a=this.retrievePrecedingIdentifier(s,f.column,e))}.bind(this))}.bind(this)),a||this.retrievePrecedingIdentifier(s,f.column)}});ace.define("ace/autocomplete",["require","exports","module","ace/keyboard/hash_handler","ace/autocomplete/popup","ace/autocomplete/util","ace/lib/event","ace/lib/lang","ace/lib/dom","ace/snippets"],function(w,E,B){var T=w("./keyboard/hash_handler").HashHandler,b=w("./autocomplete/popup").AcePopup,f=w("./autocomplete/util");w("./lib/event");var s=w("./lib/lang"),a=w("./lib/dom"),n=w("./snippets").snippetManager,e=function(){this.autoInsert=!1,this.autoSelect=!0,this.exactMatch=!1,this.gatherCompletionsId=0,this.keyboardHandler=new T,this.keyboardHandler.bindKeys(this.commands),this.blurListener=this.blurListener.bind(this),this.changeListener=this.changeListener.bind(this),this.mousedownListener=this.mousedownListener.bind(this),this.mousewheelListener=this.mousewheelListener.bind(this),this.changeTimer=s.delayedCall(function(){this.updateCompletions(!0)}.bind(this)),this.tooltipTimer=s.delayedCall(this.updateDocTooltip.bind(this),50)};(function(){this.$init=function(){return this.popup=new b(document.body||document.documentElement),this.popup.on("click",function(t){this.insertMatch(),t.sto
}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError("reduce of empty array with no initial value")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Fu
break;case S_E:errorHandler.warning('attribute space is acequired"'+attrName+'"!!');case S_S:s=S_ATTR,start=p;break;case S_EQ:s=S_V,start=p;break;case S_C:throw Error("elements closed character '/' and '>' must be connected to")}}p++}}function appendElement(el,domBuilder,parseStack){for(var tagName=el.tagName,localNSMap=null,currentNSMap=parseStack[parseStack.length-1].currentNSMap,i=el.length;i--;){var a=el[i],qName=a.qName,value=a.value,nsp=qName.indexOf(":");if(nsp>0)var prefix=a.prefix=qName.slice(0,nsp),localName=qName.slice(nsp+1),nsPrefix="xmlns"===prefix&&localName;else localName=qName,prefix=null,nsPrefix="xmlns"===qName&&"";a.localName=localName,nsPrefix!==!1&&(null==localNSMap&&(localNSMap={},_copy(currentNSMap,currentNSMap={})),currentNSMap[nsPrefix]=localNSMap[nsPrefix]=value,a.uri="http://www.w3.org/2000/xmlns/",domBuilder.startPrefixMapping(nsPrefix,value))}for(var i=el.length;i--;){a=el[i];var prefix=a.prefix;prefix&&("xml"===prefix&&(a.uri="http://www.w3.org/XML/1998/namespace"),"xmlns"!==prefix&&(a.uri=currentNSMap[prefix]))}var nsp=tagName.indexOf(":");nsp>0?(prefix=el.prefix=tagName.slice(0,nsp),localName=el.localName=tagName.slice(nsp+1)):(prefix=null,localName=el.localName=tagName);var ns=el.uri=currentNSMap[prefix||""];if(domBuilder.startElement(ns,localName,tagName,el),el.closed){if(domBuilder.endElement(ns,localName,tagName),localNSMap)for(prefix in localNSMap)domBuilder.endPrefixMapping(prefix)}else el.currentNSMap=currentNSMap,el.localNSMap=localNSMap,parseStack.push(el)}function parseHtmlSpecialContent(source,elStartEnd,tagName,entityReplacer,domBuilder){if(/^(?:script|textarea)$/i.test(tagName)){var elEndStart=source.indexOf("</"+tagName+">",elStartEnd),text=source.substring(elStartEnd+1,elEndStart);if(/[&<]/.test(text))return/^script$/i.test(tagName)?(domBuilder.characters(text,0,text.length),elEndStart):(text=text.replace(/&#?\\w+;/g,entityReplacer),domBuilder.characters(text,0,text.length),elEndStart)}return elStartEnd+1}function fixSelfClosed(source,elStartEnd,tagName,closeMap){var pos=closeMap[tagName];return null==pos&&(pos=closeMap[tagName]=source.lastIndexOf("</"+tagName+">")),elStartEnd>pos}function _copy(source,target){for(var n in source)target[n]=source[n]}function parseDCC(source,start,domBuilder,errorHandler){var next=source.charAt(start+2);switch(next){case"-":if("-"===source.charAt(start+3)){var end=source.indexOf("-->",start+4);return end>start?(domBuilder.comment(source,start+4,end-start-4),end+3):(errorHandler.error("Unclosed comment"),-1)}return-1;default:if("CDATA["==source.substr(start+3,6)){var end=source.indexOf("]]>",start+9);return domBuilder.startCDATA(),domBuilder.characters(source,start+9,end-start-9),domBuilder.endCDATA(),end+3}var matchs=split(source,start),len=matchs.length;if(len>1&&/!doctype/i.test(matchs[0][0])){var name=matchs[1][0],pubid=len>3&&/^public$/i.test(matchs[2][0])&&matchs[3][0],sysid=len>4&&matchs[4][0],lastMatch=matchs[len-1];return domBuilder.startDTD(name,pubid&&pubid.replace(/^(['"])(.*?)\\1$/,"$2"),sysid&&sysid.replace(/^(['"])(.*?)\\1$/,"$2")),domBuilder.endDTD(),lastMatch.index+lastMatch[0].length}}return-1}function parseInstruction(source,start,domBuilder){var end=source.indexOf("?>",start);if(end){var match=source.substring(start,end).match(/^<\\?(\\S*)\\s*([\\s\\S]*?)\\s*$/);return match?(match[0].length,domBuilder.processingInstruction(match[1],match[2]),end+2):-1}return-1}function ElementAttributes(){}function _set_proto_(thiz,parent){return thiz.__proto__=parent,thiz}function split(source,start){var match,buf=[],reg=/'[^']+'|"[^"]+"|[^\\s<>\\/=]+=?|(\\/?\\s*>|<)/g;for(reg.lastIndex=start,reg.exec(source);match=reg.exec(source);)if(buf.push(match),match[1])return buf}var nameStartChar=/[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/,nameChar=RegExp("[\\\\-\\\\.0-9"+nameStartChar.source.slice(1,-1)+"\xB7\u0300-\u036F\\\\ux203F-\u2040]"),tagNamePattern=RegExp("^"+nameStartChar.source+nameChar.source+"*(?::"+nameStart
}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.proto
`){var o=i.getCursorPosition(),u=t.getLine(o.row),h=new f(t,o.row,o.column),d=h.getCurrentToken();if(d&&d.type.indexOf("tag-close")!==-1){if(d.value=="/>")return;for(;d&&d.type.indexOf("tag-name")===-1;)d=h.stepBackward();if(!d)return;var v=d.value,c=h.getCurrentTokenRow();if(d=h.stepBackward(),!d||d.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[v]){var g=t.getTokenAt(o.row,o.column+1),u=t.getLine(c),l=this.$getIndent(u),m=l+t.getTabString();return g&&g.value==="</"?{text:`
`+m+`
`+l,selection:[1,m.length,1,m.length]}:{text:`
`+m}}}}})};T.inherits(a,b),E.XmlBehaviour=a});ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],function(w,E,B){var T=w("../../lib/oop");w("../../lib/lang");var b=w("../../range").Range,f=w("./fold_mode").FoldMode,s=w("../../token_iterator").TokenIterator,a=E.FoldMode=function(i,t){f.call(this),this.voidElements=i||{},this.optionalEndTags=T.mixin({},this.voidElements),t&&T.mixin(this.optionalEndTags,t)};T.inherits(a,f);var n=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};function e(i,t){return i.type.lastIndexOf(t+".xml")>-1}(function(){this.getFoldWidget=function(i,t,r){var o=this._getFirstTagInLine(i,r);return o?o.closing||!o.tagName&&o.selfClosing?t=="markbeginend"?"end":"":!o.tagName||o.selfClosing||this.voidElements.hasOwnProperty(o.tagName.toLowerCase())||this._findEndTagInLine(i,r,o.tagName,o.end.column)?"":"start":this.getCommentFoldWidget(i,r)},this.getCommentFoldWidget=function(i,t){return/comment/.test(i.getState(t))&&/<!-/.test(i.getLine(t))?"start":""},this._getFirstTagInLine=function(i,t){for(var r=i.getTokens(t),o=new n,u=0;u<r.length;u++){var h=r[u];if(e(h,"tag-open")){if(o.end.column=o.start.column+h.value.length,o.closing=e(h,"end-tag-open"),h=r[++u],!h)return null;for(o.tagName=h.value,o.end.column+=h.value.length,u++;u<r.length;u++)if(h=r[u],o.end.column+=h.value.length,e(h,"tag-close")){o.selfClosing=h.value=="/>";break}return o}else if(e(h,"tag-close"))return o.selfClosing=h.value=="/>",o;o.start.column+=h.value.length}return null},this._findEndTagInLine=function(i,t,r,o){for(var u=i.getTokens(t),h=0,d=0;d<u.length;d++){var v=u[d];if(h+=v.value.length,!(h<o)&&e(v,"end-tag-open")&&(v=u[d+1],v&&v.value==r))return!0}return!1},this._readTagForward=function(i){var t=i.getCurrentToken();if(!t)return null;var r=new n;do if(e(t,"tag-open"))r.closing=e(t,"end-tag-open"),r.start.row=i.getCurrentTokenRow(),r.start.column=i.getCurrentTokenColumn();else if(e(t,"tag-name"))r.tagName=t.value;else if(e(t,"tag-close"))return r.selfClosing=t.value=="/>",r.end.row=i.getCurrentTokenRow(),r.end.column=i.getCurrentTokenColumn()+t.value.length,i.stepForward(),r;while(t=i.stepForward());return null},this._readTagBackward=function(i){var t=i.getCurrentToken();if(!t)return null;var r=new n;do{if(e(t,"tag-open"))return r.closing=e(t,"end-tag-open"),r.start.row=i.getCurrentTokenRow(),r.start.column=i.getCurrentTokenColumn(),i.stepBackward(),r;e(t,"tag-name")?r.tagName=t.value:e(t,"tag-close")&&(r.selfClosing=t.value=="/>",r.end.row=i.getCurrentTokenRow(),r.end.column=i.getCurrentTokenColumn()+t.value.length)}while(t=i.stepBackward());return null},this._pop=function(i,t){for(;i.length;){var r=i[i.length-1];if(!t||r.tagName==t.tagName)return i.pop();if(this.optionalEndTags.hasOwnProperty(r.tagName)){i.pop();continue}else return null}},this.getFoldWidgetRange=function(i,t,r){var o=this._getFirstTagInLine(i,r);if(!o)return this.getCommentFoldWidget(i,r)&&i.getCommentFoldRange(r,i.getLine(r).length);var u=o.closing||o.selfClosing,h=[],d;if(u)for(var v=new s(i,r,o.end.column),g={row:r,column:o.start.column};d=this._readTagBackward(v);){if(d.selfClosing){if(h.length)continue;return d.start.column+=d.tagName.length+2,d.end.column-=2,b.fromPoints(d.start,d.end)}if(d.closing)h.push(d);else if(this._pop(h,d),h.length==0)return d.start.column+=d.tagName.length+2,d.start.row==d.end.row&&d.start.column<d.end.column&&(d.start.column=d.end.column),b.fromPoints(d.start,g)}else{var v=new s(i,r,o.start.column),c={row:r,column:o.start.column+o.tagName.length+2};for(o.start.row==o.end.row&&(c.column=o.end.column);d=this._readTagForward(v);){if(d.selfClosing){if(h.length)continue;return d.start.column+=d.tagName.length+2,d.end.column-=2,b.fromPoints(d.start,d.end)}if(d.closing){if(this._pop(h,d),h.length==0)return b.fromPoints(c,d.start)}else h.push(d)}}}}).call(a.prototype)});ace.define("ace/mode/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/tex
}if(listeners=this._events[type],isFunction(listeners))this.removeListener(type,listeners);else for(;listeners.length;)this.removeListener(type,listeners[listeners.length-1]);return delete this._events[type],this},EventEmitter.prototype.listeners=function(type){var ret;return ret=this._events&&this._events[type]?isFunction(this._events[type])?[this._events[type]]:this._events[type].slice():[]},EventEmitter.listenerCount=function(emitter,type){var ret;return ret=emitter._events&&emitter._events[type]?isFunction(emitter._events[type])?1:emitter._events[type].length:0}},{}],"/node_modules/jshint/data/ascii-identifier-data.js":[function(_dereq_,module){for(var identifierStartTable=[],i=0;128>i;i++)identifierStartTable[i]=36===i||i>=65&&90>=i||95===i||i>=97&&122>=i;for(var identifierPartTable=[],i=0;128>i;i++)identifierPartTable[i]=identifierStartTable[i]||i>=48&&57>=i;module.exports={asciiIdentifierStartTable:identifierStartTable,asciiIdentifierPartTable:identifierPartTable}},{}],"/node_modules/jshint/lodash.js":[function(_dereq_,module,exports){(function(global){(function(){function baseFindIndex(array,predicate,fromRight){for(var length=array.length,index=fromRight?length:-1;fromRight?index--:length>++index;)if(predicate(array[index],index,array))return index;return-1}function baseIndexOf(array,value,fromIndex){if(value!==value)return indexOfNaN(array,fromIndex);for(var index=fromIndex-1,length=array.length;length>++index;)if(array[index]===value)return index;return-1}function baseIsFunction(value){return"function"==typeof value||!1}function baseToString(value){return"string"==typeof value?value:null==value?"":value+""}function indexOfNaN(array,fromIndex,fromRight){for(var length=array.length,index=fromIndex+(fromRight?0:-1);fromRight?index--:length>++index;){var other=array[index];if(other!==other)return index}return-1}function isObjectLike(value){return!!value&&"object"==typeof value}function lodash(){}function arrayCopy(source,array){var index=-1,length=source.length;for(array||(array=Array(length));length>++index;)array[index]=source[index];return array}function arrayEach(array,iteratee){for(var index=-1,length=array.length;length>++index&&iteratee(array[index],index,array)!==!1;);return array}function arrayFilter(array,predicate){for(var index=-1,length=array.length,resIndex=-1,result=[];length>++index;){var value=array[index];predicate(value,index,array)&&(result[++resIndex]=value)}return result}function arrayMap(array,iteratee){for(var index=-1,length=array.length,result=Array(length);length>++index;)result[index]=iteratee(array[index],index,array);return result}function arrayMax(array){for(var index=-1,length=array.length,result=NEGATIVE_INFINITY;length>++index;){var value=array[index];value>result&&(result=value)}return result}function arraySome(array,predicate){for(var index=-1,length=array.length;length>++index;)if(predicate(array[index],index,array))return!0;return!1}function assignWith(object,source,customizer){var props=keys(source);push.apply(props,getSymbols(source));for(var index=-1,length=props.length;length>++index;){var key=props[index],value=object[key],result=customizer(value,source[key],key,object,source);(result===result?result===value:value!==value)&&(value!==undefined||key in object)||(object[key]=result)}return object}function baseCopy(source,props,object){object||(object={});for(var index=-1,length=props.length;length>++index;){var key=props[index];object[key]=source[key]}return object}function baseCallback(func,thisArg,argCount){var type=typeof func;return"function"==type?thisArg===undefined?func:bindCallback(func,thisArg,argCount):null==func?identity:"object"==type?baseMatches(func):thisArg===undefined?property(func):baseMatchesProperty(func,thisArg)}function baseClone(value,isDeep,customizer,key,object,stackA,stackB){var result;if(customizer&&(result=object?customizer(value,key,object):customizer(value)),result!==undefined)return result;if(!isObject(value))return value;var isArr=isArray(value);if(isArr){if(result=initCloneArray(value),!isDeep)return arrayCopy(value,result)}else{var tag=objTo
}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],"/node_modules/jshint/src/jshint.js":[function(_dereq_,module,exports){var _=_dereq_("../lodash"),events=_dereq_("events"),vars=_dereq_("./vars.js"),messages=_dereq_("./messages.js"),Lexer=_dereq_("./lex.js").Lexer,reg=_dereq_("./reg.js"),state=_dereq_("./state.js").state,style=_dereq_("./style.js"),options=_dereq_("./options.js"),scopeManager=_dereq_("./scope-manager.js"),JSHINT=function(){"use strict";function checkOption(name,t){return name=name.trim(),/^[+-]W\\d{3}$/g.test(name)?!0:-1!==options.validNames.indexOf(name)||"jslint"===t.type||_.has(options.removed,name)?!0:(error("E001",t,name),!1)}function isString(obj){return"[object String]"===Object.prototype.toString.call(obj)}function isIdentifier(tkn,value){return tkn?tkn.identifier&&tkn.value===value?!0:!1:!1}function isReserved(token){if(!token.reserved)return!1;var meta=token.meta;if(meta&&meta.isFutureReservedWord&&state.inES5()){if(!meta.es5)return!1;if(meta.strictOnly&&!state.option.strict&&!state.isStrict())return!1;if(token.isProperty)return!1}return!0}function supplant(str,data){return str.replace(/\\{([^{}]*)\\}/g,function(a,b){var r=data[b];return"string"==typeof r||"number"==typeof r?r:a})}function combine(dest,src){Object.keys(src).forEach(function(name){_.has(JSHINT.blacklist,name)||(dest[name]=src[name])})}function processenforceall(){if(state.option.enforceall){for(var enforceopt in options.bool.enforcing)void 0!==state.option[enforceopt]||options.noenforceall[enforceopt]||(state.option[enforceopt]=!0);for(var relaxopt in options.bool.relaxing)void 0===state.option[relaxopt]&&(state.option[relaxopt]=!1)}}function assume(){processenforceall(),state.option.esversion||state.option.moz||(state.option.esversion=state.option.es3?3:state.option.esnext?6:5),state.inES5()&&combine(predefined,vars.ecmaIdentifiers[5]),state.inES6()&&combine(predefined,vars.ecmaIdentifiers[6]),state.option.module&&(state.option.strict===!0&&(state.option.strict="global"),state.inES6()||warning("W134",state.tokens.next,"module",6)),state.option.couch&&combine(predefined,vars.couch),state.option.qunit&&combine(predefined,vars.qunit),state.option.rhino&&combine(predefined,vars.rhino),state.option.shelljs&&(combine(predefined,vars.shelljs),combine(predefined,vars.node)),state.option.typed&&combine(predefined,vars.typed),state.option.phantom&&(combine(predefined,vars.phantom),state.option.strict===!0&&(state.option.strict="global")),state.option.prototypejs&&combine(predefined,vars.prototypejs),state.option.node&&(combine(predefined,vars.node),combine(predefined,vars.typed),state.option.strict===!0&&(state.option.strict="global")),state.option.devel&&combine(predefined,vars.devel),state.option.dojo&&combine(predefined,vars.dojo),state.option.browser&&(combine(predefined,vars.browser),combine(predefined,vars.typed)),state.option.browserify&&(combine(predefined,vars.browser),combine(predefined,vars.typed),combine(predefined,vars.browserify),state.option.strict===!0&&(state.option.strict="global")),state.option.nonstandard&&combine(predefined,vars.nonstandard),state.option.jasmine&&combine(predefined,vars.jasmine),state.option.jquery&&combine(predefined,vars.jquery),state.option.mootools&&combine(predefined,vars.mootools),state.option.worker&&combine(predefined,vars.worker),state.option.wsh&&combine(predefined,vars.wsh),state.option.globalstrict&&state.option.strict!==!1&&(state.option.strict="global"),state.option.yui&&combine(predefined,vars.yui),state.option.mocha&&combine(predefined,vars.mocha)}function quit(code,line,chr){var percentage=Math.floor(100*(line/state.lines.length)),message=messages.errors[code].desc;throw{name:"JSHintError",line:line,character:chr,message:message+" ("+percentage+"% scanned).",raw:message,code:code}}function removeIgnoredMessages(){var ignored=state.ignoredLines;_.isEmpty(ignored)||(JSHINT.errors=_.reject(JSHINT.errors,function(err){return ignored[err.line]}))}function warning(code,t,a,b,c,d){var ch,l,w,msg;if(/^W\\d{3}
},verifyMaxParametersPerFunction:function(){_.isNumber(state.option.maxparams)&&this.arity>state.option.maxparams&&warning("W072",functionStartToken,this.arity)},verifyMaxNestedBlockDepthPerFunction:function(){state.option.maxdepth&&this.nestedBlockDepth>0&&this.nestedBlockDepth===state.option.maxdepth+1&&warning("W073",null,this.nestedBlockDepth)},verifyMaxComplexityPerFunction:function(){var max=state.option.maxcomplexity,cc=this.ComplexityCount;max&&cc>max&&warning("W074",functionStartToken,cc)}}}function increaseComplexityCount(){state.funct["(metrics)"].ComplexityCount+=1}function checkCondAssignment(expr){var id,paren;switch(expr&&(id=expr.id,paren=expr.paren,","===id&&(expr=expr.exprs[expr.exprs.length-1])&&(id=expr.id,paren=paren||expr.paren)),id){case"=":case"+=":case"-=":case"*=":case"%=":case"&=":case"|=":case"^=":case"/=":paren||state.option.boss||warning("W084")}}function checkProperties(props){if(state.inES5())for(var name in props)props[name]&&props[name].setterToken&&!props[name].getterToken&&warning("W078",props[name].setterToken)}function metaProperty(name,c){if(checkPunctuator(state.tokens.next,".")){var left=state.tokens.curr.id;advance(".");var id=identifier();return state.tokens.curr.isMetaProperty=!0,name!==id?error("E057",state.tokens.prev,left,id):c(),state.tokens.curr}}function destructuringPattern(options){var isAssignment=options&&options.assignment;return state.inES6()||warning("W104",state.tokens.curr,isAssignment?"destructuring assignment":"destructuring binding","6"),destructuringPatternRecursive(options)}function destructuringPatternRecursive(options){var ids,identifiers=[],openingParsed=options&&options.openingParsed,isAssignment=options&&options.assignment,recursiveOptions=isAssignment?{assignment:isAssignment}:null,firstToken=openingParsed?state.tokens.curr:state.tokens.next,nextInnerDE=function(){var ident;if(checkPunctuators(state.tokens.next,["[","{"])){ids=destructuringPatternRecursive(recursiveOptions);for(var id in ids)id=ids[id],identifiers.push({id:id.id,token:id.token})}else if(checkPunctuator(state.tokens.next,","))identifiers.push({id:null,token:state.tokens.curr});else{if(!checkPunctuator(state.tokens.next,"(")){var is_rest=checkPunctuator(state.tokens.next,"...");if(isAssignment){var identifierToken=is_rest?peek(0):state.tokens.next;identifierToken.identifier||warning("E030",identifierToken,identifierToken.value);var assignTarget=expression(155);assignTarget&&(checkLeftSideAssign(assignTarget),assignTarget.identifier&&(ident=assignTarget.value))}else ident=identifier();return ident&&identifiers.push({id:ident,token:state.tokens.curr}),is_rest}advance("("),nextInnerDE(),advance(")")}return!1},assignmentProperty=function(){var id;checkPunctuator(state.tokens.next,"[")?(advance("["),expression(10),advance("]"),advance(":"),nextInnerDE()):"(string)"===state.tokens.next.id||"(number)"===state.tokens.next.id?(advance(),advance(":"),nextInnerDE()):(id=identifier(),checkPunctuator(state.tokens.next,":")?(advance(":"),nextInnerDE()):id&&(isAssignment&&checkLeftSideAssign(state.tokens.curr),identifiers.push({id:id,token:state.tokens.curr})))};if(checkPunctuator(firstToken,"[")){openingParsed||advance("["),checkPunctuator(state.tokens.next,"]")&&warning("W137",state.tokens.curr);for(var element_after_rest=!1;!checkPunctuator(state.tokens.next,"]");)nextInnerDE()&&!element_after_rest&&checkPunctuator(state.tokens.next,",")&&(warning("W130",state.tokens.next),element_after_rest=!0),checkPunctuator(state.tokens.next,"=")&&(checkPunctuator(state.tokens.prev,"...")?advance("]"):advance("="),"undefined"===state.tokens.next.id&&warning("W080",state.tokens.prev,state.tokens.prev.value),expression(10)),checkPunctuator(state.tokens.next,"]")||advance(",");advance("]")}else if(checkPunctuator(firstToken,"{")){for(openingParsed||advance("{"),checkPunctuator(state.tokens.next,"}")&&warning("W137",state.tokens.curr);!checkPunctuator(state.tokens.next,"}")&&(assignmentProperty(),checkPunctuator(state.tokens.next,"=")&&(advance("="),"undefined"===state.tokens.next.id&&warning("W080",state.tokens.pr
for(state.funct["(breakage)"]+=1,advance("("),checkCondAssignment(expression(0)),advance(")",t),t=state.tokens.next,advance("{"),state.tokens.next.from===indent&&(noindent=!0),noindent||(indent+=state.option.indent),this.cases=[];;)switch(state.tokens.next.id){case"case":switch(state.funct["(verb)"]){case"yield":case"break":case"case":case"continue":case"return":case"switch":case"throw":break;default:state.tokens.curr.caseFallsThrough||warning("W086",state.tokens.curr,"case")}advance("case"),this.cases.push(expression(0)),increaseComplexityCount(),g=!0,advance(":"),state.funct["(verb)"]="case";break;case"default":switch(state.funct["(verb)"]){case"yield":case"break":case"continue":case"return":case"throw":break;default:this.cases.length&&(state.tokens.curr.caseFallsThrough||warning("W086",state.tokens.curr,"default"))}advance("default"),g=!0,advance(":");break;case"}":return noindent||(indent-=state.option.indent),advance("}",t),state.funct["(breakage)"]-=1,state.funct["(verb)"]=void 0,void 0;case"(end)":return error("E023",state.tokens.next,"}"),void 0;default:if(indent+=state.option.indent,g)switch(state.tokens.curr.id){case",":return error("E040"),void 0;case":":g=!1,statements();break;default:return error("E025",state.tokens.curr),void 0}else{if(":"!==state.tokens.curr.id)return error("E021",state.tokens.next,"case",state.tokens.next.value),void 0;advance(":"),error("E024",state.tokens.curr,":"),statements()}indent-=state.option.indent}return this}).labelled=!0,stmt("debugger",function(){return state.option.debug||warning("W087",this),this}).exps=!0,function(){var x=stmt("do",function(){state.funct["(breakage)"]+=1,state.funct["(loopage)"]+=1,increaseComplexityCount(),this.first=block(!0,!0),advance("while");var t=state.tokens.next;return advance("("),checkCondAssignment(expression(0)),advance(")",t),state.funct["(breakage)"]-=1,state.funct["(loopage)"]-=1,this});x.labelled=!0,x.exps=!0}(),blockstmt("for",function(){var s,t=state.tokens.next,letscope=!1,foreachtok=null;"each"===t.value&&(foreachtok=t,advance("each"),state.inMoz()||warning("W118",state.tokens.curr,"for each")),increaseComplexityCount(),advance("(");var nextop,comma,initializer,i=0,inof=["in","of"],level=0;checkPunctuators(state.tokens.next,["{","["])&&++level;do{if(nextop=peek(i),++i,checkPunctuators(nextop,["{","["])?++level:checkPunctuators(nextop,["}","]"])&&--level,0>level)break;0===level&&(!comma&&checkPunctuator(nextop,",")?comma=nextop:!initializer&&checkPunctuator(nextop,"=")&&(initializer=nextop))}while(level>0||!_.contains(inof,nextop.value)&&";"!==nextop.value&&"(end)"!==nextop.type);if(_.contains(inof,nextop.value)){state.inES6()||"of"!==nextop.value||warning("W104",nextop,"for of","6");var ok=!(initializer||comma);if(initializer&&error("W133",comma,nextop.value,"initializer is forbidden"),comma&&error("W133",comma,nextop.value,"more than one ForBinding"),"var"===state.tokens.next.id?(advance("var"),state.tokens.curr.fud({prefix:!0})):"let"===state.tokens.next.id||"const"===state.tokens.next.id?(advance(state.tokens.next.id),letscope=!0,state.funct["(scope)"].stack(),state.tokens.curr.fud({prefix:!0})):Object.create(varstatement).fud({prefix:!0,implied:"for",ignore:!ok}),advance(nextop.value),expression(20),advance(")",t),"in"===nextop.value&&state.option.forin&&(state.forinifcheckneeded=!0,void 0===state.forinifchecks&&(state.forinifchecks=[]),state.forinifchecks.push({type:"(none)"})),state.funct["(breakage)"]+=1,state.funct["(loopage)"]+=1,s=block(!0,!0),"in"===nextop.value&&state.option.forin){if(state.forinifchecks&&state.forinifchecks.length>0){var check=state.forinifchecks.pop();(s&&s.length>0&&("object"!=typeof s[0]||"if"!==s[0].value)||"(positive)"===check.type&&s.length>1||"(negative)"===check.type)&&warning("W089",this)}state.forinifcheckneeded=!1}state.funct["(breakage)"]-=1,state.funct["(loopage)"]-=1}else{if(foreachtok&&error("E045",foreachtok),";"!==state.tokens.next.id)if("var"===state.tokens.next.id)advance("var"),state.tokens.curr.fud();else if("let"===state.tokens.next.id)advance("let"),letscope=!0,state.funct["(scope)"
if("\\\\"===ch){var escape=this.scanEscapeSequence(checks);value+=escape.char,this.skip(escape.jump)}else"\`"!==ch&&(value+=ch,this.skip(1))}return tokenType=tokenType===Token.TemplateHead?Token.NoSubstTemplate:Token.TemplateTail,this.skip(1),this.templateStarts.pop(),{type:tokenType,value:value,startLine:startLine,startChar:startChar,isUnclosed:!1,depth:depth,context:this.popContext()}},scanStringLiteral:function(checks){var quote=this.peek();if('"'!==quote&&"'"!==quote)return null;this.triggerAsync("warning",{code:"W108",line:this.line,character:this.char},checks,function(){return state.jsonMode&&'"'!==quote});var value="",startLine=this.line,startChar=this.char,allowNewLine=!1;for(this.skip();this.peek()!==quote;)if(""===this.peek()){if(allowNewLine?(allowNewLine=!1,this.triggerAsync("warning",{code:"W043",line:this.line,character:this.char},checks,function(){return!state.option.multistr}),this.triggerAsync("warning",{code:"W042",line:this.line,character:this.char},checks,function(){return state.jsonMode&&state.option.multistr})):this.trigger("warning",{code:"W112",line:this.line,character:this.char}),!this.nextLine())return this.trigger("error",{code:"E029",line:startLine,character:startChar}),{type:Token.StringLiteral,value:value,startLine:startLine,startChar:startChar,isUnclosed:!0,quote:quote}}else{allowNewLine=!1;var char=this.peek(),jump=1;if(" ">char&&this.trigger("warning",{code:"W113",line:this.line,character:this.char,data:["<non-printable>"]}),"\\\\"===char){var parsed=this.scanEscapeSequence(checks);char=parsed.char,jump=parsed.jump,allowNewLine=parsed.allowNewLine}value+=char,this.skip(jump)}return this.skip(),{type:Token.StringLiteral,value:value,startLine:startLine,startChar:startChar,isUnclosed:!1,quote:quote}},scanRegExp:function(){var terminated,index=0,length=this.input.length,char=this.peek(),value=char,body="",flags=[],malformed=!1,isCharSet=!1,scanUnexpectedChars=function(){" ">char&&(malformed=!0,this.trigger("warning",{code:"W048",line:this.line,character:this.char})),"<"===char&&(malformed=!0,this.trigger("warning",{code:"W049",line:this.line,character:this.char,data:[char]}))}.bind(this);if(!this.prereg||"/"!==char)return null;for(index+=1,terminated=!1;length>index;)if(char=this.peek(index),value+=char,body+=char,isCharSet)"]"===char&&("\\\\"!==this.peek(index-1)||"\\\\"===this.peek(index-2))&&(isCharSet=!1),"\\\\"===char&&(index+=1,char=this.peek(index),body+=char,value+=char,scanUnexpectedChars()),index+=1;else{if("\\\\"===char){if(index+=1,char=this.peek(index),body+=char,value+=char,scanUnexpectedChars(),"/"===char){index+=1;continue}if("["===char){index+=1;continue}}if("["!==char){if("/"===char){body=body.substr(0,body.length-1),terminated=!0,index+=1;break}index+=1}else isCharSet=!0,index+=1}if(!terminated)return this.trigger("error",{code:"E015",line:this.line,character:this.from}),void this.trigger("fatal",{line:this.line,from:this.from});for(;length>index&&(char=this.peek(index),/[gim]/.test(char));)flags.push(char),value+=char,index+=1;try{RegExp(body,flags.join(""))}catch(err){malformed=!0,this.trigger("error",{code:"E016",line:this.line,character:this.char,data:[err.message]})}return{type:Token.RegExp,value:value,flags:flags,isMalformed:malformed}},scanNonBreakingSpaces:function(){return state.option.nonbsp?this.input.search(/(\\u00A0)/):-1},scanUnsafeChars:function(){return this.input.search(reg.unsafeChars)},next:function(checks){this.from=this.char;var start;if(/\\s/.test(this.peek()))for(start=this.char;/\\s/.test(this.peek());)this.from+=1,this.skip();var match=this.scanComments()||this.scanStringLiteral(checks)||this.scanTemplateLiteral(checks);return match?match:(match=this.scanRegExp()||this.scanPunctuator()||this.scanKeyword()||this.scanIdentifier()||this.scanNumericLiteral(),match?(this.skip(match.tokenLength||match.value.length),match):null)},nextLine:function(){var char;if(this.line>=this.getLines().length)return!1;this.input=this.getLines()[this.line],this.line+=1,this.char=1,this.from=1;var inputTrimmed=this.input.trim(),startsWith=function(){return _.some(argument
},addlabel:function(labelName,opts){var type=opts.type,token=opts.token,isblockscoped="let"===type||"const"===type||"class"===type,isexported="global"===(isblockscoped?_current:_currentFunctBody)["(type)"]&&_.has(exported,labelName);if(_checkOuterShadow(labelName,token,type),isblockscoped){var declaredInCurrentScope=_current["(labels)"][labelName];if(declaredInCurrentScope||_current!==_currentFunctBody||"global"===_current["(type)"]||(declaredInCurrentScope=!!_currentFunctBody["(parent)"]["(labels)"][labelName]),!declaredInCurrentScope&&_current["(usages)"][labelName]){var usage=_current["(usages)"][labelName];usage["(onlyUsedSubFunction)"]?_latedefWarning(type,labelName,token):warning("E056",token,labelName,type)}declaredInCurrentScope?warning("E011",token,labelName):"outer"===state.option.shadow&&scopeManagerInst.funct.has(labelName)&&warning("W004",token,labelName),scopeManagerInst.block.add(labelName,type,token,!isexported)}else{var declaredInCurrentFunctionScope=scopeManagerInst.funct.has(labelName);!declaredInCurrentFunctionScope&&usedSoFarInCurrentFunction(labelName)&&_latedefWarning(type,labelName,token),scopeManagerInst.funct.has(labelName,{onlyBlockscoped:!0})?warning("E011",token,labelName):state.option.shadow!==!0&&declaredInCurrentFunctionScope&&"__proto__"!==labelName&&"global"!==_currentFunctBody["(type)"]&&warning("W004",token,labelName),scopeManagerInst.funct.add(labelName,type,token,!isexported),"global"===_currentFunctBody["(type)"]&&(usedPredefinedAndGlobals[labelName]=marker)}},funct:{labeltype:function(labelName,options){for(var onlyBlockscoped=options&&options.onlyBlockscoped,excludeParams=options&&options.excludeParams,currentScopeIndex=_scopeStack.length-(options&&options.excludeCurrent?2:1),i=currentScopeIndex;i>=0;i--){var current=_scopeStack[i];if(current["(labels)"][labelName]&&(!onlyBlockscoped||current["(labels)"][labelName]["(blockscoped)"]))return current["(labels)"][labelName]["(type)"];var scopeCheck=excludeParams?_scopeStack[i-1]:current;if(scopeCheck&&"functionparams"===scopeCheck["(type)"])return null}return null},hasBreakLabel:function(labelName){for(var i=_scopeStack.length-1;i>=0;i--){var current=_scopeStack[i];if(current["(breakLabels)"][labelName])return!0;if("functionparams"===current["(type)"])return!1}return!1},has:function(labelName,options){return Boolean(this.labeltype(labelName,options))},add:function(labelName,type,tok,unused){_current["(labels)"][labelName]={"(type)":type,"(token)":tok,"(blockscoped)":!1,"(function)":_currentFunctBody,"(unused)":unused}}},block:{isGlobal:function(){return"global"===_current["(type)"]},use:function(labelName,token){var paramScope=_currentFunctBody["(parent)"];paramScope&&paramScope["(labels)"][labelName]&&"param"===paramScope["(labels)"][labelName]["(type)"]&&(scopeManagerInst.funct.has(labelName,{excludeParams:!0,onlyBlockscoped:!0})||(paramScope["(labels)"][labelName]["(unused)"]=!1)),token&&(state.ignored.W117||state.option.undef===!1)&&(token.ignoreUndef=!0),_setupUsages(labelName),token&&(token["(function)"]=_currentFunctBody,_current["(usages)"][labelName]["(tokens)"].push(token))},reassign:function(labelName,token){this.modify(labelName,token),_current["(usages)"][labelName]["(reassigned)"].push(token)},modify:function(labelName,token){_setupUsages(labelName),_current["(usages)"][labelName]["(modified)"].push(token)},add:function(labelName,type,tok,unused){_current["(labels)"][labelName]={"(type)":type,"(token)":tok,"(blockscoped)":!0,"(unused)":unused}},addBreakLabel:function(labelName,opts){var token=opts.token;scopeManagerInst.funct.hasBreakLabel(labelName)?warning("E011",token,labelName):"outer"===state.option.shadow&&(scopeManagerInst.funct.has(labelName)?warning("W004",token,labelName):_checkOuterShadow(labelName,token)),_current["(breakLabels)"][labelName]=token}}};return scopeManagerInst};module.exports=scopeManager},{"../lodash":"/node_modules/jshint/lodash.js",events:"/node_modules/browserify/node_modules/events/events.js"}],"/node_modules/jshint/src/state.js":[function(_dereq_,module,exports){"use strict";var NameStack
for(var tt=this.get(channel),i=0,len=tokenTypes.length;len>i;)if(tt==tokenTypes[i++])return!0;return this.unget(),!1},mustMatch:function(tokenTypes){var token;if(tokenTypes instanceof Array||(tokenTypes=[tokenTypes]),!this.match.apply(this,arguments))throw token=this.LT(1),new SyntaxError("Expected "+this._tokenData[tokenTypes[0]].name+" at line "+token.startLine+", col "+token.startCol+".",token.startLine,token.startCol)},advance:function(tokenTypes,channel){for(;0!==this.LA(0)&&!this.match(tokenTypes,channel);)this.get();return this.LA(0)},get:function(channel){var token,info,tokenInfo=this._tokenData,i=(this._reader,0);if(tokenInfo.length,this._lt.length&&this._ltIndex>=0&&this._ltIndex<this._lt.length){for(i++,this._token=this._lt[this._ltIndex++],info=tokenInfo[this._token.type];void 0!==info.channel&&channel!==info.channel&&this._ltIndex<this._lt.length;)this._token=this._lt[this._ltIndex++],info=tokenInfo[this._token.type],i++;if((void 0===info.channel||channel===info.channel)&&this._ltIndex<=this._lt.length)return this._ltIndexCache.push(i),this._token.type}return token=this._getToken(),token.type>-1&&!tokenInfo[token.type].hide&&(token.channel=tokenInfo[token.type].channel,this._token=token,this._lt.push(token),this._ltIndexCache.push(this._lt.length-this._ltIndex+i),this._lt.length>5&&this._lt.shift(),this._ltIndexCache.length>5&&this._ltIndexCache.shift(),this._ltIndex=this._lt.length),info=tokenInfo[token.type],info&&(info.hide||void 0!==info.channel&&channel!==info.channel)?this.get(channel):token.type},LA:function(index){var tt,total=index;if(index>0){if(index>5)throw Error("Too much lookahead.");for(;total;)tt=this.get(),total--;for(;index>total;)this.unget(),total++}else if(0>index){if(!this._lt[this._ltIndex+index])throw Error("Too much lookbehind.");tt=this._lt[this._ltIndex+index].type}else tt=this._token.type;return tt},LT:function(index){return this.LA(index),this._lt[this._ltIndex+index-1]},peek:function(){return this.LA(1)},token:function(){return this._token},tokenName:function(tokenType){return 0>tokenType||tokenType>this._tokenData.length?"UNKNOWN_TOKEN":this._tokenData[tokenType].name},tokenType:function(tokenName){return this._tokenData[tokenName]||-1},unget:function(){if(!this._ltIndexCache.length)throw Error("Too much lookahead.");this._ltIndex-=this._ltIndexCache.pop(),this._token=this._lt[this._ltIndex-1]}},parserlib.util={StringReader:StringReader,SyntaxError:SyntaxError,SyntaxUnit:SyntaxUnit,EventTarget:EventTarget,TokenStreamBase:TokenStreamBase}})(),function(){function Combinator(text,line,col){SyntaxUnit.call(this,text,line,col,Parser.COMBINATOR_TYPE),this.type="unknown",/^\\s+$/.test(text)?this.type="descendant":">"==text?this.type="child":"+"==text?this.type="adjacent-sibling":"~"==text&&(this.type="sibling")}function MediaFeature(name,value){SyntaxUnit.call(this,"("+name+(null!==value?":"+value:"")+")",name.startLine,name.startCol,Parser.MEDIA_FEATURE_TYPE),this.name=name,this.value=value}function MediaQuery(modifier,mediaType,features,line,col){SyntaxUnit.call(this,(modifier?modifier+" ":"")+(mediaType?mediaType:"")+(mediaType&&features.length>0?" and ":"")+features.join(" and "),line,col,Parser.MEDIA_QUERY_TYPE),this.modifier=modifier,this.mediaType=mediaType,this.features=features}function Parser(options){EventTarget.call(this),this.options=options||{},this._tokenStream=null}function PropertyName(text,hack,line,col){SyntaxUnit.call(this,text,line,col,Parser.PROPERTY_NAME_TYPE),this.hack=hack}function PropertyValue(parts,line,col){SyntaxUnit.call(this,parts.join(" "),line,col,Parser.PROPERTY_VALUE_TYPE),this.parts=parts}function PropertyValueIterator(value){this._i=0,this._parts=value.parts,this._marks=[],this.value=value}function PropertyValuePart(text,line,col){SyntaxUnit.call(this,text,line,col,Parser.PROPERTY_VALUE_PART_TYPE),this.type="unknown";var temp;if(/^([+\\-]?[\\d\\.]+)([a-z]+)$/i.test(text))switch(this.type="dimension",this.value=+RegExp.$1,this.units=RegExp.$2,this.units.toLowerCase()){case"em":case"rem":case"ex":case"px":case"cm":case"mm":case"in":case"pt":case"pc
values.push(value)}return values.length>0?new PropertyValue(values,values[0].line,values[0].col):null},_term:function(inFunction){var token,line,col,tokenStream=this._tokenStream,unary=null,value=null,endChar=null;return unary=this._unary_operator(),null!==unary&&(line=tokenStream.token().startLine,col=tokenStream.token().startCol),tokenStream.peek()==Tokens.IE_FUNCTION&&this.options.ieFilters?(value=this._ie_function(),null===unary&&(line=tokenStream.token().startLine,col=tokenStream.token().startCol)):inFunction&&tokenStream.match([Tokens.LPAREN,Tokens.LBRACE,Tokens.LBRACKET])?(token=tokenStream.token(),endChar=token.endChar,value=token.value+this._expr(inFunction).text,null===unary&&(line=tokenStream.token().startLine,col=tokenStream.token().startCol),tokenStream.mustMatch(Tokens.type(endChar)),value+=endChar,this._readWhitespace()):tokenStream.match([Tokens.NUMBER,Tokens.PERCENTAGE,Tokens.LENGTH,Tokens.ANGLE,Tokens.TIME,Tokens.FREQ,Tokens.STRING,Tokens.IDENT,Tokens.URI,Tokens.UNICODE_RANGE])?(value=tokenStream.token().value,null===unary&&(line=tokenStream.token().startLine,col=tokenStream.token().startCol),this._readWhitespace()):(token=this._hexcolor(),null===token?(null===unary&&(line=tokenStream.LT(1).startLine,col=tokenStream.LT(1).startCol),null===value&&(value=tokenStream.LA(3)==Tokens.EQUALS&&this.options.ieFilters?this._ie_function():this._function())):(value=token.value,null===unary&&(line=token.startLine,col=token.startCol))),null!==value?new PropertyValuePart(null!==unary?unary+value:value,line,col):null},_function:function(){var lt,tokenStream=this._tokenStream,functionText=null,expr=null;if(tokenStream.match(Tokens.FUNCTION)){if(functionText=tokenStream.token().value,this._readWhitespace(),expr=this._expr(!0),functionText+=expr,this.options.ieFilters&&tokenStream.peek()==Tokens.EQUALS)do for(this._readWhitespace()&&(functionText+=tokenStream.token().value),tokenStream.LA(0)==Tokens.COMMA&&(functionText+=tokenStream.token().value),tokenStream.match(Tokens.IDENT),functionText+=tokenStream.token().value,tokenStream.match(Tokens.EQUALS),functionText+=tokenStream.token().value,lt=tokenStream.peek();lt!=Tokens.COMMA&&lt!=Tokens.S&&lt!=Tokens.RPAREN;)tokenStream.get(),functionText+=tokenStream.token().value,lt=tokenStream.peek();while(tokenStream.match([Tokens.COMMA,Tokens.S]));tokenStream.match(Tokens.RPAREN),functionText+=")",this._readWhitespace()}return functionText},_ie_function:function(){var lt,tokenStream=this._tokenStream,functionText=null;if(tokenStream.match([Tokens.IE_FUNCTION,Tokens.FUNCTION])){functionText=tokenStream.token().value;do for(this._readWhitespace()&&(functionText+=tokenStream.token().value),tokenStream.LA(0)==Tokens.COMMA&&(functionText+=tokenStream.token().value),tokenStream.match(Tokens.IDENT),functionText+=tokenStream.token().value,tokenStream.match(Tokens.EQUALS),functionText+=tokenStream.token().value,lt=tokenStream.peek();lt!=Tokens.COMMA&&lt!=Tokens.S&&lt!=Tokens.RPAREN;)tokenStream.get(),functionText+=tokenStream.token().value,lt=tokenStream.peek();while(tokenStream.match([Tokens.COMMA,Tokens.S]));tokenStream.match(Tokens.RPAREN),functionText+=")",this._readWhitespace()}return functionText},_hexcolor:function(){var color,tokenStream=this._tokenStream,token=null;if(tokenStream.match(Tokens.HASH)){if(token=tokenStream.token(),color=token.value,!/#[a-f0-9]{3,6}/i.test(color))throw new SyntaxError("Expected a hex color but found '"+color+"' at line "+token.startLine+", col "+token.startCol+".",token.startLine,token.startCol);this._readWhitespace()}return token},_keyframes:function(){var token,tt,name,tokenStream=this._tokenStream,prefix="";for(tokenStream.mustMatch(Tokens.KEYFRAMES_SYM),token=tokenStream.token(),/^@\\-([^\\-]+)\\-/.test(token.value)&&(prefix=RegExp.$1),this._readWhitespace(),name=this._keyframe_name(),this._readWhitespace(),tokenStream.mustMatch(Tokens.LBRACE),this.fire({type:"startkeyframes",name:name,prefix:prefix,line:token.startLine,col:token.startCol}),this._readWhitespace(),tt=tokenStream.peek();tt==Tokens.IDENT||tt==Tokens.PERCENTAGE;)this._keyframe_rule()
},hashToken:function(first,startLine,startCol){var name=(this._reader,this.readName(first));return this.createToken(Tokens.HASH,name,startLine,startCol)},htmlCommentStartToken:function(first,startLine,startCol){var reader=this._reader,text=first;return reader.mark(),text+=reader.readCount(3),"<!--"==text?this.createToken(Tokens.CDO,text,startLine,startCol):(reader.reset(),this.charToken(first,startLine,startCol))},htmlCommentEndToken:function(first,startLine,startCol){var reader=this._reader,text=first;return reader.mark(),text+=reader.readCount(2),"-->"==text?this.createToken(Tokens.CDC,text,startLine,startCol):(reader.reset(),this.charToken(first,startLine,startCol))},identOrFunctionToken:function(first,startLine,startCol){var reader=this._reader,ident=this.readName(first),tt=Tokens.IDENT;return"("==reader.peek()?(ident+=reader.read(),"url("==ident.toLowerCase()?(tt=Tokens.URI,ident=this.readURI(ident),"url("==ident.toLowerCase()&&(tt=Tokens.FUNCTION)):tt=Tokens.FUNCTION):":"==reader.peek()&&"progid"==ident.toLowerCase()&&(ident+=reader.readTo("("),tt=Tokens.IE_FUNCTION),this.createToken(tt,ident,startLine,startCol)},importantToken:function(first,startLine,startCol){var temp,c,reader=this._reader,important=first,tt=Tokens.CHAR;for(reader.mark(),c=reader.read();c;){if("/"==c){if("*"!=reader.peek())break;if(temp=this.readComment(c),""===temp)break}else{if(!isWhitespace(c)){if(/i/i.test(c)){temp=reader.readCount(8),/mportant/i.test(temp)&&(important+=c+temp,tt=Tokens.IMPORTANT_SYM);break}break}important+=c+this.readWhitespace()}c=reader.read()}return tt==Tokens.CHAR?(reader.reset(),this.charToken(first,startLine,startCol)):this.createToken(tt,important,startLine,startCol)},notToken:function(first,startLine,startCol){var reader=this._reader,text=first;return reader.mark(),text+=reader.readCount(4),":not("==text.toLowerCase()?this.createToken(Tokens.NOT,text,startLine,startCol):(reader.reset(),this.charToken(first,startLine,startCol))},numberToken:function(first,startLine,startCol){var ident,reader=this._reader,value=this.readNumber(first),tt=Tokens.NUMBER,c=reader.peek();return isIdentStart(c)?(ident=this.readName(reader.read()),value+=ident,tt=/^em$|^ex$|^px$|^gd$|^rem$|^vw$|^vh$|^vmax$|^vmin$|^ch$|^cm$|^mm$|^in$|^pt$|^pc$/i.test(ident)?Tokens.LENGTH:/^deg|^rad$|^grad$/i.test(ident)?Tokens.ANGLE:/^ms$|^s$/i.test(ident)?Tokens.TIME:/^hz$|^khz$/i.test(ident)?Tokens.FREQ:/^dpi$|^dpcm$/i.test(ident)?Tokens.RESOLUTION:Tokens.DIMENSION):"%"==c&&(value+=reader.read(),tt=Tokens.PERCENTAGE),this.createToken(tt,value,startLine,startCol)},stringToken:function(first,startLine,startCol){for(var delim=first,string=first,reader=this._reader,prev=first,tt=Tokens.STRING,c=reader.read();c&&(string+=c,c!=delim||"\\\\"==prev);){if(isNewLine(reader.peek())&&"\\\\"!=c){tt=Tokens.INVALID;break}prev=c,c=reader.read()}return null===c&&(tt=Tokens.INVALID),this.createToken(tt,string,startLine,startCol)},unicodeRangeToken:function(first,startLine,startCol){var temp,reader=this._reader,value=first,tt=Tokens.CHAR;return"+"==reader.peek()&&(reader.mark(),value+=reader.read(),value+=this.readUnicodeRangePart(!0),2==value.length?reader.reset():(tt=Tokens.UNICODE_RANGE,-1==value.indexOf("?")&&"-"==reader.peek()&&(reader.mark(),temp=reader.read(),temp+=this.readUnicodeRangePart(!1),1==temp.length?reader.reset():value+=temp))),this.createToken(tt,value,startLine,startCol)},whitespaceToken:function(first,startLine,startCol){var value=(this._reader,first+this.readWhitespace());return this.createToken(Tokens.S,value,startLine,startCol)},readUnicodeRangePart:function(allowQuestionMark){for(var reader=this._reader,part="",c=reader.peek();isHexDigit(c)&&6>part.length;)reader.read(),part+=c,c=reader.peek();if(allowQuestionMark)for(;"?"==c&&6>part.length;)reader.read(),part+=c,c=reader.peek();return part},readWhitespace:function(){for(var reader=this._reader,whitespace="",c=reader.peek();isWhitespace(c);)reader.read(),whitespace+=c,c=reader.peek();return whitespace},readNumber:function(first){for(var reader=this._reader,number=first,hasDot="."==first,c=reader.peek
break;case"inline-block":reportProperty("float",display);break;default:0===display.indexOf("table-")&&(reportProperty("margin",display),reportProperty("margin-left",display),reportProperty("margin-right",display),reportProperty("margin-top",display),reportProperty("margin-bottom",display),reportProperty("float",display))}}var properties,rule=this,propertiesToCheck={display:1,"float":"none",height:1,width:1,margin:1,"margin-left":1,"margin-right":1,"margin-bottom":1,"margin-top":1,padding:1,"padding-left":1,"padding-right":1,"padding-bottom":1,"padding-top":1,"vertical-align":1};parser.addListener("startrule",startRule),parser.addListener("startfontface",startRule),parser.addListener("startkeyframerule",startRule),parser.addListener("startpagemargin",startRule),parser.addListener("startpage",startRule),parser.addListener("property",function(event){var name=event.property.text.toLowerCase();propertiesToCheck[name]&&(properties[name]={value:event.value.text,line:event.property.line,col:event.property.col})}),parser.addListener("endrule",endRule),parser.addListener("endfontface",endRule),parser.addListener("endkeyframerule",endRule),parser.addListener("endpagemargin",endRule),parser.addListener("endpage",endRule)}}),CSSLint.addRule({id:"duplicate-background-images",name:"Disallow duplicate background images",desc:"Every background-image should be unique. Use a common class for e.g. sprites.",browsers:"All",init:function(parser,reporter){var rule=this,stack={};parser.addListener("property",function(event){var i,len,name=event.property.text,value=event.value;if(name.match(/background/i))for(i=0,len=value.parts.length;len>i;i++)"uri"===value.parts[i].type&&(stack[value.parts[i].uri]===void 0?stack[value.parts[i].uri]=event:reporter.report("Background image '"+value.parts[i].uri+"' was used multiple times, first declared at line "+stack[value.parts[i].uri].line+", col "+stack[value.parts[i].uri].col+".",event.line,event.col,rule))})}}),CSSLint.addRule({id:"duplicate-properties",name:"Disallow duplicate properties",desc:"Duplicate properties must appear one after the other.",browsers:"All",init:function(parser,reporter){function startRule(){properties={}}var properties,lastProperty,rule=this;parser.addListener("startrule",startRule),parser.addListener("startfontface",startRule),parser.addListener("startpage",startRule),parser.addListener("startpagemargin",startRule),parser.addListener("startkeyframerule",startRule),parser.addListener("property",function(event){var property=event.property,name=property.text.toLowerCase();!properties[name]||lastProperty===name&&properties[name]!==event.value.text||reporter.report("Duplicate property '"+event.property+"' found.",event.line,event.col,rule),properties[name]=event.value.text,lastProperty=name})}}),CSSLint.addRule({id:"empty-rules",name:"Disallow empty rules",desc:"Rules without any properties specified should be removed.",browsers:"All",init:function(parser,reporter){var rule=this,count=0;parser.addListener("startrule",function(){count=0}),parser.addListener("property",function(){count++}),parser.addListener("endrule",function(event){var selectors=event.selectors;0===count&&reporter.report("Rule is empty.",selectors[0].line,selectors[0].col,rule)})}}),CSSLint.addRule({id:"errors",name:"Parsing Errors",desc:"This rule looks for recoverable syntax errors.",browsers:"All",init:function(parser,reporter){var rule=this;parser.addListener("error",function(event){reporter.error(event.message,event.line,event.col,rule)})}}),CSSLint.addRule({id:"fallback-colors",name:"Require fallback colors",desc:"For older browsers that don't support RGBA, HSL, or HSLA, provide a fallback color.",browsers:"IE6,IE7,IE8",init:function(parser,reporter){function startRule(){properties={},lastProperty=null}var lastProperty,properties,rule=this,propertiesToCheck={color:1,background:1,"border-color":1,"border-top-color":1,"border-right-color":1,"border-bottom-color":1,"border-left-color":1,border:1,"border-top":1,"border-right":1,"border-bottom":1,"border-left":1,"background-color":1};parser.addListener("startrule",
var all={};CSSLint.getRules().forEach(function(x){all[x.id]=!0}),ruleNames.forEach(function(x){delete all[x]}),this.ruleset=all}else this.ruleset=null;this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.onUpdate=function(){var value=this.doc.getValue();if(!value)return this.sender.emit("annotate",[]);var infoRules=this.infoRules,result=CSSLint.verify(value,this.ruleset);this.sender.emit("annotate",result.messages.map(function(msg){return{row:msg.line-1,column:msg.col-1,text:msg.message,type:infoRules[msg.rule.id]?"info":msg.type,rule:msg.rule.name}}))}}.call(Worker.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,"sentinel",{}),"sentinel"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.ma
if(node.node===element)break;node.isSpecial()&&(furthestBlock=node)}return furthestBlock},ElementStack.prototype.findIndex=function(localName){for(var i=this.elements.length-1;i>=0;i--)if(this.elements[i].localName==localName)return i;return-1},ElementStack.prototype.remove_openElements_until=function(callback){for(var element,finished=!1;!finished;)element=this.elements.pop(),finished=callback(element);return element},Object.defineProperty(ElementStack.prototype,"top",{get:function(){return this.elements[this.elements.length-1]}}),Object.defineProperty(ElementStack.prototype,"length",{get:function(){return this.elements.length}}),exports.ElementStack=ElementStack},{}],2:[function(_dereq_,module,exports){function isAlphaNumeric(c){return c>="0"&&"9">=c||c>="a"&&"z">=c||c>="A"&&"Z">=c}function isHexDigit(c){return c>="0"&&"9">=c||c>="a"&&"f">=c||c>="A"&&"F">=c}function isDecimalDigit(c){return c>="0"&&"9">=c}var entities=_dereq_("html5-entities"),InputStream=_dereq_("./InputStream").InputStream,namedEntityPrefixes={};Object.keys(entities).forEach(function(entityKey){for(var i=0;entityKey.length>i;i++)namedEntityPrefixes[entityKey.substring(0,i+1)]=!0});var EntityParser={};EntityParser.consumeEntity=function(buffer,tokenizer,additionalAllowedCharacter){var decodedCharacter="",consumedCharacters="",ch=buffer.char();if(ch===InputStream.EOF)return!1;if(consumedCharacters+=ch," "==ch||"\\n"==ch||"\v"==ch||" "==ch||"<"==ch||"&"==ch)return buffer.unget(consumedCharacters),!1;if(additionalAllowedCharacter===ch)return buffer.unget(consumedCharacters),!1;if("#"==ch){if(ch=buffer.shift(1),ch===InputStream.EOF)return tokenizer._parseError("expected-numeric-entity-but-got-eof"),buffer.unget(consumedCharacters),!1;consumedCharacters+=ch;var radix=10,isDigit=isDecimalDigit;if("x"==ch||"X"==ch){if(radix=16,isDigit=isHexDigit,ch=buffer.shift(1),ch===InputStream.EOF)return tokenizer._parseError("expected-numeric-entity-but-got-eof"),buffer.unget(consumedCharacters),!1;consumedCharacters+=ch}if(isDigit(ch)){for(var code="";ch!==InputStream.EOF&&isDigit(ch);)code+=ch,ch=buffer.char();code=parseInt(code,radix);var replacement=this.replaceEntityNumbers(code);if(replacement&&(tokenizer._parseError("invalid-numeric-entity-replaced"),code=replacement),code>65535&&1114111>=code){code-=65536;var first=((1047552&code)>>10)+55296,second=(1023&code)+56320;decodedCharacter=String.fromCharCode(first,second)}else decodedCharacter=String.fromCharCode(code);return";"!==ch&&(tokenizer._parseError("numeric-entity-without-semicolon"),buffer.unget(ch)),decodedCharacter}return buffer.unget(consumedCharacters),tokenizer._parseError("expected-numeric-entity"),!1}if(ch>="a"&&"z">=ch||ch>="A"&&"Z">=ch){for(var mostRecentMatch="";namedEntityPrefixes[consumedCharacters]&&(entities[consumedCharacters]&&(mostRecentMatch=consumedCharacters),";"!=ch)&&(ch=buffer.char(),ch!==InputStream.EOF);)consumedCharacters+=ch;return mostRecentMatch?(decodedCharacter=entities[mostRecentMatch],";"===ch||!additionalAllowedCharacter||!isAlphaNumeric(ch)&&"="!==ch?(consumedCharacters.length>mostRecentMatch.length&&buffer.unget(consumedCharacters.substring(mostRecentMatch.length)),";"!==ch&&tokenizer._parseError("named-entity-without-semicolon"),decodedCharacter):(buffer.unget(consumedCharacters),!1)):(tokenizer._parseError("expected-named-entity"),buffer.unget(consumedCharacters),!1)}},EntityParser.replaceEntityNumbers=function(c){switch(c){case 0:return 65533;case 19:return 16;case 128:return 8364;case 129:return 129;case 130:return 8218;case 131:return 402;case 132:return 8222;case 133:return 8230;case 134:return 8224;case 135:return 8225;case 136:return 710;case 137:return 8240;case 138:return 352;case 139:return 8249;case 140:return 338;case 141:return 141;case 142:return 381;case 143:return 143;case 144:return 144;case 145:return 8216;case 146:return 8217;case 147:return 8220;case 148:return 8221;case 149:return 8226;case 150:return 8211;case 151:return 8212;case 152:return 732;case 153:return 8482;case 154:return 353;case 155:return 8250;case 156:return 339;case 157:return 157;cas
}function attribute_value_double_quoted_state(buffer){var data=buffer.char();if(data===InputStream.EOF)tokenizer._parseError("eof-in-attribute-value-double-quote"),buffer.unget(data),tokenizer.setState(data_state);else if('"'===data)tokenizer.setState(after_attribute_value_state);else if("&"===data)this._additionalAllowedCharacter='"',tokenizer.setState(character_reference_in_attribute_value_state);else if("\\0"===data)tokenizer._parseError("invalid-codepoint"),tokenizer._currentAttribute().nodeValue+="\uFFFD";else{var s=buffer.matchUntil('[\\0"&]');data+=s,tokenizer._currentAttribute().nodeValue+=data}return!0}function attribute_value_single_quoted_state(buffer){var data=buffer.char();return data===InputStream.EOF?(tokenizer._parseError("eof-in-attribute-value-single-quote"),buffer.unget(data),tokenizer.setState(data_state)):"'"===data?tokenizer.setState(after_attribute_value_state):"&"===data?(this._additionalAllowedCharacter="'",tokenizer.setState(character_reference_in_attribute_value_state)):"\\0"===data?(tokenizer._parseError("invalid-codepoint"),tokenizer._currentAttribute().nodeValue+="\uFFFD"):tokenizer._currentAttribute().nodeValue+=data+buffer.matchUntil("\\0|['&]"),!0}function attribute_value_unquoted_state(buffer){var data=buffer.char();if(data===InputStream.EOF)tokenizer._parseError("eof-after-attribute-value"),buffer.unget(data),tokenizer.setState(data_state);else if(isWhitespace(data))tokenizer.setState(before_attribute_name_state);else if("&"===data)this._additionalAllowedCharacter=">",tokenizer.setState(character_reference_in_attribute_value_state);else if(">"===data)tokenizer._emitCurrentToken();else if('"'===data||"'"===data||"="===data||"\`"===data||"<"===data)tokenizer._parseError("unexpected-character-in-unquoted-attribute-value"),tokenizer._currentAttribute().nodeValue+=data,buffer.commit();else if("\\0"===data)tokenizer._parseError("invalid-codepoint"),tokenizer._currentAttribute().nodeValue+="\uFFFD";else{var o=buffer.matchUntil("\\0|[ \\n\v\\f \\r&<>\\"'=\`]");o===InputStream.EOF&&(tokenizer._parseError("eof-in-attribute-value-no-quotes"),tokenizer._emitCurrentToken()),buffer.commit(),tokenizer._currentAttribute().nodeValue+=data+o}return!0}function character_reference_in_attribute_value_state(buffer){var character=EntityParser.consumeEntity(buffer,tokenizer,this._additionalAllowedCharacter);return this._currentAttribute().nodeValue+=character||"&",'"'===this._additionalAllowedCharacter?tokenizer.setState(attribute_value_double_quoted_state):"'"===this._additionalAllowedCharacter?tokenizer.setState(attribute_value_single_quoted_state):">"===this._additionalAllowedCharacter&&tokenizer.setState(attribute_value_unquoted_state),!0}function after_attribute_value_state(buffer){var data=buffer.char();return data===InputStream.EOF?(tokenizer._parseError("eof-after-attribute-value"),buffer.unget(data),tokenizer.setState(data_state)):isWhitespace(data)?tokenizer.setState(before_attribute_name_state):">"===data?(tokenizer.setState(data_state),tokenizer._emitCurrentToken()):"/"===data?tokenizer.setState(self_closing_tag_state):(tokenizer._parseError("unexpected-character-after-attribute-value"),buffer.unget(data),tokenizer.setState(before_attribute_name_state)),!0}function self_closing_tag_state(buffer){var c=buffer.char();return c===InputStream.EOF?(tokenizer._parseError("unexpected-eof-after-solidus-in-tag"),buffer.unget(c),tokenizer.setState(data_state)):">"===c?(tokenizer._currentToken.selfClosing=!0,tokenizer.setState(data_state),tokenizer._emitCurrentToken()):(tokenizer._parseError("unexpected-character-after-solidus-in-tag"),buffer.unget(c),tokenizer.setState(before_attribute_name_state)),!0}function bogus_comment_state(buffer){var data=buffer.matchUntil(">");return data=data.replace(/\\u0000/g,"\uFFFD"),buffer.char(),tokenizer._emitToken({type:"Comment",data:data}),tokenizer.setState(data_state),!0}function markup_declaration_open_state(buffer){var chars=buffer.shift(2);if("--"===chars)tokenizer._currentToken={type:"Comment",data:""},tokenizer.setState(comment_start_state);else{var newchars=buffer
-1!=["title","style","script"].indexOf(name)&&(tree.parseError("expected-named-closing-tag-but-got-eof",{name:name}),tree.popElement()),this.anythingElse(),tree.insertionMode.processEOF()},modes.inHead.processCharacters=function(buffer){var leadingWhitespace=buffer.takeLeadingWhitespace();leadingWhitespace&&tree.insertText(leadingWhitespace),buffer.length&&(this.anythingElse(),tree.insertionMode.processCharacters(buffer))},modes.inHead.startTagHtml=function(name,attributes){modes.inBody.processStartTag(name,attributes)},modes.inHead.startTagHead=function(){tree.parseError("two-heads-are-not-better-than-one")},modes.inHead.startTagTitle=function(name,attributes){tree.processGenericRCDATAStartTag(name,attributes)},modes.inHead.startTagNoScript=function(name,attributes){return tree.scriptingEnabled?tree.processGenericRawTextStartTag(name,attributes):(tree.insertElement(name,attributes),tree.setInsertionMode("inHeadNoscript"),void 0)},modes.inHead.startTagNoFramesStyle=function(name,attributes){tree.processGenericRawTextStartTag(name,attributes)},modes.inHead.startTagScript=function(name,attributes){tree.insertElement(name,attributes),tree.tokenizer.setState(Tokenizer.SCRIPT_DATA),tree.originalInsertionMode=tree.insertionModeName,tree.setInsertionMode("text")},modes.inHead.startTagBaseBasefontBgsoundLink=function(name,attributes){tree.insertSelfClosingElement(name,attributes)},modes.inHead.startTagMeta=function(name,attributes){tree.insertSelfClosingElement(name,attributes)},modes.inHead.startTagOther=function(name,attributes,selfClosing){this.anythingElse(),tree.insertionMode.processStartTag(name,attributes,selfClosing)},modes.inHead.endTagHead=function(){"head"==tree.openElements.item(tree.openElements.length-1).localName?tree.openElements.pop():tree.parseError("unexpected-end-tag",{name:"head"}),tree.setInsertionMode("afterHead")},modes.inHead.endTagHtmlBodyBr=function(name){this.anythingElse(),tree.insertionMode.processEndTag(name)},modes.inHead.endTagOther=function(name){tree.parseError("unexpected-end-tag",{name:name})},modes.inHead.anythingElse=function(){this.endTagHead("head")},modes.afterHead=Object.create(modes.base),modes.afterHead.start_tag_handlers={html:"startTagHtml",head:"startTagHead",body:"startTagBody",frameset:"startTagFrameset",base:"startTagFromHead",link:"startTagFromHead",meta:"startTagFromHead",script:"startTagFromHead",style:"startTagFromHead",title:"startTagFromHead","-default":"startTagOther"},modes.afterHead.end_tag_handlers={body:"endTagBodyHtmlBr",html:"endTagBodyHtmlBr",br:"endTagBodyHtmlBr","-default":"endTagOther"},modes.afterHead.processEOF=function(){this.anythingElse(),tree.insertionMode.processEOF()},modes.afterHead.processCharacters=function(buffer){var leadingWhitespace=buffer.takeLeadingWhitespace();leadingWhitespace&&tree.insertText(leadingWhitespace),buffer.length&&(this.anythingElse(),tree.insertionMode.processCharacters(buffer))},modes.afterHead.startTagHtml=function(name,attributes){modes.inBody.processStartTag(name,attributes)},modes.afterHead.startTagBody=function(name,attributes){tree.framesetOk=!1,tree.insertBodyElement(attributes),tree.setInsertionMode("inBody")},modes.afterHead.startTagFrameset=function(name,attributes){tree.insertElement(name,attributes),tree.setInsertionMode("inFrameset")},modes.afterHead.startTagFromHead=function(name,attributes,selfClosing){tree.parseError("unexpected-start-tag-out-of-my-head",{name:name}),tree.openElements.push(tree.head),modes.inHead.processStartTag(name,attributes,selfClosing),tree.openElements.remove(tree.head)},modes.afterHead.startTagHead=function(name){tree.parseError("unexpected-start-tag",{name:name})},modes.afterHead.startTagOther=function(name,attributes,selfClosing){this.anythingElse(),tree.insertionMode.processStartTag(name,attributes,selfClosing)},modes.afterHead.endTagBodyHtmlBr=function(name){this.anythingElse(),tree.insertionMode.processEndTag(name)},modes.afterHead.endTagOther=function(name){tree.parseError("unexpected-end-tag",{name:name})},modes.afterHead.anythingElse=function(){tree.insertBodyElement([]),tree.setI
tree.setInsertionMode("inTableText"),tree.originalInsertionMode=originalInsertionMode,tree.insertionMode.processCharacters(data)}else tree.redirectAttachToFosterParent=!0,modes.inBody.processCharacters(data),tree.redirectAttachToFosterParent=!1},modes.inTable.startTagCaption=function(name,attributes){tree.openElements.popUntilTableScopeMarker(),tree.activeFormattingElements.push(Marker),tree.insertElement(name,attributes),tree.setInsertionMode("inCaption")},modes.inTable.startTagColgroup=function(name,attributes){tree.openElements.popUntilTableScopeMarker(),tree.insertElement(name,attributes),tree.setInsertionMode("inColumnGroup")},modes.inTable.startTagCol=function(name,attributes){this.startTagColgroup("colgroup",[]),tree.insertionMode.processStartTag(name,attributes)},modes.inTable.startTagRowGroup=function(name,attributes){tree.openElements.popUntilTableScopeMarker(),tree.insertElement(name,attributes),tree.setInsertionMode("inTableBody")},modes.inTable.startTagImplyTbody=function(name,attributes){this.startTagRowGroup("tbody",[]),tree.insertionMode.processStartTag(name,attributes)},modes.inTable.startTagTable=function(name,attributes){tree.parseError("unexpected-start-tag-implies-end-tag",{startName:"table",endName:"table"}),tree.insertionMode.processEndTag("table"),tree.context||tree.insertionMode.processStartTag(name,attributes)},modes.inTable.startTagStyleScript=function(name,attributes){modes.inHead.processStartTag(name,attributes)},modes.inTable.startTagInput=function(name,attributes){for(var key in attributes)if("type"==attributes[key].nodeName.toLowerCase()){if("hidden"==attributes[key].nodeValue.toLowerCase())return tree.parseError("unexpected-hidden-input-in-table"),tree.insertElement(name,attributes),tree.openElements.pop(),void 0;break}this.startTagOther(name,attributes)},modes.inTable.startTagForm=function(name,attributes){tree.parseError("unexpected-form-in-table"),tree.form||(tree.insertElement(name,attributes),tree.form=tree.currentStackItem(),tree.openElements.pop())},modes.inTable.startTagOther=function(name,attributes,selfClosing){tree.parseError("unexpected-start-tag-implies-table-voodoo",{name:name}),tree.redirectAttachToFosterParent=!0,modes.inBody.processStartTag(name,attributes,selfClosing),tree.redirectAttachToFosterParent=!1},modes.inTable.endTagTable=function(name){tree.openElements.inTableScope(name)?(tree.generateImpliedEndTags(),tree.currentStackItem().localName!=name&&tree.parseError("end-tag-too-early-named",{gotName:"table",expectedName:tree.currentStackItem().localName}),tree.openElements.popUntilPopped("table"),tree.resetInsertionMode()):(assert.ok(tree.context),tree.parseError("unexpected-end-tag",{name:name}))},modes.inTable.endTagIgnore=function(name){tree.parseError("unexpected-end-tag",{name:name})},modes.inTable.endTagOther=function(name){tree.parseError("unexpected-end-tag-implies-table-voodoo",{name:name}),tree.redirectAttachToFosterParent=!0,modes.inBody.processEndTag(name),tree.redirectAttachToFosterParent=!1},modes.inTableText=Object.create(modes.base),modes.inTableText.flushCharacters=function(){var characters=tree.pendingTableCharacters.join("");isAllWhitespace(characters)?tree.insertText(characters):(tree.redirectAttachToFosterParent=!0,tree.reconstructActiveFormattingElements(),tree.insertText(characters),tree.framesetOk=!1,tree.redirectAttachToFosterParent=!1),tree.pendingTableCharacters=[]},modes.inTableText.processComment=function(data){this.flushCharacters(),tree.setInsertionMode(tree.originalInsertionMode),tree.insertionMode.processComment(data)},modes.inTableText.processEOF=function(){this.flushCharacters(),tree.setInsertionMode(tree.originalInsertionMode),tree.insertionMode.processEOF()},modes.inTableText.processCharacters=function(buffer){var characters=buffer.takeRemaining();characters=characters.replace(/\\u0000/g,function(){return tree.parseError("invalid-codepoint"),""}),characters&&tree.pendingTableCharacters.push(characters)},modes.inTableText.processStartTag=function(name,attributes,selfClosing){this.flushCharacters(),tree.setInsertionMode(tree.origina
},{}],8:[function(_dereq_,module){module.exports={"null-character":"Null character in input stream, replaced with U+FFFD.","invalid-codepoint":"Invalid codepoint in stream","incorrectly-placed-solidus":"Solidus (/) incorrectly placed in tag.","incorrect-cr-newline-entity":"Incorrect CR newline entity, replaced with LF.","illegal-windows-1252-entity":"Entity used with illegal number (windows-1252 reference).","cant-convert-numeric-entity":"Numeric entity couldn't be converted to character (codepoint U+{charAsInt}).","invalid-numeric-entity-replaced":"Numeric entity represents an illegal codepoint. Expanded to the C1 controls range.","numeric-entity-without-semicolon":"Numeric entity didn't end with ';'.","expected-numeric-entity-but-got-eof":"Numeric entity expected. Got end of file instead.","expected-numeric-entity":"Numeric entity expected but none found.","named-entity-without-semicolon":"Named entity didn't end with ';'.","expected-named-entity":"Named entity expected. Got none.","attributes-in-end-tag":"End tag contains unexpected attributes.","self-closing-flag-on-end-tag":"End tag contains unexpected self-closing flag.","bare-less-than-sign-at-eof":"End of file after <.","expected-tag-name-but-got-right-bracket":"Expected tag name. Got '>' instead.","expected-tag-name-but-got-question-mark":"Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.)","expected-tag-name":"Expected tag name. Got something else instead.","expected-closing-tag-but-got-right-bracket":"Expected closing tag. Got '>' instead. Ignoring '</>'.","expected-closing-tag-but-got-eof":"Expected closing tag. Unexpected end of file.","expected-closing-tag-but-got-char":"Expected closing tag. Unexpected character '{data}' found.","eof-in-tag-name":"Unexpected end of file in the tag name.","expected-attribute-name-but-got-eof":"Unexpected end of file. Expected attribute name instead.","eof-in-attribute-name":"Unexpected end of file in attribute name.","invalid-character-in-attribute-name":"Invalid character in attribute name.","duplicate-attribute":"Dropped duplicate attribute '{name}' on tag.","expected-end-of-tag-but-got-eof":"Unexpected end of file. Expected = or end of tag.","expected-attribute-value-but-got-eof":"Unexpected end of file. Expected attribute value.","expected-attribute-value-but-got-right-bracket":"Expected attribute value. Got '>' instead.","unexpected-character-in-unquoted-attribute-value":"Unexpected character in unquoted attribute","invalid-character-after-attribute-name":"Unexpected character after attribute name.","unexpected-character-after-attribute-value":"Unexpected character after attribute value.","eof-in-attribute-value-double-quote":'Unexpected end of file in attribute value (").',"eof-in-attribute-value-single-quote":"Unexpected end of file in attribute value (').","eof-in-attribute-value-no-quotes":"Unexpected end of file in attribute value.","eof-after-attribute-value":"Unexpected end of file after attribute value.","unexpected-eof-after-solidus-in-tag":"Unexpected end of file in tag. Expected >.","unexpected-character-after-solidus-in-tag":"Unexpected character after / in tag. Expected >.","expected-dashes-or-doctype":"Expected '--' or 'DOCTYPE'. Not found.","unexpected-bang-after-double-dash-in-comment":"Unexpected ! after -- in comment.","incorrect-comment":"Incorrect comment.","eof-in-comment":"Unexpected end of file in comment.","eof-in-comment-end-dash":"Unexpected end of file in comment (-).","unexpected-dash-after-double-dash-in-comment":"Unexpected '-' after '--' found in comment.","eof-in-comment-double-dash":"Unexpected end of file in comment (--).","eof-in-comment-end-bang-state":"Unexpected end of file in comment.","unexpected-char-in-comment":"Unexpected character in comment found.","need-space-after-doctype":"No space after literal string 'DOCTYPE'.","expected-doctype-name-but-got-right-bracket":"Unexpected > character. Expected DOCTYPE name.","expected-doctype-name-but-got-eof":"Unexpected end of file. Expected DOCTYPE name.","eof-in-doctype-name":"Unexpected end of file in
},{}],13:[function(_dereq_,module){function replacer(key,value){return util.isUndefined(value)?""+value:!util.isNumber(value)||!isNaN(value)&&isFinite(value)?util.isFunction(value)||util.isRegExp(value)?""+value:value:""+value}function truncate(s,n){return util.isString(s)?n>s.length?s:s.slice(0,n):s}function getMessage(self){return truncate(JSON.stringify(self.actual,replacer),128)+" "+self.operator+" "+truncate(JSON.stringify(self.expected,replacer),128)}function fail(actual,expected,message,operator,stackStartFunction){throw new assert.AssertionError({message:message,actual:actual,expected:expected,operator:operator,stackStartFunction:stackStartFunction})}function ok(value,message){value||fail(value,!0,message,"==",assert.ok)}function _deepEqual(actual,expected){if(actual===expected)return!0;if(util.isBuffer(actual)&&util.isBuffer(expected)){if(actual.length!=expected.length)return!1;for(var i=0;actual.length>i;i++)if(actual[i]!==expected[i])return!1;return!0}return util.isDate(actual)&&util.isDate(expected)?actual.getTime()===expected.getTime():util.isRegExp(actual)&&util.isRegExp(expected)?actual.source===expected.source&&actual.global===expected.global&&actual.multiline===expected.multiline&&actual.lastIndex===expected.lastIndex&&actual.ignoreCase===expected.ignoreCase:util.isObject(actual)||util.isObject(expected)?objEquiv(actual,expected):actual==expected}function isArguments(object){return"[object Arguments]"==Object.prototype.toString.call(object)}function objEquiv(a,b){if(util.isNullOrUndefined(a)||util.isNullOrUndefined(b))return!1;if(a.prototype!==b.prototype)return!1;if(isArguments(a))return isArguments(b)?(a=pSlice.call(a),b=pSlice.call(b),_deepEqual(a,b)):!1;try{var key,i,ka=objectKeys(a),kb=objectKeys(b)}catch(e){return!1}if(ka.length!=kb.length)return!1;for(ka.sort(),kb.sort(),i=ka.length-1;i>=0;i--)if(ka[i]!=kb[i])return!1;for(i=ka.length-1;i>=0;i--)if(key=ka[i],!_deepEqual(a[key],b[key]))return!1;return!0}function expectedException(actual,expected){return actual&&expected?"[object RegExp]"==Object.prototype.toString.call(expected)?expected.test(actual):actual instanceof expected?!0:expected.call({},actual)===!0?!0:!1:!1}function _throws(shouldThrow,block,expected,message){var actual;util.isString(expected)&&(message=expected,expected=null);try{block()}catch(e){actual=e}if(message=(expected&&expected.name?" ("+expected.name+").":".")+(message?" "+message:"."),shouldThrow&&!actual&&fail(actual,expected,"Missing expected exception"+message),!shouldThrow&&expectedException(actual,expected)&&fail(actual,expected,"Got unwanted exception"+message),shouldThrow&&actual&&expected&&!expectedException(actual,expected)||!shouldThrow&&actual)throw actual}var util=_dereq_("util/"),pSlice=Array.prototype.slice,hasOwn=Object.prototype.hasOwnProperty,assert=module.exports=ok;assert.AssertionError=function(options){this.name="AssertionError",this.actual=options.actual,this.expected=options.expected,this.operator=options.operator,options.message?(this.message=options.message,this.generatedMessage=!1):(this.message=getMessage(this),this.generatedMessage=!0);var stackStartFunction=options.stackStartFunction||fail;if(Error.captureStackTrace)Error.captureStackTrace(this,stackStartFunction);else{var err=Error();if(err.stack){var out=err.stack,fn_name=stackStartFunction.name,idx=out.indexOf("\\n"+fn_name);if(idx>=0){var next_line=out.indexOf("\\n",idx+1);out=out.substring(next_line+1)}this.stack=out}}},util.inherits(assert.AssertionError,Error),assert.fail=fail,assert.ok=ok,assert.equal=function(actual,expected,message){actual!=expected&&fail(actual,expected,message,"==",assert.equal)},assert.notEqual=function(actual,expected,message){actual==expected&&fail(actual,expected,message,"!=",assert.notEqual)},assert.deepEqual=function(actual,expected,message){_deepEqual(actual,expected)||fail(actual,expected,message,"deepEqual",assert.deepEqual)},assert.notDeepEqual=function(actual,expected,message){_deepEqual(actual,expected)&&fail(actual,expected,message,"notDeepEqual",assert.notDeepEqual)},assert.strictEqual=function(actual,expe
});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return"function"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name="";owns(object,name);)name+="?";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError("Object.keys called on a non-object");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=" \\n\v\\f\\r \xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\\u2028\\u2029\uFEFF";if(!String.prototype.trim||ws.trim()){ws="["+ws+"]";var trimBeginRegexp=RegExp("^"+ws+ws+"*"),trimEndRegexp=RegExp(ws+ws+"*$");String.prototype.trim=function(){return(this+"").replace(trimBeginRegexp,"").replace(trimEndRegexp,"")}}var toObject=function(o){if(null==o)throw new TypeError("can't convert "+o+" to object");return Object(o)}});`;ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(w,E,B){var T=w("../lib/oop"),b=w("./text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},f.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};T.inherits(f,b),f.getTagRule=function(s){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},f.getStartRule=function(s){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:s}},f.getEndRule=function(s){return{token:"comment.doc",regex:"\\*\\/",next:s}},E.DocCommentHighlightRules=f});ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(w,E,B){var T=w("../lib/oop"),b=w("./doc_comment_highlight_rules").DocCommentHighlightRules,f=w("./text_highlight_rules").TextHighlightRules,s="[a-zA-Z\\$_\xA1-\uFFFF][a-zA-Z\\d\\$_\xA1-\uFFFF]*",a=function(i){var t=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},"identifier"),r="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",o="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)";this.$rules={no_regex:[b.get
`){var o=i.getCursorPosition(),u=t.getLine(o.row),h=new f(t,o.row,o.column),d=h.getCurrentToken();if(d&&d.type.indexOf("tag-close")!==-1){if(d.value=="/>")return;for(;d&&d.type.indexOf("tag-name")===-1;)d=h.stepBackward();if(!d)return;var v=d.value,c=h.getCurrentTokenRow();if(d=h.stepBackward(),!d||d.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[v]){var g=t.getTokenAt(o.row,o.column+1),u=t.getLine(c),l=this.$getIndent(u),m=l+t.getTabString();return g&&g.value==="</"?{text:`
`+m+`
`+l,selection:[1,m.length,1,m.length]}:{text:`
`+m}}}}})};T.inherits(a,b),E.XmlBehaviour=a});ace.define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(w,E,B){var T=w("../../lib/oop"),b=w("./fold_mode").FoldMode,f=E.FoldMode=function(s,a){this.defaultMode=s,this.subModes=a};T.inherits(f,b),function(){this.$getMode=function(s){typeof s!="string"&&(s=s[0]);for(var a in this.subModes)if(s.indexOf(a)===0)return this.subModes[a];return null},this.$tryMode=function(s,a,n,e){var i=this.$getMode(s);return i?i.getFoldWidget(a,n,e):""},this.getFoldWidget=function(s,a,n){return this.$tryMode(s.getState(n-1),s,a,n)||this.$tryMode(s.getState(n),s,a,n)||this.defaultMode.getFoldWidget(s,a,n)},this.getFoldWidgetRange=function(s,a,n){var e=this.$getMode(s.getState(n-1));return(!e||!e.getFoldWidget(s,a,n))&&(e=this.$getMode(s.getState(n))),(!e||!e.getFoldWidget(s,a,n))&&(e=this.defaultMode),e.getFoldWidgetRange(s,a,n)}}.call(f.prototype)});ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],function(w,E,B){var T=w("../../lib/oop");w("../../lib/lang");var b=w("../../range").Range,f=w("./fold_mode").FoldMode,s=w("../../token_iterator").TokenIterator,a=E.FoldMode=function(i,t){f.call(this),this.voidElements=i||{},this.optionalEndTags=T.mixin({},this.voidElements),t&&T.mixin(this.optionalEndTags,t)};T.inherits(a,f);var n=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};function e(i,t){return i.type.lastIndexOf(t+".xml")>-1}(function(){this.getFoldWidget=function(i,t,r){var o=this._getFirstTagInLine(i,r);return o?o.closing||!o.tagName&&o.selfClosing?t=="markbeginend"?"end":"":!o.tagName||o.selfClosing||this.voidElements.hasOwnProperty(o.tagName.toLowerCase())||this._findEndTagInLine(i,r,o.tagName,o.end.column)?"":"start":this.getCommentFoldWidget(i,r)},this.getCommentFoldWidget=function(i,t){return/comment/.test(i.getState(t))&&/<!-/.test(i.getLine(t))?"start":""},this._getFirstTagInLine=function(i,t){for(var r=i.getTokens(t),o=new n,u=0;u<r.length;u++){var h=r[u];if(e(h,"tag-open")){if(o.end.column=o.start.column+h.value.length,o.closing=e(h,"end-tag-open"),h=r[++u],!h)return null;for(o.tagName=h.value,o.end.column+=h.value.length,u++;u<r.length;u++)if(h=r[u],o.end.column+=h.value.length,e(h,"tag-close")){o.selfClosing=h.value=="/>";break}return o}else if(e(h,"tag-close"))return o.selfClosing=h.value=="/>",o;o.start.column+=h.value.length}return null},this._findEndTagInLine=function(i,t,r,o){for(var u=i.getTokens(t),h=0,d=0;d<u.length;d++){var v=u[d];if(h+=v.value.length,!(h<o)&&e(v,"end-tag-open")&&(v=u[d+1],v&&v.value==r))return!0}return!1},this._readTagForward=function(i){var t=i.getCurrentToken();if(!t)return null;var r=new n;do if(e(t,"tag-open"))r.closing=e(t,"end-tag-open"),r.start.row=i.getCurrentTokenRow(),r.start.column=i.getCurrentTokenColumn();else if(e(t,"tag-name"))r.tagName=t.value;else if(e(t,"tag-close"))return r.selfClosing=t.value=="/>",r.end.row=i.getCurrentTokenRow(),r.end.column=i.getCurrentTokenColumn()+t.value.length,i.stepForward(),r;while(t=i.stepForward());return null},this._readTagBackward=function(i){var t=i.getCurrentToken();if(!t)return null;var r=new n;do{if(e(t,"tag-open"))return r.closing=e(t,"end-tag-open"),r.start.row=i.getCurrentTokenRow(),r.start.column=i.getCurrentTokenColumn(),i.stepBackward(),r;e(t,"tag-name")?r.tagName=t.value:e(t,"tag-close")&&(r.selfClosing=t.value=="/>",r.end.row=i.getCurrentTokenRow(),r.end.column=i.getCurrentTokenColumn()+t.value.length)}while(t=i.stepBackward());return null},this._pop=function(i,t){for(;i.length;){var r=i[i.length-1];if(!t||r.tagName==t.tagName)return i.pop();if(this.optionalEndTags.hasOwnProperty(r.tagName)){i.pop();continue}else return null}},this.getFoldWidgetRange=function(i,t,r){var o=this._getFirstTagInLine(i,r);if(!o)return this.getCommentFoldWidget(i,r)&&i.getCommentFoldRange(r,i.getLine(r).length);var u=o.closing||o.selfClosing,h=[],d;if(u)for(var v=new s(i,r,o.end.colu
# Non-Breaking Space
snippet nbs
&nbsp;
# \u2190
snippet left
&#x2190;
# \u2192
snippet right
&#x2192;
# \u2191
snippet up
&#x2191;
# \u2193
snippet down
&#x2193;
# \u21A9
snippet return
&#x21A9;
# \u21E4
snippet backtab
&#x21E4;
# \u21E5
snippet tab
&#x21E5;
# \u21E7
snippet shift
&#x21E7;
# \u2303
snippet ctrl
&#x2303;
# \u2305
snippet enter
&#x2305;
# \u2318
snippet cmd
&#x2318;
# \u2325
snippet option
&#x2325;
# \u2326
snippet delete
&#x2326;
# \u232B
snippet backspace
&#x232B;
# \u238B
snippet esc
&#x238B;
# Generic Doctype
snippet doctype HTML 4.01 Strict
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
snippet doctype HTML 4.01 Transitional
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
snippet doctype HTML 5
<!DOCTYPE HTML>
snippet doctype XHTML 1.0 Frameset
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
snippet doctype XHTML 1.0 Strict
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
snippet doctype XHTML 1.0 Transitional
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
snippet doctype XHTML 1.1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
# HTML Doctype 4.01 Strict
snippet docts
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
# HTML Doctype 4.01 Transitional
snippet doct
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
# HTML Doctype 5
snippet doct5
<!DOCTYPE html>
# XHTML Doctype 1.0 Frameset
snippet docxf
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
# XHTML Doctype 1.0 Strict
snippet docxs
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
# XHTML Doctype 1.0 Transitional
snippet docxt
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
# XHTML Doctype 1.1
snippet docx
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
# html5shiv
snippet html5shiv
<!--[if lte IE 8]>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"><\/script>
<![endif]-->
snippet html5printshiv
<!--[if lte IE 8]>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"><\/script>
<![endif]-->
# Attributes
snippet attr
\${1:attribute}="\${2:property}"
snippet attr+
\${1:attribute}="\${2:property}" attr+\${3}
snippet .
class="\${1}"\${2}
snippet #
id="\${1}"\${2}
snippet alt
alt="\${1}"\${2}
snippet charset
charset="\${1:utf-8}"\${2}
snippet data
data-\${1}="\${2:$1}"\${3}
snippet for
for="\${1}"\${2}
snippet height
height="\${1}"\${2}
snippet href
href="\${1:#}"\${2}
snippet lang
lang="\${1:en}"\${2}
snippet media
media="\${1}"\${2}
snippet name
name="\${1}"\${2}
snippet rel
rel="\${1}"\${2}
snippet scope
scope="\${1:row}"\${2}
snippet src
src="\${1}"\${2}
snippet title=
title="\${1}"\${2}
snippet type
type="\${1}"\${2}
snippet value
value="\${1}"\${2}
snippet width
width="\${1}"\${2}
# Elements
snippet a
<a href="\${1:#}">\${2:$1}</a>
snippet a.
<a class="\${1}" href="\${2:#}">\${3:$1}</a>
snippet a#
<a id="\${1}" href="\${2:#}">\${3:$1}</a>
snippet a:ext
<a href="http://\${1:example.com}">\${2:$1}</a>
snippet a:mail
<a href="mailto:\${1:joe@example.com}?subject=\${2:feedback}">\${3:email me}</a>
snippet abbr
<abbr title="\${1}">\${2}</abbr>
snippet address
<address>
\${1}
</address>
snippet area
<area shape="\${1:rect}" coords="\${2}" href="\${3}" alt="\${4}" />
snippet area+
<area shape="\${1:rect}" coords="\${2}" href="\${3}" alt="\${4}" />
area+\${5}
snippet area:c
<area shape="circle" coords="\${1}" href="\${2}" alt="\${3}" />
snippet area:d
<area shape="default" coords="\${1}" href="\${2}" alt="\${3}" />
snippet area:p
<area shape="poly" coords="\${1}" href="\${2}" alt="\${3}" />
snippet area:r
<area shape="rect" coords="\${1}" href="\${2}" alt="\${3}" />
snippet article
<article>
\${1}
</article>
snippet article.
<article class="\${1}">
\${2}
</article>
snippet article#
<article id="\${1}">
\${2}
</article>
snippet aside
<aside>
\${1}
</aside>
snippet aside.
<aside class="\${1}">
\${2}
</aside>
snippet aside#
<aside id="\${1}">
\${2}
</aside>
snippet audio
<audio src="\${1}>\${2}</audio>
snippet b
<b>\${1}</b>
snippet base
<base href="\${1}" target="\${2}" />
snippet bdi
<bdi>\${1}</bdo>
snippet bdo
<bdo dir="\${1}">\${2}</bdo>
snippet bdo:l
<bdo dir="ltr">\${1}</bdo>
snippet bdo:r
<bdo dir="rtl">\${1}</bdo>
snippet blockquote
<blockquote>
\${1}
</blockquote>
snippet body
<body>
\${1}
</body>
snippet br
<br />\${1}
snippet button
<button type="\${1:submit}">\${2}</button>
snippet button.
<button class="\${1:button}" type="\${2:submit}">\${3}</button>
snippet button#
<button id="\${1}" type="\${2:submit}">\${3}</button>
snippet button:s
<button type="submit">\${1}</button>
snippet button:r
<button type="reset">\${1}</button>
snippet canvas
<canvas>
\${1}
</canvas>
snippet caption
<caption>\${1}</caption>
snippet cite
<cite>\${1}</cite>
snippet code
<code>\${1}</code>
snippet col
<col />\${1}
snippet col+
<col />
col+\${1}
snippet colgroup
<colgroup>
\${1}
</colgroup>
snippet colgroup+
<colgroup>
<col />
col+\${1}
</colgroup>
snippet command
<command type="command" label="\${1}" icon="\${2}" />
snippet command:c
<command type="checkbox" label="\${1}" icon="\${2}" />
snippet command:r
<command type="radio" radiogroup="\${1}" label="\${2}" icon="\${3}" />
snippet datagrid
<datagrid>
\${1}
</datagrid>
snippet datalist
<datalist>
\${1}
</datalist>
snippet datatemplate
<datatemplate>
\${1}
</datatemplate>
snippet dd
<dd>\${1}</dd>
snippet dd.
<dd class="\${1}">\${2}</dd>
snippet dd#
<dd id="\${1}">\${2}</dd>
snippet del
<del>\${1}</del>
snippet details
<details>\${1}</details>
snippet dfn
<dfn>\${1}</dfn>
snippet dialog
<dialog>
\${1}
</dialog>
snippet div
<div>
\${1}
</div>
snippet div.
<div class="\${1}">
\${2}
</div>
snippet div#
<div id="\${1}">
\${2}
</div>
snippet dl
<dl>
\${1}
</dl>
snippet dl.
<dl class="\${1}">
\${2}
</dl>
snippet dl#
<dl id="\${1}">
\${2}
</dl>
snippet dl+
<dl>
<dt>\${1}</dt>
<dd>\${2}</dd>
dt+\${3}
</dl>
snippet dt
<dt>\${1}</dt>
snippet dt.
<dt class="\${1}">\${2}</dt>
snippet dt#
<dt id="\${1}">\${2}</dt>
snippet dt+
<dt>\${1}</dt>
<dd>\${2}</dd>
dt+\${3}
snippet em
<em>\${1}</em>
snippet embed
<embed src=\${1} type="\${2} />
snippet fieldset
<fieldset>
\${1}
</fieldset>
snippet fieldset.
<fieldset class="\${1}">
\${2}
</fieldset>
snippet fieldset#
<fieldset id="\${1}">
\${2}
</fieldset>
snippet fieldset+
<fieldset>
<legend><span>\${1}</span></legend>
\${2}
</fieldset>
fieldset+\${3}
snippet figcaption
<figcaption>\${1}</figcaption>
snippet figure
<figure>\${1}</figure>
snippet footer
<footer>
\${1}
</footer>
snippet footer.
<footer class="\${1}">
\${2}
</footer>
snippet footer#
<footer id="\${1}">
\${2}
</footer>
snippet form
<form action="\${1}" method="\${2:get}" accept-charset="utf-8">
\${3}
</form>
snippet form.
<form class="\${1}" action="\${2}" method="\${3:get}" accept-charset="utf-8">
\${4}
</form>
snippet form#
<form id="\${1}" action="\${2}" method="\${3:get}" accept-charset="utf-8">
\${4}
</form>
snippet h1
<h1>\${1}</h1>
snippet h1.
<h1 class="\${1}">\${2}</h1>
snippet h1#
<h1 id="\${1}">\${2}</h1>
snippet h2
<h2>\${1}</h2>
snippet h2.
<h2 class="\${1}">\${2}</h2>
snippet h2#
<h2 id="\${1}">\${2}</h2>
snippet h3
<h3>\${1}</h3>
snippet h3.
<h3 class="\${1}">\${2}</h3>
snippet h3#
<h3 id="\${1}">\${2}</h3>
snippet h4
<h4>\${1}</h4>
snippet h4.
<h4 class="\${1}">\${2}</h4>
snippet h4#
<h4 id="\${1}">\${2}</h4>
snippet h5
<h5>\${1}</h5>
snippet h5.
<h5 class="\${1}">\${2}</h5>
snippet h5#
<h5 id="\${1}">\${2}</h5>
snippet h6
<h6>\${1}</h6>
snippet h6.
<h6 class="\${1}">\${2}</h6>
snippet h6#
<h6 id="\${1}">\${2}</h6>
snippet head
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>\${1:\`substitute(Filename('', 'Page Title'), '^.', '\\u&', '')\`}</title>
\${2}
</head>
snippet header
<header>
\${1}
</header>
snippet header.
<header class="\${1}">
\${2}
</header>
snippet header#
<header id="\${1}">
\${2}
</header>
snippet hgroup
<hgroup>
\${1}
</hgroup>
snippet hgroup.
<hgroup class="\${1}>
\${2}
</hgroup>
snippet hr
<hr />\${1}
snippet html
<html>
\${1}
</html>
snippet xhtml
<html xmlns="http://www.w3.org/1999/xhtml">
\${1}
</html>
snippet html5
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>\${1:\`substitute(Filename('', 'Page Title'), '^.', '\\u&', '')\`}</title>
\${2:meta}
</head>
<body>
\${3:body}
</body>
</html>
snippet xhtml5
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8" />
<title>\${1:\`substitute(Filename('', 'Page Title'), '^.', '\\u&', '')\`}</title>
\${2:meta}
</head>
<body>
\${3:body}
</body>
</html>
snippet i
<i>\${1}</i>
snippet iframe
<iframe src="\${1}" frameborder="0"></iframe>\${2}
snippet iframe.
<iframe class="\${1}" src="\${2}" frameborder="0"></iframe>\${3}
snippet iframe#
<iframe id="\${1}" src="\${2}" frameborder="0"></iframe>\${3}
snippet img
<img src="\${1}" alt="\${2}" />\${3}
snippet img.
<img class="\${1}" src="\${2}" alt="\${3}" />\${4}
snippet img#
<img id="\${1}" src="\${2}" alt="\${3}" />\${4}
snippet input
<input type="\${1:text/submit/hidden/button/image}" name="\${2}" id="\${3:$2}" value="\${4}" />\${5}
snippet input.
<input class="\${1}" type="\${2:text/submit/hidden/button/image}" name="\${3}" id="\${4:$3}" value="\${5}" />\${6}
snippet input:text
<input type="text" name="\${1}" id="\${2:$1}" value="\${3}" />\${4}
snippet input:submit
<input type="submit" name="\${1}" id="\${2:$1}" value="\${3}" />\${4}
snippet input:hidden
<input type="hidden" name="\${1}" id="\${2:$1}" value="\${3}" />\${4}
snippet input:button
<input type="button" name="\${1}" id="\${2:$1}" value="\${3}" />\${4}
snippet input:image
<input type="image" name="\${1}" id="\${2:$1}" src="\${3}" alt="\${4}" />\${5}
snippet input:checkbox
<input type="checkbox" name="\${1}" id="\${2:$1}" />\${3}
snippet input:radio
<input type="radio" name="\${1}" id="\${2:$1}" />\${3}
snippet input:color
<input type="color" name="\${1}" id="\${2:$1}" value="\${3}" />\${4}
snippet input:date
<input type="date" name="\${1}" id="\${2:$1}" value="\${3}" />\${4}
snippet input:datetime
<input type="datetime" name="\${1}" id="\${2:$1}" value="\${3}" />\${4}
snippet input:datetime-local
<input type="datetime-local" name="\${1}" id="\${2:$1}" value="\${3}" />\${4}
snippet input:email
<input type="email" name="\${1}" id="\${2:$1}" value="\${3}" />\${4}
snippet input:file
<input type="file" name="\${1}" id="\${2:$1}" value="\${3}" />\${4}
snippet input:month
<input type="month" name="\${1}" id="\${2:$1}" value="\${3}" />\${4}
snippet input:number
<input type="number" name="\${1}" id="\${2:$1}" value="\${3}" />\${4}
snippet input:password
<input type="password" name="\${1}" id="\${2:$1}" value="\${3}" />\${4}
snippet input:range
<input type="range" name="\${1}" id="\${2:$1}" value="\${3}" />\${4}
snippet input:reset
<input type="reset" name="\${1}" id="\${2:$1}" value="\${3}" />\${4}
snippet input:search
<input type="search" name="\${1}" id="\${2:$1}" value="\${3}" />\${4}
snippet input:time
<input type="time" name="\${1}" id="\${2:$1}" value="\${3}" />\${4}
snippet input:url
<input type="url" name="\${1}" id="\${2:$1}" value="\${3}" />\${4}
snippet input:week
<input type="week" name="\${1}" id="\${2:$1}" value="\${3}" />\${4}
snippet ins
<ins>\${1}</ins>
snippet kbd
<kbd>\${1}</kbd>
snippet keygen
<keygen>\${1}</keygen>
snippet label
<label for="\${2:$1}">\${1}</label>
snippet label:i
<label for="\${2:$1}">\${1}</label>
<input type="\${3:text/submit/hidden/button}" name="\${4:$2}" id="\${5:$2}" value="\${6}" />\${7}
snippet label:s
<label for="\${2:$1}">\${1}</label>
<select name="\${3:$2}" id="\${4:$2}">
<option value="\${5}">\${6:$5}</option>
</select>
snippet legend
<legend>\${1}</legend>
snippet legend+
<legend><span>\${1}</span></legend>
snippet li
<li>\${1}</li>
snippet li.
<li class="\${1}">\${2}</li>
snippet li+
<li>\${1}</li>
li+\${2}
snippet lia
<li><a href="\${2:#}">\${1}</a></li>
snippet lia+
<li><a href="\${2:#}">\${1}</a></li>
lia+\${3}
snippet link
<link rel="\${1}" href="\${2}" title="\${3}" type="\${4}" />\${5}
snippet link:atom
<link rel="alternate" href="\${1:atom.xml}" title="Atom" type="application/atom+xml" />\${2}
snippet link:css
<link rel="stylesheet" href="\${2:style.css}" type="text/css" media="\${3:all}" />\${4}
snippet link:favicon
<link rel="shortcut icon" href="\${1:favicon.ico}" type="image/x-icon" />\${2}
snippet link:rss
<link rel="alternate" href="\${1:rss.xml}" title="RSS" type="application/atom+xml" />\${2}
snippet link:touch
<link rel="apple-touch-icon" href="\${1:favicon.png}" />\${2}
snippet map
<map name="\${1}">
\${2}
</map>
snippet map.
<map class="\${1}" name="\${2}">
\${3}
</map>
snippet map#
<map name="\${1}" id="\${2:$1}>
\${3}
</map>
snippet map+
<map name="\${1}">
<area shape="\${2}" coords="\${3}" href="\${4}" alt="\${5}" />\${6}
</map>\${7}
snippet mark
<mark>\${1}</mark>
snippet menu
<menu>
\${1}
</menu>
snippet menu:c
<menu type="context">
\${1}
</menu>
snippet menu:t
<menu type="toolbar">
\${1}
</menu>
snippet meta
<meta http-equiv="\${1}" content="\${2}" />\${3}
snippet meta:compat
<meta http-equiv="X-UA-Compatible" content="IE=\${1:7,8,edge}" />\${3}
snippet meta:refresh
<meta http-equiv="refresh" content="text/html;charset=UTF-8" />\${3}
snippet meta:utf
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />\${3}
snippet meter
<meter>\${1}</meter>
snippet nav
<nav>
\${1}
</nav>
snippet nav.
<nav class="\${1}">
\${2}
</nav>
snippet nav#
<nav id="\${1}">
\${2}
</nav>
snippet noscript
<noscript>
\${1}
</noscript>
snippet object
<object data="\${1}" type="\${2}">
\${3}
</object>\${4}
# Embed QT Movie
snippet movie
<object width="$2" height="$3" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"
codebase="http://www.apple.com/qtactivex/qtplugin.cab">
<param name="src" value="$1" />
<param name="controller" value="$4" />
<param name="autoplay" value="$5" />
<embed src="\${1:movie.mov}"
width="\${2:320}" height="\${3:240}"
controller="\${4:true}" autoplay="\${5:true}"
scale="tofit" cache="true"
pluginspage="http://www.apple.com/quicktime/download/" />
</object>\${6}
snippet ol
<ol>
\${1}
</ol>
snippet ol.
<ol class="\${1}>
\${2}
</ol>
snippet ol#
<ol id="\${1}>
\${2}
</ol>
snippet ol+
<ol>
<li>\${1}</li>
li+\${2}
</ol>
snippet opt
<option value="\${1}">\${2:$1}</option>
snippet opt+
<option value="\${1}">\${2:$1}</option>
opt+\${3}
snippet optt
<option>\${1}</option>
snippet optgroup
<optgroup>
<option value="\${1}">\${2:$1}</option>
opt+\${3}
</optgroup>
snippet output
<output>\${1}</output>
snippet p
<p>\${1}</p>
snippet param
<param name="\${1}" value="\${2}" />\${3}
snippet pre
<pre>
\${1}
</pre>
snippet progress
<progress>\${1}</progress>
snippet q
<q>\${1}</q>
snippet rp
<rp>\${1}</rp>
snippet rt
<rt>\${1}</rt>
snippet ruby
<ruby>
<rp><rt>\${1}</rt></rp>
</ruby>
snippet s
<s>\${1}</s>
snippet samp
<samp>
\${1}
</samp>
snippet script
<script type="text/javascript" charset="utf-8">
\${1}
<\/script>
snippet scriptsrc
<script src="\${1}.js" type="text/javascript" charset="utf-8"><\/script>
snippet newscript
<script type="application/javascript" charset="utf-8">
\${1}
<\/script>
snippet newscriptsrc
<script src="\${1}.js" type="application/javascript" charset="utf-8"><\/script>
snippet section
<section>
\${1}
</section>
snippet section.
<section class="\${1}">
\${2}
</section>
snippet section#
<section id="\${1}">
\${2}
</section>
snippet select
<select name="\${1}" id="\${2:$1}">
\${3}
</select>
snippet select.
<select name="\${1}" id="\${2:$1}" class="\${3}>
\${4}
</select>
snippet select+
<select name="\${1}" id="\${2:$1}">
<option value="\${3}">\${4:$3}</option>
opt+\${5}
</select>
snippet small
<small>\${1}</small>
snippet source
<source src="\${1}" type="\${2}" media="\${3}" />
snippet span
<span>\${1}</span>
snippet strong
<strong>\${1}</strong>
snippet style
<style type="text/css" media="\${1:all}">
\${2}
</style>
snippet sub
<sub>\${1}</sub>
snippet summary
<summary>
\${1}
</summary>
snippet sup
<sup>\${1}</sup>
snippet table
<table border="\${1:0}">
\${2}
</table>
snippet table.
<table class="\${1}" border="\${2:0}">
\${3}
</table>
snippet table#
<table id="\${1}" border="\${2:0}">
\${3}
</table>
snippet tbody
<tbody>
\${1}
</tbody>
snippet td
<td>\${1}</td>
snippet td.
<td class="\${1}">\${2}</td>
snippet td#
<td id="\${1}">\${2}</td>
snippet td+
<td>\${1}</td>
td+\${2}
snippet textarea
<textarea name="\${1}" id=\${2:$1} rows="\${3:8}" cols="\${4:40}">\${5}</textarea>\${6}
snippet tfoot
<tfoot>
\${1}
</tfoot>
snippet th
<th>\${1}</th>
snippet th.
<th class="\${1}">\${2}</th>
snippet th#
<th id="\${1}">\${2}</th>
snippet th+
<th>\${1}</th>
th+\${2}
snippet thead
<thead>
\${1}
</thead>
snippet time
<time datetime="\${1}" pubdate="\${2:$1}>\${3:$1}</time>
snippet title
<title>\${1:\`substitute(Filename('', 'Page Title'), '^.', '\\u&', '')\`}</title>
snippet tr
<tr>
\${1}
</tr>
snippet tr+
<tr>
<td>\${1}</td>
td+\${2}
</tr>
snippet track
<track src="\${1}" srclang="\${2}" label="\${3}" default="\${4:default}>\${5}</track>\${6}
snippet ul
<ul>
\${1}
</ul>
snippet ul.
<ul class="\${1}">
\${2}
</ul>
snippet ul#
<ul id="\${1}">
\${2}
</ul>
snippet ul+
<ul>
<li>\${1}</li>
li+\${2}
</ul>
snippet var
<var>\${1}</var>
snippet video
<video src="\${1} height="\${2}" width="\${3}" preload="\${5:none}" autoplay="\${6:autoplay}>\${7}</video>\${8}
snippet wbr
<wbr />\${1}
`,E.scope="html"});ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(w,E,B){var T=w("../lib/oop"),b=w("./text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},f.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};T.inherits(f,b),f.getTagRule=function(s){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},f.getStartRule=function(s){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:s}},f.getEndRule=function(s){return{token:"comment.doc",regex:"\\*\\/",next:s}},E.DocCommentHighlightRules=f});ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(w,E,B){var T=w("../lib/oop"),b=w("./doc_comment_highlight_rules").DocCommentHighlightRules,f=w("./text_highlight_rules").TextHighlightRules,s="[a-zA-Z\\$_\xA1-\uFFFF][a-zA-Z\\d\\$_\xA1-\uFFFF]*",a=function(i){var t=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},"identifier"),r="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",o="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)";this.$rules={no_regex:[b.getStartRule("doc-start"),e("no_regex"),{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+s+")(\\.)(prototype)(\\.)("+s+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+s+")(\\.)("+s+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+s+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+s+")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:`from(?=\\s*('|"))`},{token:"keyword",regex:"(?:"+r+")\\b",next:"start"},{token:["suppo
snippet proto
\${1:class_name}.prototype.\${2:method_name} = function(\${3:first_argument}) {
\${4:// body...}
};
# Function
snippet fun
function \${1?:function_name}(\${2:argument}) {
\${3:// body...}
}
# Anonymous Function
regex /((=)\\s*|(:)\\s*|(\\()|\\b)/f/(\\))?/
snippet f
function\${M1?: \${1:functionName}}($2) {
\${0:$TM_SELECTED_TEXT}
}\${M2?;}\${M3?,}\${M4?)}
# Immediate function
trigger \\(?f\\(
endTrigger \\)?
snippet f(
(function(\${1}) {
\${0:\${TM_SELECTED_TEXT:/* code */}}
}(\${1}));
# if
snippet if
if (\${1:true}) {
\${0}
}
# if ... else
snippet ife
if (\${1:true}) {
\${2}
} else {
\${0}
}
# tertiary conditional
snippet ter
\${1:/* condition */} ? \${2:a} : \${3:b}
# switch
snippet switch
switch (\${1:expression}) {
case '\${3:case}':
\${4:// code}
break;
\${5}
default:
\${2:// code}
}
# case
snippet case
case '\${1:case}':
\${2:// code}
break;
\${3}
# while (...) {...}
snippet wh
while (\${1:/* condition */}) {
\${0:/* code */}
}
# try
snippet try
try {
\${0:/* code */}
} catch (e) {}
# do...while
snippet do
do {
\${2:/* code */}
} while (\${1:/* condition */});
# Object Method
snippet :f
regex /([,{[])|^\\s*/:f/
\${1:method_name}: function(\${2:attribute}) {
\${0}
}\${3:,}
# setTimeout function
snippet setTimeout
regex /\\b/st|timeout|setTimeo?u?t?/
setTimeout(function() {\${3:$TM_SELECTED_TEXT}}, \${1:10});
# Get Elements
snippet gett
getElementsBy\${1:TagName}('\${2}')\${3}
# Get Element
snippet get
getElementBy\${1:Id}('\${2}')\${3}
# console.log (Firebug)
snippet cl
console.log(\${1});
# return
snippet ret
return \${1:result}
# for (property in object ) { ... }
snippet fori
for (var \${1:prop} in \${2:Things}) {
\${0:$2[$1]}
}
# hasOwnProperty
snippet has
hasOwnProperty(\${1})
# docstring
snippet /**
/**
* \${1:description}
*
*/
snippet @par
regex /^\\s*\\*\\s*/@(para?m?)?/
@param {\${1:type}} \${2:name} \${3:description}
snippet @ret
@return {\${1:type}} \${2:description}
# JSON.parse
snippet jsonp
JSON.parse(\${1:jstr});
# JSON.stringify
snippet jsons
JSON.stringify(\${1:object});
# self-defining function
snippet sdf
var \${1:function_name} = function(\${2:argument}) {
\${3:// initial code ...}
$1 = function($2) {
\${4:// main code}
};
}
# singleton
snippet sing
function \${1:Singleton} (\${2:argument}) {
// the cached instance
var instance;
// rewrite the constructor
$1 = function $1($2) {
return instance;
};
// carry over the prototype properties
$1.prototype = this;
// the instance
instance = new $1();
// reset the constructor pointer
instance.constructor = $1;
\${3:// code ...}
return instance;
}
# class
snippet class
regex /^\\s*/clas{0,2}/
var \${1:class} = function(\${20}) {
$40$0
};
(function() {
\${60:this.prop = ""}
}).call(\${1:class}.prototype);
exports.\${1:class} = \${1:class};
#
snippet for-
for (var \${1:i} = \${2:Things}.length; \${1:i}--; ) {
\${0:\${2:Things}[\${1:i}];}
}
# for (...) {...}
snippet for
for (var \${1:i} = 0; $1 < \${2:Things}.length; $1++) {
\${3:$2[$1]}$0
}
# for (...) {...} (Improved Native For-Loop)
snippet forr
for (var \${1:i} = \${2:Things}.length - 1; $1 >= 0; $1--) {
\${3:$2[$1]}$0
}
#modules
snippet def
define(function(require, exports, module) {
"use strict";
var \${1/.*\\///} = require("\${1}");
$TM_SELECTED_TEXT
});
snippet req
guard ^\\s*
var \${1/.*\\///} = require("\${1}");
$0
snippet requ
guard ^\\s*
var \${1/.*\\/(.)/\\u$1/} = require("\${1}").\${1/.*\\/(.)/\\u$1/};
$0
`,E.scope="javascript"});ace.define("ace/snippets/text",["require","exports","module"],function(w,E,B){E.snippetText=void 0,E.scope="text"});ace.define("ace/theme/monokai",["require","exports","module","ace/lib/dom"],function(w,E,B){E.isDark=!0,E.cssClass="ace-monokai",E.cssText=".ace-monokai .ace_gutter {background: #2F3129;color: #8F908A}.ace-monokai .ace_print-margin {width: 1px;background: #555651}.ace-monokai {background-color: #272822;color: #F8F8F2}.ace-monokai .ace_cursor {color: #F8F8F0}.ace-monokai .ace_marker-layer .ace_selection {background: #49483E}.ace-monokai.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #272822;}.ace-monokai .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-monokai .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #49483E}.ace-monokai .ace_marker-layer .ace_active-line {background: #202020}.ace-monokai .ace_gutter-active-line {background-color: #272727}.ace-monokai .ace_marker-layer .ace_selected-word {border: 1px solid #49483E}.ace-monokai .ace_invisible {color: #52524d}.ace-monokai .ace_entity.ace_name.ace_tag,.ace-monokai .ace_keyword,.ace-monokai .ace_meta.ace_tag,.ace-monokai .ace_storage {color: #F92672}.ace-monokai .ace_punctuation,.ace-monokai .ace_punctuation.ace_tag {color: #fff}.ace-monokai .ace_constant.ace_character,.ace-monokai .ace_constant.ace_language,.ace-monokai .ace_constant.ace_numeric,.ace-monokai .ace_constant.ace_other {color: #AE81FF}.ace-monokai .ace_invalid {color: #F8F8F0;background-color: #F92672}.ace-monokai .ace_invalid.ace_deprecated {color: #F8F8F0;background-color: #AE81FF}.ace-monokai .ace_support.ace_constant,.ace-monokai .ace_support.ace_function {color: #66D9EF}.ace-monokai .ace_fold {background-color: #A6E22E;border-color: #F8F8F2}.ace-monokai .ace_storage.ace_type,.ace-monokai .ace_support.ace_class,.ace-monokai .ace_support.ace_type {font-style: italic;color: #66D9EF}.ace-monokai .ace_entity.ace_name.ace_function,.ace-monokai .ace_entity.ace_other,.ace-monokai .ace_entity.ace_other.ace_attribute-name,.ace-monokai .ace_variable {color: #A6E22E}.ace-monokai .ace_variable.ace_parameter {font-style: italic;color: #FD971F}.ace-monokai .ace_string {color: #E6DB74}.ace-monokai .ace_comment {color: #75715E}.ace-monokai .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPQ0FD0ZXBzd/wPAAjVAoxeSgNeAAAAAElFTkSuQmCC) right repeat-y}";var T=w("../lib/dom");T.importCssString(E.cssText,E.cssClass)});ace.define("ace/theme/chrome",["require","exports","module","ace/lib/dom"],function(w,E,B){E.isDark=!1,E.cssClass="ace-chrome",E.cssText='.ace-chrome .ace_gutter {background: #ebebeb;color: #333;overflow : hidden;}.ace-chrome .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-chrome {background-color: #FFFFFF;color: black;}.ace-chrome .ace_cursor {color: black;}.ace-chrome .ace_invisible {color: rgb(191, 191, 191);}.ace-chrome .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-chrome .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-chrome .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-chrome .ace_invalid {background-color: rgb(153, 0, 0);color: white;}.ace-chrome .ace_fold {}.ace-chrome .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-chrome .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-chrome .ace_support.ace_type,.ace-chrome .ace_support.ace_class.ace-chrome .ace_support.ace_other {color: rgb(109, 121, 222);}.ace-chrome .ace_variable.ace_parameter {font-style:italic;color:#FD971F;}.ace-chrome .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-chrome .ace_comment {color: #236e24;}.ace-chrome .ace_comment.ace_doc {color: #236e24;}.ace-chrome .ace_comment.ace_doc.ace_tag {color: #236e24;}.ace-chrome .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-chrome .ace_variable {color: rgb(49, 132, 149);}.ace-chrome .ace_xml-pe {color: rgb(104, 104, 91);}.ace-chrome .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-chrome .ace_heading {color: rgb(12, 7, 255);}.ace-chrome .ace_list {color:rgb(185,